Personal configuration files for:
- Neovim
- tmux
- Alacritty
- Sway
- Waybar
- Wofi
- Swaylock
- Dunst, Flameshot, and LightDM
- GTK 3/4 and Qt 5/6
- Shell prompt — not installed automatically
Sway, Waybar, Wofi, Swaylock, GTK, and Qt use Catppuccin Macchiato with the
Blue accent. Window borders and gaps are set to three logical pixels through
$border and $gaps in sway/config. The built-in eDP-1 display uses 125%
scaling and is centered below the HDMI-A-1 external display. Waybar prefers
the upper external display and automatically moves to the laptop panel when the
external display is disconnected. Use swaymsg -t get_outputs to find the
correct output names on a different machine.
sway,swayidle,swaylock,waybar,wofi, anddunstalacritty, PipeWire/WirePlumber,brightnessctl,jq, andnmcli- BlueZ (
bluetoothctl) andrfkillfor Bluetooth and device management cliphistandwl-clipboardfor clipboard historygnome-keyring,gnome-keyring-pam, andlibsecretfor secret storageflameshot,xdg-desktop-portal,xdg-desktop-portal-wlr, andxdg-desktop-portal-gtklightdm,lightdm-gtk, andxorg-x11-server-Xorgfor the login manager- JetBrainsMono Nerd Font for text and icons
pavucontroloptionally, for the volume module's right-click action- Kvantum and GTK 3 platform-theme plugins for Qt 5 and Qt 6
- Noto Sans, the Adwaita icon/cursor theme, and
xsettingsd
The official Catppuccin GTK and Kvantum themes are vendored in this
repository and linked by the installer. Sway passes the theme variables to new
applications explicitly, while environment.d makes them globally available
from the next login. A managed systemd user target registers Sway as a graphical
session so portal-based screenshots work even when Sway is started manually.
See themes/README.md for versions, upstream sources, and
licenses.
The same dark theme, icon, cursor, font, DPI, and antialiasing values are
published through GSettings and XSettings so applications do not need
application-specific overrides.
- LightDM GTK provides the login screen with the same wallpaper, Catppuccin theme, Adwaita icons, Noto Sans font, and Sway as the default session.
- LightDM unlocks the login keyring through PAM; GNOME Keyring exposes the standard Secret Service API and the secret portal to native and sandboxed applications.
Mod+dopens Wofi with application icons.Mod+Ctrl+llocks the session manually.- Automatic locking is disabled; idle displays turn off after ten minutes.
- The vendored
media/leaves_line_neon_139772_2560x1600.jpgimage is applied to every output withfillscaling. - New windows use an automatic Fibonacci layout with 61.8%/38.2% proportions.
- Audio and brightness keys show replaceable Dunst progress indicators.
Printopens Flameshot's region editor;Shift+Printcopies all outputs.Mod+nrestores the last notification,Mod+Shift+nclears notifications, andMod+Ctrl+npauses or resumes Dunst.- Waybar's clipboard button opens history with Wofi; right-click deletes one entry and middle-click clears the entire history.
- Waybar's power button provides lock, logout, and power-off actions.
- Clicking Waybar's network indicator opens a Wofi and
nmclimenu that can toggle Wi-Fi, scan, connect to visible or hidden networks, request a password, and disconnect. - Waybar shows the Bluetooth state and connected-device count; clicking it opens
a Wofi and
bluetoothctlmenu that can toggle Bluetooth, scan, pair, connect, disconnect, trust, or remove devices.
On Fedora, install all system dependencies and the pinned JetBrainsMono Nerd
Font first. The script lists missing packages and asks for confirmation before
invoking sudo dnf:
./scripts/install-fedora-dependencies.shUse ./scripts/install-fedora-dependencies.sh --check for a read-only check.
Install the managed LightDM configuration and enable it for the next boot with:
./scripts/configure-lightdm.shThis copies the wallpaper and GTK theme to system-readable locations, installs
the LightDM drop-in and GTK greeter configuration under /etc/lightdm, and
asks for confirmation before using sudo. The original greeter configuration
is backed up once. It does not stop the active graphical session. Use
./scripts/configure-lightdm.sh --check for a read-only verification.
Then run the dotfile installer from any directory. In addition to creating links, it applies the GTK theme, selects Kvantum, and updates the systemd and D-Bus user environments without relying on KDE or another desktop environment:
./install.shIt creates these symbolic links:
~/.tmux.conf→.tmux.conf${XDG_CONFIG_HOME:-~/.config}/alacritty→alacritty/${XDG_CONFIG_HOME:-~/.config}/nvim→nvim/${XDG_CONFIG_HOME:-~/.config}/sway→sway/${XDG_CONFIG_HOME:-~/.config}/waybar→waybar/${XDG_CONFIG_HOME:-~/.config}/wofi→wofi/${XDG_CONFIG_HOME:-~/.config}/swaylock→swaylock/${XDG_CONFIG_HOME:-~/.config}/dunst→dunst/${XDG_CONFIG_HOME:-~/.config}/flameshot→flameshot/${XDG_CONFIG_HOME:-~/.config}/xdg-desktop-portal/sway-portals.conf→xdg-desktop-portal/sway-portals.conf${XDG_CONFIG_HOME:-~/.config}/systemd/user/dotfiles-sway-session.target→systemd/user/dotfiles-sway-session.target${XDG_CONFIG_HOME:-~/.config}/gtk-{3,4}.0→gtk-{3,4}.0/${XDG_CONFIG_HOME:-~/.config}/Kvantum→Kvantum/${XDG_CONFIG_HOME:-~/.config}/environment.d/90-catppuccin.conf→environment.d/90-catppuccin.conf${XDG_CONFIG_HOME:-~/.config}/xsettingsd→xsettingsd/${XDG_DATA_HOME:-~/.local/share}/themes/catppuccin-macchiato-blue-standard+default→ the vendored GTK theme${XDG_DATA_HOME:-~/.local/share}/backgrounds/dotfiles→media/
If a destination already exists, the installer asks for confirmation before
replacing it. Set DOTFILES_SKIP_THEME_APPLY=1 to create links without changing
the live GTK, Qt, systemd, or D-Bus settings.
Chromium-based applications choose where to read the proxy configuration from
based on the desktop they detect: GNOME-like sessions read the
org.gnome.system.proxy GSettings schema, KDE reads kioslaverc, and any other
session — Sway included — falls back to the http_proxy/https_proxy
environment variables. Under Sway those variables are therefore the supported
channel, but they are normally exported only by interactive shells, so
applications started from the launcher inherit no proxy at all.
scripts/proxy-env.sh is the single place that resolves the proxy state, and
scripts/with-proxy runs any command with the result applied:
scripts/with-proxy chromium-browserThe state is evaluated per invocation instead of being imported once into the session environment, because a VPN is connected and disconnected while the session keeps running, and Chromium does not fall back to a direct connection when a configured PAC URL becomes unreachable — it fails every request instead. Restarting the application is enough to pick up the new state.
Site-specific host names are not stored in this repository. Copy
scripts/proxy-env.conf.example to ${XDG_CONFIG_HOME:-~/.config}/proxy-env.conf
and set the values for your network; without that file no proxy is used, so the
helpers are harmless on machines outside a corporate network.
Application launchers that need the wrapper stay outside this repository when the
application is installed on a single machine. Wrap the command in the local
.desktop entry instead:
Exec=/path/to/dotfiles/scripts/with-proxy /usr/bin/some-application %U