Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
648832d
Add alacritty save_to_clipboard config for not copying to the PRIMARY…
bvdwalt Aug 22, 2025
d40c1ba
Update alacritty.toml to remove clipboard setting, bind shift+insert …
bvdwalt Aug 31, 2025
2666e75
Fix syntax error in alacritty.toml bindings
bvdwalt Aug 31, 2025
6701116
hypr: add Helium to chromium-based browser tagging (follow-up to #194…
odnmalau Sep 29, 2025
1022734
feat: clear states when relaunching or rebooting from the system menu…
alexperreault Sep 29, 2025
a51011f
add suport fingerprint from FPC - Thinkpad E14 Gen 6 (#2023)
aislandener Sep 29, 2025
9903a9b
Increase the delay before the "window is not responding" notice is shown
dhh Sep 30, 2025
9771030
fix removal of webapps that use additional handler (#2096)
kyedavey Sep 30, 2025
1ac8e96
Alter input.conf kb_options to take non-us keyboards into account (#2…
Woosah Sep 30, 2025
058b233
Merge branch 'master' into dev
dhh Sep 30, 2025
7819ae3
Go back to using -set-theme-color until the policy coloring is fixed
dhh Oct 2, 2025
e0f16b9
Reduce timeout for hung applications to more like 5-6s
dhh Oct 4, 2025
4283533
Made keybindings menu a little more human readable (#1824)
ludagoo Oct 4, 2025
bba224e
Speedup keybindings show by using caching
dhh Oct 4, 2025
bbe4461
Only give one line to avoid the jitter
dhh Oct 5, 2025
6544d1b
Add auto-changing colors for Neovim (#1712)
ryanrhughes Oct 5, 2025
a079af9
Change default shutdown timeout to 5sec (#1886)
ryanrhughes Oct 5, 2025
c7aa0f5
Make HEY the default mailto handler (#1822)
ryanrhughes Oct 5, 2025
2e00649
Update version reporting (#1724)
ryanrhughes Oct 5, 2025
f2021a9
Login and UKI updates (#1860)
ryanrhughes Oct 5, 2025
5f2013a
Correct the path for asdcontrol on new installations
dhh Oct 5, 2025
cab70bb
Revert "Login and UKI updates (#1860)"
dhh Oct 5, 2025
3cb52c0
Correct bad path for sudoless Apple Display controls
dhh Oct 5, 2025
d4fddd7
Interesting idea, but then we should do it across everything
dhh Oct 5, 2025
bb4df39
Remove background process from walker service in autostart configurat…
sgruendel Oct 5, 2025
479f20d
Fix Neovim .desktop file to open files from GUI file manager (#2233)
AlwaysRead Oct 5, 2025
9c24150
added gnome-disk-utility to base-packages (#2230)
andrepadez Oct 5, 2025
164fc5c
fix(eza): added correct light theme for rosé pine (#2214)
gustavedenis Oct 5, 2025
443173e
Hide electron36 and electron37 from walker menu (#2183)
sgruendel Oct 5, 2025
ea7d98e
Fix typo in comments in input.conf (#2180)
IngridMorstrad Oct 5, 2025
2316c2f
Hide OpenJDK apps from app launcher
dhh Oct 5, 2025
5da10be
Adjust database installation message to only one (#2192)
morgoth Oct 5, 2025
5aa39c9
Simple check to prevent secure boot issues (#2145)
killeik Oct 5, 2025
6aac67a
Fix comment typos in bindings.conf (#2261)
jeffmancilla Oct 6, 2025
6892304
fix(presentation-terminal): Ensure consistent ASCII logo alignment (#…
vaqMAD Oct 6, 2025
7a7266a
Theme support for Cursor (#2015)
ludagoo Oct 6, 2025
b0ee5d2
Fix lock screen killing ghostty screensaver instance instead of alacr…
vladkhard Oct 6, 2025
2c14252
Fix: Allow passing flags/arguments to omarchy-launch-webapp in launch…
meirdick Oct 6, 2025
2971a25
fix: change uwsm app to uwsm-app for performance (#1960)
woopstar Oct 6, 2025
e365855
Add window theme to Ghostty config (#1956)
scossar Oct 6, 2025
c91c75a
Add even cleaner ghostty tabs as default
dhh Oct 6, 2025
14b020d
fix: update legibility with bright green color (#1895)
Justikun Oct 6, 2025
3f25fcb
Revert "Fix Neovim .desktop file to open files from GUI file manager …
dhh Oct 6, 2025
5faa2c8
Fixes the nvim desktop entry exec command (#1892)
dharmavagabond Oct 6, 2025
a401c74
Add migration for new nvim.desktop
dhh Oct 6, 2025
a38d80e
Add SSH session integration for Ghostty (#1950)
mirzap Oct 7, 2025
1ffed12
Invert the logic to only fail when we know for sure secure boot is on
dhh Oct 7, 2025
0111746
Expand all the guard conditionals to be as readable as possible
dhh Oct 7, 2025
2326018
Group mako settings and adjust notification styles (#2273)
nqst Oct 7, 2025
dfd133d
Fix browser launching for flatpak (#2187)
w3ntry Oct 7, 2025
e6d1a2f
Use systemd-resolved's stub resolver (#2150)
samuelpecher Oct 7, 2025
f956233
fix current working directory if readlink doesn't return a valid dire…
matt-h Oct 7, 2025
e9ab1d9
Cleanup the code a bit
dhh Oct 7, 2025
5b062cd
Configure grouping functionality (#656)
reshadman Oct 7, 2025
819da32
Add `.editorconfig` (#946)
dylanbr Oct 7, 2025
66abd7d
Float org.gnome.Calculator (#1747)
gkurts Oct 7, 2025
6ea9c93
fix(bindings): anchor Obsidian class to avoid false matches (#1838)
ctarx Oct 7, 2025
9c5cf01
add helix in omarchy-launch-editor (#1740)
Cammisuli Oct 7, 2025
f701cf7
Merge pull request #989 from bvdwalt/alacritty-default-to-system-clip…
ryanrhughes Oct 8, 2025
4365a52
Make shift + insert paste from clipboard in ghostty
ryanrhughes Oct 8, 2025
bf4fb40
Rollback flatpak fix
dhh Oct 8, 2025
6d20a13
Added Cursor CLI in Install > AI (#2153)
rajofearth Oct 8, 2025
b97cba3
Login and UKI updates (#2242)
ryanrhughes Oct 8, 2025
edbafe7
Add SUPER + C / V
ryanrhughes Oct 8, 2025
39541b4
Fix package name
ryanrhughes Oct 8, 2025
d3f70a0
Make keyring dir
ryanrhughes Oct 8, 2025
779fd5a
Prevent polkit error on reboot (fixes #2175)
ryanrhughes Oct 9, 2025
8caf6db
Remove settings that made it awkward for single line notifications
dhh Oct 9, 2025
c541faf
chore: better contrast for ristretto kitty conf (#2297)
shelldandy Oct 9, 2025
a544e78
Add Ctrl + Super + Ins as Copy
dhh Oct 9, 2025
d7d8f52
Control icon size still
dhh Oct 9, 2025
41b09c2
Disable wall messages on shutdown/reboot (#2341)
mlombardi96 Oct 10, 2025
8871c82
Merge branch 'master' into dev
dhh Oct 10, 2025
b063c7f
fix comment: wrong path for base packages script (#2325)
sa-dd Oct 10, 2025
cc1acc1
Walker: migrate to 2.0.0 (#1005)
abenz1267 Oct 10, 2025
6b3fc34
Add background for matte black theme (#2288)
vaqMAD Oct 10, 2025
44de66d
Create migration to symlink systemd-resolved (#2313)
samuelpecher Oct 10, 2025
651025e
Add Walker clipboard manager on Super + Ctrl + V
dhh Oct 10, 2025
a54044e
Change screenrecorder to gpu-screen-recorder
ryanrhughes Oct 11, 2025
2c74696
Update packages
ryanrhughes Oct 11, 2025
883cb66
Migrate to gpu-screen-recorder
ryanrhughes Oct 11, 2025
eb74a97
Fix scaling for non 16:9
ryanrhughes Oct 11, 2025
af564ed
Fix webcam to select 16:9 on FW13 and others
ryanrhughes Oct 11, 2025
a7a6ac1
Add error explanation if we have to kill
ryanrhughes Oct 11, 2025
a6aec51
Remove wl-screenrec
ryanrhughes Oct 11, 2025
63aff7c
Cleanup
ryanrhughes Oct 11, 2025
a42ba3d
Merge pull request #2365 from basecamp/fix-omarchy-screenrecord
ryanrhughes Oct 11, 2025
04fa3fd
Fix for '(null)' display on AirPod source selection
shawnyeager Sep 21, 2025
01a1e43
Fix command description
ryanrhughes Oct 11, 2025
360a2ed
Add LogLevelMax to battery monitor service (#2373)
artfwo Oct 12, 2025
268b486
Fix placeholder position and adjust fail text on lock screen (#2124)
mlombardi96 Oct 12, 2025
35cc993
feat(update): Add firmware update script to update process (#2014)
eifr Oct 12, 2025
0df4dc1
Add Flexoki Light as new default theme
dhh Oct 12, 2025
6cab5d3
Fix light mode live switching for chromium
dhh Oct 12, 2025
d72e948
We DID need two lines to prevent the ugly jitter between effects
dhh Oct 12, 2025
ebcb489
No need for the empty opts
dhh Oct 12, 2025
7ef30f6
Match the other themes
dhh Oct 12, 2025
ab7feea
Unnecessary
dhh Oct 12, 2025
c70e018
Add the default keyring to existing systems
dhh Oct 12, 2025
a20835f
Add copy bind as well
ryanrhughes Oct 12, 2025
9f8db77
tweak(omarchy-theme-set): only restart waybar if already running (#2416)
celsobenedetti Oct 12, 2025
55604e4
Show overlay when changing display brightness (#2348)
miharekar Oct 12, 2025
adad20b
Fix Tailscale split DNS compatibility by removing [!UNAVAIL=return] (…
jardahrazdera Oct 12, 2025
cac8b03
alacritty.toml with proper bg and fg (#1851)
qasimsk20 Oct 13, 2025
56e690b
feat: enable vim keys for btop (#1581)
martinmose Oct 13, 2025
fa029c5
macbook 12' fixes on login keyboard & suspend wake up (#1959)
wey-gu Oct 13, 2025
00b3983
Fix ctrl+insert keybindings in kitty and ghostty too
dhh Oct 13, 2025
9d8d4bc
Include flexoki as new default theme
dhh Oct 13, 2025
6c2c85d
Couldn't install them like this without having them appear as corpora…
dhh Oct 13, 2025
7e7b370
fix: broken walker keybinding
abenz1267 Oct 13, 2025
10e8fe5
Prompt if they have a keyring
ryanrhughes Oct 13, 2025
2213589
Remove restart sddm
ryanrhughes Oct 13, 2025
9783b4b
Exit hyprland for now
ryanrhughes Oct 13, 2025
c6627f0
Cleanup
ryanrhughes Oct 13, 2025
5057101
Use chrootabl_systemctl_enable
ryanrhughes Oct 13, 2025
80b37f2
Merge pull request #2422 from abenz1267/walkerfix
ryanrhughes Oct 13, 2025
5b8ee60
fix: make bcm43xx driver script vendor agnostic
sa-dd Oct 13, 2025
ff3d659
Fix font menu by using `--width` parameter for `walker` (#2444)
lukehsiao Oct 14, 2025
87d7bd9
Fix typo in omarchy-update-firmware (#2442)
lukehsiao Oct 14, 2025
800962b
fix: prevent Chromium crash when moving windows between monitors (#2394)
d-cas Oct 14, 2025
d615d2f
fix: mute output when hiding cursor in screensaver (#2419)
alexperreault Oct 14, 2025
313dcd4
Fix referencing existing extension
dhh Oct 14, 2025
491e980
Style
dhh Oct 14, 2025
9c8dad9
Not needed and distracting when themes are not available for Cursor
dhh Oct 14, 2025
90536df
Fix screenrecording menu and reveal it as the only hotkey
dhh Oct 14, 2025
154cd06
Add auto nightlight example config (#2446)
morgoth Oct 14, 2025
3b8fce1
Consistent ordering with other themes
dhh Oct 14, 2025
7c273f4
Don't use chrootable here
ryanrhughes Oct 14, 2025
ab3b65a
Move to omarchy-nvim
ryanrhughes Oct 14, 2025
671194d
Nvim is self-contained now
ryanrhughes Oct 14, 2025
fcae2e9
Switch to new hotkeys
dhh Oct 14, 2025
3d335a5
Add migration for new hotkeys
dhh Oct 14, 2025
102f952
Fix UFW autostart issue (#2453)
slamotte Oct 14, 2025
1d2d674
Update application icons (#2450)
nqst Oct 14, 2025
fd9a6f4
Can't add this if we are using SUPER + G
dhh Oct 14, 2025
e4d24ca
Use SUPER + G for grouping
dhh Oct 14, 2025
bb943ae
Update restart to prevent dbus error
ryanrhughes Oct 14, 2025
d625178
Remove test garbage
ryanrhughes Oct 14, 2025
bd52f8a
Fix some missing bindings
ryanrhughes Oct 15, 2025
1eecf0b
Copy over updated app icons that work with light mode
dhh Oct 14, 2025
de1e47d
New version
dhh Oct 15, 2025
2d788de
wl-clip-hist is buggy and feels like its a cure worse than the disease
dhh Oct 15, 2025
d06708d
No longer needed
dhh Oct 15, 2025
1a4d1d6
Ensure all packages are up to date
dhh Oct 15, 2025
d3048b5
Consolidate migrations for wl-screenrec + wf-recorder
ryanrhughes Oct 15, 2025
385f846
Re-add ristretto color fixes
ryanrhughes Oct 15, 2025
06668cf
Reveal main keybindings on welcome
dhh Oct 15, 2025
a67391b
Clarify Broadcom chip support comments
ryanrhughes Oct 15, 2025
4100ebb
Merge pull request #2425 from sa-dd/dev
ryanrhughes Oct 15, 2025
351d8ac
Update packages as the very first thing
dhh Oct 15, 2025
c0dc0a0
Revert "Update packages as the very first thing"
dhh Oct 15, 2025
e080f62
Simplify the initial setup to just the PATH
dhh Oct 15, 2025
ac0ffa4
Kick off the new migration from within itself
dhh Oct 15, 2025
44231e4
Ensure clock is up to date
dhh Oct 15, 2025
6247712
Keep terminal on SUPER + RETURN
dhh Oct 15, 2025
f633005
Drop localsend-bin if it was already there
dhh Oct 15, 2025
f0bba6c
Fix the terminal fixer
dhh Oct 15, 2025
fecf83d
Hookup keybindings notification to actual keybindings menu
dhh Oct 15, 2025
dff61f0
feat: add mssql-server to omarchy-install-docker-dbs (#2474)
johannesnormannjensen Oct 16, 2025
9c145b9
Fix typo in everforest theme ghostty.conf (#2471)
carljohanlandin Oct 16, 2025
8bc0980
Always reload every terminal
dhh Oct 16, 2025
94aac37
Expose screenrecording with webcam
dhh Oct 16, 2025
6b1b73b
Use uwsm-app instead of uwsm app consistently
dhh Oct 16, 2025
d50e4a6
Add elephant config to refresh
ryanrhughes Oct 16, 2025
f81f9dd
Disable actions
ryanrhughes Oct 16, 2025
96eed35
Kickstart Walker service if it goes down
ryanrhughes Oct 16, 2025
ad3bc03
Rename nvim setup
ryanrhughes Oct 16, 2025
c6b598b
Rename nvim setup
ryanrhughes Oct 16, 2025
a7a075d
Prevent calculating flash
ryanrhughes Oct 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8
2 changes: 2 additions & 0 deletions applications/hidden/electron36.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Desktop Entry]
Hidden=true
2 changes: 2 additions & 0 deletions applications/hidden/electron37.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Desktop Entry]
Hidden=true
2 changes: 2 additions & 0 deletions applications/hidden/java-java-openjdk.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Desktop Entry]
Hidden=true
2 changes: 2 additions & 0 deletions applications/hidden/jconsole-java-openjdk.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Desktop Entry]
Hidden=true
2 changes: 2 additions & 0 deletions applications/hidden/jshell-java-openjdk.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Desktop Entry]
Hidden=true
Binary file modified applications/icons/ChatGPT.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified applications/icons/GitHub.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified applications/icons/X.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion applications/nvim.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Name=Neovim
GenericName=Text Editor
Comment=Edit text files
Exec=$TERMINAL --class=nvim --title=nvim -e nvim -- %F
Exec=omarchy-launch-editor %F
Terminal=false
Type=Application
Keywords=Text;editor;
Expand Down
9 changes: 8 additions & 1 deletion bin/omarchy-cmd-apple-display-brightness
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,12 @@
if [[ $# -eq 0 ]]; then
echo "Adjust Apple Display Brightness by passing +5000 or -5000 (or any range from 0-60000)"
else
sudo asdcontrol $(sudo asdcontrol --detect /dev/usb/hiddev* | grep ^/dev/usb/hiddev | cut -d: -f1) -- "$1"
DEVICE="$(sudo asdcontrol --detect /dev/usb/hiddev* | grep ^/dev/usb/hiddev | cut -d: -f1)"
sudo asdcontrol "$DEVICE" -- "$1" >/dev/null
VALUE="$(sudo asdcontrol "$DEVICE" | awk -F= '/BRIGHTNESS=/{print $2+0}')"
swayosd-client \
--monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \
--custom-icon display-brightness \
--custom-progress "$(awk -v v="$VALUE" 'BEGIN{printf "%.2f", v/60000}')" \
--custom-progress-text "$(( VALUE * 100 / 60000 ))%"
fi
6 changes: 6 additions & 0 deletions bin/omarchy-cmd-audio-switch
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,13 @@ fi

next_sink=$(echo "$sinks" | jq -r ".[$next_sink_index]")
next_sink_name=$(echo "$next_sink" | jq -r '.name')

next_sink_description=$(echo "$next_sink" | jq -r '.description')
if [ "$next_sink_description" = "(null)" ] || [ "$next_sink_description" = "null" ] || [ -z "$next_sink_description" ]; then
sink_id=$(echo "$next_sink" | jq -r '.properties."object.id"')
next_sink_description=$(wpctl status | grep -E "\s+\*?\s+${sink_id}\." | sed -E 's/^.*[0-9]+\.\s+//' | sed -E 's/\s+\[.*$//')
fi

next_sink_volume=$(echo "$next_sink" | jq -r \
'.volume | to_entries[0].value.value_percent | sub("%"; "")')
next_sink_is_muted=$(echo "$next_sink" | jq -r '.mute')
Expand Down
2 changes: 2 additions & 0 deletions bin/omarchy-cmd-first-run
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ if [[ -f "$FIRST_RUN_MODE" ]]; then
rm -f "$FIRST_RUN_MODE"

bash "$OMARCHY_PATH/install/first-run/battery-monitor.sh"
bash "$OMARCHY_PATH/install/first-run/cleanup-reboot-sudoers.sh"
bash "$OMARCHY_PATH/install/first-run/firewall.sh"
bash "$OMARCHY_PATH/install/first-run/dns-resolver.sh"
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
sudo rm -f /etc/sudoers.d/first-run

Expand Down
125 changes: 106 additions & 19 deletions bin/omarchy-cmd-screenrecord
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,82 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
exit 1
fi

# Selects region or output
SCOPE="$1"
SCOPE=""
AUDIO="false"
WEBCAM="false"

# Selects audio inclusion or not
AUDIO=$([[ $2 == "audio" ]] && echo "--audio")
for arg in "$@"; do
case "$arg" in
--with-audio) AUDIO="true" ;;
--with-webcam) WEBCAM="true" ;;
output|region) SCOPE="$arg" ;;
esac
done

cleanup_webcam() {
pkill -f "WebcamOverlay" 2>/dev/null
}

start_webcam_overlay() {
cleanup_webcam

# Get monitor scale
local scale=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .scale')

# Target width (base 360px, scaled to monitor)
local target_width=$(awk "BEGIN {printf \"%.0f\", 360 * $scale}")

# Try preferred 16:9 resolutions in order, use first available
local preferred_resolutions=("640x360" "1280x720" "1920x1080")
local video_size_arg=""
local available_formats=$(v4l2-ctl --list-formats-ext -d /dev/video0 2>/dev/null)

for resolution in "${preferred_resolutions[@]}"; do
if echo "$available_formats" | grep -q "$resolution"; then
video_size_arg="-video_size $resolution"
break
fi
done

ffplay -f v4l2 $video_size_arg -framerate 30 /dev/video0 \
-vf "scale=${target_width}:-1" \
-window_title "WebcamOverlay" \
-noborder \
-fflags nobuffer -flags low_delay \
-probesize 32 -analyzeduration 0 \
-loglevel quiet &
sleep 1
}

start_screenrecording() {
local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
local audio_args=""

if lspci | grep -qi 'nvidia'; then
wf-recorder $AUDIO -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@" &
else
wl-screenrec $AUDIO -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@" &
fi
# Merge audio tracks into one - separate tracks only play one at a time in most players
[[ "$AUDIO" == "true" ]] && audio_args="-a default_output|default_input"

gpu-screen-recorder -w "$@" -f 60 -c mp4 -o "$filename" $audio_args &
toggle_screenrecording_indicator
}

stop_screenrecording() {
pkill -x wl-screenrec
pkill -x wf-recorder
pkill -SIGINT -f "gpu-screen-recorder" # SIGINT required to save video properly

notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
# Wait a maximum of 5 seconds to finish before hard killing
local count=0
while pgrep -f "gpu-screen-recorder" >/dev/null && [ $count -lt 50 ]; do
sleep 0.1
count=$((count + 1))
done

sleep 0.2 # ensures the process is actually dead before we check
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
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
fi
toggle_screenrecording_indicator
}

Expand All @@ -41,15 +92,51 @@ toggle_screenrecording_indicator() {
}

screenrecording_active() {
pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null
pgrep -f "gpu-screen-recorder" >/dev/null || pgrep -x slurp >/dev/null || pgrep -f "WebcamOverlay" >/dev/null
}

if screenrecording_active; then
stop_screenrecording
if pgrep -x slurp >/dev/null; then
pkill -x slurp 2>/dev/null
elif pgrep -f "WebcamOverlay" >/dev/null && ! pgrep -f "gpu-screen-recorder" >/dev/null; then
cleanup_webcam
else
stop_screenrecording
fi
elif [[ "$SCOPE" == "output" ]]; then
output=$(slurp -o) || exit 1
start_screenrecording -g "$output"
[[ "$WEBCAM" == "true" ]] && start_webcam_overlay

if ! output=$(slurp -o -f "%o"); then
[[ "$WEBCAM" == "true" ]] && cleanup_webcam
exit 1
fi

if [[ -z "$output" ]]; then
notify-send "Error" "Could not detect monitor" -u critical
[[ "$WEBCAM" == "true" ]] && cleanup_webcam
exit 1
fi

start_screenrecording "$output"
else
region=$(slurp) || exit 1
start_screenrecording -g "$region"
[[ "$WEBCAM" == "true" ]] && start_webcam_overlay

scale=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .scale')

if ! region=$(slurp -f "%wx%h+%x+%y"); then
[[ "$WEBCAM" == "true" ]] && cleanup_webcam
exit 1
fi

if [[ "$region" =~ ^([0-9]+)x([0-9]+)\+([0-9]+)\+([0-9]+)$ ]]; then
w=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[1]} * $scale}")
h=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[2]} * $scale}")
x=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[3]} * $scale}")
y=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[4]} * $scale}")
scaled_region="${w}x${h}+${x}+${y}"
else
scaled_region="$region"
fi

start_screenrecording region -region "$scaled_region"
fi
2 changes: 1 addition & 1 deletion bin/omarchy-cmd-screensaver
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ exit_screensaver() {

trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT

hyprctl keyword cursor:invisible true
hyprctl keyword cursor:invisible true &>/dev/null

while true; do
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
Expand Down
8 changes: 7 additions & 1 deletion bin/omarchy-cmd-terminal-cwd
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ terminal_pid=$(hyprctl activewindow | awk '/pid:/ {print $2}')
shell_pid=$(pgrep -P "$terminal_pid" | head -n1)

if [[ -n $shell_pid ]]; then
readlink -f "/proc/$shell_pid/cwd" 2>/dev/null || echo "$HOME"
cwd=$(readlink -f "/proc/$shell_pid/cwd" 2>/dev/null)

if [[ -d $cwd ]]; then
echo "$cwd"
else
echo "$HOME"
fi
else
echo "$HOME"
fi
5 changes: 3 additions & 2 deletions bin/omarchy-install-docker-dbs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/bin/bash

options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB" "MSSQL")

if [[ "$#" -eq 0 ]]; then
choices=$(printf "%s\n" "${options[@]}" | gum choose --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
choices=$(printf "%s\n" "${options[@]}" | gum choose --header "Select database (return to install, esc to cancel)") || main_menu
else
choices="$@"
fi
Expand All @@ -16,6 +16,7 @@ if [[ -n "$choices" ]]; then
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;;
MSSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:1433:1433" --name mssql -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e "MSSQL_SA_PASSWORD=@dmin123" mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04 ;;
esac
done
else
Expand Down
2 changes: 1 addition & 1 deletion bin/omarchy-install-dropbox
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ echo "Installing all dependencies..."
omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox

echo "Starting Dropbox..."
uwsm app -- dropbox-cli start &>/dev/null &
uwsm-app -- dropbox-cli start &>/dev/null &
echo "See Dropbox icon behind  hover tray in top right and right-click for setup."
21 changes: 21 additions & 0 deletions bin/omarchy-install-vscode
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

echo "Installing VSCode..."
omarchy-pkg-add visual-studio-code-bin

mkdir -p ~/.vscode

cat > ~/.vscode/argv.json << 'EOF'
// This configuration file allows you to pass permanent command line arguments to VS Code.
// Only a subset of arguments is currently supported to reduce the likelihood of breaking
// the installation.
//
// PLEASE DO NOT CHANGE WITHOUT UNDERSTANDING THE IMPACT
//
// NOTE: Changing this file requires a restart of VS Code.
{
"password-store":"gnome-libsecret"
}
EOF

setsid gtk-launch code
2 changes: 1 addition & 1 deletion bin/omarchy-launch-about
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash

exec setsid uwsm app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s'
exec setsid uwsm-app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s'
2 changes: 1 addition & 1 deletion bin/omarchy-launch-browser
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ else
private_flag="--incognito"
fi

exec setsid uwsm app -- "$browser_exec" "${@/--private/$private_flag}"
exec setsid uwsm-app -- "$browser_exec" "${@/--private/$private_flag}"
6 changes: 3 additions & 3 deletions bin/omarchy-launch-editor
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/bin/bash

case "${EDITOR:-nvim}" in
nvim | vim | nano | micro | hx)
exec setsid uwsm app -- "$TERMINAL" -e "$EDITOR" "$@"
nvim | vim | nano | micro | hx | helix)
exec setsid uwsm-app -- "$TERMINAL" -e "$EDITOR" "$@"
;;
*)
exec setsid uwsm app -- "$EDITOR" "$@"
exec setsid uwsm-app -- "$EDITOR" "$@"
;;
esac
2 changes: 1 addition & 1 deletion bin/omarchy-launch-floating-terminal-with-presentation
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash

cmd="$*"
exec setsid uwsm app -- alacritty --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
exec setsid uwsm-app -- alacritty -o font.size=9 --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
2 changes: 1 addition & 1 deletion bin/omarchy-launch-or-focus
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ if (($# == 0)); then
fi

WINDOW_PATTERN="$1"
LAUNCH_COMMAND="${2:-"uwsm app -- $WINDOW_PATTERN"}"
LAUNCH_COMMAND="${2:-"uwsm-app -- $WINDOW_PATTERN"}"
WINDOW_ADDRESS=$(hyprctl clients -j | jq -r --arg p "$WINDOW_PATTERN" '.[]|select((.class|test("\\b" + $p + "\\b";"i")) or (.title|test("\\b" + $p + "\\b";"i")))|.address' | head -n1)

if [[ -n $WINDOW_ADDRESS ]]; then
Expand Down
8 changes: 6 additions & 2 deletions bin/omarchy-launch-or-focus-webapp
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
#!/bin/bash

if (($# == 0)); then
echo "Usage: omarchy-launch-or-focus-webapp [window-pattern] [url]"
echo "Usage: omarchy-launch-or-focus-webapp [window-pattern] [url-and-flags...]"
exit 1
fi

exec omarchy-launch-or-focus "$1" "omarchy-launch-webapp '$2'"
WINDOW_PATTERN="$1"
shift
LAUNCH_COMMAND="omarchy-launch-webapp $@"

exec omarchy-launch-or-focus "$WINDOW_PATTERN" "$LAUNCH_COMMAND"
13 changes: 13 additions & 0 deletions bin/omarchy-launch-walker
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

# Ensure elephant is running before launching walker
if ! pgrep -x elephant > /dev/null; then
setsid uwsm-app -- elephant &
fi

# Ensure walker service is running
if ! pgrep -f "walker --gapplication-service" > /dev/null; then
setsid uwsm-app -- walker --gapplication-service &
fi

exec walker "$@"
2 changes: 1 addition & 1 deletion bin/omarchy-launch-webapp
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium-b
*) browser="chromium.desktop" ;;
esac

exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"
exec setsid uwsm-app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"
2 changes: 1 addition & 1 deletion bin/omarchy-launch-wifi
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash

exec setsid uwsm app -- "$TERMINAL" --class=Impala -e impala "$@"
exec setsid uwsm-app -- "$TERMINAL" --class=Impala -e impala "$@"
2 changes: 1 addition & 1 deletion bin/omarchy-lock-screen
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ if pgrep -x "1password" >/dev/null; then
fi

# Avoid running screensaver when locked
pkill -f "$TERMINAL --class Screensaver"
pkill -f "alacritty --class Screensaver"
Loading