Skip to content

Commit aaa7dc1

Browse files
eapolinarioclaude
andcommitted
feat: move a-la-carchy configs into dotfiles and symlink via stow
Previously, several config files written by a-la-carchy were not tracked in this repo. Moving them here means all changes — whether made by a-la-carchy or manually — are version-controlled. Since stow symlinks are transparent, a-la-carchy continues writing to the same paths and the writes land in the dotfiles repo automatically. Files added / extended: hypr/ package (maps to ~/.config/hypr/): - monitors.conf — monitor layout, scale, and GDK_SCALE env - looknfeel.conf — gaps, borders, animations, opacity, etc. - scripts/ directory created for three scripts that a-la-carchy generates dynamically (laptop-display-auto.sh, power-profile-default.sh, omarchy-battery-limit.sh); tracked once they are first created - input.conf and bindings.conf synced to match the live system (new per-app scroll-speed rules and Super+Alt+Return/Super+Shift+Return bindings had been added directly on the machine) waybar/ package (new, maps to ~/.config/waybar/): - config.jsonc — module layout and configuration - style.css — bar styling uwsm/ package extended (adds ~/.config/uwsm/default alongside the existing ~/.local/share/omarchy/config/uwsm/default path): - default — TERMINAL and EDITOR env vars for the Hyprland session xcompose/ package (new, maps to ~/): - .XCompose — custom compose key sequences omarchy/ package (new, maps to ~/.config/omarchy/): - directory structure in place for extensions/menu.sh, which a-la-carchy generates dynamically; no files yet install_dotfiles_linux.sh changes: - stow_hypr_configs(): mkdir -p scripts; remove_target_if_identical for monitors.conf, looknfeel.conf, and the three future scripts - stow_uwsm_config(): added mkdir -p ~/.config/uwsm and remove_target_if_identical for the second uwsm/default path; the single stow call already covers both since they share one package - stow_waybar_config() (new): soft-guarded, removes identical targets for config.jsonc and style.css, then stows - stow_omarchy_config() (new): soft-guarded, mkdir -p for extensions, then stows (no-op until menu.sh is added to the package) - stow_xcompose_config() (new): soft-guarded on .XCompose existing in the package, removes identical target, then stows - main(): wired stow_waybar_config, stow_omarchy_config, and stow_xcompose_config after stow_hypr_configs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 06d476c commit aaa7dc1

File tree

9 files changed

+384
-1
lines changed

9 files changed

+384
-1
lines changed

hypr/.config/hypr/bindings.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Application bindings
2+
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" tmux new
23
$terminal = uwsm app -- $TERMINAL
34
$browser = omarchy-launch-browser
45

56
bindd = SUPER, RETURN, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
7+
bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser
68
bindd = SUPER SHIFT, F, File manager, exec, uwsm app -- nautilus --new-window
79
bindd = SUPER SHIFT, B, Browser, exec, $browser
810
bindd = SUPER SHIFT ALT, B, Browser (private), exec, $browser --private

hypr/.config/hypr/input.conf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ input {
2929
}
3030

3131
# Scroll faster in the terminal
32-
windowrule = scrolltouchpad 1.5, tag:terminal
32+
windowrule = match:class (Alacritty|kitty), scroll_touchpad 1.5
33+
windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2

hypr/.config/hypr/looknfeel.conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Change the default Omarchy look'n'feel
2+
3+
# https://wiki.hyprland.org/Configuring/Variables/#general
4+
general {
5+
# No gaps between windows
6+
# gaps_in = 0
7+
# gaps_out = 0
8+
9+
# Use master layout instead of dwindle
10+
# layout = master
11+
}
12+
13+
# https://wiki.hyprland.org/Configuring/Variables/#decoration
14+
decoration {
15+
# Use round window corners
16+
rounding = 8
17+
}

hypr/.config/hypr/monitors.conf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# See https://wiki.hyprland.org/Configuring/Monitors/
2+
# List current monitors and resolutions possible: hyprctl monitors
3+
# Format: monitor = [port], resolution, position, scale
4+
# You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch)
5+
6+
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
7+
env = GDK_SCALE,2
8+
monitor=,preferred,auto,auto
9+
10+
# Good compromise for 27" or 32" 4K monitors (but fractional!)
11+
# env = GDK_SCALE,1.75
12+
# monitor=,preferred,auto,1.666667
13+
14+
# Straight 1x setup for low-resolution displays like 1080p or 1440p
15+
# env = GDK_SCALE,1
16+
# monitor=,preferred,auto,1
17+
18+
# Example for Framework 13 w/ 6K XDR Apple display
19+
# monitor = DP-5, 6016x3384@60, auto, 2
20+
# monitor = eDP-1, 2880x1920@120, auto, 2

