Skip to content

Opinionated Sway Configuration using GNOME session services, for GNOME >= 3.34

License

Notifications You must be signed in to change notification settings

RobinBoers/sway-gnome

 
 

Repository files navigation

sway-gnome

Allows you to use Sway, a tiling window manager, with GNOME 3 Session infrastructure on Linux distributions which have GNOME >= 3.34.

This is a fork of the original project. Changes in this fork include:

  • A PKGBUILD for Arch Linux
  • Ability to manually start sway
  • Uses the gnome config provided by the original project (was disabled in the fork I forked)
  • Does some DBUS & systemd magic to resolve a whole bunch of issues, ranging from slow application starting, to playerctl not working for spotify, to icons in my panel not working.
  • Updated for gnome 43 (mostly)

Work in progress

This repository is currently work-in-progress. Right now, the Sway session is started by GDM (but it can also be manually started), modelled after sway's systemd integration wiki page.

Some further unit files are included to launch as many GNOME deamons in the background as possible in a non-gnome-shell wayland session. Not all daemons are enabled and further work is necessary for full-compatibility!

What this enables

  • Keybindings for controlling brightness, Play/Pause, Next/Previous Track, Mute, Volume Up/Down. You can customize sway/config.d/gnome after installation
  • Desktop integration for Flatpak and Snap
  • Idle management / Screen Lock
  • Privilege management
  • Keyring integration
  • Dynamic display configuration
  • Accessibility Settings
  • Color Management Settings
  • Date & Time Settings
  • Keyboard Settings
  • Power Management Settings
  • Printer Notifications
  • Enabling and Disabling Wireless Devidces (rfkill)
  • Screensaver Settings
  • Handle Sharing music, pictures and videos on the local network
  • Remote Login settings
  • Smartcard handling
  • Sound settings
  • Wacom tablet handling
  • WWAN handling for modems / SIM Cards
  • Display Server settings
  • Clipboard

Usage

Install the system files using:

meson builddir && cd builddir
meson compile
meson install

Then add this line to your sway config:

include /etc/sway/config.d/*

In your login manager Sway (systemd) should be startable as a new session. Alternatively, you can manually start sway using:

sway-systemd

Tips and tricks

Unlock the keyring on login

Make sure the keyring password for the default keyring is the same as your user password.

Then edit /etc/pam.d/login and add the bold lines:

#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
**auth     optional     pam_gnome_keyring.so**
account    include      system-local-login
session    include      system-local-login
**session  optional     pam_gnome_keyring.so auto_start**

You can also add this line to /etc/pam.d/passwd to change the login password when user password is changed:

#%PAM-1.0

#password   required    pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password   required    pam_unix.so sha512 shadow use_authtok
password    required    pam_unix.so sha512 shadow nullok
**password  optional    pam_gnome_keyring.so**

Enable Xorg apps

To enable Xorg apps, install Xwayland:

pacman -S xorg-xwayland

Installation

While this project can be installed with a simple sudo make install after fetching the Git repo, more effort may be required to install the dependencies, especially if they aren't packaged for your Linux distribution. Distro-specific extensions are maintained on the wiki.

Related Projects

  • sway-services provides a minimal sway / systemd integration with no GNOME services

About

Opinionated Sway Configuration using GNOME session services, for GNOME >= 3.34

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 70.2%
  • Meson 29.8%