Skip to content

AndreasBackx/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

440 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Personal dotfiles managed with Chezmoi. This repo is mainly for my own machines, so the docs focus on what the files do and what I tend to forget.

Quickstart

# 1. Install chezmoi and git.
# https://www.chezmoi.io/install/

# 2. Initialize and apply.
chezmoi init https://github.com/AndreasBackx/dotfiles.git
chezmoi apply

# 3. Check the expected tooling.
dot-doctor

chezmoi apply prompts for a few host-specific choices and uses them to render templates.

Configuration Model

  • .chezmoi.toml.tmpl prompts for environment, gpu, headless, monitor location, and default monitor profile.
  • .chezmoidata.toml is the main source of truth for monitor metadata, workspace ranges, profile labels, lock and screen timeouts, and theme values.
  • private_dot_config/dot_variables.tmpl renders ~/.config/.variables so shell scripts can read the selected chezmoi data.
  • private_dot_config/dot_secrets.tmpl renders ~/.config/.secrets from 1Password on non-headless machines.
  • dot_zprofile.tmpl and dot_zshenv source those generated files on shell startup.

Repo Layout

Post-Apply Hooks

These run automatically after apply:

  • run_after_wayland_wrappers.zsh.tmpl: creates ~/.bin/wrappers for desktop apps that should be forced onto Wayland.
  • run_after_hyprland.zsh.tmpl: syncs Hyprland desktop session entries, creates the Hyprland log directory, reloads user systemd units, and enables Hyprland log rotation.
  • run_after_hypr_workspace_remap.zsh.tmpl: remaps windows when apply happens inside a live Hyprland session.
  • run_after_gnome_monitors.zsh.tmpl: copies ~/.config/monitors.xml into GDM so the login screen uses the same layout.
  • run_after_zsh.zsh: creates symlinks for Spaceship and tmux.
  • run_after_macos_xdg.zsh: makes macOS XDG-compatible symlinks under ~/.local.

Core Commands

  • dot-doctor: check required base and desktop tools.
  • ags-reload: restart the AGS bar and write logs to ~/.local/state/ags-reload.log.
  • hyprland-logs: show the Hyprland file log, recent UWSM journal entries, crash reports, and logrotate config path.
  • monitor-profiles selection: switch monitor profiles through shikanectl and update default audio devices for that profile.
  • hypr-profile-refresh: re-render profile-sensitive Hyprland config and remap windows.
  • power-options selection: rofi power menu.
  • updates check or updates update: package update helper.
  • backup status or backup start: Borg backup helper.

Desktop Packages

These are the tools the current Hyprland and AGS setup expects:

  • minos
  • ags
  • astal-gtk4-devel
  • wireplumber (wpctl)
  • kitty
  • rofi or rofi-wayland
  • hyprland
  • uwsm
  • shikane

Current Fedora or Terra limitation:

  • only the base Astal Gtk4 package is assumed to be packaged here
  • feature typelibs such as AstalTray, AstalWp, AstalNetwork, AstalBluetooth, AstalBattery, AstalMpris, and AstalHyprland may still be unavailable, so the AGS bar still uses shell helpers for several domains

Validation And Troubleshooting

# Dry run without changing anything.
chezmoi apply --dry-run --verbose

# Check expected tools.
dot-doctor

# Restart the AGS bar after edits.
ags-reload

Common things to check:

  • Missing wrappers: run chezmoi apply again after installing required desktop tools.
  • Missing secrets: check ~/.config/.secrets and your 1Password CLI setup.
  • Headless mode: desktop checks are skipped and secrets are not loaded.
  • AGS reloads: logs go to ~/.local/state/ags-reload.log.
  • Hyprland and UWSM logs: file log ~/.local/state/hyprland/hyprland.log session journal journalctl --user -u wayland-wm@hyprland.desktop.service crash reports ~/.cache/hyprland/hyprlandCrashReport*.txt helper hyprland-logs

Nested Docs

ddcutil Access

sudo groupadd --system i2c
sudo usermod $(whoami) -aG i2c
sudo cp /usr/share/ddcutil/data/45-ddcutil-i2c.rules /etc/udev/rules.d

# Temporary permissions for current boot:
sudo chmod a+rw /dev/i2c-*

About

My personal dotfiles used on various distros, using Hyprland and managed by chezmoi.

Topics

Resources

Stars

Watchers

Forks

Contributors