install_dotfiles_linux.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,15 @@ stow_hypr_configs() {
119119
local bindings_target="$hypr_dir/bindings.conf"
120120

121121
mkdir -p "$hypr_dir"
122+
mkdir -p "$hypr_dir/scripts"
122123

123124
remove_target_if_identical "$input_target" "$input_source"
124125
remove_target_if_identical "$bindings_target" "$bindings_source"
126+
remove_target_if_identical "$hypr_dir/monitors.conf" "$SCRIPT_DIR/hypr/.config/hypr/monitors.conf"
127+
remove_target_if_identical "$hypr_dir/looknfeel.conf" "$SCRIPT_DIR/hypr/.config/hypr/looknfeel.conf"
128+
remove_target_if_identical "$hypr_dir/scripts/laptop-display-auto.sh" "$SCRIPT_DIR/hypr/.config/hypr/scripts/laptop-display-auto.sh"
129+
remove_target_if_identical "$hypr_dir/scripts/power-profile-default.sh" "$SCRIPT_DIR/hypr/.config/hypr/scripts/power-profile-default.sh"
130+
remove_target_if_identical "$hypr_dir/scripts/omarchy-battery-limit.sh" "$SCRIPT_DIR/hypr/.config/hypr/scripts/omarchy-battery-limit.sh"
125131

126132
stow "${STOW_FLAGS[@]}" -d "$SCRIPT_DIR" -vt "$HOME" hypr
127133
}
@@ -154,13 +160,57 @@ stow_uwsm_config() {
154160
exit 1
155161
fi
156162

163+
local config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
157164
mkdir -p "$uwsm_dir"
165+
mkdir -p "$config_home/uwsm"
158166
remove_target_if_identical "$config_target" "$config_source"
167+
remove_target_if_identical "$config_home/uwsm/default" "$SCRIPT_DIR/uwsm/.config/uwsm/default"
159168

160169
stow "${STOW_FLAGS[@]}" -d "$SCRIPT_DIR" -vt "$HOME" uwsm
161170
}
162171

163172

