Compare commits

...

27 Commits

Author SHA1 Message Date
David Heinemeier Hansson
d346f5d522 Style 2026-02-17 12:12:30 +01:00
David Heinemeier Hansson
f152ff68ea Tweak screenshot notification 2026-02-17 12:11:48 +01:00
David Heinemeier Hansson
01d7296616 We no longer need early exit since default is not to edit
Closes #4569
2026-02-17 12:07:47 +01:00
David Heinemeier Hansson
b573a37e33 Ensure packages available on both AUR and other repos are installed from AUR
Closes #4578, #4577, #4581
2026-02-17 12:03:04 +01:00
David Heinemeier Hansson
68b4939993 Revert "fix(aur): add -a flag to yay command to assume AUR packages (#4581)" (#4627)
This reverts commit b3dd14a038.
2026-02-17 11:55:28 +01:00
Andrej Benz
b3dd14a038 fix(aur): add -a flag to yay command to assume AUR packages (#4581) 2026-02-17 11:53:39 +01:00
Stefan Gründel
7dc638358b disable opencode auto-update feature as we rely on pacman (#4582)
* disable opencode auto-update feature as we rely on pacman

* Refreshing already produces a .bak, so that's enough

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-02-17 11:42:54 +01:00
David Heinemeier Hansson
3e07255fbc Better split 2026-02-17 11:26:41 +01:00
David Heinemeier Hansson
02fd1961b9 Interactive drive picker if a drive is not selected
Co-authored-by: @Mrid22
Closes #4596
2026-02-17 11:25:09 +01:00
Shreyansh Malviya
40bff09c84 Remove Wayland color manager disabling flag from Chromium configs (#4610) (#4615)
Signed-off-by: Shreyansh Malviya <shreyanshmalviya0012@gmail.com>
2026-02-17 10:51:24 +01:00
David Heinemeier Hansson
6ff13fc071 These are window keys, not pane keys 2026-02-16 21:52:19 +01:00
David Heinemeier Hansson
a33cf4f287 Reload the config live when we refresh 2026-02-16 21:48:21 +01:00
David Heinemeier Hansson
2e2d78088a Direct access to windows 2026-02-16 21:47:08 +01:00
David Heinemeier Hansson
b1af966819 Go straight to the new unified screenshot flow 2026-02-16 14:27:29 +01:00
David Heinemeier Hansson
e055358721 Add eff to open the result of the fuzzy find directly in your editor 2026-02-16 14:08:14 +01:00
David Heinemeier Hansson
8b6e2466a3 Add the tmux dev layout 2026-02-16 10:33:56 +01:00
David Heinemeier Hansson
560500d8ec Allow passthrough 2026-02-16 10:26:31 +01:00
Horace Ko
463417a281 Use a thin space to increase spacing between Omarchy glyph and its label. (#4586) 2026-02-13 18:43:23 +01:00
Ryan Hughes
bbb57e98c1 Update screenshot behavior
- Unifies screenshot to a single shortcut
- Provides easy override for screenshot editor of choice via env var or
flag
- Edit screenshots via clicking the notification
- Screenshots are copied to clipboard + saved by default
2026-02-12 17:04:48 -05:00
David Heinemeier Hansson
e38dd063a6 Latest version 2026-02-12 11:20:47 +01:00
David Heinemeier Hansson
a4d6e3ab03 More natural this way 2026-02-11 22:53:12 +01:00
David Heinemeier Hansson
fc529b368d Match direction from the sessino list 2026-02-11 16:46:05 +01:00
David Heinemeier Hansson
ce01b6e0d6 Improve navigation ease 2026-02-11 14:17:32 +01:00
David Heinemeier Hansson
450d4dd82b No wifi power saving when connected to power 2026-02-11 14:06:52 +01:00
David Heinemeier Hansson
8895384b0e This is producing double pastes everywhere else 2026-02-11 12:22:58 +01:00
David Heinemeier Hansson
e4b7372666 Cannot get suspend to hibernate to work consistently across different laptops
Too many failures where it's stuck in a suspend-wake-up loop
2026-02-10 14:07:40 +01:00
David Heinemeier Hansson
a30448ceec Allow the ssh forwarding functions to take multiple ports 2026-02-10 13:39:48 +01:00
22 changed files with 264 additions and 123 deletions

View File

@@ -2,6 +2,7 @@
# Take a screenshot of the whole screen, a specific window, or a user-drawn region. # Take a screenshot of the whole screen, a specific window, or a user-drawn region.
# Saves to ~/Pictures by default, but that can be changed via OMARCHY_SCREENSHOT_DIR or XDG_PICTURES_DIR ENVs. # Saves to ~/Pictures by default, but that can be changed via OMARCHY_SCREENSHOT_DIR or XDG_PICTURES_DIR ENVs.
# Editor defaults to Satty but can be changed via --editor=<name> or OMARCHY_SCREENSHOT_EDITOR env
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs [[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}" OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}"
@@ -13,6 +14,32 @@ fi
pkill slurp && exit 0 pkill slurp && exit 0
SCREENSHOT_EDITOR="${OMARCHY_SCREENSHOT_EDITOR:-satty}"
# Parse --editor flag from any position
ARGS=()
for arg in "$@"; do
if [[ "$arg" == --editor=* ]]; then
SCREENSHOT_EDITOR="${arg#--editor=}"
else
ARGS+=("$arg")
fi
done
set -- "${ARGS[@]}"
open_editor() {
local filepath="$1"
if [[ "$SCREENSHOT_EDITOR" == "satty" ]]; then
satty --filename "$filepath" \
--output-filename "$filepath" \
--actions-on-enter save-to-clipboard \
--save-after-copy \
--copy-command 'wl-copy'
else
$SCREENSHOT_EDITOR "$filepath"
fi
}
MODE="${1:-smart}" MODE="${1:-smart}"
PROCESSING="${2:-slurp}" PROCESSING="${2:-slurp}"
@@ -25,13 +52,15 @@ get_rectangles() {
# Select based on mode # Select based on mode
case "$MODE" in case "$MODE" in
region) region)
wayfreeze & PID=$! wayfreeze &
PID=$!
sleep .1 sleep .1
SELECTION=$(slurp 2>/dev/null) SELECTION=$(slurp 2>/dev/null)
kill $PID 2>/dev/null kill $PID 2>/dev/null
;; ;;
windows) windows)
wayfreeze & PID=$! wayfreeze &
PID=$!
sleep .1 sleep .1
SELECTION=$(get_rectangles | slurp -r 2>/dev/null) SELECTION=$(get_rectangles | slurp -r 2>/dev/null)
kill $PID 2>/dev/null kill $PID 2>/dev/null
@@ -41,12 +70,13 @@ case "$MODE" in
;; ;;
smart | *) smart | *)
RECTS=$(get_rectangles) RECTS=$(get_rectangles)
wayfreeze & PID=$! wayfreeze &
PID=$!
sleep .1 sleep .1
SELECTION=$(echo "$RECTS" | slurp 2>/dev/null) SELECTION=$(echo "$RECTS" | slurp 2>/dev/null)
kill $PID 2>/dev/null kill $PID 2>/dev/null
# If the selction area is L * W < 20, we'll assume you were trying to select whichever # If the selection area is L * W < 20, we'll assume you were trying to select whichever
# window or output it was inside of to prevent accidental 2px snapshots # window or output it was inside of to prevent accidental 2px snapshots
if [[ "$SELECTION" =~ ^([0-9]+),([0-9]+)[[:space:]]([0-9]+)x([0-9]+)$ ]]; then if [[ "$SELECTION" =~ ^([0-9]+),([0-9]+)[[:space:]]([0-9]+)x([0-9]+)$ ]]; then
if ((${BASH_REMATCH[3]} * ${BASH_REMATCH[4]} < 20)); then if ((${BASH_REMATCH[3]} * ${BASH_REMATCH[4]} < 20)); then
@@ -71,16 +101,19 @@ case "$MODE" in
;; ;;
esac esac
[ -z "$SELECTION" ] && exit 0 [[ -z $SELECTION ]] && exit 0
FILENAME="screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png"
FILEPATH="$OUTPUT_DIR/$FILENAME"
if [[ $PROCESSING == "slurp" ]]; then if [[ $PROCESSING == "slurp" ]]; then
grim -g "$SELECTION" - | grim -g "$SELECTION" "$FILEPATH" || exit 1
satty --filename - \ wl-copy <"$FILEPATH"
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
--early-exit \ (
--actions-on-enter save-to-clipboard \ ACTION=$(notify-send "Screenshot saved to clipboard and file" "Edit with Super + Alt + , (or click this)" -t 10000 -i "$FILEPATH" -A "default=edit")
--save-after-copy \ [[ "$ACTION" == "default" ]] && open_editor "$FILEPATH"
--copy-command 'wl-copy' ) &
else else
grim -g "$SELECTION" - | wl-copy grim -g "$SELECTION" - | wl-copy
fi fi

View File

@@ -59,11 +59,7 @@ sudo mkdir -p /etc/mkinitcpio.conf.d
echo "Adding resume hook to $MKINITCPIO_CONF" echo "Adding resume hook to $MKINITCPIO_CONF"
echo "HOOKS+=(resume)" | sudo tee "$MKINITCPIO_CONF" >/dev/null echo "HOOKS+=(resume)" | sudo tee "$MKINITCPIO_CONF" >/dev/null
# Configure suspend-then-hibernate # Ensure keyboard backlight doesn't prevent sleep
echo "Configuring suspend-then-hibernate"
sudo mkdir -p /etc/systemd/logind.conf.d /etc/systemd/sleep.conf.d /usr/lib/systemd/system-sleep
sudo cp "$OMARCHY_PATH/default/systemd/lid.conf" /etc/systemd/logind.conf.d/
sudo cp "$OMARCHY_PATH/default/systemd/hibernate.conf" /etc/systemd/sleep.conf.d/
sudo cp -p "$OMARCHY_PATH/default/systemd/system-sleep/keyboard-backlight" /usr/lib/systemd/system-sleep/ sudo cp -p "$OMARCHY_PATH/default/systemd/system-sleep/keyboard-backlight" /usr/lib/systemd/system-sleep/
# Use ACPI alarm for RTC wakeup on s2idle systems (needed for suspend-then-hibernate) # Use ACPI alarm for RTC wakeup on s2idle systems (needed for suspend-then-hibernate)

View File

@@ -99,21 +99,13 @@ show_trigger_menu() {
show_capture_menu() { show_capture_menu() {
case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in
*Screenshot*) show_screenshot_menu ;; *Screenshot*) omarchy-cmd-screenshot ;;
*Screenrecord*) show_screenrecord_menu ;; *Screenrecord*) show_screenrecord_menu ;;
*Color*) pkill hyprpicker || hyprpicker -a ;; *Color*) pkill hyprpicker || hyprpicker -a ;;
*) show_trigger_menu ;; *) show_trigger_menu ;;
esac esac
} }
show_screenshot_menu() {
case $(menu "Screenshot" " Snap with Editing\n Straight to Clipboard") in
*Editing*) omarchy-cmd-screenshot smart ;;
*Clipboard*) omarchy-cmd-screenshot smart clipboard ;;
*) show_capture_menu ;;
esac
}
get_webcam_list() { get_webcam_list() {
v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do
if [[ "$line" != $'\t'* && -n "$line" ]]; then if [[ "$line" != $'\t'* && -n "$line" ]]; then
@@ -148,7 +140,10 @@ show_screenrecord_menu() {
*"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;; *"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;;
*"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;; *"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;;
*"With desktop + microphone audio + webcam") *"With desktop + microphone audio + webcam")
local device=$(show_webcam_select_menu) || { back_to show_capture_menu; return; } local device=$(show_webcam_select_menu) || {
back_to show_capture_menu
return
}
omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device" omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device"
;; ;;
*) back_to show_capture_menu ;; *) back_to show_capture_menu ;;
@@ -491,7 +486,7 @@ show_remove_elixir_menu() {
} }
show_update_menu() { show_update_menu() {
case $(menu "Update" " Omarchy\n󰔫 Channel\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in case $(menu "Update" " Omarchy\n󰔫 Channel\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in
*Omarchy*) present_terminal omarchy-update ;; *Omarchy*) present_terminal omarchy-update ;;
*Channel*) show_update_channel_menu ;; *Channel*) show_update_channel_menu ;;
*Config*) show_update_config_menu ;; *Config*) show_update_config_menu ;;

