linuxmint / cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
GNU General Public License v2.0
4.49k stars 732 forks source link

Panel option error when adding/removing monitors. #12397

Open mattvisa opened 1 day ago

mattvisa commented 1 day ago

Distribution

22

Package version

Cinnamon 6.2.9

Graphics hardware in use

NVIDIA RTX 4080

Frequency

Always

Bug description

I can't open the panel under settings if I remove one of three monitors. I can when I reattach the third monitor.

I am getting this error message (below). Issue is similar to this one which was closed: https://github.com/linuxmint/cinnamon/issues/12378.


Using PAM module (python3-pam) Loading Panel module Traceback (most recent call last): File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 751, in button_press self.side_view_nav(widget, None, category) File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 176, in side_view_nav self.go_to_sidepage(sidePage, user_action=True) File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 185, in go_to_sidepage sidePage.build() File "/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py", line 212, in build self.module.on_module_selected() File "/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py", line 231, in on_module_selected self.on_panel_list_changed() File "/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py", line 329, in on_panel_list_changed if self.id_or_monitor_position_used(already_defined_panels, monitor_layout, panel_id, monitor_id, position): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py", line 297, in id_or_monitor_position_used if monitor_layout[monitor_id].position_used(position):


IndexError: list index out of range
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 228, in partial_apport_excepthook
return apport_excepthook(binary, exc_type, exc_obj, exc_tb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 144, in apport_excepthook
os.open(pr_filename, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), "wb"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/crash/_usr_share_cinnamon_cinnamon-settings_cinnamon-settings.py.1000.crash'

Original exception was:
Traceback (most recent call last):
File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 751, in button_press
self.side_view_nav(widget, None, category)
File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 176, in side_view_nav
self.go_to_sidepage(sidePage, user_action=True)
File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 185, in go_to_sidepage
sidePage.build()
File "/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py", line 212, in build
self.module.on_module_selected()
File "/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py", line 231, in on_module_selected
self.on_panel_list_changed()
File "/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py", line 329, in on_panel_list_changed
if self.id_or_monitor_position_used(already_defined_panels, monitor_layout, panel_id, monitor_id, position):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py", line 297, in id_or_monitor_position_used
if monitor_layout[monitor_id].position_used(position):
~~~~~~~~~~~~~~^^^^^^^^^^^^
IndexError: list index out of range

### Steps to reproduce

open panel from settings or from terminal

### Expected behavior

It opens panel option gui

### Additional information

_No response_
mattvisa commented 1 day ago

Also, when my third monitor is unplugged, it removes the bottom panel from one of the two monitors in use.