Personal dotfiles and setup scripts for Linux workstations. Wayland-native configuration targeting KDE Plasma and Hyprland on Arch Linux, with provisioning support for Debian-based servers.
Several configurations are hardcoded outside of session manager directories:
| File | Purpose |
|---|---|
.config/chrome-flags.conf |
Password store pinned to kwallet6 |
.config/brave-flags.conf |
Password store pinned to kwallet6 |
.config/xdg-desktop-portal/portals.conf |
FileChooser pinned to KDE portal |
.local/share/dbus-1/services/org.freedesktop.secrets.service |
Secret manager pinned to /usr/bin/kwalletd6 |
install-vscode.sh |
Password store pinned to kwallet5 in ~/.vscode/argv.json |
| Branch | Contents |
|---|---|
dotfiles/main |
Dotfiles tracked via bare git repository |
assets |
Static assets: certificates, public keys, themes, wallpapers |
Clones the repository as a bare git repo into ~/.dotfiles, checks out the dotfiles/main branch, and sets up shell enhancements: Oh My Zsh, Powerlevel10k, fzf, zsh-syntax-highlighting, zsh-autosuggestions, zsh-completions, and bash-it. Also appends the owner's public SSH key to ~/.ssh/authorized_keys.
Environment Variables:
| Variable | Default | Description |
|---|---|---|
CLEAN_DOT_INSTALL |
no |
Set to yes to delete existing dotfiles bare repo and all shell framework directories before reinstalling |
export CLEAN_DOT_INSTALL=no
bash <(curl -sSL --connect-timeout 10 --max-time 10 \
https://raw.githubusercontent.com/arpanrec/dotfiles/refs/heads/main/install-dotfiles.sh)Clean reinstall (removes existing dotfiles bare repo and shell frameworks before installing):
CLEAN_DOT_INSTALL=yes bash <(curl -sSL --connect-timeout 10 --max-time 10 https://raw.githubusercontent.com/arpanrec/dotfiles/refs/heads/main/install-dotfiles.sh)- Set Up Development Workspace — Ansible-based developer toolchain provisioning
- Setup Debian — Bootstrap a Debian machine with Ansible
- Linode Stack Script — Extends Setup Debian for Akamai/Linode VMs
- Setup Arch Server — Base system configuration for Arch Linux
- Setup Arch Workstation — Full graphical workstation environment
- Setup Fedora KDE — Fedora KDE workstation setup
All installers download to ~/.cache/dotfiles-tmp-download-dir and skip re-downloading if the file already exists. Desktop entries are written to ~/.local/share/applications/.
- Install Themes — GTK, KDE, icon, cursor, and font assets
- Install Rustup — Rust toolchain with cargo-binstall extras
- Install Neovim — Build Neovim from source
- Install Visual Studio Code — VS Code with extensions
- Install JetBrains Toolbox — JetBrains Toolbox App
- Install Bitwarden Desktop — Bitwarden Desktop AppImage
- Install Bruno — Bruno API client
- Install DBeaver Community — DBeaver CE database tool
- Install Nextcloud Desktop — Nextcloud Desktop AppImage
- Install Postman — Postman API client
- Install Trilium Notes — TriliumNext note-taking app
- Install Joplin — Joplin Desktop note-taking app
- Install Telegram Desktop — Telegram Desktop client
These scripts require bw (Bitwarden CLI) to be installed and unlocked. Run bw-login.sh first.
- bw-login.sh — Bitwarden CLI authentication flow
- bw-import-ssh.sh — Import SSH keys from Bitwarden vault
- bw-import-gpg.sh — Import GPG key from Bitwarden vault
If some of my choices trigger you, always remember the legend named
xkcdand his wisdom about workflow: xkcd 1172.TL;DR: My setup works for me.