Skip to content
FozzyackPublic

About

My dotfiles. Includes Hyprland, Hyprpaper, Neovim, Ghostty, Alacritty, tmux, btop ....

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

369 Commits

Folders and files

Repository files navigation

~/dotfiles

My Arch Linux Configuration!

A keyboard-first home for my desktop, terminals, and development tools.

Arch Linux Hyprland Neovim Managed with Temperz

The stack · Quick start · Temperz · Setup notes · Extra tools


Personal dotfiles for an Arch Linux workflow built around Hyprland, Neovim, and the terminal. Configurations stay in this repository, with symlinks putting them where they belong.

Current Issues:

The current issues pertain to having a polished hyprland setup replicatable across vm environments. While I can get it almost smooth, I am unable to get it perfect and replicatable across multiple environments. The lightweight i3 VM profile provides an X11 alternative with Ghostty, Fish and Fastfetch.

The stack

Layer Tools
Desktop Hyprland · Hyprpaper · Waybar · Rofi
Desktop widgets Clock · Calendar · Weather · System · Network · Pomodoro · Media
Terminals Ghostty · Alacritty · WezTerm
Shell & sessions Fish · Starship · tmux
Editor Neovim
System info btop · Fastfetch · Neofetch
Dotfile manager Temperz

Quick start

Clone it. Open the control panel. Pick your configs.

git clone https://github.com/Fozzyack/dotfiles.git ~/dotfiles
cd ~/dotfiles
mkdir -p ~/.config
./temperz

Important

These configs are tailored to my setup. Review them and back up your existing configurations first. Keep this repository in place after installation: the symlinks point to its files.

Temperz

Temperz is a small Zig CLI for managing dotfiles and development tools. A Linux x86-64 executable is included as ./temperz; run it from this repository's root so it can find configs/.

  [ temperz ]  DEV ENVIRONMENT / CONTROL PANEL
  Your tools. Your dotfiles. One place.

  +--------------------------------------------------+

  [1]  Install configs       Link your dotfiles
  [2]  Remove configs        Unlink your dotfiles
  [3]  Install dependencies  Set up your dev tools
  [4]  Pull updates          Sync this repository
  [5]  Setup VM              Link your VM dotfiles
  [6]  Install VM deps       Set up your VM tools
  [7]  Exit

  +--------------------------------------------------+
  READY >
Action What happens
Install configs Link individual configs or all of them. Existing destination paths are skipped.
Remove configs Remove corresponding home-directory paths; keep repository sources. Missing paths are skipped.
Install dependencies Run one or all commands from configs/install.config. Batch installation stops at the first failure.
Pull updates Run git pull in the current repository.
Setup VM Link vm/home/ entries into ~/ and vm/configs/ entries into ~/.config/; existing entries are skipped. See VM setup.
Install VM deps Run commands from vm/install.config for the lightweight Arch/i3 desktop.

Type a menu number and press Enter. Empty input exits the main menu or processes all items in a config/dependency submenu. Set NO_COLOR=1 to disable colors.

Warning

Temperz does not check whether a matching destination is a symlink before removing it. Review the selected paths carefully, especially if installation skipped an existing file.

Repository layout

~/dotfiles/
├── configs/
│   ├── configs/       → ~/.config/
│   ├── home/          → ~/
│   ├── windows/         Windows dotfiles for manual setup
│   ├── gtk-widgets/      Retro GTK desktop widgets (manual setup)
│   └── install.config   Dependency commands, one per line
├── vm/                 Separate profile for Temperz's VM menus
│   ├── home/          → ~/ (includes .xinitrc)
│   ├── configs/       → ~/.config/ (one link per app)
│   └── install.config   VM-only dependency commands
├── other-configs/      Extra configs for manual setup
├── ff/                 Fuzzy file finder
├── dfile/              File information tool
├── scripts/            Legacy install / uninstall scripts
└── temperz             Dotfile control panel

Temperz preserves entry names; it does not add a leading dot. For example, configs/home/wezterm.lua becomes ~/wezterm.lua, while configs/configs/nvim/ becomes ~/.config/nvim/.

The dependency commands use sudo pacman; no AUR helper is required. Run sudo pacman -Syu first to avoid partial upgrades. Review configs/install.config before running it, and only use trusted commands.

Build Temperz from source

If the bundled executable is unsuitable for your system, build it from the Temperz repository with Zig:

git clone https://github.com/Fozzyack/temperz.git ~/temperz
cd ~/temperz
zig build
cd ~/dotfiles
~/temperz/zig-out/bin/temperz

Setup notes

Windows dotfiles

Windows-specific dotfiles are available in configs/windows/, including .glzr/, alacritty/, and .wezterm.lua. These are not installed by Temperz and require manual setup on Windows.

Pi (VM profile)

Use Temperz's Setup VM menu to select pi and fish (or install all). Pi's configuration lives at ~/.config/pi; the VM Fish config exports PI_CODING_AGENT_DIR so Pi finds it without a separate setup script. Install VM deps installs Pi with Bun. Open a new Fish session afterward. See the Pi config guide for shortcuts, other shells, and private-state storage caveats.

