linuxmint / linuxmint/cinnamon

Panel option error when adding/removing monitors.

Open Beginner friendly
#12,397 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

BUG stale
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.