Gsettings — инструмент настройки Linux системы. Полное описание этой утилиты можно найти на странице Ubuntu manuals.
Краткая справка по программе gsettings появляется при вызове этой команды без параметров:
gsettings
Использование:
gsettings --version
gsettings [--schemadir КАТАЛОГ_СХЕМ] КОМАНДА [АРГУМЕНТЫ…]
Команды:
help Показать эту справку
list-schemas Список установленных схем
list-relocatable-schemas Список перемещаемых схем
list-keys Список ключей схемы
list-children Список потомков схемы
list-recursively Список ключей и значений, рекурсивно
range Запросить диапазон значений ключа
describe Запросить описание ключа
get Получить значение ключа
set Изменить значение ключа
reset Сбросить значение ключа
reset-recursively Сбросить все значения в заданной схеме
writable Проверить ключ на запись
monitor Следить за изменениями
Для получения подробной справки используйте команду «gsettings help КОМАНДА».
Все настройки операционной системы распределены (каталогизированы) по схемам. В схемах размещаются ключи схемы и их значения. Попробуем изменить сочетание клавиш для смены раскладки клавиатуры с временно вошедшего в моду сочетания Super + Пробел на что нибудь более привычное, используя утилиту gsettings.
Посмотрим список всех установленных схем:
gsettings list-schemas
com.canonical.Unity.Lenses
com.canonical.unity.desktop.background
com.canonical.unity.desktop.interface
com.canonical.unity.desktop.screensaver
com.ubuntu.SoftwareProperties
com.ubuntu.login-screen
com.ubuntu.notifications.hub
com.ubuntu.notifications.settings.applications
com.ubuntu.phone
com.ubuntu.sound
com.ubuntu.touch.network
com.ubuntu.touch.sound
com.ubuntu.touch.system
com.ubuntu.update-manager
com.ubuntu.update-notifier
com.ubuntu.user-interface
com.ubuntu.user-interface.desktop
org.freedesktop.ColorHelper
org.freedesktop.Tracker3.Extract
org.freedesktop.Tracker3.FTS
org.freedesktop.Tracker3.Miner.Files
org.freedesktop.ibus
org.freedesktop.ibus.general
org.freedesktop.ibus.general.hotkey
org.freedesktop.ibus.panel
org.freedesktop.ibus.panel.emoji
org.gnome.Characters
org.gnome.Cheese
org.gnome.ControlCenter
org.gnome.DejaDup
org.gnome.DejaDup.Drive
org.gnome.DejaDup.Google
org.gnome.DejaDup.Local
org.gnome.DejaDup.Remote
org.gnome.Disks
org.gnome.Disks.benchmark
org.gnome.Evince
org.gnome.Evince.Default
org.gnome.Evolution.DefaultSources
org.gnome.FileRoller
org.gnome.FileRoller.Dialogs
org.gnome.FileRoller.Dialogs.Add
org.gnome.FileRoller.Dialogs.Extract
org.gnome.FileRoller.Dialogs.LastOutput
org.gnome.FileRoller.Dialogs.New
org.gnome.FileRoller.FileSelector
org.gnome.FileRoller.General
org.gnome.FileRoller.Listing
org.gnome.FileRoller.UI
org.gnome.GWeather
org.gnome.Logs
org.gnome.Mahjongg
org.gnome.Mines
org.gnome.SessionManager
org.gnome.SimpleScan
org.gnome.Sudoku
org.gnome.Terminal.Legacy.Settings
org.gnome.Terminal.ProfilesList
org.gnome.baobab
org.gnome.baobab.preferences
org.gnome.baobab.ui
org.gnome.calculator
org.gnome.calendar
org.gnome.crypto.cache
org.gnome.crypto.pgp
org.gnome.desktop.a11y
org.gnome.desktop.a11y.applications
org.gnome.desktop.a11y.interface
org.gnome.desktop.a11y.keyboard
org.gnome.desktop.a11y.magnifier
org.gnome.desktop.a11y.mouse
org.gnome.desktop.app-folders
org.gnome.desktop.background
org.gnome.desktop.calendar
org.gnome.desktop.datetime
org.gnome.desktop.default-applications
org.gnome.desktop.default-applications.office
org.gnome.desktop.default-applications.office.calendar
org.gnome.desktop.default-applications.office.tasks
org.gnome.desktop.default-applications.terminal
org.gnome.desktop.input-sources
org.gnome.desktop.interface
org.gnome.desktop.lockdown
org.gnome.desktop.media-handling
org.gnome.desktop.notifications
org.gnome.desktop.peripherals
org.gnome.desktop.peripherals.keyboard
org.gnome.desktop.peripherals.mouse
org.gnome.desktop.peripherals.touchpad
org.gnome.desktop.peripherals.trackball
org.gnome.desktop.privacy
org.gnome.desktop.remote-desktop
org.gnome.desktop.remote-desktop.rdp
org.gnome.desktop.remote-desktop.vnc
org.gnome.desktop.screensaver
org.gnome.desktop.search-providers
org.gnome.desktop.session
org.gnome.desktop.sound
org.gnome.desktop.thumbnail-cache
org.gnome.desktop.thumbnailers
org.gnome.desktop.wm.keybindings
org.gnome.desktop.wm.preferences
org.gnome.eog
org.gnome.eog.fullscreen
org.gnome.eog.plugins
org.gnome.eog.ui
org.gnome.eog.view
org.gnome.evolution-data-server
org.gnome.evolution-data-server.addressbook
org.gnome.evolution-data-server.calendar
org.gnome.evolution.eds-shell
org.gnome.evolution.shell.network-config
org.gnome.gedit
org.gnome.gedit.plugins
org.gnome.gedit.plugins.externaltools
org.gnome.gedit.plugins.filebrowser
org.gnome.gedit.plugins.filebrowser.nautilus
org.gnome.gedit.plugins.pythonconsole
org.gnome.gedit.plugins.spell
org.gnome.gedit.plugins.time
org.gnome.gedit.preferences
org.gnome.gedit.preferences.editor
org.gnome.gedit.preferences.encodings
org.gnome.gedit.preferences.print
org.gnome.gedit.preferences.ui
org.gnome.gedit.state
org.gnome.gedit.state.file-chooser
org.gnome.gedit.state.history-entry
org.gnome.gedit.state.window
org.gnome.gnome-system-monitor
org.gnome.gnome-system-monitor.disktreenew
org.gnome.gnome-system-monitor.memmapstree
org.gnome.gnome-system-monitor.openfilestree
org.gnome.gnome-system-monitor.proctree
org.gnome.libgnomekbd
org.gnome.libgnomekbd.desktop
org.gnome.libgnomekbd.indicator
org.gnome.libgnomekbd.keyboard
org.gnome.libgnomekbd.preview
org.gnome.login-screen
org.gnome.mousetweaks
org.gnome.mutter
org.gnome.mutter.keybindings
org.gnome.mutter.wayland
org.gnome.mutter.wayland.keybindings
org.gnome.mutter.x11
org.gnome.nautilus
org.gnome.nautilus.compression
org.gnome.nautilus.icon-view
org.gnome.nautilus.list-view
org.gnome.nautilus.preferences
org.gnome.nautilus.window-state
org.gnome.nm-applet
org.gnome.online-accounts
org.gnome.power-manager
org.gnome.rhythmbox
org.gnome.rhythmbox.library
org.gnome.rhythmbox.player
org.gnome.rhythmbox.plugins
org.gnome.rhythmbox.plugins.alternative_toolbar
org.gnome.rhythmbox.plugins.android
org.gnome.rhythmbox.plugins.audiocd
org.gnome.rhythmbox.plugins.daap
org.gnome.rhythmbox.plugins.generic-player
org.gnome.rhythmbox.plugins.grilo
org.gnome.rhythmbox.plugins.ipod
org.gnome.rhythmbox.plugins.iradio
org.gnome.rhythmbox.plugins.listenbrainz
org.gnome.rhythmbox.plugins.lyrics
org.gnome.rhythmbox.plugins.magnatune
org.gnome.rhythmbox.plugins.mtpdevice
org.gnome.rhythmbox.plugins.replaygain
org.gnome.rhythmbox.plugins.webremote
org.gnome.rhythmbox.podcast
org.gnome.rhythmbox.rhythmdb
org.gnome.rhythmbox.sharing
org.gnome.rhythmbox.sources
org.gnome.seahorse
org.gnome.seahorse.manager
org.gnome.settings-daemon.peripherals
org.gnome.settings-daemon.peripherals.keyboard
org.gnome.settings-daemon.peripherals.smartcard
org.gnome.settings-daemon.peripherals.touchscreen
org.gnome.settings-daemon.plugins
org.gnome.settings-daemon.plugins.color
org.gnome.settings-daemon.plugins.housekeeping
org.gnome.settings-daemon.plugins.media-keys
org.gnome.settings-daemon.plugins.power
org.gnome.settings-daemon.plugins.wwan
org.gnome.settings-daemon.plugins.xsettings
org.gnome.shell
org.gnome.shell.app-switcher
org.gnome.shell.extensions.appindicator
org.gnome.shell.extensions.dash-to-dock
org.gnome.shell.extensions.ding
org.gnome.shell.keybindings
org.gnome.shell.overrides
org.gnome.shell.ubuntu
org.gnome.shell.weather
org.gnome.shell.window-switcher
org.gnome.shell.world-clocks
org.gnome.system.dns_sd
org.gnome.system.locale
org.gnome.system.location
org.gnome.system.proxy
org.gnome.system.proxy.ftp
org.gnome.system.proxy.http
org.gnome.system.proxy.https
org.gnome.system.proxy.socks
org.gnome.system.smb
org.gnome.todo
org.gnome.todo.plugins.background
org.gnome.todo.plugins.todo-txt
org.gnome.totem
org.gnome.totem.plugins.opensubtitles
org.gnome.totem.plugins.pythonconsole
org.gnome.yelp
org.gtk.Settings.ColorChooser
org.gtk.Settings.Debug
org.gtk.Settings.EmojiChooser
org.gtk.Settings.FileChooser
org.gtk.gtk4.Settings.ColorChooser
org.gtk.gtk4.Settings.Debug
org.gtk.gtk4.Settings.EmojiChooser
org.gtk.gtk4.Settings.FileChooser
org.yorba.shotwell
org.yorba.shotwell.crop-settings
org.yorba.shotwell.dataimports
org.yorba.shotwell.plugins
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.preferences
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.export
org.yorba.shotwell.preferences.files
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.window
org.yorba.shotwell.printing
org.yorba.shotwell.sharing
org.yorba.shotwell.sharing.facebook
org.yorba.shotwell.sharing.flickr
org.yorba.shotwell.sharing.org-gnome-shotwell-publishing-google-photos
org.yorba.shotwell.sharing.org-yorba-shotwell-publishing-piwigo
org.yorba.shotwell.sharing.org-yorba-shotwell-publishing-rajce
org.yorba.shotwell.sharing.org-yorba-shotwell-publishing-tumblr
org.yorba.shotwell.sharing.org-yorba-shotwell-publishing-yandex-fotki
org.yorba.shotwell.sharing.publishing-gallery3
org.yorba.shotwell.sharing.youtube
org.yorba.shotwell.video
Найдём схему с фрагментом фразой "keyb". Их несколько: org.gnome.desktop.a11y.keyboard, org.gnome.desktop.peripherals.keyboard, org.gnome.desktop.wm.keybindings, org.gnome.libgnomekbd.keyboard, org.gnome.mutter.keybindings, org.gnome.mutter.wayland.keybindings, org.gnome.settings-daemon.peripherals.keyboard, org.gnome.shell.keybindings. Проверим содержимое некоторых из этих схем, их ключи и значения этих ключей.
gsettings list-recursively org.gnome.desktop.wm.keybindings
org.gnome.desktop.wm.keybindings activate-window-menu ['<Alt>space']
org.gnome.desktop.wm.keybindings always-on-top @as []
org.gnome.desktop.wm.keybindings begin-move ['<Alt>F7']
org.gnome.desktop.wm.keybindings begin-resize ['<Alt>F8']
org.gnome.desktop.wm.keybindings close ['<Alt>F4']
org.gnome.desktop.wm.keybindings cycle-group ['<Alt>F6']
org.gnome.desktop.wm.keybindings cycle-group-backward ['<Shift><Alt>F6']
org.gnome.desktop.wm.keybindings cycle-panels ['<Control><Alt>Escape']
org.gnome.desktop.wm.keybindings cycle-panels-backward ['<Shift><Control><Alt>Escape']
org.gnome.desktop.wm.keybindings cycle-windows ['<Alt>Escape']
org.gnome.desktop.wm.keybindings cycle-windows-backward ['<Shift><Alt>Escape']
org.gnome.desktop.wm.keybindings lower @as []
org.gnome.desktop.wm.keybindings maximize ['<Super>Up']
org.gnome.desktop.wm.keybindings maximize-horizontally @as []
org.gnome.desktop.wm.keybindings maximize-vertically @as []
org.gnome.desktop.wm.keybindings minimize ['<Super>h']
org.gnome.desktop.wm.keybindings move-to-center @as []
org.gnome.desktop.wm.keybindings move-to-corner-ne @as []
org.gnome.desktop.wm.keybindings move-to-corner-nw @as []
org.gnome.desktop.wm.keybindings move-to-corner-se @as []
org.gnome.desktop.wm.keybindings move-to-corner-sw @as []
org.gnome.desktop.wm.keybindings move-to-monitor-down ['<Super><Shift>Down']
org.gnome.desktop.wm.keybindings move-to-monitor-left ['<Super><Shift>Left']
org.gnome.desktop.wm.keybindings move-to-monitor-right ['<Super><Shift>Right']
org.gnome.desktop.wm.keybindings move-to-monitor-up ['<Super><Shift>Up']
org.gnome.desktop.wm.keybindings move-to-side-e @as []
org.gnome.desktop.wm.keybindings move-to-side-n @as []
org.gnome.desktop.wm.keybindings move-to-side-s @as []
org.gnome.desktop.wm.keybindings move-to-side-w @as []
org.gnome.desktop.wm.keybindings move-to-workspace-1 ['<Super><Shift>Home']
org.gnome.desktop.wm.keybindings move-to-workspace-10 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-11 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-12 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-2 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-3 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-4 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-5 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-6 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-7 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-8 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-9 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-down ['<Control><Shift><Alt>Down']
org.gnome.desktop.wm.keybindings move-to-workspace-last ['<Super><Shift>End']
org.gnome.desktop.wm.keybindings move-to-workspace-left ['<Super><Shift>Page_Up', '<Super><Shift><Alt>Left', '<Control><Shift><Alt>Left']
org.gnome.desktop.wm.keybindings move-to-workspace-right ['<Super><Shift>Page_Down', '<Super><Shift><Alt>Right', '<Control><Shift><Alt>Right']
org.gnome.desktop.wm.keybindings move-to-workspace-up ['<Control><Shift><Alt>Up']
org.gnome.desktop.wm.keybindings panel-main-menu ['<Alt>F1']
org.gnome.desktop.wm.keybindings panel-run-dialog ['<Alt>F2']
org.gnome.desktop.wm.keybindings raise @as []
org.gnome.desktop.wm.keybindings raise-or-lower @as []
org.gnome.desktop.wm.keybindings set-spew-mark @as []
org.gnome.desktop.wm.keybindings show-desktop ['<Primary><Super>d', '<Primary><Alt>d', '<Super>d']
org.gnome.desktop.wm.keybindings switch-applications ['<Super>Tab']
org.gnome.desktop.wm.keybindings switch-applications-backward ['<Shift><Super>Tab']
org.gnome.desktop.wm.keybindings switch-group ['<Super>Above_Tab', '<Alt>Above_Tab']
org.gnome.desktop.wm.keybindings switch-group-backward ['<Shift><Super>Above_Tab', '<Shift><Alt>Above_Tab']
org.gnome.desktop.wm.keybindings switch-input-source ['<Super>space', 'XF86Keyboard']
org.gnome.desktop.wm.keybindings switch-input-source-backward ['<Shift><Super>space', '<Shift>XF86Keyboard']
org.gnome.desktop.wm.keybindings switch-panels ['<Control><Alt>Tab']
org.gnome.desktop.wm.keybindings switch-panels-backward ['<Shift><Control><Alt>Tab']
org.gnome.desktop.wm.keybindings switch-to-workspace-1 ['<Super>Home']
org.gnome.desktop.wm.keybindings switch-to-workspace-10 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-11 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-12 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-2 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-3 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-4 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-5 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-6 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-7 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-8 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-9 @as []
org.gnome.desktop.wm.keybindings switch-to-workspace-down ['<Control><Alt>Down']
org.gnome.desktop.wm.keybindings switch-to-workspace-last ['<Super>End']
org.gnome.desktop.wm.keybindings switch-to-workspace-left ['<Super>Page_Up', '<Super><Alt>Left', '<Control><Alt>Left']
org.gnome.desktop.wm.keybindings switch-to-workspace-right ['<Super>Page_Down', '<Super><Alt>Right', '<Control><Alt>Right']
org.gnome.desktop.wm.keybindings switch-to-workspace-up ['<Control><Alt>Up']
org.gnome.desktop.wm.keybindings switch-windows ['<Alt>Tab']
org.gnome.desktop.wm.keybindings switch-windows-backward ['<Shift><Alt>Tab']
org.gnome.desktop.wm.keybindings toggle-above @as []
org.gnome.desktop.wm.keybindings toggle-fullscreen @as []
org.gnome.desktop.wm.keybindings toggle-maximized ['<Alt>F10']
org.gnome.desktop.wm.keybindings toggle-on-all-workspaces @as []
org.gnome.desktop.wm.keybindings toggle-shaded @as []
org.gnome.desktop.wm.keybindings unmaximize ['<Super>Down', '<Alt>F5']
Для решения поставленной задачи изменения сочетания клавиш для смены раскладки клавиатуры, очевидно, необходимо изменить значение ['<Super>space', 'XF86Keyboard'] ключа switch-input-source. Сделаем это.
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Shift>Control_L']"
Упс, теперь мне не на чём дописать статью. Завтра буду переустанавливать систему...
Источник: Комментарий 38 к ошибке 1956916