View File

@@ -19,8 +19,8 @@ fzf_args=(
pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}") pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
if [[ -n "$pkg_names" ]]; then if [[ -n "$pkg_names" ]]; then
# Convert newline-separated selections to space-separated for yay # Add aur/ prefix to each package name and convert to space-separated for yay
echo "$pkg_names" | tr '\n' ' ' | xargs yay -S --noconfirm echo "$pkg_names" | sed 's/^/aur\//' | tr '\n' ' ' | xargs yay -S --noconfirm
sudo updatedb sudo updatedb
omarchy-show-done omarchy-show-done
fi fi

View File

@@ -3,3 +3,4 @@
# Overwrite the user tmux config with the Omarchy default and reload tmux. # Overwrite the user tmux config with the Omarchy default and reload tmux.
omarchy-refresh-config tmux/tmux.conf omarchy-refresh-config tmux/tmux.conf
tmux source-file ~/.config/tmux/tmux.conf

5
bin/omarchy-wifi-powersave Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
for iface in /sys/class/net/*/wireless; do
iface="$(basename "$(dirname "$iface")")"
iw dev "$iface" set power_save "$1" 2>/dev/null
done

View File

@@ -2,5 +2,3 @@
--ozone-platform-hint=wayland --ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation --enable-features=TouchpadOverscrollHistoryNavigation
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url --load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
# Chromium crash workaround for Wayland color management on Hyprland - see https://github.com/hyprwm/Hyprland/issues/11957
--disable-features=WaylandWpColorManagerV1

View File

@@ -2,5 +2,3 @@
--ozone-platform-hint=wayland --ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation --enable-features=TouchpadOverscrollHistoryNavigation
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url --load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
# Chromium crash workaround for Wayland color management on Hyprland - see https://github.com/hyprwm/Hyprland/issues/11957
--disable-features=WaylandWpColorManagerV1

View File

@@ -1,4 +1,5 @@
{ {
"$schema": "https://opencode.ai/config.json", "$schema": "https://opencode.ai/config.json",
"theme": "system" "theme": "system",
"autoupdate": false
} }

View File

@@ -3,6 +3,62 @@ set -g prefix C-Space
set -g prefix2 C-b set -g prefix2 C-b
bind C-Space send-prefix bind C-Space send-prefix
# Reload config
bind q source-file ~/.config/tmux/tmux.conf
# Vi mode for copy
setw -g mode-keys vi
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 h split-window -h -c "#{pane_current_path}"
bind v split-window -v -c "#{pane_current_path}"
bind -n C-M-PageUp split-window -h -c "#{pane_current_path}"
bind -n C-M-PageDown split-window -v -c "#{pane_current_path}"
bind -n C-M-Home split-window -h -c "#{pane_current_path}"
bind -n C-M-End kill-pane
bind -n C-M-Left select-pane -L
bind -n C-M-Right select-pane -R
bind -n C-M-Up select-pane -U
bind -n C-M-Down select-pane -D
bind -n C-M-S-Left resize-pane -L 5
bind -n C-M-S-Down resize-pane -D 5
bind -n C-M-S-Up resize-pane -U 5
bind -n C-M-S-Right resize-pane -R 5
# Window navigation
bind r command-prompt -I "#W" "rename-window -- '%%'"
bind c new-window -c "#{pane_current_path}"
bind x kill-window
bind -n C-S-Home new-window -c "#{pane_current_path}"
bind -n C-S-End kill-window
bind -n C-S-PageUp next-window
bind -n C-S-PageDown previous-window
bind -n M-1 select-window -t 1
bind -n M-2 select-window -t 2
bind -n M-3 select-window -t 3
bind -n M-4 select-window -t 4
bind -n M-5 select-window -t 5
bind -n M-6 select-window -t 6
bind -n M-7 select-window -t 7
bind -n M-8 select-window -t 8
bind -n M-9 select-window -t 9
# Session controls
bind R command-prompt -I "#S" "rename-session -- '%%'"
bind C new-session
bind X kill-session
bind -n C-M-S-Home new-session -c "#{pane_current_path}"
bind -n C-M-S-End kill-session
bind -n C-M-S-PageUp switch-client -p
bind -n C-M-S-PageDown switch-client -n
# General # General
set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",*:RGB" set -ag terminal-overrides ",*:RGB"
@@ -14,6 +70,7 @@ set -g history-limit 50000
set -g escape-time 0 set -g escape-time 0
set -g focus-events on set -g focus-events on
set -g set-clipboard on set -g set-clipboard on
set -g allow-passthrough on
setw -g aggressive-resize on setw -g aggressive-resize on
set -g detach-on-destroy off set -g detach-on-destroy off
@@ -36,32 +93,3 @@ set -g message-style "bg=default,fg=blue"
set -g message-command-style "bg=default,fg=blue" set -g message-command-style "bg=default,fg=blue"
set -g mode-style "bg=blue,fg=black" set -g mode-style "bg=blue,fg=black"
setw -g clock-mode-colour blue setw -g clock-mode-colour blue
# Reload config
bind M-r source-file ~/.config/tmux/tmux.conf
# Rename window / session
bind r command-prompt -I "#W" "rename-window -- '%%'"
bind R command-prompt -I "#S" "rename-session -- '%%'"
# Vi mode for copy
setw -g mode-keys vi
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
# Pane resizing
bind -r S-Left resize-pane -L 1
bind -r S-Down resize-pane -D 1
bind -r S-Up resize-pane -U 1
bind -r S-Right resize-pane -R 1
# Saner splits that open in the same directory
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# New windows in same directory
bind c new-window -c "#{pane_current_path}"
# Sessions
bind C new-session
bind X kill-session

View File

@@ -7,6 +7,7 @@ if command -v eza &> /dev/null; then
fi fi
alias ff="fzf --preview 'bat --style=numbers --color=always {}'" alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
alias eff='$EDITOR $(ff)'
if command -v zoxide &> /dev/null; then if command -v zoxide &> /dev/null; then
alias cd="zd" alias cd="zd"

View File

@@ -4,15 +4,33 @@ alias decompress="tar -xzf"
# Write iso file to sd card # Write iso file to sd card
iso2sd() { iso2sd() {
if [ $# -ne 2 ]; then if [[ $# -lt 1 ]]; then
echo "Usage: iso2sd <input_file> <output_device>" echo "Usage: iso2sd <input_file> [output_device]"
echo "Example: iso2sd ~/Downloads/ubuntu-25.04-desktop-amd64.iso /dev/sda" echo "Example: iso2sd ~/Downloads/ubuntu-25.04-desktop-amd64.iso /dev/sda"
echo -e "\nAvailable SD cards:" return 1
lsblk -d -o NAME | grep -E '^sd[a-z]' | awk '{print "/dev/"$1}'
else
sudo dd bs=4M status=progress oflag=sync if="$1" of="$2"
sudo eject $2
fi fi
local iso="$1"
local drive="$2"
if [[ -z $drive ]]; then
local available_sds=$(lsblk -dpno NAME | grep -E '/dev/sd')
if [[ -z $available_sds ]]; then
echo "No SD drives found and no drive specified"
return 1
fi
drive=$(omarchy-drive-select "$available_sds")
if [[ -z $drive ]]; then
echo "No drive selected"
return 1
fi
fi
sudo dd bs=4M status=progress oflag=sync if="$iso" of="$drive"
sudo eject "$drive"
} }
# Format an entire drive for a single partition using exFAT # Format an entire drive for a single partition using exFAT
@@ -90,15 +108,59 @@ img2png() {
# SSH Port Forwarding Functions # SSH Port Forwarding Functions
fip() { fip() {
[[ -z "$1" || -z "$2" ]] && echo "Usage: fip <port> <host>" && return 1 [[ $# -lt 2 ]] && echo "Usage: fip <host> <port1> [port2] ..." && return 1
ssh -f -N -L "$1:localhost:$1" "$2" && echo "Forwarding localhost:$1 -> $2:$1" local host="$1"
shift
for port in "$@"; do
ssh -f -N -L "$port:localhost:$port" "$host" && echo "Forwarding localhost:$port -> $host:$port"
done
} }
dip() { dip() {
[[ -z "$1" ]] && echo "Usage: dip <port>" && return 1 [[ $# -eq 0 ]] && echo "Usage: dip <port1> [port2] ..." && return 1
pkill -f "ssh.*-L $1:localhost:$1" && echo "Stopped forwarding port $1" || echo "No forwarding on port $1" for port in "$@"; do
pkill -f "ssh.*-L $port:localhost:$port" && echo "Stopped forwarding port $port" || echo "No forwarding on port $port"
done
} }
lip() { lip() {
pgrep -af "ssh.*-L [0-9]+:localhost:[0-9]+" || echo "No active forwards" pgrep -af "ssh.*-L [0-9]+:localhost:[0-9]+" || echo "No active forwards"
} }
# Create a tmux layout for dev with editor, ai, and terminal
tml() {
local current_dir="${PWD}"
local editor_pane ai_pane
local ai="$1"
# Get current pane ID (will become editor pane after splits)
editor_pane=$(tmux display-message -p '#{pane_id}')
# Split window vertically - top 85%, bottom 15%
tmux split-window -v -p 15 -c "$current_dir"
# Go back to top pane (editor_pane) and split it horizontally
tmux select-pane -t "$editor_pane"
tmux split-window -h -p 30 -c "$current_dir"
# After horizontal split, cursor is in the right pane (new pane)
# Get its ID and run ai there
ai_pane=$(tmux display-message -p '#{pane_id}')
tmux send-keys -t "$ai_pane" "$ai" C-m
# Run nvim in the left pane
tmux send-keys -t "$editor_pane" "$EDITOR ." C-m
# Select the nvim pane for focus
tmux select-pane -t "$editor_pane"
}
# Create a dev layout using tmux with editor, opencode, and terminal
nic() {
tml c
}
# Create a dev layout using tmux with editor, claude, and terminal
nicx() {
tml cx
}

View File

@@ -3,8 +3,3 @@ bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard
# Nautilus compatibility
bindd = SUPER, C, Nautilus Copy, sendshortcut, CTRL,c, active, class:^(org.gnome.Nautilus)$
bindd = SUPER, V, Nautilus Paste, sendshortcut, CTRL,v, active, class:^(org.gnome.Nautilus)$
bindd = SUPER, X, Nautilus Cut, sendshortcut, CTRL,x, active, class:^(org.gnome.Nautilus)$

View File

@@ -34,8 +34,7 @@ bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-brightness-display-
bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-brightness-display-apple +60000 bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-brightness-display-apple +60000
# Captures # Captures
bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot bindd = , PRINT, Screenshot, exec, omarchy-cmd-screenshot
bindd = SHIFT, PRINT, Screenshot to clipboard, exec, omarchy-cmd-screenshot smart clipboard
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a

View File

@@ -28,3 +28,7 @@ on-button-left=exec sh -c 'omarchy-notification-dismiss "Update System"; omarchy
[summary~="Learn Keybindings"] [summary~="Learn Keybindings"]
on-button-left=exec sh -c 'omarchy-notification-dismiss "Learn Keybindings"; omarchy-menu-keybindings' on-button-left=exec sh -c 'omarchy-notification-dismiss "Learn Keybindings"; omarchy-menu-keybindings'
[summary~="Screenshot copied & saved"]
max-icon-size=80
format=<b>%s</b>\n%b

View File

@@ -1,3 +0,0 @@
[Sleep]
HibernateDelaySec=90min
SuspendEstimationSec=0

View File

@@ -1,2 +0,0 @@
[Login]
HandleLidSwitch=suspend-then-hibernate

View File

@@ -20,6 +20,7 @@ run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
run_logged $OMARCHY_INSTALL/config/input-group.sh run_logged $OMARCHY_INSTALL/config/input-group.sh
run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh
run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.sh run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.sh
run_logged $OMARCHY_INSTALL/config/wifi-powersave-rules.sh
run_logged $OMARCHY_INSTALL/config/hibernation.sh run_logged $OMARCHY_INSTALL/config/hibernation.sh
run_logged $OMARCHY_INSTALL/config/hardware/network.sh run_logged $OMARCHY_INSTALL/config/hardware/network.sh
run_logged $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh run_logged $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh

View File

@@ -0,0 +1,9 @@
if omarchy-battery-present; then
cat <<EOF | sudo tee "/etc/udev/rules.d/99-wifi-powersave.rules"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave on"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave off"
EOF
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=power_supply
fi

3
migrations/1769616857.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Turn off opencode's own auto-update feature (we rely on pacman)"
omarchy-refresh-config opencode/opencode.json

3
migrations/1770811646.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Disable WiFi power save on AC power"
source $OMARCHY_PATH/install/config/wifi-powersave-rules.sh

14
migrations/1771188969.sh Normal file
View File

@@ -0,0 +1,14 @@
echo "Remove temporary Wayland color manager disabling flag from existing Chromium configs"
# This reverts the workaround originally added by migration 1760401344.sh
# Remove flag and comment from chromium-flags.conf only if found
if [[ -f ~/.config/chromium-flags.conf ]]; then
sed -i '/--disable-features=WaylandWpColorManagerV1/d' ~/.config/chromium-flags.conf
sed -i '/# Chromium crash workaround for Wayland color management on Hyprland/d' ~/.config/chromium-flags.conf
fi
# Remove flag and comment from brave-flags.conf only if found
if [[ -f ~/.config/brave-flags.conf ]]; then
sed -i '/--disable-features=WaylandWpColorManagerV1/d' ~/.config/brave-flags.conf
sed -i '/# Chromium crash workaround for Wayland color management on Hyprland/d' ~/.config/brave-flags.conf
fi