Bug 43443

Summary: mate-tweak не изменяет настройки панелей (panel layout) MATE
Product: Sisyphus Reporter: Nikolay Strelkov <nrbrtx>
Component: mate-tweakAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, cas
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Nikolay Strelkov 2022-08-03 20:25:14 MSK
Шаги для повторения:
1. Запускаем ALW p10 MATE или StarterKit MATE p10
2. Устанавливаем MATE Tweak командой `apt-get install mate-tweak`
3. Запускаем MATE Tweak из терминала с помощью команды `mate-tweak`
4. Переходим на вкладку Panel, пытаемся выбрать panel layout из выпадающего списка

Ожидаемый результат:
* переключение всех раскладок панелей (Fedora, GNOME2, OpenSUSE) проходит успешно


Реальный результат:
* переключения раскладки панелей не происходит, в терминале отображается следующее сообщение

```
$ mate-tweak 
Window Manager is: marco
System installed layouts: 
['fedora', 'default', 'opensuse']
Current layout: default
/usr/bin/mate-tweak:684: PyGTKDeprecationWarning: The "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  dialog = Gtk.Dialog(title, None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
/usr/bin/mate-tweak:684: PyGTKDeprecationWarning: The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  dialog = Gtk.Dialog(title, None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
/usr/bin/mate-tweak:690: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  label = Gtk.Label(text)
Switching to: opensuse
Traceback (most recent call last):
  File "/usr/bin/mate-tweak", line 1047, in combo_fallback
    self.additional_tweaks(schema, key, value[1])
  File "/usr/bin/mate-tweak", line 1031, in additional_tweaks
    self.replace_panel_layout(panel_layout)
  File "/usr/bin/mate-tweak", line 768, in replace_panel_layout
    self.enable_applets()
  File "/usr/bin/mate-tweak", line 571, in enable_applets
    pid = subprocess.Popen(['mate-volume-control-applet'], stdout=DEVNULL, stderr=DEVNULL).pid
  File "/usr/lib64/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib64/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mate-volume-control-applet'
/usr/bin/mate-tweak:684: PyGTKDeprecationWarning: The "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  dialog = Gtk.Dialog(title, None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
/usr/bin/mate-tweak:684: PyGTKDeprecationWarning: The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  dialog = Gtk.Dialog(title, None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
/usr/bin/mate-tweak:690: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  label = Gtk.Label(text)
Switching to: fedora
Traceback (most recent call last):
  File "/usr/bin/mate-tweak", line 1047, in combo_fallback
    self.additional_tweaks(schema, key, value[1])
  File "/usr/bin/mate-tweak", line 1031, in additional_tweaks
    self.replace_panel_layout(panel_layout)
  File "/usr/bin/mate-tweak", line 768, in replace_panel_layout
    self.enable_applets()
  File "/usr/bin/mate-tweak", line 571, in enable_applets
    pid = subprocess.Popen(['mate-volume-control-applet'], stdout=DEVNULL, stderr=DEVNULL).pid
  File "/usr/lib64/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib64/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mate-volume-control-applet'
/usr/bin/mate-tweak:684: PyGTKDeprecationWarning: The "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  dialog = Gtk.Dialog(title, None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
/usr/bin/mate-tweak:684: PyGTKDeprecationWarning: The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  dialog = Gtk.Dialog(title, None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
/usr/bin/mate-tweak:690: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  label = Gtk.Label(text)
Switching to: default
Traceback (most recent call last):
  File "/usr/bin/mate-tweak", line 1047, in combo_fallback
    self.additional_tweaks(schema, key, value[1])
  File "/usr/bin/mate-tweak", line 1031, in additional_tweaks
    self.replace_panel_layout(panel_layout)
  File "/usr/bin/mate-tweak", line 768, in replace_panel_layout
    self.enable_applets()
  File "/usr/bin/mate-tweak", line 571, in enable_applets
    pid = subprocess.Popen(['mate-volume-control-applet'], stdout=DEVNULL, stderr=DEVNULL).pid
  File "/usr/lib64/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib64/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mate-volume-control-applet'
```

Есть предположение, что MATE Tweak где-то не там ищет исполняемый файл mate-volume-control-applet и не доходит в коде до реальной смены раскладки панелей. Это подтверждается результативным применением нелепого хака `sudo ln -sf /usr/libexec/mate-volume-control-applet /usr/local/bin/mate-volume-control-applet` .

В Сизифе тоже не работает. На p9 работает и без хака.
Comment 1 Антон Мидюков 2022-08-04 08:18:34 MSK
Процесс по-другому теперь называется, не mate-volume-control-applet, а mate-volume-control-status-icon. Если поменять, то работает.