GSettings backend for Wayfire
Go to file
Val Packett c372821bdd Update readme 2021-07-21 15:02:28 +03:00
.clang-format Initial commit 2019-11-21 21:12:33 +03:00
.editorconfig Initial commit 2019-11-21 21:12:33 +03:00
.gitignore Initial commit 2019-11-21 21:12:33 +03:00 Update readme 2021-07-21 15:02:28 +03:00
UNLICENSE Add readme/license 2020-01-04 16:00:00 +03:00
genschema.xsl Add XML processing for string choices 2021-01-31 18:20:36 +03:00
gsettings.cpp Simplify code after removing support for temporary unofficial dynamic lists 2021-01-31 18:11:32 +03:00 Use one schema for all dynamic objects 2020-10-31 16:15:38 +03:00
org.wayfire.gsettings.gschema.xml Use one schema for all dynamic objects 2020-10-31 16:15:38 +03:00 Rename 'org.wayfire.plugin' to 'org.wayfire.section' 2020-10-31 17:16:56 +03:00


GSettings plugin for Wayfire.

  • install latest Wayfire, GLib, xsltproc (from libxslt)
  • install this (regular Meson build)
  • (for both Wayfire and this, use a prefix that gets read by GSettings!)
  • run wf-gsettings-gen-schemas
    • rerun when updating Wayfire/plugins
    • it generates GSettings schemas from Wayfire plugin metadata
      • schemas are named org.wayfire.plugin.<name>
    • and runs glib-compile-schemas for you
  • import your settings into dconf, if you want (the ini file won't be read at all!)
  • start Wayfire with new args: -B PREFIX/lib/wayfire/
    • (PREFIX being /usr/local, /usr, $HOME/.local… wherever you've installed it)
    • also make sure you're in a D-Bus session when starting Wayfire! You should already be if using logind. Otherwise start Wayfire via dbus-run-session.
  • play around with dconf-editor

Editing settings via CLI


% dconf dump /org/wayfire
dyn-sections=['output:DP-1', 'wallpaper:w1']



toggle='<alt> BTN_MIDDLE'

bindings={'term': ('alacritty', '<super> KEY_ENTER')}
repeatable-bindings={'vup': ('pactl set-sink-volume @DEFAULT_SINK@ +2%', 'KEY_VOLUMEUP'), 'vdn': ('pactl set-sink-volume @DEFAULT_SINK@ -2%', 'KEY_VOLUMEDOWN')}

You can save that into a file and then restore with dconf load /org/wayfire.

Also, note the /org/wayfire/gsettings/dyn-sections key in the example. You must put the names of dynamic sections (like outputs) there.

Write (you only need dbus-launch if outside the dbus session):

% dbus-launch dconf write /org/wayfire/section/core/plugins "'animate annotate mag cube expo resize command oswitch grid window-rules autostart wrot place invert move switcher fast-switcher  alpha mod2key idle vswitch scale  vswipe wm-actions showrepaint wallpaper'"


This is free and unencumbered software released into the public domain.
For more information, please refer to the UNLICENSE file or