173+
stow_waybar_config() {
174+
if [[ ! -d "$SCRIPT_DIR/waybar" ]]; then
175+
return
176+
fi
177+
178+
local config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
179+
local waybar_dir="$config_home/waybar"
180+
181+
mkdir -p "$waybar_dir"
182+
remove_target_if_identical "$waybar_dir/config.jsonc" "$SCRIPT_DIR/waybar/.config/waybar/config.jsonc"
183+
remove_target_if_identical "$waybar_dir/style.css" "$SCRIPT_DIR/waybar/.config/waybar/style.css"
184+
185+
stow "${STOW_FLAGS[@]}" -d "$SCRIPT_DIR" -vt "$HOME" waybar
186+
}
187+
188+
189+
stow_omarchy_config() {
190+
if [[ ! -d "$SCRIPT_DIR/omarchy" ]]; then
191+
return
192+
fi
193+
194+
local config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
195+
196+
mkdir -p "$config_home/omarchy/extensions"
197+
remove_target_if_identical "$config_home/omarchy/extensions/menu.sh" "$SCRIPT_DIR/omarchy/.config/omarchy/extensions/menu.sh"
198+
199+
stow "${STOW_FLAGS[@]}" -d "$SCRIPT_DIR" -vt "$HOME" omarchy
200+
}
201+
202+
203+
stow_xcompose_config() {
204+
if [[ ! -f "$SCRIPT_DIR/xcompose/.XCompose" ]]; then
205+
return
206+
fi
207+
208+
remove_target_if_identical "$HOME/.XCompose" "$SCRIPT_DIR/xcompose/.XCompose"
209+
210+
stow "${STOW_FLAGS[@]}" -d "$SCRIPT_DIR" -vt "$HOME" xcompose
211+
}
212+
213+
164214
stow_eca_config() {
165215
if [[ ! -f "$SCRIPT_DIR/eca/.config/eca/config.json" ]]; then
166216
printf 'ECA configuration file not found in %s.\n' "$SCRIPT_DIR/eca/.config/eca" >&2
@@ -241,6 +291,9 @@ main() {
241291
stow_doom
242292
stow_systemd_configs
243293
stow_hypr_configs
294+
stow_waybar_config
295+
stow_omarchy_config
296+
stow_xcompose_config
244297
stow_starship_config
245298
stow_eca_config
246299
stow_uwsm_config

uwsm/.config/uwsm/default

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Changes require a relaunch of Hyprland to take effect.
2+
3+
export TERMINAL=xdg-terminal-exec
4+
export EDITOR=emacs

waybar/.config/waybar/config.jsonc

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
{
2+
"reload_style_on_change": true,
3+
"layer": "top",
4+
"position": "top",
5+
"spacing": 0,
6+
"height": 26,
7+
"modules-left": ["custom/omarchy", "hyprland/workspaces", "hyprland/window"],
8+
"modules-center": ["clock", "custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
9+
"modules-right": [
10+
"group/tray-expander",
11+
"bluetooth",
12+
"network",
13+
"pulseaudio",
14+
"cpu",
15+
"battery"
16+
],
17+
"hyprland/workspaces": {
18+
"on-click": "activate",
19+
"format": "{icon}",
20+
"format-icons": {
21+
"default": "",
22+
"1": "1",
23+
"2": "2",
24+
"3": "3",
25+
"4": "4",
26+
"5": "5",
27+
"6": "6",
28+
"7": "7",
29+
"8": "8",
30+
"9": "9",
31+
"10": "0",
32+
"active": "󱓻"
33+
},
34+
"persistent-workspaces": {
35+
"1": [],
36+
"2": [],
37+
"3": [],
38+
"4": [],
39+
"5": []
40+
}
41+
},
42+
"custom/omarchy": {
43+
"format": "<span font='omarchy'>\ue900</span>",
44+
"on-click": "omarchy-menu",
45+
"on-click-right": "xdg-terminal-exec",
46+
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
47+
},
48+
"custom/update": {
49+
"format": "",
50+
"exec": "omarchy-update-available",
51+
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
52+
"tooltip-format": "Omarchy update available",
53+
"signal": 7,
54+
"interval": 3600
55+
},
56+
57+
"cpu": {
58+
"interval": 5,
59+
"format": "󰍛",
60+
"on-click": "omarchy-launch-or-focus-tui btop"
61+
},
62+
"clock": {
63+
"format": "{:L%A %H:%M}",
64+
"format-alt": "{:L%d %B W%V %Y}",
65+
"tooltip": false,
66+
"on-click-right": "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select"
67+
},
68+
"network": {
69+
"format-icons": ["󰤯", "󰤟", "󰤢", "󰤥", "󰤨"],
70+
"format": "{icon}",
71+
"format-wifi": "{icon}",
72+
"format-ethernet": "󰀂",
73+
"format-disconnected": "󰤮",
74+
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
75+
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
76+
"tooltip-format-disconnected": "Disconnected",
77+
"interval": 3,
78+
"spacing": 1,
79+
"on-click": "omarchy-launch-wifi"
80+
},
81+
"battery": {
82+
"format": "{capacity}% {icon}",
83+
"format-discharging": "{icon}",
84+
"format-charging": "{icon}",
85+
"format-plugged": "",
86+
"format-icons": {
87+
"charging": ["󰢜", "󰂆", "󰂇", "󰂈", "󰢝", "󰂉", "󰢞", "󰂊", "󰂋", "󰂅"],
88+
"default": ["󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"]
89+
},
90+
"format-full": "󰂅",
91+
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
92+
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
93+
"interval": 5,
94+
"on-click": "omarchy-menu power",
95+
"states": {
96+
"warning": 20,
97+
"critical": 10
98+
}
99+
},
100+
"bluetooth": {
101+
"format": "",
102+
"format-disabled": "󰂲",
103+
"format-off": "󰂲",
104+
"format-connected": "󰂱",
105+
"format-no-controller": "",
106+
"tooltip-format": "Devices connected: {num_connections}",
107+
"on-click": "omarchy-launch-bluetooth"
108+
},
109+
"pulseaudio": {
110+
"format": "{icon}",
111+
"on-click": "omarchy-launch-audio",
112+
"on-click-right": "pamixer -t",
113+
"tooltip-format": "Playing at {volume}%",
114+
"scroll-step": 5,
115+
"format-muted": "",
116+
"format-icons": {
117+
"headphone": "",
118+
"headset": "",
119+
"default": ["", "", ""]
120+
}
121+
},
122+
"group/tray-expander": {
123+
"orientation": "inherit",
124+
"drawer": {
125+
"transition-duration": 600,
126+
"children-class": "tray-group-item"
127+
},
128+
"modules": ["custom/expand-icon", "tray"]
129+
},
130+
"custom/expand-icon": {
131+
"format": "",
132+
"tooltip": false
133+
},
134+
"custom/screenrecording-indicator": {
135+
"on-click": "omarchy-cmd-screenrecord",
136+
"exec": "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh",
137+
"signal": 8,
138+
"return-type": "json"
139+
},
140+
"custom/voxtype": {
141+
"exec": "omarchy-voxtype-status",
142+
"return-type": "json",
143+
"format": "{icon}",
144+
"format-icons": {
145+
"idle": "",
146+
"recording": "󰍬",
147+
"transcribing": "󰔟"
148+
},
149+
"tooltip": true,
150+
"on-click-right": "omarchy-voxtype-config",
151+
"on-click": "omarchy-voxtype-model"
152+
},
153+
"custom/idle-indicator": {
154+
"on-click": "omarchy-toggle-idle",
155+
"exec": "$OMARCHY_PATH/default/waybar/indicators/idle.sh",
156+
"signal": 9,
157+
"return-type": "json"
158+
},
159+
"custom/notification-silencing-indicator": {
160+
"on-click": "omarchy-toggle-notification-silencing",
161+
"exec": "$OMARCHY_PATH/default/waybar/indicators/notification-silencing.sh",
162+
"signal": 10,
163+
"return-type": "json"
164+
},
165+
"tray": {
166+
"icon-size": 12,
167+
"spacing": 12
168+
}
169+
,"hyprland/window": {
170+
"format": "{}",
171+
"max-length": 40,
172+
"tooltip": false
173+
}
174+
}

0 commit comments

Comments
 (0)