tmux

Install the tmux Plugin Manager (TPM):

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Hyprland wallpapers

Edit configs/configs/hypr/hyprpaper.conf to match your monitor names and wallpaper paths. The referenced wallpapers under ~/wallpapers/ are not included in this repository.

Neovim

You may need to install language servers for the languages you use. In Neovim, run :help lspconfig-all for configuration guidance.

Retro desktop and Ghostty

The desktop widgets, Waybar, and Ghostty share a charcoal, warm cream, orange, teal, and muted blue palette with Terminess Nerd Font Mono lettering. Ghostty has bottom tabs with orange active markers, blue inactive labels and subtle bevels, plus matching menus, dialogs, search fields and notifications. Its GTK styling requires GTK 4.16+ and libadwaita 1.6+.

Link the whole configs/configs/ghostty/ and configs/configs/waybar/ directories through Temperz so their themes, stylesheets and menu helpers remain together. Restart Ghostty after first enabling its stylesheet; subsequent config reloads use Ctrl+Shift+,.

Desktop widgets

configs/gtk-widgets/ contains independent GTK 4 / Wayland widgets. They sit above the wallpaper but behind normal windows, reserve no screen space, and can be closed individually with [x] or Escape when focused.

Widget Features
Clock Large 24-hour display, separate seconds, local date/timezone and day-progress meter
Calendar Today card, clickable Monday-first grid, ISO week numbers and selected-date details
Weather Open-Meteo conditions, ASCII artwork, temperature, humidity and wind; configurable city/units
System CPU/RAM meters, CPU history and load averages
Network Live download/upload rates, traffic histories, interface selector and byte totals
Pomodoro Start/pause/reset, saved focus/break durations and completion notifications
Media MPRIS player selector, album art, track details, progress and playback controls; manual-launch only

Install the widget dependencies on Arch:

sudo pacman -S python-gobject gtk4 gtk4-layer-shell

The widgets are outside Temperz's managed config directories. Run them from this repository, or use Waybar's WIDGETS ▾ dropdown to launch any widget individually. The menu requires the Waybar directory to be linked to ~/.config/waybar; its launcher resolves widget paths relative to the repository. Weather defaults to Perth in the menu; edit its action to change the city. Media needs a running MPRIS-compatible player such as Spotify or VLC.

From the repository root, apply widget changes and reload Waybar:

configs/gtk-widgets/restart-widgets.sh
pkill -SIGUSR2 -x waybar

The restart script launches the six enabled widgets, preserves running weather arguments, and closes media without relaunching it. Launch media separately with python3 configs/gtk-widgets/media_player.py or the Waybar menu.

Clock/calendar/network/Pomodoro use 324px default widths; weather/system/media use 360px. Network is anchored to the bottom-left; the other positions and margins are configured in configs/gtk-widgets/widget.py. Colours and sizing live in configs/gtk-widgets/clock.css. Logs go to ~/.local/state/retro-widgets/ (or $XDG_STATE_HOME/retro-widgets).

For Hyprland autostart, set city in configs/gtk-widgets/hyprland-widgets.lua, then load it from your Hyprland Lua configuration using its absolute path. The supplied path must be updated for your clone location; widget scripts are resolved beside the Lua file automatically. This starts the six enabled widgets, including Network and Pomodoro, on login, not on a configuration reload.

Pomodoro defaults to 25/5/15 minutes, with a long break after four focus sessions. Expand DURATIONS / MINUTES to customize and save settings in ~/.config/retro-widgets/pomodoro.json. Each interval waits for START; restarting resets the countdown and session count, but retains saved durations.

See the widget guide, Waybar controls, and Ghostty guide for details.

Extra tools

FF

A fuzzy finder for files and directories. There is no automated installation method yet; run the included executable directly:

cd ~/dotfiles/ff
./ffcli -s

Shell wrappers are available in ff/ff.sh and ff/ff.fish.

DFILE

A small tool for displaying file or directory information. There is no automated installation method yet:

cd ~/dotfiles/dfile
./dfile /path/to/file/or/directory

Legacy tools

Earlier managers and scripts
  • DOTMAN: The previous dotfile manager is available in the dotfile-manager repository. It is not bundled here; use Temperz for the current repository layout.
  • Shell scripts: scripts/install.sh and scripts/uninstall.sh are retained for reference. The installer still uses the old ~/dotfiles/configs/<app> paths and is not compatible with the current layout without edits.

Legacy uninstall warning: scripts/uninstall.sh also deletes ~/.local/share/nvim, including installed Neovim plugins and other data. Prefer Temperz for managing the current configs.


Personal configs. A work in progress. Make yourself at ~/.

Back to top

About

My dotfiles. Includes Hyprland, Hyprpaper, Neovim, Ghostty, Alacritty, tmux, btop ....

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages