@@ -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
|
||||||
|
|||||||
Executable
+14
@@ -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
@@ -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 ;;
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
Executable
+7
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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"
|
|
||||||
|
|||||||
@@ -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)$
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
echo "Remove Fcitx5 XDG autostart desktop entry"
|
||||||
|
|
||||||
|
source $OMARCHY_PATH/install/config/remove-fcitx5-autostart.sh
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
echo "Ensure password field doesn't overflow on SDDM login screen"
|
||||||
|
|
||||||
|
omarchy-refresh-sddm
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user