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 |
Password store pinned to kwallet5 in ~/.vscode/argv.json |
install-antigravity |
Password store pinned to kwallet5 in ~/.antigravity-ide/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 repository into ~/.dotfiles, checks out the dotfiles/main branch, and sets up shell tools: Oh My Zsh, Powerlevel10k, fzf, zsh-syntax-highlighting, zsh-autosuggestions, zsh-completions, and bash-it. 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)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)- 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 KDE Hyprland: 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 Antigravity CLI: Antigravity CLI
- Install Antigravity IDE: Antigravity IDE with extensions
- Install Claude Code: Claude Code CLI
- 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 draw.io Desktop: draw.io diagramming 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 first.
- bw-login: Bitwarden CLI authentication flow
- bw-import-ssh: Import SSH keys from Bitwarden vault
- bw-import-gpg: 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.