Plague's dotfiles
copy.sh. For the status bar component, see Waybar.| Plague's dotfiles | |
|---|---|
plague@archlinux ---------------- OS: Arch Linux x86_64 Host: Custom Workstation WM: Hyprland 0.56 (Lua) Bar: Waybar + Python Shell: fish 4.0 / starship Terminal: Ghostty Theme: Sweet-transparent (Qt) Icons: Papirus-Dark / Tela Cursor: Bibata-Modern-Classic Editor: Neovim (NvChad) Neofetch/Fastfetch system profile representing Plague's desktop configuration. | |
| Original author | Plague |
| Initial commit | August 3, 2026 |
| Current status | Audited & Active (Oct 14, 2026) |
| Operating system | Arch Linux |
| Display server | Wayland |
| Window manager | Hyprland (0.56.0) |
| Config language | Lua (hyprland.lua) |
| Status bar | Waybar |
| Notification daemon | Swaync |
| Application launcher | Rofi (rofi-wayland) |
| Interactive shell | Fish (with Starship) |
| Terminal emulator | Ghostty (Konsole fallback) |
| Qt theme engine | Kvantum (Sweet-transparent) |
| GTK theme | Adwaita:dark |
| Icon themes | Papirus-Dark / Tela-circle-dracula |
| Cursor theme | Bibata-Modern-Classic (24px) |
| Display manager | SDDM (Sword theme) |
| Code editors | Visual Studio Code / Neovim |
| Repository | github.com/takudzwamvere/dotfiles-backup |
Plague's dotfiles is a personalized desktop environment specification and configuration repository designed for the Arch Linux distribution.[1] The setup is centered upon the Hyprland dynamic tiling Wayland compositor, which utilizes a modular Lua configuration structure (hyprland.lua) rather than standard static declarative syntax.[2]
Unlike pre-packaged Linux desktop environments (such as GNOME or KDE Plasma), the architecture decouples system responsibilities into dedicated Unix utilities: Waybar with custom Python scripts for panel telemetry, Rofi-Wayland for application launching and session management, Kvantum and qt6ct for transparent Qt 6 widget styling, and Fish paired with Starship for interactive terminal sessions.[3] It is recognized for its dark Dracula-inspired palette with cyan accents.[citation needed]
This encyclopedic article serves as a comprehensive, step-by-step manual guide for administrators recreating the environment manually from a clean system install.
Contents
[hide]- 1 Overview and architectural design
- 2 Prerequisites and package management
- 3 Display server and window manager (Hyprland)
- 4 Status bar and notification center
- 5 Shell environment and terminal
- 6 Visual theming and design system
- 7 KDE applications and MIME associations
- 8 Display manager (SDDM)
- 9 Systemd daemons and user services
- 10 Development environments
- 11 Fastfetch and identity
- 12 See also
- 13 References
- 14 External links
1 Overview and architectural design[edit]
The configuration repository (backed up at /home/plague/Projects/dotfiles-backup) is maintained to reproduce an identical computing session across clean installations of Arch Linux. The desktop prioritizes a minimalist dark interface characterized by subtle transparency, clean typography (using JetBrains Mono Nerd Font and Poppins), and rapid workspace mobility via physical key combinations.
| Component | Software | Configuration Path in Repo | Target Destination |
|---|---|---|---|
| Compositor | Hyprland | hypr/hyprland.lua | ~/.config/hypr/hyprland.lua |
| Status Bar | Waybar | waybar/ | ~/.config/waybar/ |
| Application Launcher | Rofi (Wayland) | rofi/ | ~/.config/rofi/ |
| Shell | Fish | fish/ | ~/.config/fish/ |
| Prompt | Starship | starship/starship.toml | ~/.config/starship.toml |
| Qt6 Stylesheet | qt6ct | qt6ct/ | ~/.config/qt6ct/ |
| Widget Theme | Kvantum | Kvantum/ | ~/.config/Kvantum/ |
| Editor | Neovim (NvChad) | nvim/ | ~/.config/nvim/ |
| Terminal | Ghostty | ghostty/config | ~/.config/ghostty/config |
| System Monitor | btop | btop/btop.conf | ~/.config/btop/btop.conf |
2 Prerequisites and package management[edit]
Rebuilding the system requires an active internet connection and base development tools. Most proprietary and community-curated packages are installed via the Arch User Repository (AUR).
2.1 Arch User Repository helper (yay)
The AUR helper yay is utilized for automated package compilation and tracking.[2] The bootstrap sequence is executed from the command line:
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay && makepkg -si2.2 Core dependency manifest
The installation command below deploys the audited system manifest (derived from packages.txt) categorized by functional domain:
yay -S --needed \
# ── Hyprland & Wayland Core ──
hyprland hyprpaper waypaper-git hyprshot hyprpicker hyprsunset hypridle hyprlock \
xdg-desktop-portal-hyprland xdg-utils polkit-gnome polkit-kde-agent \
network-manager-applet networkmanager uwsm awww \
# ── Status Bar & App Launcher ──
waybar swaync python rofi-wayland \
# ── Shell & Terminal ──
ghostty fish starship eza bat fastfetch \
# ── Development & Text Editing ──
neovim git lazygit ripgrep fd nodejs visual-studio-code-bin \
# ── Qt & KDE Theming ──
qt6ct kvantum kvantum-theme-sweet qt5-wayland qt6-wayland \
# ── Iconography, Cursors, and Fonts ──
bibata-cursor-theme papirus-icon-theme tela-circle-icon-theme-git nwg-look \
ttf-jetbrains-mono-nerd ttf-nerd-fonts-symbols ttf-poppins \
noto-fonts noto-fonts-emoji noto-fonts-cjk \
# ── Sound Architecture & Multimedia ──
wireplumber playerctl pavucontrol pipewire pipewire-pulse pipewire-alsa \
haruna vlc mpv qbittorrent xdman_gtk obsidian discord \
# ── KDE Utilities ──
dolphin ark kate digikam kdenlive ffmpegthumbs kdegraphics-thumbnailers kimageformats \
# ── Power, Authentication, and Daemons ──
brightnessctl gnome-keyring upower power-profiles-daemon btop \
octopi timeshift timeshift-autosnap bluez bluez-utils sddm3 Display server and window manager (Hyprland)[edit]
Hyprland is an independent dynamic tiling Wayland compositor developed by Vaxry. Plague's configuration resides in hypr/hyprland.lua, providing clean programmatic structure and separation of input bindings, monitor definitions, and window rules.[1]
3.1 Lua configuration and execution structure
The configuration directory is synchronized to the user's home configuration space:
mkdir -p ~/.config/hypr
cp -r hypr/. ~/.config/hypr/
chmod +x ~/.config/hypr/switch_workspace.sh 2>/dev/null || true3.2 Display rules and monitor setup
The primary display output is configured to utilize native display resolutions with preferred scaling:
-- Primary display
monitor = "eDP-1, preferred, auto, 1"
-- Environmental flags for Wayland toolkit compatibility
env = {
"XDG_CURRENT_DESKTOP,Hyprland",
"XDG_SESSION_TYPE,wayland",
"XDG_SESSION_DESKTOP,Hyprland",
"QT_QPA_PLATFORM,wayland;xcb",
"QT_QPA_PLATFORMTHEME,qt6ct",
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1",
"GDK_BACKEND,wayland,x11,*",
"CLUTTER_BACKEND,wayland",
"XCURSOR_THEME,Bibata-Modern-Classic",
"XCURSOR_SIZE,24"
}3.3 Default keyboard bindings
Keyboard shortcuts are primarily mapped to the SUPER modifier key (the Windows / Command key):
| Key Binding | Action / Executable Command | Description |
|---|---|---|
| SUPER + Q | ghostty (fallback: konsole) | Spawns default GPU-accelerated terminal emulator |
| SUPER + R | rofi -show drun | Opens application launcher |
| SUPER + P | ~/.config/rofi/bin/powermenu | Opens session powermenu (Lock, Reboot, Shutdown) |
| SUPER + W | killall -SIGUSR1 waybar | Toggles Waybar visibility |
| SUPER + E | dolphin | Launches KDE Dolphin file manager |
| SUPER + C | killactive | Terminates focused window |
| SUPER + V | togglefloating | Toggles active window between floating and tiled |
hyprshot -m region | Interactive region screenshot saved to ~/Pictures/Screenshots | |
| SUPER + Print | hyprshot -m output | Full-screen capture |
| SUPER + 1–9 | workspace, n | Switch active workspace index |
| SUPER + SHIFT + 1–9 | movetoworkspace, n | Move active client to designated workspace |
4 Status bar and notification center[edit]
Panel rendering is managed by Waybar, styled with custom CSS and enhanced with Python helper scripts.
4.1 Waybar configuration and custom Python scripts
The configuration is cloned and helper scripts are marked executable:
mkdir -p ~/.config/waybar
cp -r waybar/. ~/.config/waybar/
chmod +x ~/.config/waybar/scripts/*.py
chmod +x ~/.config/waybar/scripts/*.sh 2>/dev/null || true4.2 Swaync notification daemon
Notifications and quick control toggles are serviced by SwayNotificationCenter (swaync):
mkdir -p ~/.config/swaync
cp -r swaync/. ~/.config/swaync/5 Shell environment and terminal[edit]
The primary interactive shell is Fish, chosen for auto-suggestions, syntax highlighting, and out-of-the-box completions.
5.1 Fish shell and Starship prompt
To establish Fish as the default login shell and install prompt themes:
# Change user default login shell to fish
chsh -s $(which fish)
# Copy configuration files
mkdir -p ~/.config/fish
cp -r fish/. ~/.config/fish/
# Copy Starship cross-shell prompt configuration
cp starship/starship.toml ~/.config/starship.toml5.2 Shell aliases and utilities
Common aliases replace legacy GNU coreutils with modern Rust-based alternatives:
| Alias | Target Command | Utility |
|---|---|---|
ls | eza --icons | Modern replacement for ls with file icons |
ll | eza -lh --icons --git | Detailed listing with permissions and Git tracking |
la | eza -lah --icons --git | All files including dotfiles |
cat | bat --paging=never | Cat clone with syntax highlighting and line numbers |
tree | eza --tree --icons | Visual directory hierarchy display |
6 Visual theming and design system[edit]
Uniform aesthetic cohesion between Qt and GTK environments under Wayland requires coordinated engine definitions.[3]
6.1 Qt 6, Kvantum, and Sweet-transparent
Qt applications are routed through the Kvantum SVG-based theme engine:
# Copy Kvantum theme files (Sweet-transparent-toolbar)
mkdir -p ~/.config/Kvantum
cp -r Kvantum/. ~/.config/Kvantum/
# Copy qt6ct palette and custom stylesheets
mkdir -p ~/.config/qt6ct
cp -r qt6ct/. ~/.config/qt6ct/
# Apply Kvantum theme activation
kvantummanager --set Sweet-transparent-toolbar6.2 GTK 3/4, Papirus icons, and Bibata cursor
GTK applications are configured via GSettings (dconf) and configuration files:
# Synchronize GTK configuration directories
mkdir -p ~/.config/gtk-3.0 ~/.config/gtk-4.0
cp gtk/gtk-3.0/settings.ini ~/.config/gtk-3.0/
cp gtk/gtk-4.0/settings.ini ~/.config/gtk-4.0/
# Apply settings via gsettings / dconf
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark"
gsettings set org.gnome.desktop.interface cursor-theme "Bibata-Modern-Classic"
gsettings set org.gnome.desktop.interface cursor-size 24
gsettings set org.gnome.desktop.interface font-name "JetBrainsMono Nerd Font 10"
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"7 KDE applications and MIME associations[edit]
KDE standalone utilities (such as Dolphin, Kate, Kdenlive, and Digikam) require explicit thumbnailers and file type associations.[4]
7.1 Dolphin, Kate, Digikam, and Kdenlive
To apply Dolphin viewing preferences without requiring full KDE Plasma desktop dependencies:
# Configure Dolphin preview thumbnail generators
kwriteconfig6 --file dolphinrc --group "PreviewSettings" --key "Plugins" \
"audiothumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,imagethumbnail,jpegthumbnail,kraimagethumbnail,opendocumentthumbnail,svgthumbnail,ffmpegthumbs"
# Enforce standard single-click / double-click folder navigation
kwriteconfig6 --file kdeglobals --group "KDE" --key "SingleClick" "true"7.2 XDG MIME file type defaults
The audited mimeapps.list registers standard application handlers for web links, text files, and video streams:
mkdir -p ~/.config
cp xdg/mimeapps.list ~/.config/mimeapps.list
update-desktop-database ~/.local/share/applications 2>/dev/null || true8 Display manager (SDDM)[edit]
The Simple Desktop Display Manager (SDDM) provides graphical user authentication upon boot. Plague utilizes the animated sword theme:
# Install SDDM sword theme from AUR
yay -S --needed sddm-theme-sword-git
# Configure SDDM theme preference
sudo mkdir -p /etc/sddm.conf.d
echo -e "[Theme]\nCurrent=sword" | sudo tee /etc/sddm.conf.d/theme.conf
# Enable systemd display-manager service
sudo systemctl enable sddm9 Systemd daemons and user services[edit]
Critical background daemons must be enabled via systemd:
# Core system services
sudo systemctl enable --now NetworkManager
sudo systemctl enable --now bluetooth
sudo systemctl enable --now power-profiles-daemon
sudo systemctl enable --now upower
# User-level audio and authentication daemons
systemctl --user enable --now pipewire pipewire-pulse wireplumber10 Development environments[edit]
Software development workflows are partitioned between Visual Studio Code and Neovim.
10.1 Visual Studio Code
Settings are mapped to the user profile and extensions are batch-installed from the manifest:
# Copy user settings and keybindings
mkdir -p ~/.config/Code/User
cp vscode/settings.json ~/.config/Code/User/settings.json
cp vscode/keybindings.json ~/.config/Code/User/keybindings.json 2>/dev/null || true
# Batch install all registered extensions
cat vscode/extensions.txt | xargs -n1 code --install-extension10.2 Neovim (NvChad v2.5)
Neovim is configured using NvChad v2.5 with the onedark colorscheme. Plugin installations bootstrap automatically on initial invocation:
# Copy NvChad configuration tree
mkdir -p ~/.config/nvim
cp -r nvim/. ~/.config/nvim/
# Launch Neovim to trigger Lazy.nvim plugin compilation
nvim11 Fastfetch and system identity[edit]
System banners displayed in interactive terminal sessions utilize Fastfetch configured with a custom Ramona Flowers graphic:
mkdir -p ~/.config/fastfetch
cp fastfetch/config.jsonc ~/.config/fastfetch/
cp fastfetch/ramona-flowers.png ~/.config/fastfetch/12 See also[edit]
- Hyprland on ArchWiki
- Wayland protocol specifications
- Uniform look for Qt and GTK applications
- Fish shell on ArchWiki
13 References[edit]
- ^ "Configuring Hyprland". Hyprland Documentation. Vaxry. Retrieved 14 October 2026.
- ^ "Arch User Repository". ArchWiki. Arch Linux Community. Retrieved 14 October 2026.
- ^ "Kvantum SVG-based theme engine for Qt4/Qt5/Qt6". GitHub. Tsujan. Retrieved 14 October 2026.
- ^ "Association between MIME types and applications". FreeDesktop.org. Retrieved 14 October 2026.