Compare commits

..
40 Commits
Author SHA1 Message Date
David Heinemeier Hansson 8fcc9d6048 Merge branch 'master' into rc 2026-07-20 14:05:35 -07:00
David Heinemeier Hansson bc4eb93f59 Package name is now neovim 2026-07-20 09:21:21 -07:00
David Heinemeier HanssonandClaude Fable 5 94305c9284 Fix Neovim theme symlink pointing at the Omarchy 4 theme location (#6318)
* Address upgrade migration review feedback

* Only promote firmware during kernel transitions

* Remove the dropped packages preventing installation

* Fix Neovim theme symlink pointing at the Omarchy 4 theme location

omarchy-nvim briefly created ~/.config/nvim/lua/plugins/theme.lua linked
to ~/.local/state/omarchy/current, which doesn't exist on Omarchy 3.x,
so fresh installs errored on nvim startup with "Failed to load
plugins.theme" (#6309). Retarget the link to ~/.config/omarchy/current
unless the user has already customized it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 22:34:08 -07:00
David Heinemeier HanssonandClaude Fable 5 8e43c97610 Fix Neovim theme symlink pointing at the Omarchy 4 theme location (#6318)
* Address upgrade migration review feedback

* Only promote firmware during kernel transitions

* Remove the dropped packages preventing installation

* Fix Neovim theme symlink pointing at the Omarchy 4 theme location

omarchy-nvim briefly created ~/.config/nvim/lua/plugins/theme.lua linked
to ~/.local/state/omarchy/current, which doesn't exist on Omarchy 3.x,
so fresh installs errored on nvim startup with "Failed to load
plugins.theme" (#6309). Retarget the link to ~/.config/omarchy/current
unless the user has already customized it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 21:59:10 -07:00
David Heinemeier Hansson bec26eeab9 Merge branch 'rc' 2026-07-14 15:32:08 -07:00
David Heinemeier Hansson c8d0032d81 Fix Foot text bindings migration 2026-07-14 15:31:19 -07:00
David Heinemeier Hansson fe30a07db2 Remove the dropped packages preventing installation 2026-07-14 11:11:07 -07:00
David Heinemeier Hansson 0b22d6c138 Remove the dropped packages preventing installation 2026-07-13 17:47:59 -07:00
David Heinemeier Hansson 5f3a8d45c9 New waybar won't die without a pkill -9 2026-07-13 17:45:28 -07:00
David Heinemeier Hansson 6aa2aec1c0 Merge pull request #6208 from basecamp/3-8-3
Omarchy 3.8.3
2026-07-13 15:56:11 -07:00
David Heinemeier Hansson 96fb7df477 Only promote firmware during kernel transitions 2026-07-13 12:49:16 -07:00
David Heinemeier Hansson 08f2d86031 Address upgrade migration review feedback 2026-07-13 12:40:59 -07:00
David Heinemeier Hansson 9791b2279c Make package removal ignore providers 2026-07-12 19:32:20 -07:00
David Heinemeier Hansson f1fa7f6944 Nudge XPS 13 text scaling down just ever so slightly 2026-07-12 17:05:02 -07:00
DiegoandClaude Opus 4.8 749a8c0466 Drop fixed unit name from power-profile udev rule to prevent wakeup failures
On USB-C-only laptops, multiple power_supply udev events fire at once on
resume, and each tries to create the same --unit=omarchy-power-profile
transient unit, so all but the first fail with "unit already loaded" and log
an error on every wakeup. Drop the fixed unit name so each event gets an
auto-generated one; powerprofilesctl set is idempotent, so concurrent runs are
harmless, and --collect still garbage-collects each unit on exit.

Closes #6091.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 08:15:48 -07:00
Zeus-DeusandClaude Opus 4.8 e891e5c22f Bundle vconsole.conf in the initramfs so Plymouth uses the right keymap at the LUKS prompt
Plymouth 26 reads the keyboard layout from /etc/vconsole.conf, but the keymap
hook only bakes in the compiled keymap.bin, not the config file, so the LUKS
prompt falls back to US QWERTY. Add FILES+=(/etc/vconsole.conf) to
omarchy_hooks.conf so the initramfs carries it. New installs pick it up via
limine-snapper.sh; existing installs get it through a migration that rebuilds
the UKI. Additive — keymap.bin is unchanged, so no extra lockout risk.

Closes #6183. Related to #6151 and #6072.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 08:00:13 -07:00
Sai SridharandClaude Opus 4.8 da46ad859a Backfill Mesa Vulkan drivers for systems installed before vulkan.sh
Systems installed before vulkan.sh (2026-02-20) never received their Mesa
Vulkan ICD. Add a migration replaying vulkan.sh's GPU vendor detection and
idempotent omarchy-pkg-add calls to backfill Intel/AMD/Asahi drivers.

Closes #6199. Reported in #6089.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 07:49:12 -07:00
David Heinemeier Hansson efcd780580 Append the terminal feature instead of just ovewrwritting the 3 2026-07-12 07:38:10 -07:00
David Heinemeier Hansson 5bba34d4d3 Add mup alias for updating mise without the release age guard 2026-07-11 22:34:11 -07:00
David Heinemeier Hansson 54410563bb Add cy alias for codex 2026-07-11 22:34:00 -07:00
David Heinemeier HanssonandClaude Opus 4.8 ffa8102113 Widen sof-firmware install to all Intel SOF audio platforms
Adapts basecamp/omarchy#6200. The sof-audio-pci-intel-* driver family
(Arrow Lake, Meteor Lake, Tiger Lake, Alder Lake, and more) needs
sof-firmware to boot the DSP, but mainline linux only optdeps it, so
fresh installs came up with no audio (Dummy Output only).

Replace the Panther/Wildcat Lake GPU checks with omarchy-hw-intel-sof,
which detects any Intel PCI audio controller. Drop the XPS exclusion
since omarchy-pkg-add is idempotent and the check is harmless there.
Remove the now-orphaned omarchy-hw-intel-wcl detector and backfill
existing installs via migration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 22:30:47 -07:00
David Heinemeier Hansson f36f577d16 Merge branch 'master' into 3-8-3 2026-07-11 22:26:35 -07:00
David Heinemeier Hansson e081054786 Bump version 2026-07-11 22:25:08 -07:00
David Heinemeier HanssonandClaude Opus 4.8 22a484db9c Add migration for easier tmux pane controls
Updates existing users' terminal and tmux configs to match ca19e2de:
Alt+Enter/Alt+Shift+Enter splits and Alt+Escape kill in tmux, plus
CSI-u Shift+Enter encodings across alacritty, foot, ghostty, and kitty.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 22:21:22 -07:00
David Heinemeier Hansson dc804616ee Make sure Intel wildcat machines get sof-firmware for working audio 2026-07-11 22:14:44 -07:00
David Heinemeier Hansson ab92126cce Use titles for better remote server identification with hyprland groups 2026-07-11 21:56:09 -07:00
David Heinemeier Hansson ca19e2dead Add easier tmux pane controls 2026-07-11 21:55:43 -07:00
David Heinemeier Hansson ae7365f937 Fix repeated fingerprint setup 2026-05-27 21:20:39 +02:00
David Heinemeier Hansson 8e03151647 Fix compatibility of old tiling.conf with HL 0.55+
Closes #5973
2026-05-25 14:51:07 +02:00
David Heinemeier Hansson 9a5e80f2be Fix compatibility of old tiling.conf with HL 0.55+
Closes #5973
2026-05-25 14:50:56 +02:00
David Heinemeier HanssonandRyan Hughes c3f35c57fb Omarchy 3.8.2 (#5960)
* Fix logs uploading

* Fail hard if we don't get the right branch

* Fix HL 0.55 compatible unified clipboard hotkeys

* Bump version

---------

Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
2026-05-24 12:53:51 +02:00
Ryan Hughes f9e41548c1 Bump version 2026-05-23 18:27:38 -04:00
David Heinemeier Hansson ea25179b7c Fix HL 0.55 compatible unified clipboard hotkeys 2026-05-23 20:05:46 +02:00
Ryan Hughes b4939c8ccb Fail hard if we don't get the right branch 2026-05-23 02:04:14 -04:00
Ryan Hughes 703581cee2 Fix logs uploading 2026-05-22 12:04:45 -04:00
Jisnu 9c8f6cf2cb fix: remove pseudotile and fix -1 gradient colors for Hyprland 0.55.x (#5922) 2026-05-21 08:21:42 +02:00
Ryan Hughes 82f99928d0 Bump version from 3.8.0 to 3.8.1 2026-05-14 13:23:48 -04:00
Ryan Hughes 6b5baf06ad Merge pull request #5816 from basecamp/fix-reinstall-git-default-branch
Pin omarchy-reinstall-git to master branch
2026-05-14 13:22:35 -04:00
Ryan Hughes 32a82dd15b Pin omarchy-reinstall-git to master branch
GitHub's default branch on basecamp/omarchy is no longer master, so
a plain clone pulls the development branch. Pass --branch master so
reinstalls always land on stable regardless of repo default.
2026-05-14 13:18:46 -04:00
David Heinemeier Hansson b2d95ee24b libretro-vice is now an explosion of minor pkgs 2026-05-10 16:47:29 +02:00
33 changed files with 237 additions and 56 deletions

No files matched your search

+2 -4
View File
@@ -74,15 +74,13 @@ ACTION=$(gum choose "${OPTIONS[@]}")
case "$ACTION" in
"Upload log")
echo "Uploading debug log to 0x0.st..."
URL=$(curl -sF "file=@$LOG_FILE" -Fexpires=24 https://0x0.st)
echo "Uploading debug log to logs.omarchy.org..."
URL=$(curl -sf -F "file=@$LOG_FILE" https://logs.omarchy.org/)
if (( $? == 0 )) && [[ -n $URL ]]; then
echo "✓ Log uploaded successfully!"
echo "Share this URL:"
echo ""
echo " $URL"
echo ""
echo "This link will expire in 24 hours."
else
echo "Error: Failed to upload log file"
exit 1
+1
View File
@@ -18,6 +18,7 @@ if [[ -f $FIRST_RUN_MODE ]]; then
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
bash "$OMARCHY_PATH/install/first-run/swayosd.sh"
bash "$OMARCHY_PATH/install/first-run/gtk-primary-paste.sh"
bash "$OMARCHY_PATH/install/first-run/text-scaling.sh"
bash "$OMARCHY_PATH/install/first-run/elephant.sh"
omarchy-hook-install post-update "$OMARCHY_PATH/install/first-run/install-voxtype.hook"
sudo rm -f /etc/sudoers.d/first-run
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# omarchy:summary=Detect whether the computer has an Intel SOF-capable audio DSP.
# Matches Intel audio controllers (PCI class Multimedia audio or Audio device)
# present on Skylake-and-later platforms that use sof-audio-pci-intel-* drivers.
lspci | grep -qiE '(Multimedia audio controller|Audio device).*Intel'
+6 -3
View File
@@ -10,18 +10,21 @@ omarchy-pkg-add \
retroarch-assets-glui retroarch-assets-ozone retroarch-assets-xmb \
libretro-beetle-pce libretro-beetle-pce-fast libretro-beetle-psx libretro-beetle-psx-hw libretro-beetle-supergrafx \
libretro-blastem \
libretro-bsnes libretro-bsnes-hd libretro-bsnes2014 \
libretro-bsnes libretro-bsnes-hd \
libretro-core-info \
libretro-desmume libretro-dolphin libretro-flycast \
libretro-gambatte libretro-genesis-plus-gx \
libretro-kronos \
libretro-mame libretro-mame2016 libretro-melonds libretro-mesen libretro-mesen-s libretro-mgba libretro-mupen64plus-next \
libretro-mame libretro-melonds libretro-mesen libretro-mesen-s libretro-mgba libretro-mupen64plus-next \
libretro-nestopia \
libretro-overlays \
libretro-parallel-n64 libretro-picodrive libretro-play libretro-ppsspp \
libretro-sameboy libretro-scummvm libretro-shaders-slang libretro-snes9x \
libretro-yabause \
libretro-cap32-git libretro-fbneo-git libretro-uae-git libretro-vice-git \
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
libretro-database-git \
retroarch-joypad-autoconfig-git
+1 -1
View File
@@ -6,7 +6,7 @@
installed=()
for pkg in "$@"; do
if pacman -Q "$pkg" &>/dev/null; then
if pacman -Qq | grep -Fxq "$pkg"; then
installed+=("$pkg")
fi
done
+1 -1
View File
@@ -6,6 +6,6 @@ set -e
# Reinstall the Omarchy configuration directory from the git source.
git clone --depth=1 "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
git clone --depth=1 --branch master "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
mv $OMARCHY_PATH ~/.local/share/omarchy-old
mv ~/.local/share/omarchy-new $OMARCHY_PATH
+6 -3
View File
@@ -10,18 +10,21 @@ omarchy-pkg-drop \
retroarch-assets-glui retroarch-assets-ozone retroarch-assets-xmb \
libretro-beetle-pce libretro-beetle-pce-fast libretro-beetle-psx libretro-beetle-psx-hw libretro-beetle-supergrafx \
libretro-blastem \
libretro-bsnes libretro-bsnes-hd libretro-bsnes2014 \
libretro-bsnes libretro-bsnes-hd \
libretro-core-info \
libretro-desmume libretro-dolphin libretro-flycast \
libretro-gambatte libretro-genesis-plus-gx \
libretro-kronos \
libretro-mame libretro-mame2016 libretro-melonds libretro-mesen libretro-mesen-s libretro-mgba libretro-mupen64plus-next \
libretro-mame libretro-melonds libretro-mesen libretro-mesen-s libretro-mgba libretro-mupen64plus-next \
libretro-nestopia \
libretro-overlays \
libretro-parallel-n64 libretro-picodrive libretro-play libretro-ppsspp \
libretro-sameboy libretro-scummvm libretro-shaders-slang libretro-snes9x \
libretro-yabause \
libretro-cap32-git libretro-fbneo-git libretro-uae-git libretro-vice-git \
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
retroarch-joypad-autoconfig-git
rm -rf \
+5 -5
View File
@@ -53,12 +53,12 @@ echo -e "\e[32mSetting up fingerprint scanner for authentication.\n\e[0m"
# Install required packages
echo "Installing required packages..."
installed_libfprint=$(pacman -Qq libfprint 2>/dev/null || true)
# libfprint-git provides+conflicts libfprint; pacman -S --noconfirm
# defaults the conflict prompt to N and aborts. Pre-remove libfprint
# with -Rdd so the install goes silent. -Rdd (not omarchy-pkg-drop's
# -Rns) is required because fprintd requires libfprint; the dep is
# re-satisfied immediately by libfprint-git's provides=libfprint.
if omarchy-pkg-present libfprint; then
# defaults the conflict prompt to N and aborts. Pre-remove the exact
# libfprint package, but not an installed provider like libfprint-git.
if [[ $installed_libfprint == "libfprint" ]]; then
sudo pacman -Rdd --noconfirm libfprint
fi
+1 -1
View File
@@ -6,7 +6,7 @@
omarchy-toggle waybar-off
if pgrep -x waybar >/dev/null; then
pkill -x waybar
pkill -9 -x waybar
else
uwsm-app -- waybar >/dev/null 2>&1 &
fi
+24 -12
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Upload logs to 0x0.st
# omarchy:summary=Upload logs to logs.omarchy.org
# omarchy:args=<log-file>
# omarchy:hidden=true
@@ -28,7 +28,7 @@ else
echo "========================================="
echo "SYSTEM INFORMATION"
echo "========================================="
echo "Hostname: $(hostname)"
echo "Hostname: $(uname -n)"
echo "Kernel: $(uname -r)"
echo "Date: $(date)"
echo ""
@@ -41,19 +41,33 @@ fi
case "$LOG_TYPE" in
install)
# In the live ISO before reboot, the target system is mounted at /mnt so the
# omarchy install log lives at /mnt/var/log/omarchy-install.log. On the
# installed system it's at /var/log/omarchy-install.log. Prefer whichever
# exists, with /mnt taking precedence (only present in the ISO context, and
# there it's the right one).
ARCHINSTALL_LOG="/var/log/archinstall/install.log"
OMARCHY_LOG="/var/log/omarchy-install.log"
if [[ -s /mnt/var/log/omarchy-install.log ]]; then
OMARCHY_LOG="/mnt/var/log/omarchy-install.log"
else
OMARCHY_LOG="/var/log/omarchy-install.log"
fi
# Combine system info with logs
cat "$SYSTEM_INFO" >"$TEMP_LOG"
cat $ARCHINSTALL_LOG $OMARCHY_LOG >>"$TEMP_LOG" 2>/dev/null
[[ -s $ARCHINSTALL_LOG ]] && cat "$ARCHINSTALL_LOG" >>"$TEMP_LOG"
if [[ -s $OMARCHY_LOG ]]; then
printf '\n========================================\nOMARCHY INSTALL LOG (%s)\n========================================\n\n' "$OMARCHY_LOG" >>"$TEMP_LOG"
cat "$OMARCHY_LOG" >>"$TEMP_LOG"
else
echo "Warning: omarchy install log not found (looked at /mnt/var/log/ and /var/log/)" >&2
fi
if [[ ! -s $TEMP_LOG ]]; then
echo "Error: No install logs found"
exit 1
fi
echo "Uploading installation log to 0x0.st..."
echo "Uploading installation log to logs.omarchy.org..."
;;
this-boot)
@@ -66,7 +80,7 @@ this-boot)
exit 1
fi
echo "Uploading current boot logs to 0x0.st..."
echo "Uploading current boot logs to logs.omarchy.org..."
;;
last-boot)
@@ -79,7 +93,7 @@ last-boot)
exit 1
fi
echo "Uploading previous boot logs to 0x0.st..."
echo "Uploading previous boot logs to logs.omarchy.org..."
;;
installed|system-info)
@@ -98,7 +112,7 @@ installed|system-info)
exit 1
fi
echo "Uploading system information to 0x0.st..."
echo "Uploading system information to logs.omarchy.org..."
;;
*)
@@ -113,15 +127,13 @@ esac
echo ""
URL=$(curl -sF "file=@$TEMP_LOG" -Fexpires=24 https://0x0.st)
URL=$(curl -sf -F "file=@$TEMP_LOG" https://logs.omarchy.org/)
if (( $? == 0 )) && [[ -n $URL ]]; then
echo "✓ Log uploaded successfully!"
echo "Share this URL:"
echo ""
echo " $URL"
echo ""
echo "This link will expire in 24 hours."
else
echo "Error: Failed to upload log file"
exit 1
+4 -6
View File
@@ -1,5 +1,7 @@
#!/bin/bash
set -e
# Set install mode to online since boot.sh is used for curl installations
export OMARCHY_ONLINE_INSTALL=true
@@ -38,13 +40,9 @@ sudo pacman -Syu --noconfirm --needed git
OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}"
echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git"
rm -rf ~/.local/share/omarchy/
git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
echo -e "\e[32mUsing branch: $OMARCHY_REF\e[0m"
cd ~/.local/share/omarchy
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
cd -
rm -rf ~/.local/share/omarchy/
git clone --branch "$OMARCHY_REF" "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
echo -e "\nInstallation starting..."
source ~/.local/share/omarchy/install.sh
+4 -1
View File
@@ -21,5 +21,8 @@ decorations = "None"
bindings = [
{ key = "Insert", mods = "Shift", action = "Paste" },
{ key = "Insert", mods = "Control", action = "Copy" },
{ key = "Return", mods = "Shift", chars = "\u001B\r" }
# Send Shift+Return as CSI-u so TUIs can distinguish it from Return without treating it as Alt+Return.
{ key = "Return", mods = "Shift", chars = "\u001B[13;2u" },
# Legacy encoding sends Alt+Shift+Return the same as Alt+Return; send CSI-u so tmux can match M-S-Enter.
{ key = "Return", mods = "Alt|Shift", chars = "\u001B[13;4u" }
]
+1 -1
View File
@@ -1 +1 @@
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT, Insert,"'
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT,Insert,activewindow"'
+6
View File
@@ -17,3 +17,9 @@ blink=no
clipboard-copy=Control+Insert
primary-paste=none
clipboard-paste=Shift+Insert
[text-bindings]
# Send Shift+Return as CSI-u so TUIs can distinguish it from Return.
\x1b[13;2u=Shift+Return
# Send Alt+Shift+Return as CSI-u so tmux can match M-S-Enter.
\x1b[13;4u=Mod1+Shift+Return
+4
View File
@@ -25,6 +25,10 @@ shell-integration-features = no-cursor,ssh-env
# Keyboard bindings
keybind = shift+insert=paste_from_clipboard
keybind = control+insert=copy_to_clipboard
# Send Shift+Enter as CSI-u so TUIs can distinguish it from Enter.
keybind = shift+enter=csi:13;2u
# Legacy encoding sends Alt+Shift+Enter the same as Alt+Enter; send CSI-u so tmux can match M-S-Enter.
keybind = alt+shift+enter=csi:13;4u
keybind = super+control+shift+alt+arrow_down=resize_split:down,100
keybind = super+control+shift+alt+arrow_up=resize_split:up,100
keybind = super+control+shift+alt+arrow_left=resize_split:left,100
+4
View File
@@ -13,6 +13,10 @@ confirm_os_window_close 0
# Keybindings
map ctrl+insert copy_to_clipboard
map shift+insert paste_from_clipboard
# Send Shift+Enter as CSI-u so TUIs can distinguish it from Enter.
map shift+enter send_text all \e[13;2u
# Kitty legacy encoding sends Alt+Shift+Enter the same as Alt+Enter; send CSI-u so tmux can match M-S-Enter.
map alt+shift+enter send_text all \e[13;4u
# Allow remote access
allow_remote_control yes
+7
View File
@@ -12,6 +12,10 @@ bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
# Pane Controls
bind -n M-Enter split-window -v -c "#{pane_current_path}"
bind -n M-S-Enter split-window -h -c "#{pane_current_path}"
bind -n M-Escape kill-pane
bind h split-window -v -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
bind x kill-pane
@@ -72,6 +76,7 @@ setw -g aggressive-resize on
set -g detach-on-destroy off
set -g extended-keys on
set -g extended-keys-format csi-u
set -ag terminal-features "xterm-kitty:extkeys"
set -sg escape-time 10
# Status bar
@@ -82,6 +87,8 @@ set -g status-right-length 50
set -g window-status-separator ""
set -gw automatic-rename on
set -gw automatic-rename-format '#{b:pane_current_path}'
set -g set-titles on
set -g set-titles-string '#h:#W'
# Theme
set -g status-style "bg=default,fg=default"
+2
View File
@@ -45,12 +45,14 @@ alias ....='cd ../../..'
# Tools
alias c='opencode'
alias cx='printf "\033[2J\033[3J\033[H" && claude --permission-mode bypassPermissions'
alias cy='codex -s danger-full-access -a never'
alias d='docker'
alias r='rails'
alias t='tmux attach || tmux new -s Work'
alias ic='tdl c'
alias ix='tdl cx'
alias icx='tdl c cx'
alias mup='MISE_MINIMUM_RELEASE_AGE=0 mise up'
n() { if [ "$#" -eq 0 ]; then command nvim . ; else command nvim "$@"; fi; }
# Git
+3 -3
View File
@@ -1,5 +1,5 @@
# Copy / Paste
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, activewindow
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, activewindow
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, activewindow
bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard
+1 -1
View File
@@ -6,7 +6,7 @@ bindd = SUPER, W, Close window, killactive,
bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all
# Control tiling
bindd = SUPER, J, Toggle window split, togglesplit, # dwindle
bindd = SUPER, J, Toggle window split, layoutmsg, togglesplit
bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating,
bindd = SHIFT, F11, Force full screen, fullscreen, 0
+4 -5
View File
@@ -50,8 +50,8 @@ decoration {
group {
col.border_active = $activeBorderColor
col.border_inactive = $inactiveBorderColor
col.border_locked_active = -1
col.border_locked_inactive = -1
col.border_locked_active = $activeBorderColor
col.border_locked_inactive = $inactiveBorderColor
groupbar {
font_size = 12
@@ -108,9 +108,8 @@ animations {
# See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
force_split = 2 # Always split on the right
preserve_split = true
force_split = 2
}
scrolling {
@@ -1,8 +1,9 @@
# Install Sound Open Firmware for the audio DSP on non-XPS Intel Panther
# Lake systems. XPS PTL stays on linux-ptl, which hard-deps sof-firmware.
# Mainline `linux` only optdeps it, so without this the DSP fails to boot
# and only auto_null shows up in PipeWire.
# Install Sound Open Firmware for the audio DSP on Intel systems that need it.
# The sof-audio-pci-intel-* driver family requires sof-firmware to initialise
# the DSP; without it the DSP fails to boot and PipeWire exposes only a Dummy
# Output sink. This affects Arrow Lake, Meteor Lake, Tiger Lake, Alder Lake,
# Wildcat Lake, Panther Lake, and similar platforms.
if omarchy-hw-intel-ptl && ! omarchy-hw-match "XPS"; then
if omarchy-hw-intel-sof; then
omarchy-pkg-add sof-firmware
fi
+2 -2
View File
@@ -1,7 +1,7 @@
if omarchy-battery-present; then
cat <<EOF | sudo tee "/etc/udev/rules.d/99-power-profile.rules"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-power-profile --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set"
SUBSYSTEM=="power_supply", ATTR{type}=="USB", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-power-profile --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", RUN+="/usr/bin/systemd-run --no-block --collect --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set"
SUBSYSTEM=="power_supply", ATTR{type}=="USB", RUN+="/usr/bin/systemd-run --no-block --collect --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set"
EOF
sudo systemctl enable power-profiles-daemon
+5
View File
@@ -0,0 +1,5 @@
# Nudge text down slightly on the Dell XPS 13 (DX13260, 2026), whose 2560x1600
# panel renders the default scaling a touch large.
if omarchy-hw-match "DX13260"; then
gsettings set org.gnome.desktop.interface text-scaling-factor 0.95
fi
+1
View File
@@ -1,6 +1,7 @@
if command -v limine &>/dev/null; then
sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf <<EOF >/dev/null
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
FILES+=(/etc/vconsole.conf)
EOF
sudo tee /etc/mkinitcpio.conf.d/thunderbolt_module.conf <<EOF >/dev/null
MODULES+=(thunderbolt)
+1 -1
View File
@@ -89,7 +89,7 @@ noto-fonts
noto-fonts-cjk
noto-fonts-emoji
nss-mdns
nvim
neovim
obs-studio
obsidian
omarchy-nvim
+11
View File
@@ -0,0 +1,11 @@
echo "Update elephant symbols paste shortcut for Hyprland 0.55"
symbols_config=~/.config/elephant/symbols.toml
if [[ -f $symbols_config ]]; then
sed -i 's/hyprctl dispatch sendshortcut "SHIFT, Insert,"/hyprctl dispatch sendshortcut "SHIFT,Insert,activewindow"/' "$symbols_config"
else
omarchy-refresh-config elephant/symbols.toml
fi
omarchy-restart-walker
+11
View File
@@ -0,0 +1,11 @@
echo "Bundle the console keymap into the initramfs so Plymouth uses the right keyboard layout at the LUKS prompt"
HOOKS_CONF="/etc/mkinitcpio.conf.d/omarchy_hooks.conf"
if [[ -f $HOOKS_CONF ]] && ! grep -q '/etc/vconsole.conf' "$HOOKS_CONF"; then
echo "FILES+=(/etc/vconsole.conf)" | sudo tee -a "$HOOKS_CONF" >/dev/null
if omarchy-cmd-present limine-mkinitcpio; then
sudo limine-mkinitcpio
fi
fi
+19
View File
@@ -0,0 +1,19 @@
echo "Backfill Mesa Vulkan drivers for systems installed before vulkan.sh was added"
declare -A VULKAN_DRIVERS=(
[Intel]=vulkan-intel
[AMD]=vulkan-radeon
[Apple]=vulkan-asahi
)
PACKAGES=()
for vendor in "${!VULKAN_DRIVERS[@]}"; do
if lspci | grep -iE "(VGA|Display).*$vendor" > /dev/null; then
PACKAGES+=("${VULKAN_DRIVERS[$vendor]}")
fi
done
if (( ${#PACKAGES[@]} > 0 )); then
omarchy-pkg-add "${PACKAGES[@]}"
fi
+65
View File
@@ -0,0 +1,65 @@
echo "Add easier tmux pane controls with Alt+Enter splits and CSI-u Shift+Enter across terminals"
# tmux: add pane bindings, enable kitty extkeys, and set informative terminal titles
tmux_config="$HOME/.config/tmux/tmux.conf"
if [[ -f $tmux_config ]]; then
if ! grep -Fq 'bind -n M-Escape kill-pane' "$tmux_config"; then
sed -i '/^# Pane Controls$/a\bind -n M-Escape kill-pane' "$tmux_config"
fi
if ! grep -Fq 'bind -n M-S-Enter split-window' "$tmux_config"; then
sed -i '/^# Pane Controls$/a\bind -n M-S-Enter split-window -h -c "#{pane_current_path}"' "$tmux_config"
fi
if ! grep -Fq 'bind -n M-Enter split-window' "$tmux_config"; then
sed -i '/^# Pane Controls$/a\bind -n M-Enter split-window -v -c "#{pane_current_path}"' "$tmux_config"
fi
if ! grep -q "xterm-kitty:extkeys" "$tmux_config"; then
sed -i '/^set -g extended-keys-format csi-u$/a\set -ag terminal-features "xterm-kitty:extkeys"' "$tmux_config"
fi
if ! grep -Fq 'set -g set-titles on' "$tmux_config"; then
sed -i "/^set -gw automatic-rename-format/a\\set -g set-titles on" "$tmux_config"
fi
if ! grep -Fq 'set -g set-titles-string' "$tmux_config"; then
sed -i "/^set -g set-titles on$/a\\set -g set-titles-string '#h:#W'" "$tmux_config"
fi
omarchy-restart-tmux
fi
# alacritty: replace the old Shift+Return binding with CSI-u encodings
alacritty_config="$HOME/.config/alacritty/alacritty.toml"
if [[ -f $alacritty_config ]] && ! grep -q '13;2u' "$alacritty_config"; then
sed -i -E 's|^([[:space:]]*).*chars = "\\u001B\\r".*|\1# Send Shift+Return as CSI-u so TUIs can distinguish it from Return without treating it as Alt+Return.\n\1{ key = "Return", mods = "Shift", chars = "\\u001B[13;2u" },\n\1# Legacy encoding sends Alt+Shift+Return the same as Alt+Return; send CSI-u so tmux can match M-S-Enter.\n\1{ key = "Return", mods = "Alt\|Shift", chars = "\\u001B[13;4u" }|' "$alacritty_config"
fi
# foot: add CSI-u text bindings for Shift+Return and Alt+Shift+Return
foot_config="$HOME/.config/foot/foot.ini"
if [[ -f $foot_config ]]; then
if ! grep -q '^\[text-bindings\]$' "$foot_config"; then
printf '\n[text-bindings]\n' >> "$foot_config"
fi
if ! grep -Fq '\x1b[13;4u=Mod1+Shift+Return' "$foot_config"; then
sed -i '/^\[text-bindings\]$/a\# Send Alt+Shift+Return as CSI-u so tmux can match M-S-Enter.\n\\x1b[13;4u=Mod1+Shift+Return' "$foot_config"
fi
if ! grep -Fq '\x1b[13;2u=Shift+Return' "$foot_config"; then
sed -i '/^\[text-bindings\]$/a\# Send Shift+Return as CSI-u so TUIs can distinguish it from Return.\n\\x1b[13;2u=Shift+Return' "$foot_config"
fi
fi
# ghostty: add CSI-u keybinds for Shift+Enter and Alt+Shift+Enter
ghostty_config="$HOME/.config/ghostty/config"
if [[ -f $ghostty_config ]] && ! grep -q 'csi:13;2u' "$ghostty_config"; then
sed -i '/^keybind = control+insert=copy_to_clipboard$/a\# Send Shift+Enter as CSI-u so TUIs can distinguish it from Enter.\nkeybind = shift+enter=csi:13;2u\n# Legacy encoding sends Alt+Shift+Enter the same as Alt+Enter; send CSI-u so tmux can match M-S-Enter.\nkeybind = alt+shift+enter=csi:13;4u' "$ghostty_config"
fi
# kitty: add CSI-u key mappings for Shift+Enter and Alt+Shift+Enter
kitty_config="$HOME/.config/kitty/kitty.conf"
if [[ -f $kitty_config ]] && ! grep -q '13;2u' "$kitty_config"; then
sed -i '/^map shift+insert paste_from_clipboard$/a\# Send Shift+Enter as CSI-u so TUIs can distinguish it from Enter.\nmap shift+enter send_text all \\e[13;2u\n# Kitty legacy encoding sends Alt+Shift+Enter the same as Alt+Enter; send CSI-u so tmux can match M-S-Enter.\nmap alt+shift+enter send_text all \\e[13;4u' "$kitty_config"
fi
+11
View File
@@ -0,0 +1,11 @@
echo "Install sof-firmware for all Intel SOF audio DSP platforms (Arrow Lake, Meteor Lake, etc.)"
# Intel SOF platforms beyond Panther Lake and Wildcat Lake (Arrow Lake, Meteor
# Lake, Tiger Lake, Alder Lake) were not covered by the original sof-firmware
# install guard. Without sof-firmware the DSP fails to boot and PipeWire exposes
# only a Dummy Output. Install it now for all qualifying Intel systems.
if omarchy-hw-intel-sof && omarchy-pkg-missing sof-firmware; then
omarchy-pkg-add sof-firmware
omarchy-state set reboot-required
fi
+10
View File
@@ -0,0 +1,10 @@
echo "Point the Neovim theme symlink at the Omarchy 3.x theme location"
# omarchy-nvim briefly created ~/.config/nvim/lua/plugins/theme.lua linked to
# the Omarchy 4 theme location, which doesn't exist on Omarchy 3.x, so Neovim
# failed to load plugins.theme on startup (#6309). Retarget the link to the
# 3.x location, but leave any customized link alone.
theme_link="$HOME/.config/nvim/lua/plugins/theme.lua"
if [[ -L $theme_link && $(readlink "$theme_link") == *.local/state/omarchy/current/theme/neovim.lua ]]; then
ln -snf "../../../../.config/omarchy/current/theme/neovim.lua" "$theme_link"
fi
+1 -1
View File
@@ -1 +1 @@
3.8.0
3.8.3