1
0
Fork 0
mirror of https://github.com/maziggy/bambuddy.git synced 2026-05-09 08:25:54 +02:00

[GH-ISSUE #1165] [Bug Report] Responsive layout will not expand beyond 3 columns, no matter the screen width #842

Closed
opened 2026-05-07 00:14:16 +02:00 by BreizhHardware · 3 comments

Originally created by @maziggy on GitHub (Apr 29, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1165

Originally assigned to: @maziggy on GitHub.

Responsive layout will not expand beyond 3 columns, no matter the screen width

Reporter Contact

Email: ghost609160@gmail.com

System Information
{
  "generated_at": "2026-04-29T11:26:44.655646",
  "app": {
    "version": "0.2.3.2",
    "debug_mode": false
  },
  "system": {
    "platform": "Linux",
    "platform_release": "4.4.302+",
    "platform_version": "#86009 SMP Wed Nov 26 18:29:22 CST 2025",
    "architecture": "x86_64",
    "python_version": "3.13.13"
  },
  "environment": {
    "docker": true,
    "data_dir": "/app/data",
    "log_dir": "/app/logs",
    "timezone": ""
  },
  "database": {
    "archives_total": 18,
    "archives_completed": 14,
    "printers_total": 8,
    "filaments_total": 0,
    "projects_total": 0,
    "smart_plugs_total": 0
  },
  "printers": [
    {
      "index": 1,
      "model": "X1C",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.11.02.00",
      "wifi_signal": -68,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 4,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 2,
      "model": "X1C",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.11.02.00",
      "wifi_signal": -69,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 3,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 3,
      "model": "H2C",
      "nozzle_count": 2,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.01.05.00",
      "wifi_signal": -67,
      "reachable": true,
      "ams_unit_count": 3,
      "ams_tray_count": 8,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 4,
      "developer_mode": true,
      "nozzle_rack_count": 7
    },
    {
      "index": 4,
      "model": "X1C",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.11.02.00",
      "wifi_signal": -72,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 2,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 5,
      "model": "X1C",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.11.02.00",
      "wifi_signal": -72,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 3,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 1,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 6,
      "model": "X1C",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.11.02.00",
      "wifi_signal": -73,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 2,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 7,
      "model": "X1C",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.11.02.00",
      "wifi_signal": -76,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 2,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 8,
      "model": "H2D",
      "nozzle_count": 2,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.03.00.00",
      "wifi_signal": -73,
      "reachable": true,
      "ams_unit_count": 2,
      "ams_tray_count": 6,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 4,
      "developer_mode": true,
      "nozzle_rack_count": 2
    }
  ],
  "settings": {
    "advanced_auth_enabled": "false",
    "smtp_auth_enabled": "true",
    "auth_enabled": "true",
    "setup_completed": "true",
    "auto_archive": "true",
    "save_thumbnails": "true",
    "capture_finish_photo": "true",
    "default_filament_cost": "25.0",
    "currency": "USD",
    "energy_cost_per_kwh": "0.15",
    "energy_tracking_mode": "total",
    "disable_filament_warnings": "false",
    "prefer_lowest_filament": "false",
    "check_updates": "true",
    "check_printer_firmware": "true",
    "include_beta_updates": "false",
    "notification_language": "en",
    "bed_cooled_threshold": "35.0",
    "ams_humidity_good": "40",
    "ams_humidity_fair": "60",
    "ams_temp_good": "28.0",
    "ams_temp_fair": "35.0",
    "ams_history_retention_days": "30",
    "queue_drying_enabled": "false",
    "queue_drying_block": "false",
    "ambient_drying_enabled": "false",
    "drying_presets": "",
    "per_printer_mapping_expanded": "false",
    "date_format": "system",
    "time_format": "system",
    "default_printer_id": "None",
    "ftp_retry_enabled": "true",
    "ftp_retry_count": "3",
    "ftp_retry_delay": "2",
    "ftp_timeout": "30",
    "mqtt_enabled": "false",
    "mqtt_broker": "",
    "mqtt_port": "1883",
    "mqtt_username": "",
    "mqtt_password": "",
    "mqtt_topic_prefix": "bambuddy",
    "mqtt_use_tls": "false",
    "external_url": "[REDACTED]",
    "ha_enabled": "false",
    "ha_url": "",
    "ha_token": "",
    "library_archive_mode": "ask",
    "library_disk_warning_gb": "5.0",
    "camera_view_mode": "window",
    "preferred_slicer": "bambu_studio",
    "prometheus_enabled": "false",
    "prometheus_token": "",
    "user_notifications_enabled": "true",
    "default_bed_levelling": "true",
    "default_flow_cali": "false",
    "default_vibration_cali": "true",
    "default_layer_inspect": "false",
    "default_timelapse": "false",
    "stagger_group_size": "2",
    "stagger_interval_minutes": "5",
    "require_plate_clear": "false",
    "queue_shortest_first": "false",
    "debug_logging_enabled": "false",
    "debug_logging_enabled_at": ""
  },
  "docker": {
    "container_memory_limit_bytes": 8589934592,
    "container_memory_limit_formatted": "8.00 GB",
    "network_mode_hint": "host"
  },
  "virtual_printers": [],
  "integrations": {
    "notification_providers": [],
    "spoolman": {
      "enabled": false,
      "reachable": false
    },
    "mqtt_relay": {
      "enabled": false,
      "connected": false,
      "broker": "",
      "port": 0,
      "topic_prefix": "bambuddy"
    },
    "spoolbuddy": {
      "device_count": 0,
      "online_count": 0,
      "devices": []
    },
    "homeassistant": {
      "enabled": false
    }
  },
  "database_health": {
    "backend": "sqlite",
    "journal_mode": "wal",
    "quick_check": "ok",
    "db_size_bytes": 978944,
    "wal_size_bytes": 4181832
  },
  "dependencies": {
    "fastapi": "0.136.0",
    "uvicorn": "0.45.0",
    "pydantic": "2.13.3",
    "sqlalchemy": "2.0.49",
    "paho-mqtt": "2.1.0",
    "psutil": "7.2.2",
    "httpx": "0.28.1",
    "aiofiles": "25.1.0",
    "cryptography": "46.0.7",
    "opencv-python-headless": "4.13.0.92",
    "numpy": "2.4.4"
  },
  "log_file": {
    "size_bytes": 2584764,
    "size_formatted": "2.5 MB"
  },
  "network": {
    "interface_count": 4,
    "interfaces": [
      {
        "name": "eth2",
        "subnet": "x.x.0.0/16"
      },
      {
        "name": "eth1",
        "subnet": "x.x.0.0/16"
      },
      {
        "name": "eth0",
        "subnet": "x.x.1.0/24"
      },
      {
        "name": "eth3",
        "subnet": "x.x.0.0/16"
      }
    ]
  },
  "websockets": {
    "active_connections": 2
  }
}

Logs (sanitized): bambuddy.log


Submitted via BamBuddy Bug Report

Originally created by @maziggy on GitHub (Apr 29, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1165 Originally assigned to: @maziggy on GitHub. Responsive layout will not expand beyond 3 columns, no matter the screen width <details> <summary>Reporter Contact</summary> Email: ghost609160@gmail.com </details> <details> <summary>System Information</summary> ```json { "generated_at": "2026-04-29T11:26:44.655646", "app": { "version": "0.2.3.2", "debug_mode": false }, "system": { "platform": "Linux", "platform_release": "4.4.302+", "platform_version": "#86009 SMP Wed Nov 26 18:29:22 CST 2025", "architecture": "x86_64", "python_version": "3.13.13" }, "environment": { "docker": true, "data_dir": "/app/data", "log_dir": "/app/logs", "timezone": "" }, "database": { "archives_total": 18, "archives_completed": 14, "printers_total": 8, "filaments_total": 0, "projects_total": 0, "smart_plugs_total": 0 }, "printers": [ { "index": 1, "model": "X1C", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.11.02.00", "wifi_signal": -68, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 4, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 2, "model": "X1C", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.11.02.00", "wifi_signal": -69, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 3, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 3, "model": "H2C", "nozzle_count": 2, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.01.05.00", "wifi_signal": -67, "reachable": true, "ams_unit_count": 3, "ams_tray_count": 8, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 4, "developer_mode": true, "nozzle_rack_count": 7 }, { "index": 4, "model": "X1C", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.11.02.00", "wifi_signal": -72, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 2, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 5, "model": "X1C", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.11.02.00", "wifi_signal": -72, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 3, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 1, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 6, "model": "X1C", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.11.02.00", "wifi_signal": -73, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 2, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 7, "model": "X1C", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.11.02.00", "wifi_signal": -76, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 2, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 8, "model": "H2D", "nozzle_count": 2, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.03.00.00", "wifi_signal": -73, "reachable": true, "ams_unit_count": 2, "ams_tray_count": 6, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 4, "developer_mode": true, "nozzle_rack_count": 2 } ], "settings": { "advanced_auth_enabled": "false", "smtp_auth_enabled": "true", "auth_enabled": "true", "setup_completed": "true", "auto_archive": "true", "save_thumbnails": "true", "capture_finish_photo": "true", "default_filament_cost": "25.0", "currency": "USD", "energy_cost_per_kwh": "0.15", "energy_tracking_mode": "total", "disable_filament_warnings": "false", "prefer_lowest_filament": "false", "check_updates": "true", "check_printer_firmware": "true", "include_beta_updates": "false", "notification_language": "en", "bed_cooled_threshold": "35.0", "ams_humidity_good": "40", "ams_humidity_fair": "60", "ams_temp_good": "28.0", "ams_temp_fair": "35.0", "ams_history_retention_days": "30", "queue_drying_enabled": "false", "queue_drying_block": "false", "ambient_drying_enabled": "false", "drying_presets": "", "per_printer_mapping_expanded": "false", "date_format": "system", "time_format": "system", "default_printer_id": "None", "ftp_retry_enabled": "true", "ftp_retry_count": "3", "ftp_retry_delay": "2", "ftp_timeout": "30", "mqtt_enabled": "false", "mqtt_broker": "", "mqtt_port": "1883", "mqtt_username": "", "mqtt_password": "", "mqtt_topic_prefix": "bambuddy", "mqtt_use_tls": "false", "external_url": "[REDACTED]", "ha_enabled": "false", "ha_url": "", "ha_token": "", "library_archive_mode": "ask", "library_disk_warning_gb": "5.0", "camera_view_mode": "window", "preferred_slicer": "bambu_studio", "prometheus_enabled": "false", "prometheus_token": "", "user_notifications_enabled": "true", "default_bed_levelling": "true", "default_flow_cali": "false", "default_vibration_cali": "true", "default_layer_inspect": "false", "default_timelapse": "false", "stagger_group_size": "2", "stagger_interval_minutes": "5", "require_plate_clear": "false", "queue_shortest_first": "false", "debug_logging_enabled": "false", "debug_logging_enabled_at": "" }, "docker": { "container_memory_limit_bytes": 8589934592, "container_memory_limit_formatted": "8.00 GB", "network_mode_hint": "host" }, "virtual_printers": [], "integrations": { "notification_providers": [], "spoolman": { "enabled": false, "reachable": false }, "mqtt_relay": { "enabled": false, "connected": false, "broker": "", "port": 0, "topic_prefix": "bambuddy" }, "spoolbuddy": { "device_count": 0, "online_count": 0, "devices": [] }, "homeassistant": { "enabled": false } }, "database_health": { "backend": "sqlite", "journal_mode": "wal", "quick_check": "ok", "db_size_bytes": 978944, "wal_size_bytes": 4181832 }, "dependencies": { "fastapi": "0.136.0", "uvicorn": "0.45.0", "pydantic": "2.13.3", "sqlalchemy": "2.0.49", "paho-mqtt": "2.1.0", "psutil": "7.2.2", "httpx": "0.28.1", "aiofiles": "25.1.0", "cryptography": "46.0.7", "opencv-python-headless": "4.13.0.92", "numpy": "2.4.4" }, "log_file": { "size_bytes": 2584764, "size_formatted": "2.5 MB" }, "network": { "interface_count": 4, "interfaces": [ { "name": "eth2", "subnet": "x.x.0.0/16" }, { "name": "eth1", "subnet": "x.x.0.0/16" }, { "name": "eth0", "subnet": "x.x.1.0/24" }, { "name": "eth3", "subnet": "x.x.0.0/16" } ] }, "websockets": { "active_connections": 2 } } ``` </details> **Logs (sanitized):** [bambuddy.log](https://raw.githubusercontent.com/maziggy/bambuddy/bug-report-assets/logs/da0ed834ab5f45048bae6a62aed229e1.log) --- *Submitted via BamBuddy Bug Report*
BreizhHardware 2026-05-07 00:14:16 +02:00
Author
Owner

@maziggy commented on GitHub (Apr 29, 2026):

Screenshot please. I have only 2 printers.

<!-- gh-comment-id:4344289293 --> @maziggy commented on GitHub (Apr 29, 2026): Screenshot please. I have only 2 printers.
Author
Owner

@EdwardChamberlain commented on GitHub (May 1, 2026):

Not originator but card count are defined by tailwinds default config (as there is no theme.screens override) so latch to set card number.

relevant line is:
github.com/maziggy/bambuddy@8dd4efa555/frontend/src/pages/PrintersPage.tsx (L6283)

<!-- gh-comment-id:4361072973 --> @EdwardChamberlain commented on GitHub (May 1, 2026): Not originator but card count are defined by tailwinds default config (as there is no theme.screens override) so latch to set card number. relevant line is: https://github.com/maziggy/bambuddy/blob/8dd4efa55540cab31bde7e96c5ef923d594657ef/frontend/src/pages/PrintersPage.tsx#L6283
Author
Owner

@maziggy commented on GitHub (May 2, 2026):

I tried a couple of fixes (adding a 2xl tier; capping columns by printer count) and both regressed the layout for users with fewer printers — cards either shrank too far and wrapped their badges row, or stretched too wide on ultrawide monitors. The cardSize selector (S / M / L / XL in the toolbar) is intentionally the user-facing lever for this: switching from M to S already gives you up to 5 columns, which should fit your 8 printers comfortably on a wide monitor.

Closing as wont-fix unless this comes up from more users.

<!-- gh-comment-id:4363103785 --> @maziggy commented on GitHub (May 2, 2026): I tried a couple of fixes (adding a 2xl tier; capping columns by printer count) and both regressed the layout for users with fewer printers — cards either shrank too far and wrapped their badges row, or stretched too wide on ultrawide monitors. The cardSize selector (S / M / L / XL in the toolbar) is intentionally the user-facing lever for this: switching from M to S already gives you up to 5 columns, which should fit your 8 printers comfortably on a wide monitor. Closing as wont-fix unless this comes up from more users.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/bambuddy-maziggy-1#842
No description provided.