Skip to content

Configuration files for my custom Sway+Waybar environment in Linux, so you can replicate it yourself.

License

Notifications You must be signed in to change notification settings

HumphreyBoaGart/dotfiles

Repository files navigation

Sway & Waybar Environment .dotfiles

main theme

alternate theme

These are my configuration files for Sway, Waybar, and some related dependencies in my environment. I picked most of these things up back when I was still using Arch, though now it is refined for my Debian machine. I just wanted a brutally efficient and low-overhead desktop environment for my old Thinkpad, and this is what I've ended up with in my quest to use simple packages with minimal dependencies.

Dependencies

Main Dependencies

I found most of these in Debian's stock Bookworm repos. Most of these were in the Ubuntu repos as well. When I was running this on Arch a couple years ago, more of these were in the AUR. Either way, you won't have to work very hard installing all of these.

Theme Dependencies

To get all the Adwaita GTK 2/3/4 and QT 5/6 elements WITHOUT THE REST OF GNOME in Debian, run:

sudo apt install libadwaita-1-0 gnome-themes-extra gnome-themes-extra-data adwaita-qt adwaita-qt6

Other Dependencies

These are just things called on some of the keybinds in .config/sway/config and .config/waybar/config that will not work if you do not have them. However, they are not really necessary at all to the core setup. A few of these (like iwd) are just specific to my hardware. Your mileage may vary. If you want to run this config out of the box and move on with your life, grab all of these too:

  • calcurse
  • gnome-clocks
  • process-viewer
  • btop
  • wdisplays
  • iwd
  • blueman
  • pulseaudio & pulseaudio-module-bluetooth
  • pavucontrol & pamixer
  • xwayland (for legacy app compatability)

Environment Notes

If you're used to Sway already and know how to read config files, you can skip the rest of the README at this point. If you just got here from GNOME or KDE, you'll probably want to skim the rest of this.

Window Manager: Sway

.config/sway/config is the crux of everything here. There's a lot of commented-out options from various configurations I've run, which I've left behind for reference & flexibility sake.

I don't use a session manager. Linux has a perfectly good login screen built into it already. .bash_profile is where I stash my various preconfigured startup options, and aliases & random other variables in .bash_aliases. Debian and their derivatives throw all their factory userdir bash stuff in .bashrc, so this runs alongside that nicely without having to modify anything.

Taskbar(s): Waybar

There are two configurations in .config/waybar/ - config-single and config-double. Just rename the one you want to use to simply config and leave it in the /.config/waybar/ folder.

config-single crams everything into a single bar on the bottom of the screen, and is probably the one you want.

config-double is my (unfinished) expansion that moves notifications and the system tray to an additional top bar, and pulls in wttrbar for good measure. The blank spot on the left of the top bar is for an RSS headline ticker, which is the last missing puzzle piece of this environment.

Alternate Themes

There is a similar dark theme in here - winter stream - for both Sway and Waybar. In the Sway config file, uncomment lines 43, 44 & 57, and comment out lines 46, 47 & 58.

In the Waybar config directory is an alternate style file: style-winter.css. Just rename that to style.css.

Lines 49 & 50 in the Sway config are a more neutral set of colors.

Twin Application Launchers

This uses both wofi and bemenu for application launchers. Mod+Space opens Wofi, which is the normal launcher. Mod+Shift+Space opens bemenu, which opens the selected app in a terminal window (which is very useful for working with some terminal apps, and even debugging GUI apps).

Twin Terminal Emulators

Terminal exec commands I have mapped to a mixture of sakura and foot. This is just my weird preference. You can go through yourself and set everything to one terminal or the other if you only need to use one.

Print Screen Key Functions

Print and Mod+Print take screenshots of the active window and the whole desktop, respectively, and save them in ~/Pictures/Screenshots/

Alt+Print opens the color picker. You select a pixel on the screen, and it sends the hex color code straight to the clipboard. Shift+Alt+Print does the same thing, only it sends the rgb() value to the clipboard instead.

Wrangling GTK

I use the Adwaita Dark theme across all GTK versions, as it works out of the box, matches the vibe I wanted on Sway, provides a consistent look, and doesn't require any extra theme utilities. I've included configs for GTK 2 & 3 apps so you don't have to generate your own. For GTK 4, you'll need to run the following commands to hammer the final bits into place:

gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.interface icon-theme "candy-icons"

Also, if you use Nemo as a file manager, run these commands as well to make it play nice with the terminal emulator:

gsettings set org.cinnamon.desktop.default-applications.terminal exec sakura
gsettings set org.cinnamon.desktop.default-applications.terminal exec-arg -x

Credits

Sean Pavone for the background photo.

Joni Rajala for the winter theme background photo.