Merge pull request #4806 from basecamp/dev

Omarchy 3.4.1
This commit is contained in:
David Heinemeier Hansson
2026-02-28 18:34:49 +01:00
committed by GitHub
26 changed files with 186 additions and 77 deletions
+80 -53
View File
@@ -2,6 +2,8 @@
# Start and stop a screenrecording, which will be saved to ~/Videos by default. # Start and stop a screenrecording, which will be saved to ~/Videos by default.
# Alternative location can be set via OMARCHY_SCREENRECORD_DIR or XDG_VIDEOS_DIR ENVs. # Alternative location can be set via OMARCHY_SCREENRECORD_DIR or XDG_VIDEOS_DIR ENVs.
# Resolution is capped to 4K for monitors above 4K, native otherwise.
# Override via --resolution= (e.g. --resolution=1920x1080, --resolution=0x0 for native).
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs [[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}"
@@ -15,28 +17,27 @@ DESKTOP_AUDIO="false"
MICROPHONE_AUDIO="false" MICROPHONE_AUDIO="false"
WEBCAM="false" WEBCAM="false"
WEBCAM_DEVICE="" WEBCAM_DEVICE=""
RESOLUTION=""
STOP_RECORDING="false" STOP_RECORDING="false"
RECORDING_FILE="/tmp/omarchy-screenrecord-filename"
for arg in "$@"; do for arg in "$@"; do
case "$arg" in case "$arg" in
--with-desktop-audio) DESKTOP_AUDIO="true" ;; --with-desktop-audio) DESKTOP_AUDIO="true" ;;
--with-microphone-audio) MICROPHONE_AUDIO="true" ;; --with-microphone-audio) MICROPHONE_AUDIO="true" ;;
--with-webcam) WEBCAM="true" ;; --with-webcam) WEBCAM="true" ;;
--webcam-device=*) WEBCAM_DEVICE="${arg#*=}" ;; --webcam-device=*) WEBCAM_DEVICE="${arg#*=}" ;;
--stop-recording) STOP_RECORDING="true" --resolution=*) RESOLUTION="${arg#*=}" ;;
--stop-recording) STOP_RECORDING="true" ;;
esac esac
done done
cleanup_webcam() {
pkill -f "WebcamOverlay" 2>/dev/null
}
start_webcam_overlay() { start_webcam_overlay() {
cleanup_webcam cleanup_webcam
# Auto-detect first available webcam if none specified # Auto-detect first available webcam if none specified
if [[ -z $WEBCAM_DEVICE ]]; then if [[ -z $WEBCAM_DEVICE ]]; then
WEBCAM_DEVICE=$(v4l2-ctl --list-devices 2>/dev/null | grep -m1 "^\s*/dev/video" | tr -d '\t') WEBCAM_DEVICE=$(v4l2-ctl --list-devices 2>/dev/null | grep -m1 "^[[:space:]]*/dev/video" | tr -d '\t')
if [[ -z $WEBCAM_DEVICE ]]; then if [[ -z $WEBCAM_DEVICE ]]; then
notify-send "No webcam devices found" -u critical -t 3000 notify-send "No webcam devices found" -u critical -t 3000
return 1 return 1
@@ -71,10 +72,24 @@ start_webcam_overlay() {
sleep 1 sleep 1
} }
cleanup_webcam() {
pkill -f "WebcamOverlay" 2>/dev/null
}
default_resolution() {
local width height
read -r width height < <(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | "\(.width) \(.height)"')
if ((width > 3840 || height > 2160)); then
echo "3840x2160"
else
echo "0x0"
fi
}
start_screenrecording() { start_screenrecording() {
local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
local audio_devices="" local audio_devices=""
local audio_args="" local audio_args=()
[[ $DESKTOP_AUDIO == "true" ]] && audio_devices+="default_output" [[ $DESKTOP_AUDIO == "true" ]] && audio_devices+="default_output"
@@ -84,15 +99,61 @@ start_screenrecording() {
audio_devices+="default_input" audio_devices+="default_input"
fi fi
[[ -n $audio_devices ]] && audio_args+="-a $audio_devices" [[ -n $audio_devices ]] && audio_args+=(-a "$audio_devices" -ac aac)
local resolution="${RESOLUTION:-$(default_resolution)}"
gpu-screen-recorder -w portal -k auto -s "$resolution" -f 60 -fm cfr -fallback-cpu-encoding yes -o "$filename" "${audio_args[@]}" &
local pid=$!
# Wait for recording to actually start (file appears after portal selection)
while kill -0 $pid 2>/dev/null && [[ ! -f $filename ]]; do
sleep 0.2
done
if kill -0 $pid 2>/dev/null; then
echo "$filename" >"$RECORDING_FILE"
toggle_screenrecording_indicator
fi
}
stop_screenrecording() {
pkill -SIGINT -f "^gpu-screen-recorder" # SIGINT required to save video properly
# Wait a maximum of 5 seconds to finish before hard killing
local count=0
while pgrep -f "^gpu-screen-recorder" >/dev/null && ((count < 50)); do
sleep 0.1
count=$((count + 1))
done
gpu-screen-recorder -w portal -k h264 -f 60 -fallback-cpu-encoding yes -o "$filename" $audio_args -ac aac &
toggle_screenrecording_indicator toggle_screenrecording_indicator
cleanup_webcam
if pgrep -f "^gpu-screen-recorder" >/dev/null; then
pkill -9 -f "^gpu-screen-recorder"
notify-send "Screen recording error" "Recording process had to be force-killed. Video may be corrupted." -u critical -t 5000
else
trim_first_frame
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
fi
rm -f "$RECORDING_FILE"
}
toggle_screenrecording_indicator() {
pkill -RTMIN+8 waybar
}
screenrecording_active() {
pgrep -f "^gpu-screen-recorder" >/dev/null
} }
trim_first_frame() { trim_first_frame() {
local latest=$(ls -t "$OUTPUT_DIR"/screenrecording-*.mp4 2>/dev/null | head -1) local latest
if [[ -n $latest ]]; then latest=$(cat "$RECORDING_FILE" 2>/dev/null)
if [[ -n $latest && -f $latest ]]; then
local trimmed="${latest%.mp4}-trimmed.mp4" local trimmed="${latest%.mp4}-trimmed.mp4"
if ffmpeg -y -ss 0.1 -i "$latest" -c copy "$trimmed" -loglevel quiet 2>/dev/null; then if ffmpeg -y -ss 0.1 -i "$latest" -c copy "$trimmed" -loglevel quiet 2>/dev/null; then
mv "$trimmed" "$latest" mv "$trimmed" "$latest"
@@ -102,46 +163,12 @@ trim_first_frame() {
fi fi
} }
stop_screenrecording() {
pkill -SIGINT -f "^gpu-screen-recorder" # SIGINT required to save video properly
# Wait a maximum of 5 seconds to finish before hard killing
local count=0
while pgrep -f "^gpu-screen-recorder" >/dev/null && (( count < 50 )); do
sleep 0.1
count=$((count + 1))
done
if pgrep -f "^gpu-screen-recorder" >/dev/null; then
pkill -9 -f "^gpu-screen-recorder"
cleanup_webcam
notify-send "Screen recording error" "Recording process had to be force-killed. Video may be corrupted." -u critical -t 5000
else
cleanup_webcam
trim_first_frame
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
fi
toggle_screenrecording_indicator
}
toggle_screenrecording_indicator() {
pkill -RTMIN+8 waybar
}
screenrecording_active() {
pgrep -f "^gpu-screen-recorder" >/dev/null || pgrep -f "WebcamOverlay" >/dev/null
}
if screenrecording_active; then if screenrecording_active; then
if pgrep -f "WebcamOverlay" >/dev/null && ! pgrep -f "^gpu-screen-recorder" >/dev/null; then stop_screenrecording
cleanup_webcam elif [[ $STOP_RECORDING == "true" ]]; then
else exit 1
stop_screenrecording else
fi
elif [[ $STOP_RECORDING == "false" ]]; then
[[ $WEBCAM == "true" ]] && start_webcam_overlay [[ $WEBCAM == "true" ]] && start_webcam_overlay
start_screenrecording || cleanup_webcam start_screenrecording || cleanup_webcam
else
exit 1
fi fi
@@ -1,13 +1,13 @@
#!/bin/bash #!/bin/bash
# Check current single_window_aspect_ratio setting # Check current single_window_aspect_ratio setting
CURRENT_VALUE=$(hyprctl getoption "dwindle:single_window_aspect_ratio" 2>/dev/null | head -1) CURRENT_VALUE=$(hyprctl getoption "layout:single_window_aspect_ratio" 2>/dev/null | head -1)
# Parse vec2 output: "vec2: [1, 1]" or "vec2: [0, 0]" # Parse vec2 output: "vec2: [1, 1]" or "vec2: [0, 0]"
if [[ $CURRENT_VALUE == *"[1, 1]"* ]]; then if [[ $CURRENT_VALUE == *"[1, 1]"* ]]; then
hyprctl keyword dwindle:single_window_aspect_ratio "0 0" hyprctl keyword layout:single_window_aspect_ratio "0 0"
notify-send " Disable single-window square aspect ratio" notify-send " Disable single-window square aspect ratio"
else else
hyprctl keyword dwindle:single_window_aspect_ratio "1 1" hyprctl keyword layout:single_window_aspect_ratio "1 1"
notify-send " Enable single-window square aspect" notify-send " Enable single-window square aspect"
fi fi
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
# Toggle the layout on the current active workspace between dwindle and scrolling
ACTIVE_WORKSPACE=$(hyprctl activeworkspace -j | jq -r '.id')
CURRENT_LAYOUT=$(hyprctl activeworkspace -j | jq -r '.tiledLayout')
case "$CURRENT_LAYOUT" in
dwindle) NEW_LAYOUT=scrolling ;;
*) NEW_LAYOUT=dwindle ;;
esac
hyprctl keyword workspace $ACTIVE_WORKSPACE, layout:$NEW_LAYOUT
notify-send "󱂬 Workspace layout set to $NEW_LAYOUT"
+9 -3
View File
@@ -102,7 +102,7 @@ show_capture_menu() {
*Screenshot*) omarchy-cmd-screenshot ;; *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 ;; *) back_to show_trigger_menu ;;
esac esac
} }
@@ -161,12 +161,17 @@ show_share_menu() {
} }
show_toggle_menu() { show_toggle_menu() {
case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar") in case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar\n󱂬 Workspace Layout\n Window Gaps\n 1-Window Ratio\n󰍹 Display Scaling") in
*Screensaver*) omarchy-toggle-screensaver ;; *Screensaver*) omarchy-toggle-screensaver ;;
*Nightlight*) omarchy-toggle-nightlight ;; *Nightlight*) omarchy-toggle-nightlight ;;
*Idle*) omarchy-toggle-idle ;; *Idle*) omarchy-toggle-idle ;;
*Bar*) omarchy-toggle-waybar ;; *Bar*) omarchy-toggle-waybar ;;
*) show_trigger_menu ;; *Layout*) omarchy-hyprland-workspace-layout-toggle ;;
*Ratio*) omarchy-hyprland-window-single-square-aspect-toggle ;;
*Gaps*) omarchy-hyprland-window-gaps-toggle ;;
*Scaling*) omarchy-hyprland-monitor-scaling-cycle ;;
*) back_to show_trigger_menu ;;
esac esac
} }
@@ -593,6 +598,7 @@ go_to_menu() {
*apps*) walker -p "Launch…" ;; *apps*) walker -p "Launch…" ;;
*learn*) show_learn_menu ;; *learn*) show_learn_menu ;;
*trigger*) show_trigger_menu ;; *trigger*) show_trigger_menu ;;
*toggle*) show_toggle_menu ;;
*share*) show_share_menu ;; *share*) show_share_menu ;;
*background*) show_background_menu ;; *background*) show_background_menu ;;
*capture*) show_capture_menu ;; *capture*) show_capture_menu ;;
+1 -4
View File
@@ -3,7 +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
omarchy-restart-tmux
if pgrep -x tmux; then
tmux source-file ~/.config/tmux/tmux.conf
fi
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Restart tmux if running with the latest configuration
if pgrep -x tmux; then
tmux source-file ~/.config/tmux/tmux.conf
fi
+2 -1
View File
@@ -5,7 +5,8 @@ set -e
# Ensure screensaver/sleep doesn't set in during updates # Ensure screensaver/sleep doesn't set in during updates
hyprctl dispatch tagwindow +noidle &> /dev/null || true hyprctl dispatch tagwindow +noidle &> /dev/null || true
# Capture update logs # Capture update logs (CLICOLOR_FORCE keeps gum styled when stdout is piped through tee)
export CLICOLOR_FORCE=1
exec > >(tee "/tmp/omarchy-update.log") 2>&1 exec > >(tee "/tmp/omarchy-update.log") 2>&1
# Perform all update steps # Perform all update steps
+7
View File
@@ -1,11 +1,18 @@
#!/bin/bash #!/bin/bash
echo
if [[ ! -d /usr/lib/modules/$(uname -r) ]]; then if [[ ! -d /usr/lib/modules/$(uname -r) ]]; then
gum confirm "Linux kernel has been updated. Reboot?" && omarchy-system-reboot gum confirm "Linux kernel has been updated. Reboot?" && omarchy-system-reboot
elif [[ -f $HOME/.local/state/omarchy/reboot-required ]]; then elif [[ -f $HOME/.local/state/omarchy/reboot-required ]]; then
gum confirm "Updates require reboot. Ready?" && omarchy-system-reboot gum confirm "Updates require reboot. Ready?" && omarchy-system-reboot
fi fi
running_hyprland=$(readlink /proc/$(pgrep -x Hyprland)/exe 2>/dev/null)
if [[ $running_hyprland == *"(deleted)"* ]]; then
gum confirm "Hyprland has been updated. Reboot?" && omarchy-system-reboot
fi
for file in "$HOME"/.local/state/omarchy/restart-*-required; do for file in "$HOME"/.local/state/omarchy/restart-*-required; do
if [[ -f $file ]]; then if [[ -f $file ]]; then
filename=$(basename "$file") filename=$(basename "$file")
+4 -4
View File
@@ -7,8 +7,8 @@ general {
# gaps_out = 0 # gaps_out = 0
# border_size = 0 # border_size = 0
# Use master layout instead of dwindle # Change to niri-like side-scrolling layout
# layout = master # layout = scrolling
} }
# https://wiki.hyprland.org/Configuring/Variables/#decoration # https://wiki.hyprland.org/Configuring/Variables/#decoration
@@ -27,8 +27,8 @@ animations {
# enabled = no # enabled = no
} }
# https://wiki.hypr.land/Configuring/Dwindle-Layout/ # https://wiki.hypr.land/Configuring/Variables/#layout
dwindle { layout {
# Avoid overly wide single-window layouts on wide screens # Avoid overly wide single-window layouts on wide screens
# single_window_aspect_ratio = 1 1 # single_window_aspect_ratio = 1 1
} }
+6
View File
@@ -41,6 +41,9 @@ bind -n M-7 select-window -t 7
bind -n M-8 select-window -t 8 bind -n M-8 select-window -t 8
bind -n M-9 select-window -t 9 bind -n M-9 select-window -t 9
bind -n M-Left select-window -t -1
bind -n M-Right select-window -t +1
# Session controls # Session controls
bind R command-prompt -I "#S" "rename-session -- '%%'" bind R command-prompt -I "#S" "rename-session -- '%%'"
bind C new-session -c "#{pane_current_path}" bind C new-session -c "#{pane_current_path}"
@@ -48,6 +51,9 @@ bind K kill-session
bind P switch-client -p bind P switch-client -p
bind N switch-client -n bind N switch-client -n
bind -n M-Up switch-client -p
bind -n M-Down 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"
+1 -1
View File
@@ -4,4 +4,4 @@ export BAT_THEME=ansi
# Duplicated from .config/uwsm/env so SSH works too # Duplicated from .config/uwsm/env so SSH works too
export OMARCHY_PATH=$HOME/.local/share/omarchy export OMARCHY_PATH=$HOME/.local/share/omarchy
export PATH=$OMARCHY_PATH/bin:$PATH export PATH=$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin
-1
View File
@@ -9,4 +9,3 @@ source ~/.local/share/omarchy/default/bash/rc
# #
# Make an alias for invoking commands you use constantly # Make an alias for invoking commands you use constantly
# alias p='python' # alias p='python'
# alias cx="claude --permission-mode=plan --allow-dangerously-skip-permissions"
+1
View File
@@ -10,6 +10,7 @@ windowrule = float on, match:class org.gnome.Calculator
# Fullscreen screensaver # Fullscreen screensaver
windowrule = fullscreen on, match:class org.omarchy.screensaver windowrule = fullscreen on, match:class org.omarchy.screensaver
windowrule = float on, match:class org.omarchy.screensaver windowrule = float on, match:class org.omarchy.screensaver
windowrule = animation slide, match:class org.omarchy.screensaver
# No transparency on media windows # No transparency on media windows
windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
+5 -1
View File
@@ -3,13 +3,14 @@ bindd = SUPER, W, Close window, killactive,
bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all
# Control tiling # 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, P, Pseudo window, pseudo, # dwindle
bindd = SUPER, T, Toggle window floating/tiling, togglefloating, bindd = SUPER, T, Toggle window floating/tiling, togglefloating,
bindd = SUPER, F, Full screen, fullscreen, 0 bindd = SUPER, F, Full screen, fullscreen, 0
bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2 bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2
bindd = SUPER ALT, F, Full width, fullscreen, 1 bindd = SUPER ALT, F, Full width, fullscreen, 1
bindd = SUPER, O, Pop window out (float & pin), exec, omarchy-hyprland-window-pop bindd = SUPER, O, Pop window out (float & pin), exec, omarchy-hyprland-window-pop
bindd = SUPER, L, Toggle workspace layout, exec, omarchy-hyprland-workspace-layout-toggle
# Move focus with SUPER + arrow keys # Move focus with SUPER + arrow keys
bindd = SUPER, LEFT, Move window focus left, movefocus, l bindd = SUPER, LEFT, Move window focus left, movefocus, l
@@ -122,3 +123,6 @@ bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2
bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3 bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3
bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4 bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4
bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5 bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5
# Cycle monitor scaling
bindd = SUPER, Slash, Cycle monitor scaling, exec, omarchy-hyprland-monitor-scaling-cycle
+4 -4
View File
@@ -2,6 +2,7 @@
bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker
bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols
bindd = SUPER CTRL, C, Capture menu, exec, omarchy-menu capture bindd = SUPER CTRL, C, Capture menu, exec, omarchy-menu capture
bindd = SUPER CTRL, O, Toggle menu, exec, omarchy-menu toggle
bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
bindd = SUPER, ESCAPE, System menu, exec, omarchy-menu system bindd = SUPER, ESCAPE, System menu, exec, omarchy-menu system
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
@@ -10,10 +11,11 @@ bindd = , XF86Calculator, Calculator, exec, gnome-calculator
# Aesthetics # Aesthetics
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar
bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-menu background bindd = SUPER CTRL, SPACE, Theme background menu, exec, omarchy-menu background
bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, omarchy-menu theme bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, omarchy-menu theme
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-workspace-toggle-gaps bindd = SUPER SHIFT, BACKSPACE, Toggle window gaps, exec, omarchy-hyprland-window-gaps-toggle
bindd = SUPER CTRL, BACKSPACE, Toggle single-window square aspect, exec, omarchy-hyprland-window-single-square-aspect-toggle
# Notifications # Notifications
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
@@ -25,8 +27,6 @@ bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore
# Toggles # Toggles
bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle
bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight
bindd = SUPER CTRL, Backspace, Toggle monitor scaling, exec, omarchy-hyprland-monitor-scaling-toggle
bindd = SUPER CTRL ALT, Backspace, Toggle single-window square aspect, exec, omarchy-hyprland-window-single-square-aspect-toggle
# Control Apple Display brightness # Control Apple Display brightness
bindd = CTRL, F1, Apple Display brightness down, exec, omarchy-brightness-display-apple -5000 bindd = CTRL, F1, Apple Display brightness down, exec, omarchy-brightness-display-apple -5000
+1
View File
@@ -60,6 +60,7 @@ Rectangle {
color: "#000000" color: "#000000"
border.color: "#ffffff" border.color: "#ffffff"
border.width: 1 border.width: 1
clip: true
TextInput { TextInput {
id: password id: password
+1
View File
@@ -14,6 +14,7 @@ run_logged $OMARCHY_INSTALL/config/mise-work.sh
run_logged $OMARCHY_INSTALL/config/fix-powerprofilesctl-shebang.sh run_logged $OMARCHY_INSTALL/config/fix-powerprofilesctl-shebang.sh
run_logged $OMARCHY_INSTALL/config/docker.sh run_logged $OMARCHY_INSTALL/config/docker.sh
run_logged $OMARCHY_INSTALL/config/mimetypes.sh run_logged $OMARCHY_INSTALL/config/mimetypes.sh
run_logged $OMARCHY_INSTALL/config/remove-fcitx5-autostart.sh
run_logged $OMARCHY_INSTALL/config/localdb.sh run_logged $OMARCHY_INSTALL/config/localdb.sh
run_logged $OMARCHY_INSTALL/config/walker-elephant.sh run_logged $OMARCHY_INSTALL/config/walker-elephant.sh
run_logged $OMARCHY_INSTALL/config/fast-shutdown.sh run_logged $OMARCHY_INSTALL/config/fast-shutdown.sh
+1 -1
View File
@@ -7,7 +7,7 @@ if omarchy-hw-asus-rog; then
if grep -q "ALC285" "$card" 2>/dev/null; then if grep -q "ALC285" "$card" 2>/dev/null; then
cardnum=$(echo "$card" | grep -oP 'card\K\d+') cardnum=$(echo "$card" | grep -oP 'card\K\d+')
amixer -c "$cardnum" set 'Internal Mic Boost' 0 >/dev/null 2>&1 || true amixer -c "$cardnum" set 'Internal Mic Boost' 0 >/dev/null 2>&1 || true
amixer -c "$cardnum" set 'Capture' 70% >/dev/null 2>&1 || true amixer -c "$cardnum" set 'Capture' 70% unmute >/dev/null 2>&1 || true
sudo alsactl store "$cardnum" 2>/dev/null || true sudo alsactl store "$cardnum" 2>/dev/null || true
break break
fi fi
@@ -0,0 +1 @@
sudo rm -f /etc/xdg/autostart/org.fcitx.Fcitx5.desktop
+3
View File
@@ -0,0 +1,3 @@
echo "Remove Fcitx5 XDG autostart desktop entry"
source $OMARCHY_PATH/install/config/remove-fcitx5-autostart.sh
+3
View File
@@ -0,0 +1,3 @@
echo "Ensure password field doesn't overflow on SDDM login screen"
omarchy-refresh-sddm
+10
View File
@@ -0,0 +1,10 @@
echo "Move single_window_aspect_ratio from dwindle to layout in user looknfeel.conf"
looknfeel="$HOME/.config/hypr/looknfeel.conf"
if [[ -f $looknfeel ]] && grep -q 'single_window_aspect_ratio' "$looknfeel"; then
sed -i \
-e 's|# https://wiki.hypr.land/Configuring/Dwindle-Layout/|# https://wiki.hypr.land/Configuring/Variables/#layout|' \
-e 's|^dwindle {|layout {|' \
"$looknfeel"
fi
+21
View File
@@ -0,0 +1,21 @@
echo "Add Alt+Arrow keybindings for tmux window and session navigation"
TMUX_CONF=~/.config/tmux/tmux.conf
if [[ -f $TMUX_CONF ]]; then
# Add M-Left/M-Right after M-9 if not present
if ! grep -q "bind -n M-Left select-window" "$TMUX_CONF"; then
sed -i '/bind -n M-9 select-window -t 9/a\
bind -n M-Left select-window -t -1\
bind -n M-Right select-window -t +1' "$TMUX_CONF"
fi
# Add M-Up/M-Down after "bind N switch-client -n" if not present
if ! grep -q "bind -n M-Up switch-client" "$TMUX_CONF"; then
sed -i '/^bind N switch-client -n$/a\
bind -n M-Up switch-client -p\
bind -n M-Down switch-client -n' "$TMUX_CONF"
fi
omarchy-restart-tmux
fi
+1 -1
View File
@@ -1 +1 @@
3.4.0 3.4.1