4d58d02c2e9a5744037656c09a811c036a3196aa
Fedora Sway workstation
Target
- Native Fedora 44 on x86_64
- Sway with SDDM, Waybar, PipeWire, printing, SSH, and NetworkManager
- Faroese keyboard layout, Danish regional formats, and Atlantic/Faroe time
- Foot as the terminal, opening the persistent
tmuxsession - Zen as the default browser, installed from Zen's official release tarball
- Development tools, formatters, and Fedora-packaged language servers from NixOS
Run
Install Ansible as the normal desktop user:
sudo dnf install -y ansible
git clone https://codeberg.org/bartal-lsn/fedora-provisioning.git
cd fedora-provisioning
ansible-playbook setup.yml -K
Desktop keys
| Key | Action |
|---|---|
Super+t |
Foot attached to tmux session main |
Super+b |
Zen Browser |
Super+d |
Rofi application launcher |
Super+q |
Close window |
Super+h/j/k/l |
Move focus |
Super+Shift+h/j/k/l |
Move window |
Super+1..0 |
Switch workspace |
Super+Shift+1..0 |
Move window to workspace |
Super+f |
Toggle fullscreen |
Super+Shift+Space |
Toggle floating |
Super+- |
Show scratchpad |
Super+Shift+- |
Move window to scratchpad |
Optional behavior
The main switches live near the top of vars.yml:
upgrade_system: upgrade packages before provisioninginstall_virtualization: install Fedora's libvirt virtualization groupinstall_sqlcmd: retain the Fedora repository's existing SQL Server CLIinstall_jdtls: install Java's JDT LS directly from Eclipse, without Mason
Re-running
The playbook is designed to be repeatable. Zen, Bun, Rust, Starship, npm tools, services, and configuration files are checked before changes are made. Zen handles browser updates itself after the initial binary installation.
Languages
Jinja
100%