/nwg-shell-config

nwg-shell configuration utility

Primary LanguagePythonMIT LicenseMIT

nwg-shell config utility

The nwg-shell project is a collection of components to build a GTK-based user interface for sway Wayland compositor. It consists of a panel, launcher, dock, traditional menu, wallpaper manager, as well as some helper scripts. Until now, it has functioned as a do-it-yourself kit, with items to choose from. This program is a GUI to configure all the components in one place. It also integrates several third party components, which we arbitrarily found the best to build a coherent user experience.

Learn more about nwg-shell on the project website

Packaging status

2022-06-20-233635_screenshot

2022-06-20-233644_screenshot

2022-06-20-233702_screenshot

2022-06-20-233707_screenshot

2022-06-20-233713_screenshot

Idle & Lock screen (since v0.3.7)

image

You may use either gtklock or swaylock as the locker, and either local or Unsplash random images as the background. Of course you may also opt-out, by unchecking the "Use these settings" box.

Hint: use the nwg-lock command system-wide (well, wlroots only) to lock screen with the locker and background defined in this tab.

Safety: for the media player buttons to work with gtklock, we use the --no-input-inhibit argument. If safety is more important to you than appearance, consider using swaylock. The playerctl window will display no buttons, however

Desktop styles

Every preset is bound to its own nwg-panel config file and css style sheet. Along with it come settings for the launcher (nwg-drawer), exit menu (nwg-bar), and the dock (nwg-dock). The latter is only turned on by default in preset-1 and preset-3.

preset-0
preset-1
preset-2
preset-3

For key bindings help, press [Super]+F1.

Notes

Includes

All the settings managed by nwg-shell-config are included into the ~/.config/sway/config file like this:

# The files we include below will be created / overwritten by nwg-shell tools
#
include variables
include outputs
include autostart
include workspaces
include keyboard
include pointer
include touchpad

Leave these lines as they are. You also should not edit these files manually: the program will overwrite your changes.

In case you need to configure some settings on your own, uncheck the appropriate "Use these settings" box and/or delete include <whatever> from the sway config file.

Basic key bindings use variables, which are also provided by the config utility:

# launchers
bindsym Control+space   exec $launcher
bindsym Mod1+F1         exec $launcher

# core
bindsym $Mod+t          exec $term
bindsym $Mod+Return     exec $term
bindsym Control+Shift+t exec $term
bindsym $Mod+w          exec $browser
bindsym $Mod+f          exec $filemanager
bindsym $Mod+e          exec $editor
bindsym $Mod+d          exec $dock

Feel free to add whichever other binding you need, but do not change the variable values other way than with the config GUI.

Styling

To change the appearance of nwg-shell components, you need to edit their css style sheets. They are all located in appropriate ~./config/nwg-* directories, named preset-*.css. You may edit them to your liking. For the Custom preset add own styles under another names, and set these names in the config GUI (Custom preset -> Panel & css).

nwg-panel & nwg-menu

have their own config GUI. Find the "Panel settings" entry in the Controls menu. More info there's in the panel Wiki.

Restoring defaults

If you happen to break any of the preset0-* files, just delete it, and run the config utility. The file will be restored from the default one. You may also run nwg-shell-config -r to restore all default presets.