GNOME shell tweaks

Date: 2023/06/18 (initial publish), 2023/06/25 (last update)

Source: en/note-00046.md

Previous Post Top Next Post

TOC

Launching of a program from GUI

You can create a desktop entry file with .desktop extension placed in ~/.local/share/applications/ to launch your program from GUI.

See:

Configuration settings of GNOME programs

GNOME programs store their settings in GSettings. The configuration tool for GSettings is CLI: gsettings(1). GSettings use a dconf database as the binary data storage backend with its data in ~/.config/dconf/user. The configuration tool for the dconf database is CLI: dconf(1) and GUI: dconf-editor(1).

You can see entire settings by:

TIP: See Database schema to understand what is schema.

Typically, “dconf schemas” translate nicely into “gsettings schemas” by replacing slashes with dots and vice versa. For “relocatable schemas”, schema also requires a particular path added. See First steps with GSettings (2017)

dconf-editor has nice search functionality but dconf database lacks some information available from gsettings command such as “writable”, “range”, and “describe”.

I created a simple shell script gsettings-grep to get them conveniently as grep result.

$ gsettings-grep -h
NAME
        gsettings-grep -- gsettings with grep

SYNOPSIS
        gsettings-grep [OPTS] [--] PATTERN

OPTION
        -a        search PATTERN on 'gsettings list-recursively'
        -s        search PATTERN on 'gsettings list-schema' (=default)
        -E        use ERE search PATTERN instead of default BRE
        -i        case insensitive search instead

$ gsettings-grep org.gnome.settings-daemon.peripherals.smartcard
SCHEMA     = org.gnome.settings-daemon.peripherals.smartcard
  KEY      = removal-action
  VALUE    = 'none'
  DESC     = Set this to one of “none”, “lock-screen”, or “force-logout”. The action will get performed when the smartcard used for log in is removed.
  RANGE    = enum	'none'	'lock-screen'	'force-logout'
  WRITABLE = true
$ gsettings-grep bell-mode
$ gsettings-grep -a bell-mode
SCHEMA     = org.gnome.settings-daemon.peripherals.keyboard
  KEY      = bell-mode
  VALUE    = 'on'
  DESC     = Possible values are “on”, “off”, and “custom”.
  RANGE    = enum	'on'	'off'	'custom'
  WRITABLE = true
$ gsettings-grep -a 🎌
SCHEMA     = org.gnome.Characters
  KEY      = recent-characters
  VALUE    = ['§', '√', '»', '😊', '👿', '🎌']
  DESC     = (null)
  RANGE    = type as
  WRITABLE = true

References to write proper GNOME shell extensions

My interest is to create GNOME extension for input method to avoid using unsafe-mode-menu.

Previous Post Top Next Post