Skip to content
NathanielInmanPublic

About

Dotfiles for neovim, zsh, hyprland, arch linux and more

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Latest commit

 

History

614 Commits

Folders and files

Repository files navigation

Dot-Files

This contains all of my dot files and step-by-step instructions on how to build an Arch distribution similar to mine. Most configurations are detailed with comments. All dot files are purposefully compact with little ricing.

Full-screen Example of Desktop

Installation

Aside from referencing the configuration files directly, you can use stow to automatically install any one or multiple of the configurations in this repository. This repository uses GNU Stow for managing symlinks.

# Packages are 'installed' by merely symlinking the files to their destinations
sudo pacman -S stow

# Clone the repository
git clone https://github.com/NathanielInman/dotfiles.git ~/Sites/dot-files
cd ~/Sites/dot-files

# List available packages
./install.sh -l

# Install all packages
./install.sh -a

# Install specific packages
./install.sh nvim zsh starship

# Uninstall a package
./install.sh -u nvim

# Restow after pulling updates
./install.sh -r nvim

Available Packages

Package Description
biome Global Biome formatter/linter config
chrome Chrome Wayland flags (chrome-flags.conf)
git Git configuration (delta pager)
hyprland Wayland compositor (Lua config), lock, idle
kitty Terminal emulator
nushell Modern shell
nvim Standalone lazy.nvim NeoVim config
starship Shell prompt
swaync Notification center
t3code T3 Code color theme
task Taskwarrior + vit config
topgrade Upgrade-everything config
vim Vim configuration
walker Application launcher
waybar Status bar
zsh Zsh + Oh-My-Zsh config

System-level files that can't be stowed (because they live outside $HOME) are tracked under etc/, usr/ and scripts/ as copies. Install them via ./install.sh -s, which prompts for each one. Currently covers:

  • etc/pacman.d/hooks/hyprpm.hook: rebuilds hyprpm plugins automatically after Hyprland upgrades so boot doesn't complain about outdated plugin headers.
  • scripts/hypr-launch -> /usr/local/bin/hypr-launch: sets the NVIDIA/Wayland env and execs Hyprland's own start-hyprland watchdog on tty1 login.
  • etc/nvidia/nvidia-application-profiles-rc.d/50-limit-free-buffer-pool-in-wayland-compositors.json: stops the NVIDIA driver hoarding VRAM freed by Hyprland.
  • etc/udev/rules.d/50-bt-adapter-no-autosuspend.rules: keeps the UB500 Bluetooth dongle from autosuspending.
  • usr/local/bin/bt-force-central + etc/systemd/system/bt-force-central.service + etc/udev/rules.d/51-bt-force-central.rules: forces the PC to the central role on new Bluetooth links (fixes headset audio stutter).
  • etc/systemd/system/rime-umount.service: unmounts the Rime CIFS share early on shutdown so it doesn't hang.
  • scripts/openvpn3-tun-dns + etc/systemd/system/openvpn3-tun-dns@.service: VPN DNS hook (see below).

usr/share/applications/ holds .desktop overrides (mostly NoDisplay=true to hide unwanted apps from walker); copy them to /usr/share/applications/ by hand.

Automation

scripts/ holds the cron helpers (set up via crontab -e, see docs/setting-up-archlinux.md) and a few other tools:

  • cron-git-notes-auto-update.sh / cron-git-tasks-auto-update.sh: keep the notes and tasks repos synced hourly.
  • cron-sites-nightly-backup.sh: a 3am safety net so no uncommitted work in ~/Sites is ever lost to a dead disk. Owned repos get an atomic commit + push on the current branch; every other dirty repo is snapshotted non-destructively to a backup/auto/<host>/<branch> ref on its remote. Full write-up: docs/sites-nightly-backup.md.
  • openvpn3-tun-dns: attaches the DigitalTurbine CloudConnexa DNS resolver to the tun0 link on every VPN connect (via openvpn3-tun-dns@tun0.service), because openvpn3 doesn't apply the pushed DNS itself and internal hosts won't otherwise resolve. Full write-up: docs/openvpn3-vpn-dns.md.
  • statusline-command.sh: custom Claude Code statusline (see docs/setting-up-archlinux.md).

Tip

Clicking on the Arch, NeoVim, Zsh and PragmataPro icons below leads to this repository's setup docs or config for that tool.

My Everyday Stack

arch linux badge neovim badge zsh badge pragmata pro badge

My Common Stacks

cloudflare badge claude badge gemini badge proton mail badge illustrator badge photoshop badge blender badge bevy badge godot badge steam badge chrome badge

Who Am I

I'm a software engineer who makes Roguelikes for fun, enjoys WebGL, javascript, golang & rust.

basic summary
Golang javascript nodejs typescript python rust lua R lang
linkedin goodreads github gitlab codepen badge
nathanielinman's top spotify
nathanielinman's typing test profile

About

Dotfiles for neovim, zsh, hyprland, arch linux and more

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages