- Shell 53.8%
- CSS 46.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
gvfs-backends lets Thunar mount and browse smb:// shares, but without the FUSE bridge at /run/user/<uid>/gvfs, non-GIO apps (mpv, editors, etc.) silently fail to open files on those shares. Reported in butterknife#12. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
| config | ||
| screenshots | ||
| .gitignore | ||
| install.sh | ||
| LICENSE | ||
| nvidia-setup.sh | ||
| QUICKSTART.md | ||
| README.md | ||
SwayFX Setup
A SwayFX window manager setup for Debian-based systems. SwayFX is a fork of Sway with eye candy effects — blur, rounded corners, shadows, and more.
Wayland-native tiling window manager with visual effects and DWM-inspired theming.
Part of the JustAGuy Linux window manager collection.
About SwayFX
SwayFX extends Sway with:
- Blur - Background blur for windows, bars, and launchers
- Rounded Corners - Configurable corner radius
- Shadows - Drop shadows on windows
- Dim Inactive - Subtle dimming of unfocused windows
- Scratchpad Effects - Visual effects for scratchpad windows
All standard Sway functionality remains intact.
Installation
Quick Install
git clone https://justaguy.dev/drew/swayfx-setup.git
cd swayfx-setup
chmod +x install.sh
./install.sh
Installation Options
./install.sh [OPTIONS]
Options:
--only-config Only copy config files (skip packages)
--help Show usage information
What the Installer Does
- System Update - Updates package lists and upgrades existing packages
- Build Dependencies - Installs meson, ninja, wayland-protocols, and development libraries
- Builds SwayFX - Clones and compiles SwayFX with wlroots and scenefx as subprojects
- Sway Ecosystem - Waybar, wofi, foot, notification daemon, screenshot tools
- UI Tools - File manager, audio controls, network applets, display configurators
- External Tools - Via butterscripts:
- Ghostty (terminal emulator)
- Rofi-wayland (application launcher)
- Nerd Fonts collection
- Orchis theme & Colloid icons
- Wallpaper collection
- Optional Tools - Additional browsers, editors, and utilities (prompted)
Distribution-Agnostic Installation
Instructions for other distributions (click to expand)
IMPORTANT: These instructions are provided as-is for advanced users. Non-Debian distributions are NOT officially supported.
Manual Installation Process:
- Install equivalent packages using your distro's package manager
- Build/install SwayFX (Arch users:
yay -S swayfx) - Run
./install.sh --only-configto copy configuration files
SwayFX Effects Configuration
SwayFX effects are configured in ~/.config/sway/config. Example settings:
# Blur
blur enable
blur_xray disable
blur_passes 2
blur_radius 5
# Corners
corner_radius 10
# Shadows
shadows enable
shadows_on_csd enable
shadow_blur_radius 20
shadow_color #0000004d
# Dimming
dim_inactive 0.1
dim_inactive_colors.unfocused #000000ff
# Layer effects (blur for waybar, rofi, etc.)
layer_effects "waybar" blur enable; shadows enable; corner_radius 10
layer_effects "rofi" blur enable; shadows enable; corner_radius 10
See the SwayFX wiki for all available options.
What Gets Installed
SwayFX Build Dependencies
| Component | Purpose |
|---|---|
meson ninja-build |
Build system |
libwayland-dev |
Wayland protocol libraries |
libwlroots-dev |
Compositor library (built as subproject) |
wayland-protocols |
Wayland protocol definitions |
Various -dev packages |
Headers and libraries for compilation |
Core Components
| Component | Purpose |
|---|---|
swayfx (built) |
Tiling window manager with effects |
swayidle |
Idle management daemon |
gtklock |
Screen locker |
swaybg |
Wallpaper setter |
waybar |
Status bar |
xwayland |
X11 compatibility layer |
UI & System Tools
| Component | Purpose |
|---|---|
rofi |
App launcher (with blur support) |
wofi |
Wayland menu (for clipboard) |
foot |
Wayland-native terminal |
sway-notification-center |
Notification daemon |
grim + slurp |
Screenshot utilities |
wl-clipboard |
Clipboard manager |
cliphist |
Clipboard history |
thunar |
File Manager (+plugins) |
pavucontrol |
Audio control GUI |
nwg-displays |
GUI display configurator |
NVIDIA GPU Users
If you have an NVIDIA GPU with proprietary drivers, additional configuration is required.
Automated Setup
./nvidia-setup.sh
Manual Setup
1. Enable NVIDIA DRM Kernel Modesetting:
sudo nano /etc/default/grub
# Add to GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet nvidia-drm.modeset=1"
sudo update-grub
# Reboot required
2. Configure SwayFX Desktop Entry:
sudo nano /usr/share/wayland-sessions/swayfx.desktop
# Change: Exec=sway
# To: Exec=sway --unsupported-gpu
3. Set Environment Variables (optional):
Create ~/.config/environment.d/nvidia.conf:
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia
WLR_NO_HARDWARE_CURSORS=1
Keybindings Overview
| Shortcut | Action |
|---|---|
Super + Enter |
Launch terminal (Ghostty) |
Super + Space |
Launch rofi launcher |
Super + Q |
Close focused window |
Super + X |
Lock screen (gtklock) |
Super + Shift + R |
Reload configuration |
Super + Shift + X |
Exit SwayFX |
Super + Shift + F |
Toggle fullscreen |
Super + Shift + N |
Toggle notification center |
Super + F |
Launch file manager (Thunar) |
Super + B |
Launch Firefox browser |
Super + E |
Launch text editor (Geany) |
Super + V |
Clipboard history (cliphist) |
Super + H/J/K/L |
Focus window (vim-style) |
Super + Shift + H/J/K/L |
Move window (vim-style) |
Super + Ctrl + H/J/K/L |
Resize window |
Super + 1–9/0/-/= |
Switch to workspace 1-12 |
Super + Shift + 1–9/0/-/= |
Move window to workspace |
Ctrl + Shift + 1-5 |
Layout modes (h-split, v-split, tabbed, stacked, toggle) |
Media Keys
| Key | Action |
|---|---|
XF86AudioRaiseVolume |
Increase volume |
XF86AudioLowerVolume |
Decrease volume |
XF86AudioMute |
Toggle mute |
XF86MonBrightnessUp |
Increase brightness |
XF86MonBrightnessDown |
Decrease brightness |
Configuration Files
~/.config/sway/
├── config # Main SwayFX configuration (includes FX settings)
├── waybar/
│ ├── config # Waybar modules
│ └── style.css # Waybar styling
├── rofi/
│ ├── config.rasi # Rofi configuration
│ └── power.rasi # Rofi power menu
├── gtklock/
│ ├── config.ini # Gtklock configuration
│ └── style.css # Gtklock styling
├── swaync/
│ ├── config.json # Notification center config
│ └── style.css # Notification styling
├── foot/
│ └── foot.ini # Foot terminal config
└── wallpaper/ # Wallpaper directory
Common Operations
Reload Configuration
# Via keybinding
Super + Shift + R
# Via command
swaymsg reload
Check Configuration for Errors
sway -C
Check SwayFX Version
sway --version
# Expected: swayfx version 0.5.3 (based on sway 1.11.0)
Restart Waybar
pkill waybar; waybar -c ~/.config/sway/waybar/config -s ~/.config/sway/waybar/style.css &
Troubleshooting
SwayFX Build Fails
Ensure you're on Debian 13 (Trixie) or newer. Older versions may be missing required packages like libliftoff-dev or libdisplay-info-dev.
Blur Not Working
- Check
blur enableis in your config - Verify SwayFX is installed (not standard Sway):
sway --versionshould show "swayfx" - Some applications may need
blur_xray enablefor transparency
Shadows Not Appearing
Some applications use client-side decorations (CSD). Enable with:
shadows_on_csd enable
Performance Issues
Reduce blur passes or disable effects:
blur_passes 1
# or
blur disable
Waybar Icons Not Showing
Install a Nerd Font (included in installer):
# Manual install
wget -qO- "https://justaguy.dev/drew/butterscripts/raw/branch/main/theming/install_nerdfonts.sh" | bash
Building SwayFX Manually
If you need to rebuild or update SwayFX:
mkdir -p ~/build && cd ~/build
git clone https://github.com/WillPower3309/swayfx.git
cd swayfx && git checkout 0.5.3
mkdir subprojects && cd subprojects
git clone https://github.com/wlrfx/scenefx.git
cd scenefx && git checkout 0.4.1 && cd ..
git clone https://gitlab.freedesktop.org/wlroots/wlroots.git
cd wlroots && git checkout 0.19.0 && cd ../..
meson setup build/
ninja -C build/
sudo ninja -C build/ install
sudo ldconfig
Credits
- SwayFX by WillPower3309
- Sway by Drew DeVault and contributors
- wlroots by the wlroots team
- Orchis Theme & Colloid Icons by vinceliuice
License
GPL-2.0 - See LICENSE for details.
Support
Connect
- YouTube — tutorials and guides
- Butterforge — source code and projects
- The Butter Lab — Discourse forum
- The Churn — community chat (Fluxer)
- Wiki — documentation and guides
- Mastodon — @justaguylinux@fosstodon.org
- Butterbian — a Debian-based distro
Made with 🧈 by JustAGuyLinux

