linuxmint / linuxmint/cinnamon
Panel option error when adding/removing monitors.
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 5.6k
- Forks
- 915
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 3
Description
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_
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in cinnamon-settings/modules/cs_panel.py, especially id_or_monitor_position_used and on_panel_list_changed, where the traceback shows the monitor layout index failure. Reproduce by opening the Panel settings with three monitors, then removing one. Done means the Panel options GUI opens without an IndexError in that configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100