Sway-specific files for this setup live in this directory.
From the repo root:
./setup-sway.shThe script installs the Sway desktop packages, bootstraps the shared mise toolchain, copies the configs in this directory, enables Docker, and opens the required ufw rules for localsend.
Login and session startup stay managed by CachyOS.
./setup-sway.sh calls ./setup-mise.sh, which:
- installs
miseviaparu - copies
mise-setup/mise/config.tomlto~/.config/mise/config.toml - installs the shared toolchain with
mise install - installs a Fish activation snippet in
~/.config/fish/conf.d/
Neovim config is copied from ../mise-setup/nvim/init.lua, so the nested mise-setup submodule is the only Neovim source of truth in this repo.
config: main Sway configwaybar-config: Sway version of the Waybar configswaylock.conf: lock screen configgtk-3.0-settings.ini: GTK 3 theme settingsgtk-4.0-settings.ini: GTK 4 theme settingssway-portals.conf: portal backend selection for Swaycycle-workspace.sh: clamped workspace cycling helper for gesturessway-screenshot.sh: shared screenshot helper for region, output, and focused window capture
setup-sway.sh reuses shared files from ../hyprland/ and ../mise-setup/ instead of duplicating them here:
- wallpaper
- fuzzel config
- Waybar CSS
- swaync CSS
- gazelle config
- Neovim config from
../mise-setup/nvim/
- screenshots use
grim+slurp, withjqfor focused-window capture, save to disk, copy PNG data to the clipboard withwl-copy, and show a notification preview with the saved path - the polkit agent is
polkit-gnome - locking uses
swaylock-effectswith a blurred version of the wallpaper - there is no idle autolock; locking is manual or triggered by closing the laptop lid
- three-finger horizontal swipes move across numbered workspaces and clamp to one past the highest occupied workspace
- portals use
xdg-desktop-portal-gtkby default andxdg-desktop-portal-wlrfor screenshots and screencasts t3codeis installed via thet3code-binAUR package- for high-DPI displays, edit
~/.config/sway/configand adjustoutput * scale
If you use output scaling above 1, XWayland games can end up blurry or lose native resolutions under stock Sway.
gamescope is installed as the minimal workaround for Steam games.
In a game's Steam launch options, start with:
gamescope -f -- %command%but that defaults to 720p.
For a 1440p display:
gamescope -f -W 2560 -H 1440 -w 2560 -h 1440 -- %command%(anaolgously for other displays like the Zephyrus G14's 2880x1800 etc.)
For the ASUS-specific keyboard lighting and WirePlumber audio fix, run the shared hardware script from the repo root:
./setup-g14.sh./setup-g14.shpatches~/.config/sway/configtooutput * scale 1.5. (1.6breaksimvas the buffer is not divisible by2.)./setup-g14.shremaps the screenshot bindings in~/.config/sway/configfromPrinttoXF86Launch1for the G14 M4 macro button.
If need be for external monitors find the avaialble refresh rates:
swaymsg -t get_outputsand set the desired one like this for thunderbolt:
swaymsg output DP-3 mode 2560x1440@144Hzor like this for HDMI port:
swaymsg output HDMI-A-1 mode 2560x1440@144HzThis should persist for the same monitor on reconnecting.