Migrate dotfiles to Omarchy 4

Claude-Session: https://claude.ai/code/session_014ADhvRXuiTvrXSbConxUey
This commit is contained in:
2026-08-19 13:46:33 -04:00
parent 007a032568
commit a0b06b12a3
35 changed files with 390 additions and 876 deletions
-3
View File
@@ -1,3 +0,0 @@
# Extra autostart processes
# exec-once = uwsm-app -- my-service
exec-once = ags run
+2
View File
@@ -0,0 +1,2 @@
-- Extra autostart processes.
o.launch_on_start("ags run")
-29
View File
@@ -1,29 +0,0 @@
# Application bindings
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" bash -c "tmux attach || tmux new -s Work"
bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
# Add extra bindings
bindd = SUPER ALT, W, Wallpaper picker, exec, ags toggle wall-picker
# bind = SUPER SHIFT, R, exec, alacritty -e ssh your-server
# Overwrite existing bindings, like putting Omarchy Menu on Super + Space
# unbind = SUPER, SPACE
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu
+4
View File
@@ -0,0 +1,4 @@
-- Personal keybinding overrides on top of Omarchy's defaults.
-- See current bindings and descriptions: omarchy menu keybindings --print
o.bind("SUPER + ALT + W", "Wallpaper picker", "ags toggle wall-picker")
-28
View File
@@ -1,28 +0,0 @@
general {
lock_cmd = omarchy-system-lock # lock screen and 1password
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = sleep 1 && hyprctl dispatch dpms on # delay for PAM readiness, then turn on display.
inhibit_sleep = 3 # wait until screen is locked
}
listener {
timeout = 300 # 5min
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
}
listener {
timeout = 301 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 480 # 8min
on-timeout = brightnessctl -sd '*::kbd_backlight' set 0 # save state and turn off keyboard backlight
on-resume = brightnessctl -rd '*::kbd_backlight' # restore keyboard backlight
}
listener {
timeout = 480 # 8min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
}
-28
View File
@@ -1,28 +0,0 @@
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
# Use defaults Omarchy defaults (but don't edit these directly!)
source = ~/.local/share/omarchy/default/hypr/autostart.conf
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
source = ~/.local/share/omarchy/default/hypr/bindings/clipboard.conf
source = ~/.local/share/omarchy/default/hypr/bindings/tiling-v2.conf
source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf
source = ~/.local/share/omarchy/default/hypr/envs.conf
source = ~/.local/share/omarchy/default/hypr/looknfeel.conf
source = ~/.local/share/omarchy/default/hypr/input.conf
source = ~/.local/share/omarchy/default/hypr/windows.conf
source = ~/.config/omarchy/current/theme/hyprland.conf
# Change your own setup in these files (and overwrite any settings from defaults!)
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/looknfeel.conf
source = ~/.config/hypr/autostart.conf
# Toggle config flags dynamically (e.g. the lid-close "disable internal display"
# flag written by omarchy-hyprland-monitor-internal). Without this the lid
# handler's disable never applies and the laptop workspace stays stranded.
source = ~/.local/state/omarchy/toggles/hypr/*.conf
# Add any other personal Hyprland configuration below
# windowrule = workspace 5, match:class qemu
+13
View File
@@ -0,0 +1,13 @@
-- Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/Start/
dofile((os.getenv("OMARCHY_PATH") or "/usr/share/omarchy") .. "/default/hypr/bootstrap.lua")
require("default.hypr.omarchy")
require("hypr.monitors")
require("hypr.input")
require("hypr.bindings")
require("hypr.looknfeel")
require("hypr.autostart")
require("default.hypr.toggles")
-55
View File
@@ -1,55 +0,0 @@
source = ~/.config/omarchy/current/theme/hyprlock.conf
general {
ignore_empty_input = true
}
background {
monitor =
color = $color
path = ~/.config/omarchy/current/background
blur_passes = 3
}
animations {
enabled = false
}
input-field {
monitor =
size = 650, 100
position = 0, 0
halign = center
valign = center
inner_color = $inner_color
outer_color = $outer_color
outline_thickness = 4
font_family = JetBrainsMono Nerd Font
font_color = $font_color
placeholder_text = Enter Password
check_color = $check_color
fail_text = <i>$FAIL ($ATTEMPTS)</i>
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
auth {
fingerprint:enabled = false
}
label {
monitor =
text = cmd[update:0] cat ~/.config/omarchy/branding/screensaver.txt
color = $font_color
font_size = 12
font_family = JetBrainsMono Nerd Font
text_align = left
position = 0, 200
halign = center
valign = center
}
+2 -2
View File
@@ -5,8 +5,8 @@ profile {
identity = true
}
# To enable auto switch to nightlight, set in your .config/hypr/autostart:
# exec-once = uwsm app -- hyprsunset
# To enable auto switch to nightlight, add to your .config/hypr/autostart.lua:
# o.launch_on_start("hyprsunset")
# and use the following:
# profile {
# time = 20:00
-54
View File
@@ -1,54 +0,0 @@
# Control your input devices
# See https://wiki.hypr.land/Configuring/Variables/#input
input {
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
# kb_layout = us,dk,eu
# Use a specific keyboard variant if needed (e.g. intl for international keyboards)
# kb_variant = intl
kb_layout = us
kb_options = compose:caps # ,grp:alts_toggle
# Change speed of keyboard repeat
repeat_rate = 40
repeat_delay = 600
# Start with numlock on by default
numlock_by_default = true
# Increase sensitivity for mouse/trackpad (default: 0)
# sensitivity = 0.35
# Turn off mouse acceleration (default: false)
# force_no_accel = true
touchpad {
# Use natural (inverse) scrolling
# natural_scroll = true
# Use two-finger clicks for right-click instead of lower-right corner
# clickfinger_behavior = true
# Control the speed of your scrolling
scroll_factor = 0.4
# Enable the touchpad while typing
# disable_while_typing = false
# Left-click-and-drag with three fingers
# drag_3fg = 1
}
}
# Scroll nicely in the terminal
windowrule = match:class (Alacritty|kitty), scroll_touchpad 1.5
windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2
# Enable touchpad gestures for changing workspaces
# See https://wiki.hyprland.org/Configuring/Gestures/
# gesture = 3, horizontal, workspace
# Enable touchpad gestures for moving focus (helpful on scrolling layout)
# gesture = 3, left, dispatcher, movefocus, l
# gesture = 3, right, dispatcher, movefocus, r
+20
View File
@@ -0,0 +1,20 @@
-- See https://wiki.hypr.land/Configuring/Basics/Variables/#input
hl.config({
input = {
kb_layout = "us",
kb_options = "compose:caps",
repeat_rate = 40,
repeat_delay = 600,
numlock_by_default = true,
touchpad = {
scroll_factor = 0.4,
},
},
})
-- Scroll nicely in the terminal.
o.window("(Alacritty|kitty)", { scroll_touchpad = 1.5 })
o.window("com.mitchellh.ghostty", { scroll_touchpad = 0.2 })
+25 -6
View File
@@ -1,8 +1,20 @@
# Custom Keybinds
# Keybinds
Custom bindings on top of Omarchy's defaults, defined in `bindings.conf`.
Hyprland is configured in Lua on Omarchy 4. Personal bindings live in
[`bindings.lua`](bindings.lua); everything else below comes from Omarchy's
own defaults and is no longer redefined here.
## Apps
Print the live list at any time with `omarchy menu keybindings --print`.
## Custom
| Keybind | Action |
| --- | --- |
| `Super+Alt+W` | Wallpaper picker (AGS widget) |
## Omarchy defaults worth remembering
### Apps
| Keybind | Action |
| --- | --- |
@@ -19,7 +31,7 @@ Custom bindings on top of Omarchy's defaults, defined in `bindings.conf`.
| `Super+Shift+G` | Signal |
| `Super+Shift+O` | Obsidian |
## Web Apps
### Web Apps
| Keybind | Action |
| --- | --- |
@@ -30,8 +42,15 @@ Custom bindings on top of Omarchy's defaults, defined in `bindings.conf`.
| `Super+Shift+Ctrl+G` | Google Messages |
| `Super+Shift+P` | Google Photos |
## Extras
### Shell and system
| Keybind | Action |
| --- | --- |
| `Super+Alt+W` | Wallpaper picker |
| `Super+Space` | Omarchy menu |
| `Super+Ctrl+Space` | Background switcher |
| `Super+Shift+Ctrl+Space` | Theme menu |
| `Super+Shift+Space` | Toggle the top bar |
| `Super+Backspace` | Toggle transparency on the focused window |
| `Super+Ctrl+L` | Lock |
| `Super+Ctrl+I` | Toggle locking on idle |
| `Super+Ctrl+N` | Toggle nightlight |
-37
View File
@@ -1,37 +0,0 @@
# Change the default Omarchy look'n'feel
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
# No gaps between windows or borders
gaps_in = 4
gaps_out = 4
# border_size = 0
# Change to niri-like side-scrolling layout
# layout = scrolling
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
# Use round window corners
# rounding = 8
# Dim unfocused windows (0.0 = no dim, 1.0 = fully dimmed)
# dim_inactive = true
# dim_strength = 0.15
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
# Disable all animations
# enabled = no
}
# https://wiki.hypr.land/Configuring/Variables/#layout
layout {
# Avoid overly wide single-window layouts on wide screens
# single_window_aspect_ratio = 1 1
}
# Remove default window transparency
windowrule = opacity 1.0 override 1.0 override, match:tag default-opacity
+12
View File
@@ -0,0 +1,12 @@
-- https://wiki.hypr.land/Configuring/Basics/Variables/#general
hl.config({
general = {
gaps_in = 4,
gaps_out = 4,
},
})
-- Remove default window transparency. Turn it back on with `blob_glass on`,
-- which drops a flag into ~/.local/state/omarchy/toggles/hypr/ that is loaded
-- after this file.
o.window({ tag = "default-opacity" }, { opacity = "1.0 override 1.0 override" })
-27
View File
@@ -1,27 +0,0 @@
# See https://wiki.hyprland.org/Configuring/Monitors/
# List current monitors and resolutions possible: hyprctl monitors
# Format: monitor = [port], resolution, position, scale
# --- Dual external monitor setup (laptop lid closed) ---
# Layout, left -> right: [ 1: C24 / DP-1 ] [ 2: F24 / HDMI-A-1 ]
# eDP-1 sits to the right of the externals and Hyprland automatically
# disables it when the lid is closed (since an external is connected).
# Monitor 1 - C24 curved, DisplayPort via DP->HDMI adapter.
# NOTE: the DP2HDMI adapter caps this panel at 1920x1080@60 (no 75Hz mode).
monitor = DP-1, 1920x1080@60, 0x0, 1
# Monitor 2 - Sceptre F24, HDMI, native 75Hz.
monitor = HDMI-A-1, 1920x1080@75, 1920x0, 1
# Laptop panel - only mode is 1920x1200@60. Parked right of the externals;
# auto-off on lid close so no windows get stranded on a closed screen.
monitor = eDP-1, 1920x1200@60, 3840x0, 1.5
# Catch-all fallback for any other/unknown display.
monitor = , preferred, auto, 1
# GDK_SCALE forced integer scaling is intentionally disabled: the external
# monitors run at 1x, so a global 2x would blow up GTK apps on them. The
# per-monitor scale factors above are enough.
# env = GDK_SCALE,2
+26
View File
@@ -0,0 +1,26 @@
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
-- List current monitors and supported resolutions with: hyprctl monitors all
-- Dual external monitor setup (laptop lid closed).
-- Layout, left -> right: [ 1: C24 / DP-1 ] [ 2: F24 / HDMI-A-1 ] [ eDP-1 ]
-- eDP-1 sits to the right of the externals and Hyprland automatically
-- disables it when the lid is closed (since an external is connected).
-- Monitor 1 - C24 curved, DisplayPort via DP->HDMI adapter.
-- NOTE: the DP2HDMI adapter caps this panel at 1920x1080@60 (no 75Hz mode).
hl.monitor({ output = "DP-1", mode = "1920x1080@60", position = "0x0", scale = 1 })
-- Monitor 2 - Sceptre F24, HDMI, native 75Hz.
hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@75", position = "1920x0", scale = 1 })
-- Laptop panel - only mode is 1920x1200@60. Parked right of the externals;
-- auto-off on lid close so no windows get stranded on a closed screen.
hl.monitor({ output = "eDP-1", mode = "1920x1200@60", position = "3840x0", scale = 1.5 })
-- Catch-all fallback for any other/unknown display.
hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })
-- GDK_SCALE forced integer scaling is intentionally left unset: the external
-- monitors run at 1x, so a global 2x would blow up GTK apps on them. The
-- per-monitor scale factors above are enough.
-- hl.env("GDK_SCALE", "2")