Skip to content

Latest commit

 

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

.dotfiles — omarchy branch

Dotfiles for Omarchy (Arch + Hyprland).

Branches

  • ubuntu — Debian/Ubuntu + i3 + X11. Paired with dev.
  • omarchy — this branch. Arch + Hyprland + Wayland. Paired with my-omarchy.

They intentionally diverge rather than sharing a common base: the WM, the display server, the clipboard, the notification daemon and the launcher are all different, so most of the X11 config has no counterpart here.

Overview

  • neovim (submodule)
  • zsh (submodule)
  • hyprland — keybindings, input, autostart, window rules
  • ghostty
  • tmux
  • herdr
  • git
  • glow
  • personal scripts

What is gone compared to ubuntu

Omarchy ships Wayland-native replacements, so these are removed on this branch rather than ported:

Removed Replaced by
.config/i3 (submodule) Hyprland — .config/hypr/
.config/rofi/ omarchy-menu (SUPER+D), which is also the app launcher
.config/dunst/ omarchy-shell notifications

What moved

Omarchy uses the XDG locations, so two files changed path:

ubuntu omarchy
.tmux.conf .config/tmux/tmux.conf
.gitconfig .config/git/config

.config/alacritty/ is kept — Omarchy supports alacritty as a terminal option even though ghostty is the one in use.

Setup

Same bare-repo pattern as ubuntu, with the branch selected at clone time.

  1. Clone the repo
cd ~
git clone --bare --branch omarchy git@github.com:gabrielforster/dotfiles.git .dotfiles
  1. Include the dotfiles alias in .zshrc
echo alias dotfiles=\"git --git-dir='$HOME'/.dotfiles --work-tree='$HOME'\" >> ~/.config/zsh/aliases.zsh

Avoid tracking files not in the repo.

dotfiles config status.showUntrackedFiles no

Move the files to their locations. Omarchy ships its own versions of several of these (hypr/*.lua, ghostty/config, tmux/tmux.conf, herdr/config.toml, git/config) — back those up first, because checkout will overwrite them:

for f in hypr ghostty tmux herdr git; do
  [ -e ~/.config/$f ] && cp -r ~/.config/$f ~/.config/$f.omarchy-backup-$(date +%s)
done
dotfiles checkout
  1. Install the submodules
cd ~
dotfiles submodule update --init --recursive
  1. Checkout the tracked branch on submodules

.gitmodules pins both submodules to their omarchy branch, so this follows what is recorded rather than hardcoding a branch name:

dotfiles submodule foreach 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch)'

The zsh submodule's omarchy branch carries the Arch/Wayland adaptations (mise, wl-copy, hyprctl keyboard layout); its master branch is still the Ubuntu/X11 version.

  1. Apply the Hyprland config
hyprctl reload && hyprctl configerrors

Usage

dotfiles status
dotfiles add <filename>
dotfiles add -u

Keep changes on the branch they belong to — a fix that applies to both platforms can be cherry-picked across, but most will not.

Notes

.config/hypr/*.lua are user overrides, not forks of Omarchy's config. Omarchy loads ~/.config/hypr/*.lua after its own defaults from /usr/share/omarchy/default/hypr/, so these files only need to contain differences. bindings.lua and autostart.lua are Omarchy's own user-override templates and are safe to replace outright. input.lua and hyprland.lua are Omarchy templates with a block added at one end — when Omarchy changes those templates, re-merge rather than assuming this copy is current.

bindings.lua documents every collision. The i3 keymap and Omarchy's defaults overlap in several places; each hl.unbind in that file records what was displaced and where the function moved, so a key that behaves unexpectedly in six months is explainable without a git archaeology session.

monitors.lua is deliberately not tracked. Omarchy's installer generates it from detected hardware, so it is machine-specific and would be wrong on any other box.

About

Dotfiles repository containing my linux config files.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages