Compare commits
250 Commits
v2.1.1
...
polkit-err
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
267a9e1765 | ||
|
|
0e1f585166 | ||
|
|
d3f70a0c22 | ||
|
|
39541b4876 | ||
|
|
edbafe7a13 | ||
|
|
b97cba39af | ||
|
|
6d20a13076 | ||
|
|
bf4fb40877 | ||
|
|
4365a52a08 | ||
|
|
f701cf7c6d | ||
|
|
9c5cf01410 | ||
|
|
6ea9c9311e | ||
|
|
66abd7dc2e | ||
|
|
819da32ebb | ||
|
|
5b062cddce | ||
|
|
e9ab1d9bcc | ||
|
|
f956233ecf | ||
|
|
e6d1a2f754 | ||
|
|
dfd133df87 | ||
|
|
2326018341 | ||
|
|
011174699c | ||
|
|
1ffed127db | ||
|
|
a38d80ee9f | ||
|
|
a401c74083 | ||
|
|
5faa2c8d49 | ||
|
|
3f25fcbd98 | ||
|
|
14b020dcfb | ||
|
|
c91c75a5e6 | ||
|
|
e3658556ea | ||
|
|
2971a25a4f | ||
|
|
2c14252d7d | ||
|
|
b0ee5d2e79 | ||
|
|
7a7266aed0 | ||
|
|
6892304277 | ||
|
|
6aac67a1d5 | ||
|
|
5aa39c9261 | ||
|
|
5da10be63e | ||
|
|
2316c2f365 | ||
|
|
ea7d98e6b7 | ||
|
|
443173e29d | ||
|
|
164fc5ceb1 | ||
|
|
9c24150e69 | ||
|
|
479f20d294 | ||
|
|
bb4df39bbd | ||
|
|
d4fddd7c75 | ||
|
|
3cb52c0b38 | ||
|
|
cab70bbe4f | ||
|
|
5f2013a482 | ||
|
|
f2021a95a4 | ||
|
|
2e0064943b | ||
|
|
c7aa0f570a | ||
|
|
a079af948b | ||
|
|
6544d1b970 | ||
|
|
bbe4461c05 | ||
|
|
bba224e9a5 | ||
|
|
4283533858 | ||
|
|
e0f16b9098 | ||
|
|
7819ae354e | ||
|
|
058b233da8 | ||
|
|
1ac8e96df3 | ||
|
|
977103011e | ||
|
|
9903a9b333 | ||
|
|
a51011fbb8 | ||
|
|
1022734a67 | ||
|
|
67011160b2 | ||
|
|
f634bfeeb6 | ||
|
|
ea6b6c6b7f | ||
|
|
499e7383c2 | ||
|
|
9b8819d9b9 | ||
|
|
a8f76783e3 | ||
|
|
796ef67ede | ||
|
|
0eccf22921 | ||
|
|
971422b757 | ||
|
|
076da663f5 | ||
|
|
b92ebff29b | ||
|
|
8e5b59995a | ||
|
|
dc49358a81 | ||
|
|
cd39bbf692 | ||
|
|
fba17b7da4 | ||
|
|
25df782e2f | ||
|
|
d4b0ba5d94 | ||
|
|
a74b426c9f | ||
|
|
e0a50f12a7 | ||
|
|
96b64189a6 | ||
|
|
3376838dfb | ||
|
|
0f3e6f5101 | ||
|
|
4d9f932e6c | ||
|
|
607915a5d1 | ||
|
|
38d536ba9d | ||
|
|
c4d8ef6a15 | ||
|
|
2df8c5f7e0 | ||
|
|
a820b72da9 | ||
|
|
39c27939f3 | ||
|
|
0123cf7917 | ||
|
|
441ee10d70 | ||
|
|
45465d3e7c | ||
|
|
a746812504 | ||
|
|
ad01082a86 | ||
|
|
ba743c623d | ||
|
|
779c1b9ecc | ||
|
|
e4ab5bee14 | ||
|
|
f60b9d1cb4 | ||
|
|
70661d5d5b | ||
|
|
ad155b2545 | ||
|
|
206930def8 | ||
|
|
a965a333ea | ||
|
|
4d50c8bd33 | ||
|
|
ad30ef6339 | ||
|
|
19d1ee2b00 | ||
|
|
ed3b723c7f | ||
|
|
83ab85799b | ||
|
|
ffe7cd5099 | ||
|
|
28c4814f5a | ||
|
|
cf41ecaaa5 | ||
|
|
9aef0ffab6 | ||
|
|
f6383fd3e9 | ||
|
|
e81994f182 | ||
|
|
7ca60bd590 | ||
|
|
dac34aa5e0 | ||
|
|
81165f1947 | ||
|
|
fc3d1a4af5 | ||
|
|
020a4659ec | ||
|
|
d66909de14 | ||
|
|
0e17c419be | ||
|
|
75f035ddb6 | ||
|
|
a039a0fdae | ||
|
|
9a24ca8a36 | ||
|
|
0b8540e663 | ||
|
|
ebb12f187e | ||
|
|
1669832693 | ||
|
|
80bd5e5979 | ||
|
|
832a33eb93 | ||
|
|
a15ccdd1ed | ||
|
|
6d9ae608e5 | ||
|
|
f6df59c9ed | ||
|
|
1514c5c633 | ||
|
|
d92e13143f | ||
|
|
e14d58fe54 | ||
|
|
f592bca968 | ||
|
|
b5b4dea4ff | ||
|
|
4cda82bc98 | ||
|
|
69ec570aad | ||
|
|
a51c58c20c | ||
|
|
761a51fac0 | ||
|
|
654723aa7f | ||
|
|
b9dfbb8f4c | ||
|
|
eec51b1fb5 | ||
|
|
a1228dac6b | ||
|
|
432ffb508c | ||
|
|
bf0c2cc9a5 | ||
|
|
7e1c88b932 | ||
|
|
c8fa96f382 | ||
|
|
2e4c9d0de8 | ||
|
|
facae82630 | ||
|
|
2719db01f9 | ||
|
|
461f8186f6 | ||
|
|
c5d04e8e9c | ||
|
|
c072715ebe | ||
|
|
55911ebf7d | ||
|
|
d3304c4a88 | ||
|
|
f401c72ea2 | ||
|
|
3986afd0c5 | ||
|
|
415896605e | ||
|
|
1e6ddf55ce | ||
|
|
5582c51676 | ||
|
|
5f56f4ccc7 | ||
|
|
e4ca98301b | ||
|
|
e228a987a8 | ||
|
|
f9edbfe10c | ||
|
|
2cb285c267 | ||
|
|
5be0e4de44 | ||
|
|
5f92574586 | ||
|
|
772a75376e | ||
|
|
d5314cecb7 | ||
|
|
c16766c8b1 | ||
|
|
f8ff57e2af | ||
|
|
8e4487ca41 | ||
|
|
b422281840 | ||
|
|
2e41b2c400 | ||
|
|
55bf2457d4 | ||
|
|
a77264ae99 | ||
|
|
13349180b6 | ||
|
|
445ccdebbf | ||
|
|
27f020af4d | ||
|
|
8920c95586 | ||
|
|
52680f4b3e | ||
|
|
d96322e58a | ||
|
|
0f09febf4d | ||
|
|
d58fe8b4a0 | ||
|
|
4a4ff04741 | ||
|
|
a0e3d86c12 | ||
|
|
2132c684ff | ||
|
|
47bdbec9f1 | ||
|
|
5b0deb90ba | ||
|
|
3e1e466938 | ||
|
|
e018692e5e | ||
|
|
123f970b20 | ||
|
|
9de375648e | ||
|
|
115fcb786d | ||
|
|
23d9b3ae71 | ||
|
|
6bffd1be8e | ||
|
|
a9fe693ed9 | ||
|
|
57bb63b5a3 | ||
|
|
6b3d1d5dc7 | ||
|
|
759003eed9 | ||
|
|
2684322975 | ||
|
|
51607f1978 | ||
|
|
beb2e6b865 | ||
|
|
f14f63b9e6 | ||
|
|
01ce4bb4dd | ||
|
|
02fbe0f305 | ||
|
|
2601311b62 | ||
|
|
dc53c34b6a | ||
|
|
418159bd31 | ||
|
|
10f909fdfc | ||
|
|
5372393211 | ||
|
|
6bf32a082e | ||
|
|
49ca5ee249 | ||
|
|
8651f6d8b0 | ||
|
|
cfbc71c117 | ||
|
|
fc58a79ea5 | ||
|
|
87469f5f43 | ||
|
|
5157932947 | ||
|
|
6599a6eb70 | ||
|
|
d09b6aa42a | ||
|
|
e9754b5460 | ||
|
|
8356358097 | ||
|
|
e57026a067 | ||
|
|
f5cd7a4237 | ||
|
|
381e43d124 | ||
|
|
844091341c | ||
|
|
bdcd78484b | ||
|
|
8c3c93eed1 | ||
|
|
19d85a7710 | ||
|
|
1f5a86ba8e | ||
|
|
a9d9faef24 | ||
|
|
16460b5203 | ||
|
|
bf07883e82 | ||
|
|
a66e8ebebd | ||
|
|
a57060ee31 | ||
|
|
9ca2081742 | ||
|
|
c9bacbe318 | ||
|
|
a0674703f8 | ||
|
|
627b5f4ead | ||
|
|
80767e8686 | ||
|
|
e260d28f43 | ||
|
|
8af2d3257f | ||
|
|
2666e75666 | ||
|
|
d40c1ba454 | ||
|
|
648832dcc6 |
9
.editorconfig
Normal file
@@ -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
applications/hidden/electron36.desktop
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Hidden=true
|
||||||
2
applications/hidden/electron37.desktop
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Hidden=true
|
||||||
2
applications/hidden/java-java-openjdk.desktop
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Hidden=true
|
||||||
2
applications/hidden/jconsole-java-openjdk.desktop
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Hidden=true
|
||||||
2
applications/hidden/jshell-java-openjdk.desktop
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Hidden=true
|
||||||
BIN
applications/icons/Basecamp.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
applications/icons/ChatGPT.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
applications/icons/Discord.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
applications/icons/Disk Usage.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
applications/icons/Docker.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
applications/icons/Figma.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
applications/icons/GitHub.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
applications/icons/Google Contacts.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
applications/icons/Google Messages.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
applications/icons/Google Photos.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
applications/icons/HEY.png
Normal file
|
After Width: | Height: | Size: 196 KiB |
BIN
applications/icons/WhatsApp.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
applications/icons/X.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
applications/icons/YouTube.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
applications/icons/Zoom.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
@@ -2,7 +2,7 @@
|
|||||||
Name=Neovim
|
Name=Neovim
|
||||||
GenericName=Text Editor
|
GenericName=Text Editor
|
||||||
Comment=Edit text files
|
Comment=Edit text files
|
||||||
Exec=alacritty --class=nvim --title=nvim -e nvim -- %F
|
Exec=omarchy-launch-editor %F
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Keywords=Text;editor;
|
Keywords=Text;editor;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
focused_monitor="$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
|
focused_monitor="$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
|
||||||
|
|
||||||
sinks=$(pactl -f json list sinks)
|
sinks=$(pactl -f json list sinks | jq '[.[] | select((.ports | length == 0) or ([.ports[]? | .availability != "not available"] | any))]')
|
||||||
sinks_count=$(echo "$sinks" | jq '. | length')
|
sinks_count=$(echo "$sinks" | jq '. | length')
|
||||||
|
|
||||||
if [ "$sinks_count" -eq 0 ]; then
|
if [ "$sinks_count" -eq 0 ]; then
|
||||||
|
|||||||
@@ -6,7 +6,14 @@ FIRST_RUN_MODE=~/.local/state/omarchy/first-run.mode
|
|||||||
|
|
||||||
if [[ -f "$FIRST_RUN_MODE" ]]; then
|
if [[ -f "$FIRST_RUN_MODE" ]]; then
|
||||||
rm -f "$FIRST_RUN_MODE"
|
rm -f "$FIRST_RUN_MODE"
|
||||||
$OMARCHY_PATH/install/first-run/battery-monitor.sh
|
|
||||||
$OMARCHY_PATH/install/first-run/firewall.sh
|
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
|
sudo rm -f /etc/sudoers.d/first-run
|
||||||
|
|
||||||
|
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
|
||||||
|
bash "$OMARCHY_PATH/install/first-run/welcome.sh"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -8,31 +8,48 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $2 == "audio" ]]; then
|
# Selects region or output
|
||||||
AUDIO="--audio"
|
SCOPE="$1"
|
||||||
else
|
|
||||||
AUDIO=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
screenrecording() {
|
# Selects audio inclusion or not
|
||||||
filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
AUDIO=$([[ $2 == "audio" ]] && echo "--audio")
|
||||||
notify-send "Screen recording starting..." -t 1000
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
if lspci | grep -Eqi 'nvidia|intel.*graphics'; then
|
start_screenrecording() {
|
||||||
wf-recorder $AUDIO -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@"
|
local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
||||||
|
|
||||||
|
if lspci | grep -qi 'nvidia'; then
|
||||||
|
wf-recorder $AUDIO -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@" &
|
||||||
else
|
else
|
||||||
wl-screenrec $AUDIO -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@"
|
wl-screenrec $AUDIO -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@" &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
toggle_screenrecording_indicator
|
||||||
}
|
}
|
||||||
|
|
||||||
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
|
stop_screenrecording() {
|
||||||
pkill -x wl-screenrec
|
pkill -x wl-screenrec
|
||||||
pkill -x wf-recorder
|
pkill -x wf-recorder
|
||||||
|
|
||||||
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
|
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
|
||||||
elif [[ "$1" == "output" ]]; then
|
|
||||||
screenrecording
|
sleep 0.2 # ensures the process is actually dead before we check
|
||||||
|
toggle_screenrecording_indicator
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle_screenrecording_indicator() {
|
||||||
|
pkill -RTMIN+8 waybar
|
||||||
|
}
|
||||||
|
|
||||||
|
screenrecording_active() {
|
||||||
|
pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
if screenrecording_active; then
|
||||||
|
stop_screenrecording
|
||||||
|
elif [[ "$SCOPE" == "output" ]]; then
|
||||||
|
output=$(slurp -o) || exit 1
|
||||||
|
start_screenrecording -g "$output"
|
||||||
else
|
else
|
||||||
region=$(slurp) || exit 1
|
region=$(slurp) || exit 1
|
||||||
screenrecording -g "$region"
|
start_screenrecording -g "$region"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
|
|
||||||
pkill -x wl-screenrec
|
|
||||||
pkill -x wf-recorder
|
|
||||||
notify-send "Screen recording stopped" -t 2000
|
|
||||||
fi
|
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function exit_screensaver {
|
screensaver_in_focus() {
|
||||||
|
hyprctl activewindow -j | jq -e '.class == "Screensaver"' >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
exit_screensaver() {
|
||||||
|
hyprctl keyword cursor:invisible false
|
||||||
pkill -x tte 2>/dev/null
|
pkill -x tte 2>/dev/null
|
||||||
pkill -f "alacritty --class Screensaver" 2>/dev/null
|
pkill -f "alacritty --class Screensaver" 2>/dev/null
|
||||||
exit 0
|
exit 0
|
||||||
@@ -8,14 +13,16 @@ function exit_screensaver {
|
|||||||
|
|
||||||
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
|
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
|
||||||
|
|
||||||
|
hyprctl keyword cursor:invisible true
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
|
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
|
||||||
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
||||||
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \
|
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 1)) --anchor-canvas c --anchor-text c \
|
||||||
"$effect" &
|
"$effect" &
|
||||||
|
|
||||||
while pgrep -x tte >/dev/null; do
|
while pgrep -x tte >/dev/null; do
|
||||||
if read -n 1 -t 3; then
|
if read -n 1 -t 3 || ! screensaver_in_focus; then
|
||||||
exit_screensaver
|
exit_screensaver
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pkill slurp || hyprshot -m ${1:-region} --raw --freeze |
|
pkill slurp || hyprshot -m ${1:-region} --raw |
|
||||||
satty --filename - \
|
satty --filename - \
|
||||||
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
||||||
--early-exit \
|
--early-exit \
|
||||||
|
|||||||
44
bin/omarchy-cmd-share
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (($# == 0)); then
|
||||||
|
echo "Usage: omarchy-cmd-share [clipboard|file|folder]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MODE="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [[ $MODE == "clipboard" ]]; then
|
||||||
|
TEMP_FILE=$(mktemp --suffix=.txt)
|
||||||
|
wl-paste >"$TEMP_FILE"
|
||||||
|
FILES="$TEMP_FILE"
|
||||||
|
else
|
||||||
|
if (($# > 0)); then
|
||||||
|
FILES="$*"
|
||||||
|
else
|
||||||
|
if [[ $MODE == "folder" ]]; then
|
||||||
|
# Pick a single folder from home directory
|
||||||
|
FILES=$(find "$HOME" -type d 2>/dev/null | fzf)
|
||||||
|
else
|
||||||
|
# Pick one or more files from home directory
|
||||||
|
FILES=$(find "$HOME" -type f 2>/dev/null | fzf --multi)
|
||||||
|
fi
|
||||||
|
[ -z "$FILES" ] && exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run LocalSend in its own systemd service (detached from terminal)
|
||||||
|
# Convert newline-separated files to space-separated arguments
|
||||||
|
if [[ $MODE != "clipboard" ]] && echo "$FILES" | grep -q $'\n'; then
|
||||||
|
# Multiple files selected - convert newlines to array
|
||||||
|
readarray -t FILE_ARRAY <<<"$FILES"
|
||||||
|
systemd-run --user --quiet --collect localsend --headless send "${FILE_ARRAY[@]}"
|
||||||
|
else
|
||||||
|
# Single file or clipboard mode
|
||||||
|
systemd-run --user --quiet --collect localsend --headless send "$FILES"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Note: Temporary file will remain until system cleanup for clipboard mode
|
||||||
|
# This ensures the file content is available for the LocalSend GUI
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -5,7 +5,13 @@ terminal_pid=$(hyprctl activewindow | awk '/pid:/ {print $2}')
|
|||||||
shell_pid=$(pgrep -P "$terminal_pid" | head -n1)
|
shell_pid=$(pgrep -P "$terminal_pid" | head -n1)
|
||||||
|
|
||||||
if [[ -n $shell_pid ]]; then
|
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
|
else
|
||||||
echo "$HOME"
|
echo "$HOME"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
notify-send " Updating time and timezone..."
|
||||||
sudo systemctl restart systemd-timesyncd
|
sudo systemctl restart systemd-timesyncd
|
||||||
sudo tzupdate
|
sudo tzupdate
|
||||||
new_timezone=$(timedatectl show -p Timezone --value)
|
new_timezone=$(timedatectl show -p Timezone --value)
|
||||||
omarchy-restart-waybar
|
omarchy-restart-waybar
|
||||||
notify-send "Time synced and timezone set to $new_timezone"
|
notify-send " Time updated and timezone set to $new_timezone"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
grep -oP 'family\s*=\s*"\K[^"]+' ~/.config/alacritty/alacritty.toml | head -n1
|
grep -oP 'font-family:\s*["'\'']?\K[^;"'\'']+' ~/.config/waybar/style.css | head -n1
|
||||||
|
|||||||
@@ -4,7 +4,20 @@ font_name="$1"
|
|||||||
|
|
||||||
if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
|
if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
|
||||||
if fc-list | grep -iq "$font_name"; then
|
if fc-list | grep -iq "$font_name"; then
|
||||||
sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml
|
if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
|
||||||
|
sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ~/.config/kitty/kitty.conf ]]; then
|
||||||
|
sed -i "s/^font_family .*/font_family $font_name/g" ~/.config/kitty/kitty.conf
|
||||||
|
pkill -USR1 kitty
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ~/.config/ghostty/config ]]; then
|
||||||
|
sed -i "s/font-family = \".*\"/font-family = \"$font_name\"/g" ~/.config/ghostty/config
|
||||||
|
pkill -SIGUSR2 ghostty
|
||||||
|
fi
|
||||||
|
|
||||||
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/waybar/style.css
|
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/waybar/style.css
|
||||||
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/swayosd/style.css
|
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/swayosd/style.css
|
||||||
xmlstarlet ed -L \
|
xmlstarlet ed -L \
|
||||||
|
|||||||
13
bin/omarchy-install-chromium-google-account
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ -f ~/.config/chromium-flags.conf ]]; then
|
||||||
|
CONF=~/.config/chromium-flags.conf
|
||||||
|
|
||||||
|
grep -qxF -- "--oauth2-client-id=77185425430.apps.googleusercontent.com" "$CONF" ||
|
||||||
|
echo "--oauth2-client-id=77185425430.apps.googleusercontent.com" >>"$CONF"
|
||||||
|
|
||||||
|
grep -qxF -- "--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT" "$CONF" ||
|
||||||
|
echo "--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT" >>"$CONF"
|
||||||
|
|
||||||
|
echo "Now you can login to your Google Account in Chromium."
|
||||||
|
fi
|
||||||
@@ -47,6 +47,7 @@ install_node() {
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
ruby)
|
ruby)
|
||||||
echo -e "Installing Ruby on Rails...\n"
|
echo -e "Installing Ruby on Rails...\n"
|
||||||
|
omarchy-pkg-add libyaml
|
||||||
mise use --global ruby@latest
|
mise use --global ruby@latest
|
||||||
mise settings add idiomatic_version_file_enable_tools ruby
|
mise settings add idiomatic_version_file_enable_tools ruby
|
||||||
mise x ruby -- gem install rails --no-document
|
mise x ruby -- gem install rails --no-document
|
||||||
@@ -119,6 +120,7 @@ java)
|
|||||||
zig)
|
zig)
|
||||||
echo -e "Installing Zig...\n"
|
echo -e "Installing Zig...\n"
|
||||||
mise use --global zig@latest
|
mise use --global zig@latest
|
||||||
|
mise use -g zls@latest
|
||||||
;;
|
;;
|
||||||
ocaml)
|
ocaml)
|
||||||
echo -e "Installing OCaml...\n"
|
echo -e "Installing OCaml...\n"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
|
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
|
||||||
|
|
||||||
if [[ "$#" -eq 0 ]]; then
|
if [[ "$#" -eq 0 ]]; then
|
||||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --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
|
else
|
||||||
choices="$@"
|
choices="$@"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ echo "Installing all dependencies..."
|
|||||||
omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
|
omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
|
||||||
|
|
||||||
echo "Starting 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."
|
echo "See Dropbox icon behind hover tray in top right and right-click for setup."
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "Adding multilib repository for 32-bit compatibility"
|
|
||||||
sudo sed -i '/^#\s*\[multilib\]/,/^#\s*Include/ s/^#\s*//' /etc/pacman.conf
|
|
||||||
|
|
||||||
echo "Now pick dependencies matching your graphics card"
|
echo "Now pick dependencies matching your graphics card"
|
||||||
sudo pacman -Syu --noconfirm steam
|
sudo pacman -Syu --noconfirm steam
|
||||||
setsid gtk-launch steam >/dev/null 2>&1 &
|
setsid gtk-launch steam >/dev/null 2>&1 &
|
||||||
|
|||||||
19
bin/omarchy-install-terminal
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (($# == 0)); then
|
||||||
|
echo "Usage: omarchy-install-terminal [alacritty|ghostty|kitty]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
package="$1"
|
||||||
|
|
||||||
|
# Install package
|
||||||
|
omarchy-pkg-add $package
|
||||||
|
|
||||||
|
# Set as default terminal
|
||||||
|
echo "Setting $package as new default terminal..."
|
||||||
|
sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default
|
||||||
|
|
||||||
|
# Relaunch is needed for new default to take effect
|
||||||
|
echo
|
||||||
|
gum confirm "Relaunch Hyprland to use new terminal?" && uwsm stop
|
||||||
21
bin/omarchy-install-vscode
Executable file
@@ -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
|
||||||
3
bin/omarchy-launch-about
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
exec setsid uwsm-app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s'
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@
|
default_browser=$(xdg-settings get default-web-browser)
|
||||||
|
browser_exec=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$default_browser 2>/dev/null | head -1)
|
||||||
|
|
||||||
|
if [[ $browser_exec =~ (firefox|zen|librewolf) ]]; then
|
||||||
|
private_flag="--private-window"
|
||||||
|
else
|
||||||
|
private_flag="--incognito"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec setsid uwsm-app -- "$browser_exec" "${@/--private/$private_flag}"
|
||||||
|
|||||||
10
bin/omarchy-launch-editor
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
case "${EDITOR:-nvim}" in
|
||||||
|
nvim | vim | nano | micro | hx | helix)
|
||||||
|
exec setsid uwsm-app -- "$TERMINAL" -e "$EDITOR" "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exec setsid uwsm-app -- "$EDITOR" "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
cmd="$*"
|
cmd="$*"
|
||||||
setsid alacritty --class 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"
|
||||||
16
bin/omarchy-launch-or-focus
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (($# == 0)); then
|
||||||
|
echo "Usage: omarchy-launch-or-focus [window-pattern] [launch-command]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
WINDOW_PATTERN="$1"
|
||||||
|
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
|
||||||
|
hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS"
|
||||||
|
else
|
||||||
|
eval exec $LAUNCH_COMMAND
|
||||||
|
fi
|
||||||
12
bin/omarchy-launch-or-focus-webapp
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (($# == 0)); then
|
||||||
|
echo "Usage: omarchy-launch-or-focus-webapp [window-pattern] [url-and-flags...]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
WINDOW_PATTERN="$1"
|
||||||
|
shift
|
||||||
|
LAUNCH_COMMAND="omarchy-launch-webapp $@"
|
||||||
|
|
||||||
|
exec omarchy-launch-or-focus "$WINDOW_PATTERN" "$LAUNCH_COMMAND"
|
||||||
@@ -17,6 +17,8 @@ focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
|
|||||||
|
|
||||||
for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
||||||
hyprctl dispatch focusmonitor $m
|
hyprctl dispatch focusmonitor $m
|
||||||
|
|
||||||
|
# FIXME: Find a way to make this generic where we it can work for kitty + ghostty
|
||||||
hyprctl dispatch exec -- \
|
hyprctl dispatch exec -- \
|
||||||
alacritty --class Screensaver \
|
alacritty --class Screensaver \
|
||||||
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
|
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
browser=$(xdg-settings get default-web-browser)
|
browser=$(xdg-settings get default-web-browser)
|
||||||
|
|
||||||
case $browser in
|
case $browser in
|
||||||
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi*) ;;
|
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium-browser*) ;;
|
||||||
*) browser="chromium.desktop" ;;
|
*) browser="chromium.desktop" ;;
|
||||||
esac
|
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}"
|
||||||
|
|||||||
3
bin/omarchy-launch-wifi
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
exec setsid uwsm-app -- "$TERMINAL" --class=Impala -e impala "$@"
|
||||||
172
bin/omarchy-menu
@@ -8,7 +8,7 @@ BACK_TO_EXIT=false
|
|||||||
back_to() {
|
back_to() {
|
||||||
local parent_menu="$1"
|
local parent_menu="$1"
|
||||||
|
|
||||||
if [[ "$DIRECT_ACCESS" == "true" ]]; then
|
if [[ "$BACK_TO_EXIT" == "true" ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ -n "$parent_menu" ]]; then
|
elif [[ -n "$parent_menu" ]]; then
|
||||||
"$parent_menu"
|
"$parent_menu"
|
||||||
@@ -37,16 +37,16 @@ menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
terminal() {
|
terminal() {
|
||||||
alacritty --class Omarchy -e "$@"
|
alacritty --class=Omarchy -e "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
present_terminal() {
|
present_terminal() {
|
||||||
omarchy-launch-floating-terminal-with-presentation $1
|
omarchy-launch-floating-terminal-with-presentation $1
|
||||||
}
|
}
|
||||||
|
|
||||||
edit_in_nvim() {
|
open_in_editor() {
|
||||||
notify-send "Editing config file" "$1"
|
notify-send "Editing config file" "$1"
|
||||||
alacritty -e nvim "$1"
|
omarchy-launch-editor "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
install() {
|
install() {
|
||||||
@@ -61,6 +61,10 @@ install_font() {
|
|||||||
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
|
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_terminal() {
|
||||||
|
present_terminal "omarchy-install-terminal $1"
|
||||||
|
}
|
||||||
|
|
||||||
aur_install() {
|
aur_install() {
|
||||||
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2"
|
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2"
|
||||||
}
|
}
|
||||||
@@ -81,41 +85,21 @@ show_learn_menu() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
show_style_menu() {
|
show_trigger_menu() {
|
||||||
case $(menu "Style" " Theme\n Font\n Background\n Screensaver\n About") in
|
case $(menu "Trigger" " Capture\n Share\n Toggle") in
|
||||||
*Theme*) show_theme_menu ;;
|
*Capture*) show_capture_menu ;;
|
||||||
*Font*) show_font_menu ;;
|
*Share*) show_share_menu ;;
|
||||||
*Background*) omarchy-theme-bg-next ;;
|
*Toggle*) show_toggle_menu ;;
|
||||||
*Screensaver*) edit_in_nvim ~/.config/omarchy/branding/screensaver.txt ;;
|
|
||||||
*About*) edit_in_nvim ~/.config/omarchy/branding/about.txt ;;
|
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
show_theme_menu() {
|
|
||||||
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
|
|
||||||
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
|
|
||||||
back_to show_style_menu
|
|
||||||
else
|
|
||||||
omarchy-theme-set "$theme"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
show_font_menu() {
|
|
||||||
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
|
|
||||||
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
|
|
||||||
back_to show_style_menu
|
|
||||||
else
|
|
||||||
omarchy-font-set "$theme"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
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*) show_screenshot_menu ;;
|
||||||
*Screenrecord*) show_screenrecord_menu ;;
|
*Screenrecord*) show_screenrecord_menu ;;
|
||||||
*Color*) pkill hyprpicker || hyprpicker -a ;;
|
*Color*) pkill hyprpicker || hyprpicker -a ;;
|
||||||
*) show_main_menu ;;
|
*) show_trigger_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,40 +122,79 @@ show_screenrecord_menu() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_share_menu() {
|
||||||
|
case $(menu "Share" " Clipboard\n File \n Folder") in
|
||||||
|
*Clipboard*) terminal bash -c "omarchy-cmd-share clipboard" ;;
|
||||||
|
*File*) terminal bash -c "omarchy-cmd-share file" ;;
|
||||||
|
*Folder*) terminal bash -c "omarchy-cmd-share folder" ;;
|
||||||
|
*) back_to show_trigger_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
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") 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 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
show_style_menu() {
|
||||||
|
case $(menu "Style" " Theme\n Font\n Background\n Hyprland\n Screensaver\n About") in
|
||||||
|
*Theme*) show_theme_menu ;;
|
||||||
|
*Font*) show_font_menu ;;
|
||||||
|
*Background*) omarchy-theme-bg-next ;;
|
||||||
|
*Hyprland*) open_in_editor ~/.config/hypr/looknfeel.conf ;;
|
||||||
|
*Screensaver*) open_in_editor ~/.config/omarchy/branding/screensaver.txt ;;
|
||||||
|
*About*) open_in_editor ~/.config/omarchy/branding/about.txt ;;
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_theme_menu() {
|
||||||
|
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
|
||||||
|
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
|
||||||
|
back_to show_style_menu
|
||||||
|
else
|
||||||
|
omarchy-theme-set "$theme"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
show_font_menu() {
|
||||||
|
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
|
||||||
|
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
|
||||||
|
back_to show_style_menu
|
||||||
|
else
|
||||||
|
omarchy-font-set "$theme"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
show_setup_menu() {
|
show_setup_menu() {
|
||||||
local options=" Audio\n Wifi\n Bluetooth\n Power Profile\n Monitors"
|
local options=" Audio\n Wifi\n Bluetooth\n Power Profile\n Monitors"
|
||||||
[ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings"
|
[ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings"
|
||||||
[ -f ~/.config/hypr/input.conf ] && options="$options\n Input"
|
[ -f ~/.config/hypr/input.conf ] && options="$options\n Input"
|
||||||
options="$options\n DNS\n Config\n Fingerprint\n Fido2"
|
options="$options\n Defaults\n DNS\n Security\n Config"
|
||||||
|
|
||||||
case $(menu "Setup" "$options") in
|
case $(menu "Setup" "$options") in
|
||||||
*Audio*) alacritty --class=Wiremix -e wiremix ;;
|
*Audio*) $TERMINAL --class=Wiremix -e wiremix ;;
|
||||||
*Wifi*)
|
*Wifi*)
|
||||||
rfkill unblock wifi
|
rfkill unblock wifi
|
||||||
alacritty --class=Impala -e impala
|
omarchy-launch-wifi
|
||||||
;;
|
;;
|
||||||
*Bluetooth*)
|
*Bluetooth*)
|
||||||
rfkill unblock bluetooth
|
rfkill unblock bluetooth
|
||||||
blueberry
|
blueberry
|
||||||
;;
|
;;
|
||||||
*Power*) show_setup_power_menu ;;
|
*Power*) show_setup_power_menu ;;
|
||||||
*Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;;
|
*Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;;
|
||||||
*Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;;
|
*Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;;
|
||||||
*Input*) edit_in_nvim ~/.config/hypr/input.conf ;;
|
*Input*) open_in_editor ~/.config/hypr/input.conf ;;
|
||||||
|
*Defaults*) open_in_editor ~/.config/uwsm/default ;;
|
||||||
*DNS*) present_terminal omarchy-setup-dns ;;
|
*DNS*) present_terminal omarchy-setup-dns ;;
|
||||||
|
*Security*) show_setup_security_menu ;;
|
||||||
*Config*) show_setup_config_menu ;;
|
*Config*) show_setup_config_menu ;;
|
||||||
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
|
|
||||||
*Fido2*) present_terminal omarchy-setup-fido2 ;;
|
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -188,20 +211,28 @@ show_setup_power_menu() {
|
|||||||
|
|
||||||
show_setup_config_menu() {
|
show_setup_config_menu() {
|
||||||
case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n Walker\n Waybar\n XCompose") in
|
case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n Walker\n Waybar\n XCompose") in
|
||||||
*Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;;
|
*Hyprland*) open_in_editor ~/.config/hypr/hyprland.conf ;;
|
||||||
*Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;;
|
*Hypridle*) open_in_editor ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;;
|
||||||
*Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;;
|
*Hyprlock*) open_in_editor ~/.config/hypr/hyprlock.conf ;;
|
||||||
*Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;;
|
*Hyprsunset*) open_in_editor ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;;
|
||||||
*Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;;
|
*Swayosd*) open_in_editor ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;;
|
||||||
*Walker*) edit_in_nvim ~/.config/walker/config.toml && omarchy-restart-walker ;;
|
*Walker*) open_in_editor ~/.config/walker/config.toml && omarchy-restart-walker ;;
|
||||||
*Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;;
|
*Waybar*) open_in_editor ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;;
|
||||||
*XCompose*) edit_in_nvim ~/.XCompose && omarchy-restart-xcompose ;;
|
*XCompose*) open_in_editor ~/.XCompose && omarchy-restart-xcompose ;;
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_setup_security_menu() {
|
||||||
|
case $(menu "Setup" " Fingerprint\n Fido2") in
|
||||||
|
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
|
||||||
|
*Fido2*) present_terminal omarchy-setup-fido2 ;;
|
||||||
|
*) show_setup_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
show_install_menu() {
|
show_install_menu() {
|
||||||
case $(menu "Install" " Package\n AUR\n Web App\n TUI\n Service\n Style\n Development\n Editor\n AI\n Gaming") in
|
case $(menu "Install" " Package\n AUR\n Web App\n TUI\n Service\n Style\n Development\n Editor\n Terminal\n AI\n Gaming") in
|
||||||
*Package*) terminal omarchy-pkg-install ;;
|
*Package*) terminal omarchy-pkg-install ;;
|
||||||
*AUR*) terminal omarchy-pkg-aur-install ;;
|
*AUR*) terminal omarchy-pkg-aur-install ;;
|
||||||
*Web*) present_terminal omarchy-webapp-install ;;
|
*Web*) present_terminal omarchy-webapp-install ;;
|
||||||
@@ -210,6 +241,7 @@ show_install_menu() {
|
|||||||
*Style*) show_install_style_menu ;;
|
*Style*) show_install_style_menu ;;
|
||||||
*Development*) show_install_development_menu ;;
|
*Development*) show_install_development_menu ;;
|
||||||
*Editor*) show_install_editor_menu ;;
|
*Editor*) show_install_editor_menu ;;
|
||||||
|
*Terminal*) show_install_terminal_menu ;;
|
||||||
*AI*) show_install_ai_menu ;;
|
*AI*) show_install_ai_menu ;;
|
||||||
*Gaming*) show_install_gaming_menu ;;
|
*Gaming*) show_install_gaming_menu ;;
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
@@ -217,17 +249,18 @@ show_install_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_install_service_menu() {
|
show_install_service_menu() {
|
||||||
case $(menu "Install" " Dropbox\n Tailscale\n Bitwarden") in
|
case $(menu "Install" " Dropbox\n Tailscale\n Bitwarden\n Chromium Account") in
|
||||||
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
||||||
*Tailscale*) present_terminal omarchy-install-tailscale ;;
|
*Tailscale*) present_terminal omarchy-install-tailscale ;;
|
||||||
*Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;;
|
*Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;;
|
||||||
|
*Chromium*) present_terminal omarchy-install-chromium-google-account ;;
|
||||||
*) show_install_menu ;;
|
*) show_install_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
show_install_editor_menu() {
|
show_install_editor_menu() {
|
||||||
case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in
|
case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in
|
||||||
*VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;;
|
*VSCode*) present_terminal omarchy-install-vscode ;;
|
||||||
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
|
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
|
||||||
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
|
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
|
||||||
*Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
*Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
||||||
@@ -237,6 +270,15 @@ show_install_editor_menu() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_install_terminal_menu() {
|
||||||
|
case $(menu "Install" " Alacritty\n Ghostty\n Kitty") in
|
||||||
|
*Alacritty*) install_terminal "alacritty" ;;
|
||||||
|
*Ghostty*) install_terminal "ghostty" ;;
|
||||||
|
*Kitty*) install_terminal "kitty" ;;
|
||||||
|
*) show_install_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
show_install_ai_menu() {
|
show_install_ai_menu() {
|
||||||
ollama_pkg=$(
|
ollama_pkg=$(
|
||||||
(command -v nvidia-smi &>/dev/null && echo ollama-cuda) ||
|
(command -v nvidia-smi &>/dev/null && echo ollama-cuda) ||
|
||||||
@@ -244,8 +286,9 @@ show_install_ai_menu() {
|
|||||||
echo ollama
|
echo ollama
|
||||||
)
|
)
|
||||||
|
|
||||||
case $(menu "Install" " Claude Code\n Gemini [AUR]\n OpenAI Codex [AUR]\n LM Studio\n Ollama\n Crush\n opencode") in
|
case $(menu "Install" " Claude Code\n Cursor CLI [AUR]\n Gemini [AUR]\n OpenAI Codex [AUR]\n LM Studio\n Ollama\n Crush\n opencode") in
|
||||||
*Claude*) install "Claude Code" "claude-code" ;;
|
*Claude*) install "Claude Code" "claude-code" ;;
|
||||||
|
*Cursor*) aur_install "Cursor CLI" "cursor-cli" ;;
|
||||||
*OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;;
|
*OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;;
|
||||||
*Gemini*) aur_install "Gemini" "gemini-cli" ;;
|
*Gemini*) aur_install "Gemini" "gemini-cli" ;;
|
||||||
*Studio*) install "LM Studio" "lmstudio" ;;
|
*Studio*) install "LM Studio" "lmstudio" ;;
|
||||||
@@ -285,7 +328,7 @@ show_install_font_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_install_development_menu() {
|
show_install_development_menu() {
|
||||||
case $(menu "Install" " Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure") in
|
case $(menu "Install" " Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure") in
|
||||||
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
|
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
|
||||||
*Docker*) present_terminal omarchy-install-docker-dbs ;;
|
*Docker*) present_terminal omarchy-install-docker-dbs ;;
|
||||||
*JavaScript*) show_install_javascript_menu ;;
|
*JavaScript*) show_install_javascript_menu ;;
|
||||||
@@ -342,8 +385,9 @@ show_remove_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_update_menu() {
|
show_update_menu() {
|
||||||
case $(menu "Update" " Omarchy\n Config\n Themes\n Process\n Hardware\n Password\n Timezone") in
|
case $(menu "Update" " Omarchy\n Branch\n Config\n Extra Themes\n Process\n Hardware\n Password\n Timezone") in
|
||||||
*Omarchy*) present_terminal omarchy-update ;;
|
*Omarchy*) present_terminal omarchy-update ;;
|
||||||
|
*Branch*) show_update_branch_menu ;;
|
||||||
*Config*) show_update_config_menu ;;
|
*Config*) show_update_config_menu ;;
|
||||||
*Themes*) present_terminal omarchy-theme-update ;;
|
*Themes*) present_terminal omarchy-theme-update ;;
|
||||||
*Process*) show_update_process_menu ;;
|
*Process*) show_update_process_menu ;;
|
||||||
@@ -354,6 +398,13 @@ show_update_menu() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_update_branch_menu() {
|
||||||
|
case $(menu "Branch" "master\ndev" "" "$(omarchy-version-branch)") in
|
||||||
|
*master*) present_terminal "omarchy-update-branch master" ;;
|
||||||
|
*dev*) present_terminal "omarchy-update-branch dev" ;;
|
||||||
|
*) show_update_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
show_update_process_menu() {
|
show_update_process_menu() {
|
||||||
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n Walker\n Waybar") in
|
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n Walker\n Waybar") in
|
||||||
*Hypridle*) omarchy-restart-hypridle ;;
|
*Hypridle*) omarchy-restart-hypridle ;;
|
||||||
@@ -380,7 +431,8 @@ show_update_config_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_update_hardware_menu() {
|
show_update_hardware_menu() {
|
||||||
case $(menu "Restart" " Wi-Fi\n Bluetooth") in
|
case $(menu "Restart" " Audio\n Wi-Fi\n Bluetooth") in
|
||||||
|
*Audio*) present_terminal omarchy-restart-pipewire ;;
|
||||||
*Wi-Fi*) present_terminal omarchy-restart-wifi ;;
|
*Wi-Fi*) present_terminal omarchy-restart-wifi ;;
|
||||||
*Bluetooth*) present_terminal omarchy-restart-bluetooth ;;
|
*Bluetooth*) present_terminal omarchy-restart-bluetooth ;;
|
||||||
*) show_update_menu ;;
|
*) show_update_menu ;;
|
||||||
@@ -400,33 +452,33 @@ show_system_menu() {
|
|||||||
*Lock*) omarchy-lock-screen ;;
|
*Lock*) omarchy-lock-screen ;;
|
||||||
*Screensaver*) omarchy-launch-screensaver force ;;
|
*Screensaver*) omarchy-launch-screensaver force ;;
|
||||||
*Suspend*) systemctl suspend ;;
|
*Suspend*) systemctl suspend ;;
|
||||||
*Relaunch*) uwsm stop ;;
|
*Relaunch*) omarchy-state clear relaunch-required && sudo systemctl restart sddm ;;
|
||||||
*Restart*) systemctl reboot ;;
|
*Restart*) omarchy-state clear re*-required && systemctl reboot ;;
|
||||||
*Shutdown*) systemctl poweroff ;;
|
*Shutdown*) omarchy-state clear re*-required && systemctl poweroff ;;
|
||||||
*) back_to show_main_menu ;;
|
*) back_to show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
show_main_menu() {
|
show_main_menu() {
|
||||||
go_to_menu "$(menu "Go" " Apps\n Learn\n Capture\n Toggle\n Style\n Setup\n Install\n Remove\n Update\n About\n System")"
|
go_to_menu "$(menu "Go" " Apps\n Learn\n Trigger\n Style\n Setup\n Install\n Remove\n Update\n About\n System")"
|
||||||
}
|
}
|
||||||
|
|
||||||
go_to_menu() {
|
go_to_menu() {
|
||||||
case "${1,,}" in
|
case "${1,,}" in
|
||||||
*apps*) walker -p "Launch…" ;;
|
*apps*) walker -p "Launch…" ;;
|
||||||
*learn*) show_learn_menu ;;
|
*learn*) show_learn_menu ;;
|
||||||
|
*trigger*) show_trigger_menu ;;
|
||||||
|
*share*) show_share_menu ;;
|
||||||
*style*) show_style_menu ;;
|
*style*) show_style_menu ;;
|
||||||
*theme*) show_theme_menu ;;
|
*theme*) show_theme_menu ;;
|
||||||
*capture*) show_capture_menu ;;
|
|
||||||
*screenshot*) show_screenshot_menu ;;
|
*screenshot*) show_screenshot_menu ;;
|
||||||
*screenrecord*) show_screenrecord_menu ;;
|
*screenrecord*) show_screenrecord_menu ;;
|
||||||
*toggle*) show_toggle_menu ;;
|
|
||||||
*setup*) show_setup_menu ;;
|
*setup*) show_setup_menu ;;
|
||||||
*power*) show_setup_power_menu ;;
|
*power*) show_setup_power_menu ;;
|
||||||
*install*) show_install_menu ;;
|
*install*) show_install_menu ;;
|
||||||
*remove*) show_remove_menu ;;
|
*remove*) show_remove_menu ;;
|
||||||
*update*) show_update_menu ;;
|
*update*) show_update_menu ;;
|
||||||
*about*) alacritty --class Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' ;;
|
*about*) omarchy-launch-about ;;
|
||||||
*system*) show_system_menu ;;
|
*system*) show_system_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,69 @@
|
|||||||
# A script to display Hyprland keybindings defined in your configuration
|
# A script to display Hyprland keybindings defined in your configuration
|
||||||
# using walker for an interactive search menu.
|
# using walker for an interactive search menu.
|
||||||
|
|
||||||
|
declare -A KEYCODE_SYM_MAP
|
||||||
|
|
||||||
|
build_keymap_cache() {
|
||||||
|
local keymap
|
||||||
|
keymap="$(xkbcli compile-keymap)" || {
|
||||||
|
echo "Failed to compile keymap" >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
while IFS=, read -r code sym; do
|
||||||
|
[[ -z "$code" || -z "$sym" ]] && continue
|
||||||
|
KEYCODE_SYM_MAP["$code"]="$sym"
|
||||||
|
done < <(
|
||||||
|
awk '
|
||||||
|
BEGIN { sec = "" }
|
||||||
|
/xkb_keycodes/ { sec = "codes"; next }
|
||||||
|
/xkb_symbols/ { sec = "syms"; next }
|
||||||
|
sec == "codes" {
|
||||||
|
if (match($0, /<([A-Za-z0-9_]+)>\s*=\s*([0-9]+)\s*;/, m)) code_by_name[m[1]] = m[2]
|
||||||
|
}
|
||||||
|
sec == "syms" {
|
||||||
|
if (match($0, /key\s*<([A-Za-z0-9_]+)>\s*\{\s*\[\s*([^, \]]+)/, m)) sym_by_name[m[1]] = m[2]
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
for (k in code_by_name) {
|
||||||
|
c = code_by_name[k]
|
||||||
|
s = sym_by_name[k]
|
||||||
|
if (c != "" && s != "" && s != "NoSymbol") print c "," s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' <<<"$keymap"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
lookup_keycode_cached() {
|
||||||
|
printf '%s\n' "${KEYCODE_SYM_MAP[$1]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_keycodes() {
|
||||||
|
local start end elapsed
|
||||||
|
[[ "${DEBUG:-0}" == "1" ]] && start=$(date +%s.%N)
|
||||||
|
while IFS= read -r line; do
|
||||||
|
if [[ "$line" =~ code:([0-9]+) ]]; then
|
||||||
|
code="${BASH_REMATCH[1]}"
|
||||||
|
symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE")
|
||||||
|
echo "${line/code:${code}/$symbol}"
|
||||||
|
else
|
||||||
|
echo "$line"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$DEBUG" == "1" ]]; then
|
||||||
|
end=$(date +%s.%N)
|
||||||
|
# fall back to awk if bc is missing
|
||||||
|
if command -v bc >/dev/null 2>&1; then
|
||||||
|
elapsed=$(echo "$end - $start" | bc)
|
||||||
|
else
|
||||||
|
elapsed=$(awk -v s="$start" -v e="$end" 'BEGIN{printf "%.6f", (e - s)}')
|
||||||
|
fi
|
||||||
|
echo "[DEBUG] parse_keycodes elapsed: ${elapsed}s" >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Fetch dynamic keybindings from Hyprland
|
# Fetch dynamic keybindings from Hyprland
|
||||||
#
|
#
|
||||||
# Also do some pre-processing:
|
# Also do some pre-processing:
|
||||||
@@ -11,30 +74,31 @@
|
|||||||
# - Map numeric modifier key mask to a textual rendition
|
# - Map numeric modifier key mask to a textual rendition
|
||||||
# - Output comma-separated values that the parser can understand
|
# - Output comma-separated values that the parser can understand
|
||||||
dynamic_bindings() {
|
dynamic_bindings() {
|
||||||
hyprctl -j binds | \
|
hyprctl -j binds |
|
||||||
jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' | \
|
jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' |
|
||||||
sed -r \
|
sed -r \
|
||||||
-e 's/null//' \
|
-e 's/null//' \
|
||||||
-e 's,~/.local/share/omarchy/bin/,,' \
|
-e 's,~/.local/share/omarchy/bin/,,' \
|
||||||
-e 's,uwsm app -- ,,' \
|
-e 's,uwsm app -- ,,' \
|
||||||
-e 's/@0//' \
|
-e 's,uwsm-app -- ,,' \
|
||||||
-e 's/,@/,code:/' \
|
-e 's/@0//' \
|
||||||
-e 's/^0,/,/' \
|
-e 's/,@/,code:/' \
|
||||||
-e 's/^1,/SHIFT,/' \
|
-e 's/^0,/,/' \
|
||||||
-e 's/^4,/CTRL,/' \
|
-e 's/^1,/SHIFT,/' \
|
||||||
-e 's/^5,/SHIFT CTRL,/' \
|
-e 's/^4,/CTRL,/' \
|
||||||
-e 's/^8,/ALT,/' \
|
-e 's/^5,/SHIFT CTRL,/' \
|
||||||
-e 's/^9,/SHIFT ALT,/' \
|
-e 's/^8,/ALT,/' \
|
||||||
-e 's/^12,/CTRL ALT,/' \
|
-e 's/^9,/SHIFT ALT,/' \
|
||||||
-e 's/^13,/SHIFT CTRL ALT,/' \
|
-e 's/^12,/CTRL ALT,/' \
|
||||||
-e 's/^64,/SUPER,/' \
|
-e 's/^13,/SHIFT CTRL ALT,/' \
|
||||||
-e 's/^65,/SUPER SHIFT,/' \
|
-e 's/^64,/SUPER,/' \
|
||||||
-e 's/^68,/SUPER CTRL,/' \
|
-e 's/^65,/SUPER SHIFT,/' \
|
||||||
-e 's/^69,/SUPER SHIFT CTRL,/' \
|
-e 's/^68,/SUPER CTRL,/' \
|
||||||
-e 's/^72,/SUPER ALT,/' \
|
-e 's/^69,/SUPER SHIFT CTRL,/' \
|
||||||
-e 's/^73,/SUPER SHIFT ALT,/' \
|
-e 's/^72,/SUPER ALT,/' \
|
||||||
-e 's/^76,/SUPER CTRL ALT,/' \
|
-e 's/^73,/SUPER SHIFT ALT,/' \
|
||||||
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
-e 's/^76,/SUPER CTRL ALT,/' \
|
||||||
|
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Parse and format keybindings
|
# Parse and format keybindings
|
||||||
@@ -86,8 +150,10 @@ parse_bindings() {
|
|||||||
monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height')
|
monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height')
|
||||||
menu_height=$((monitor_height * 40 / 100))
|
menu_height=$((monitor_height * 40 / 100))
|
||||||
|
|
||||||
dynamic_bindings | \
|
build_keymap_cache
|
||||||
sort -u | \
|
|
||||||
parse_bindings | \
|
|
||||||
walker --dmenu --theme keybindings -p 'Keybindings' -w 800 -h "$menu_height"
|
|
||||||
|
|
||||||
|
dynamic_bindings |
|
||||||
|
sort -u |
|
||||||
|
parse_keycodes |
|
||||||
|
parse_bindings |
|
||||||
|
walker --dmenu --theme keybindings -p 'Keybindings' -w 800 -h "$menu_height"
|
||||||
|
|||||||
13
bin/omarchy-notification-dismiss
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (($# == 0)); then
|
||||||
|
echo "Usage: omarchy-notification-dismiss <summary>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find the first notification whose 'summary' matches the regex in $1
|
||||||
|
notification_id=$(makoctl list | grep -F "$1" | head -n1 | sed -E 's/^Notification ([0-9]+):.*/\1/')
|
||||||
|
|
||||||
|
if [[ -n $notification_id ]]; then
|
||||||
|
makoctl dismiss -n $notification_id
|
||||||
|
fi
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
sudo pacman -S --noconfirm --needed "$@" || exit 1
|
||||||
|
|
||||||
for pkg in "$@"; do
|
for pkg in "$@"; do
|
||||||
|
# Secondary check to handle states where pacman doesn't actually register an error
|
||||||
if ! pacman -Q "$pkg" &>/dev/null; then
|
if ! pacman -Q "$pkg" &>/dev/null; then
|
||||||
sudo pacman -S --noconfirm "$pkg" || exit 1
|
echo -e "\033[31mError: Package '$pkg' did not install\033[0m" >&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,15 @@
|
|||||||
|
|
||||||
fzf_args=(
|
fzf_args=(
|
||||||
--multi
|
--multi
|
||||||
--preview 'yay -Sii {1}'
|
--preview 'yay -Siia {1}'
|
||||||
--preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select, F11: maximize'
|
--preview-label='alt-p: toggle description, alt-b/B: toggle PKGBUILD, alt-j/k: scroll, tab: multi-select, F11: maximize'
|
||||||
--preview-label-pos='bottom'
|
--preview-label-pos='bottom'
|
||||||
--preview-window 'down:65%:wrap'
|
--preview-window 'down:65%:wrap'
|
||||||
--bind 'alt-p:toggle-preview'
|
--bind 'alt-p:toggle-preview'
|
||||||
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
|
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
|
||||||
--bind 'alt-k:preview-up,alt-j:preview-down'
|
--bind 'alt-k:preview-up,alt-j:preview-down'
|
||||||
|
--bind 'alt-b:change-preview:yay -Gpa {1} | tail -n +5'
|
||||||
|
--bind 'alt-B:change-preview:yay -Siia {1}'
|
||||||
--color 'pointer:green,marker:green'
|
--color 'pointer:green,marker:green'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ "$1" == "-y" ]]; then
|
sudo cp ~/.local/share/omarchy/default/plymouth/* /usr/share/plymouth/themes/omarchy/
|
||||||
sudo cp ~/.local/share/omarchy/default/plymouth/* /usr/share/plymouth/themes/omarchy/
|
sudo plymouth-set-default-theme omarchy
|
||||||
sudo plymouth-set-default-theme -R omarchy
|
|
||||||
|
if command -v limine-mkinitcpio &>/dev/null; then
|
||||||
|
sudo limine-mkinitcpio
|
||||||
|
else
|
||||||
|
sudo mkinitcpio -P
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
pkill -x $1
|
pkill -x $1
|
||||||
setsid uwsm app -- $1 >/dev/null 2>&1 &
|
setsid uwsm-app -- $1 >/dev/null 2>&1 &
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo -e "Unblocking bluetooth...\n"
|
||||||
rfkill unblock bluetooth
|
rfkill unblock bluetooth
|
||||||
rfkill list bluetooth
|
rfkill list bluetooth
|
||||||
|
|||||||
4
bin/omarchy-restart-pipewire
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo -e "Restarting pipewire audio service...\n"
|
||||||
|
systemctl --user restart pipewire.service
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
pkill walker
|
pkill walker
|
||||||
# FIXME: Reenable the walker service once the memory leak has been fixed
|
# FIXME: Just deal with the memory leak for now.
|
||||||
# See https://github.com/basecamp/omarchy/issues/698
|
# See https://github.com/basecamp/omarchy/issues/698
|
||||||
# setsid uwsm app -- walker --gapplication-service &
|
setsid uwsm-app -- walker --gapplication-service &
|
||||||
echo # Always end in success so we don't terminate further running
|
echo # Always end in success so we don't terminate further running
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo -e "Unblocking wifi...\n"
|
||||||
rfkill unblock wifi
|
rfkill unblock wifi
|
||||||
rfkill list wifi
|
rfkill list wifi
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ print_info() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_fingerprint_hardware() {
|
check_fingerprint_hardware() {
|
||||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix|elan|validity'; then
|
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix|elan|validity|FPC'; then
|
||||||
print_error "\nNo fingerprint sensor detected."
|
print_error "\nNo fingerprint sensor detected."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ TOTAL=${#BACKGROUNDS[@]}
|
|||||||
if [[ $TOTAL -eq 0 ]]; then
|
if [[ $TOTAL -eq 0 ]]; then
|
||||||
notify-send "No background was found for theme" -t 2000
|
notify-send "No background was found for theme" -t 2000
|
||||||
pkill -x swaybg
|
pkill -x swaybg
|
||||||
setsid uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 &
|
setsid uwsm-app -- swaybg --color '#000000' >/dev/null 2>&1 &
|
||||||
else
|
else
|
||||||
# Get current background from symlink
|
# Get current background from symlink
|
||||||
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
||||||
@@ -44,5 +44,5 @@ else
|
|||||||
|
|
||||||
# Relaunch swaybg
|
# Relaunch swaybg
|
||||||
pkill -x swaybg
|
pkill -x swaybg
|
||||||
setsid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
|
setsid uwsm-app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# omarchy-theme-set: Set a theme, specified by its name.
|
if [[ -z $1 && $1 != "CNCLD" ]]; then
|
||||||
# Usage: omarchy-theme-set <theme-name>
|
echo "Usage: omarchy-theme-set <theme-name>"
|
||||||
|
|
||||||
if [[ -z "$1" && "$1" != "CNCLD" ]]; then
|
|
||||||
echo "Usage: omarchy-theme-set <theme-name>" >&2
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -16,54 +13,27 @@ THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
|||||||
|
|
||||||
# Check if the theme entered exists
|
# Check if the theme entered exists
|
||||||
if [[ ! -d "$THEME_PATH" ]]; then
|
if [[ ! -d "$THEME_PATH" ]]; then
|
||||||
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
|
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR"
|
||||||
exit 2
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update theme symlinks
|
# Update theme symlinks
|
||||||
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
|
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
|
||||||
|
|
||||||
# Change gnome modes
|
# Change background with theme
|
||||||
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
omarchy-theme-bg-next
|
||||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
|
|
||||||
else
|
|
||||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Change gnome icon theme color
|
|
||||||
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
|
|
||||||
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
|
|
||||||
else
|
|
||||||
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Change Chromium colors
|
|
||||||
if command -v chromium &>/dev/null; then
|
|
||||||
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
|
||||||
chromium --no-startup-window --set-color-scheme="light"
|
|
||||||
else
|
|
||||||
chromium --no-startup-window --set-color-scheme="dark"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
|
|
||||||
chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)"
|
|
||||||
else
|
|
||||||
# Use a default, neutral grey if theme doesn't have a color
|
|
||||||
chromium --no-startup-window --set-theme-color="28,32,39"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Trigger alacritty config reload
|
|
||||||
touch "$HOME/.config/alacritty/alacritty.toml"
|
|
||||||
|
|
||||||
# Restart components to apply new theme
|
# Restart components to apply new theme
|
||||||
pkill -SIGUSR2 btop
|
|
||||||
omarchy-restart-waybar
|
omarchy-restart-waybar
|
||||||
omarchy-restart-swayosd
|
omarchy-restart-swayosd
|
||||||
makoctl reload
|
|
||||||
hyprctl reload
|
hyprctl reload
|
||||||
|
pkill -SIGUSR2 btop
|
||||||
|
makoctl reload
|
||||||
|
|
||||||
# Set new background
|
# Change gnome, browser, vscode, cursor themes
|
||||||
omarchy-theme-bg-next
|
omarchy-theme-set-terminal
|
||||||
|
omarchy-theme-set-gnome
|
||||||
|
omarchy-theme-set-eza
|
||||||
|
omarchy-theme-set-browser
|
||||||
|
omarchy-theme-set-vscode
|
||||||
|
omarchy-theme-set-cursor
|
||||||
|
|||||||
24
bin/omarchy-theme-set-browser
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
||||||
|
|
||||||
|
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
||||||
|
if [[ -f $CHROMIUM_THEME ]]; then
|
||||||
|
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||||
|
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${rgb//,/ })
|
||||||
|
else
|
||||||
|
# Use a default, neutral grey if theme doesn't have a color
|
||||||
|
THEME_RGB_COLOR="28,32,39"
|
||||||
|
THEME_HEX_COLOR="#1c2027"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if omarchy-cmd-present chromium; then
|
||||||
|
rm -f /etc/chromium/policies/managed/color.json
|
||||||
|
chromium --no-startup-window --set-theme-color="$THEME_RGB_COLOR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if omarchy-cmd-present brave; then
|
||||||
|
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
||||||
|
brave --refresh-platform-policy --no-startup-window
|
||||||
|
fi
|
||||||
|
fi
|
||||||
4
bin/omarchy-theme-set-cursor
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Call the VSCode theme setter with Cursor-specific parameters
|
||||||
|
omarchy-theme-set-vscode cursor "$HOME/.config/Cursor/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-cursor-theme-changes" Cursor
|
||||||
7
bin/omarchy-theme-set-eza
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -f ~/.config/omarchy/current/theme/eza.yml ]; then
|
||||||
|
ln -snf ~/.config/omarchy/current/theme/eza.yml ~/.config/eza/theme.yml
|
||||||
|
else
|
||||||
|
rm -f ~/.config/eza/theme.yml
|
||||||
|
fi
|
||||||
18
bin/omarchy-theme-set-gnome
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Change gnome modes
|
||||||
|
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
||||||
|
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
|
||||||
|
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
|
||||||
|
else
|
||||||
|
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||||
|
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change gnome icon theme color
|
||||||
|
GNOME_ICONS_THEME=~/.config/omarchy/current/theme/icons.theme
|
||||||
|
if [[ -f $GNOME_ICONS_THEME ]]; then
|
||||||
|
gsettings set org.gnome.desktop.interface icon-theme "$(<$GNOME_ICONS_THEME)"
|
||||||
|
else
|
||||||
|
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
||||||
|
fi
|
||||||
7
bin/omarchy-theme-set-terminal
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
case "$TERMINAL" in
|
||||||
|
"alacritty") touch ~/.config/alacritty/alacritty.toml ;;
|
||||||
|
"kitty") killall -SIGUSR1 kitty ;;
|
||||||
|
"ghostty") killall -SIGUSR2 ghostty ;;
|
||||||
|
esac
|
||||||
50
bin/omarchy-theme-set-vscode
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Note: We cannot use `jq` to update settings.json because it’s JSONC (allows comments),
|
||||||
|
# which jq doesn’t support.
|
||||||
|
|
||||||
|
# Parameters: EDITOR_CMD SETTINGS_PATH SKIP_FLAG EDITOR_NAME
|
||||||
|
EDITOR_CMD="${1:-code}"
|
||||||
|
SETTINGS_PATH="${2:-$HOME/.config/Code/User/settings.json}"
|
||||||
|
SKIP_FLAG="${3:-$HOME/.local/state/omarchy/toggles/skip-vscode-theme-changes}"
|
||||||
|
EDITOR_NAME="${4:-VS Code}"
|
||||||
|
|
||||||
|
VS_CODE_THEME="$HOME/.config/omarchy/current/theme/vscode.json"
|
||||||
|
|
||||||
|
if omarchy-cmd-present "$EDITOR_CMD" && [[ ! -f "$SKIP_FLAG" ]]; then
|
||||||
|
if [[ -f "$VS_CODE_THEME" ]]; then
|
||||||
|
theme_name=$(jq -r '.name' "$VS_CODE_THEME")
|
||||||
|
extension=$(jq -r '.extension' "$VS_CODE_THEME")
|
||||||
|
|
||||||
|
# Install $EDITOR_NAME theme extension
|
||||||
|
if [[ -n "$extension" ]] && ! "$EDITOR_CMD" --list-extensions | grep -Fxq "$extension"; then
|
||||||
|
notify-send " Installing $EDITOR_NAME theme for $theme_name"
|
||||||
|
"$EDITOR_CMD" --install-extension "$extension" >/dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create config file if there isn't already one
|
||||||
|
mkdir -p "$(dirname "$SETTINGS_PATH")"
|
||||||
|
if [[ ! -f "$SETTINGS_PATH" ]]; then
|
||||||
|
printf '{\n}\n' > "$SETTINGS_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create a `workbench.colorTheme` entry in settings.
|
||||||
|
if ! grep -q '"workbench.colorTheme"' "$SETTINGS_PATH"; then
|
||||||
|
# Insert `"workbench.colorTheme": "",` immediately after the first `{`
|
||||||
|
# Use sed's first-match range (0,/{/) to only replace the first `{`
|
||||||
|
sed -i --follow-symlinks -E '0,/\{/{s/\{/{\
|
||||||
|
"workbench.colorTheme": "",/}' "$SETTINGS_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update theme
|
||||||
|
sed -i --follow-symlinks -E \
|
||||||
|
"s/(\"workbench.colorTheme\"[[:space:]]*:[[:space:]]*\")[^\"]*(\")/\1$theme_name\2/" \
|
||||||
|
"$SETTINGS_PATH"
|
||||||
|
else
|
||||||
|
# Remove theme from settings.json when the theme doesn't have $EDITOR_NAME support
|
||||||
|
if [[ -f "$SETTINGS_PATH" ]]; then
|
||||||
|
sed -i --follow-symlinks -E '/"workbench\.colorTheme"[[:space:]]*:[^,}]*,?/d' "$SETTINGS_PATH"
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
@@ -4,6 +4,6 @@ if pgrep -x hypridle >/dev/null; then
|
|||||||
pkill -x hypridle
|
pkill -x hypridle
|
||||||
notify-send "Stop locking computer when idle"
|
notify-send "Stop locking computer when idle"
|
||||||
else
|
else
|
||||||
uwsm app -- hypridle >/dev/null 2>&1 &
|
uwsm-app -- hypridle >/dev/null 2>&1 &
|
||||||
notify-send "Now locking computer when idle"
|
notify-send "Now locking computer when idle"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ OFF_TEMP=6000
|
|||||||
|
|
||||||
# Ensure hyprsunset is running
|
# Ensure hyprsunset is running
|
||||||
if ! pgrep -x hyprsunset; then
|
if ! pgrep -x hyprsunset; then
|
||||||
setsid uwsm app -- hyprsunset &
|
setsid uwsm-app -- hyprsunset &
|
||||||
sleep 1 # Give it time to register
|
sleep 1 # Give it time to register
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
if pgrep -x waybar >/dev/null; then
|
if pgrep -x waybar >/dev/null; then
|
||||||
pkill -x waybar
|
pkill -x waybar
|
||||||
else
|
else
|
||||||
uwsm app -- waybar >/dev/null 2>&1 &
|
uwsm-app -- waybar >/dev/null 2>&1 &
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -20,13 +20,16 @@ fi
|
|||||||
|
|
||||||
ICON_DIR="$HOME/.local/share/applications/icons"
|
ICON_DIR="$HOME/.local/share/applications/icons"
|
||||||
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
||||||
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
|
||||||
|
|
||||||
mkdir -p "$ICON_DIR"
|
if [[ ! "$ICON_URL" =~ ^https?:// ]] && [ -f "$ICON_URL" ]; then
|
||||||
|
ICON_PATH="$ICON_URL"
|
||||||
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
|
else
|
||||||
echo "Error: Failed to download icon."
|
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
||||||
return 1
|
mkdir -p "$ICON_DIR"
|
||||||
|
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
|
||||||
|
echo "Error: Failed to download icon."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $WINDOW_STYLE == "float" ]]; then
|
if [[ $WINDOW_STYLE == "float" ]]; then
|
||||||
@@ -40,7 +43,7 @@ cat >"$DESKTOP_FILE" <<EOF
|
|||||||
Version=1.0
|
Version=1.0
|
||||||
Name=$APP_NAME
|
Name=$APP_NAME
|
||||||
Comment=$APP_NAME
|
Comment=$APP_NAME
|
||||||
Exec=alacritty --class $APP_CLASS -e $APP_EXEC
|
Exec=\$TERMINAL --class=$APP_CLASS -e $APP_EXEC
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Icon=$ICON_PATH
|
Icon=$ICON_PATH
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ DESKTOP_DIR="$HOME/.local/share/applications/"
|
|||||||
if [ "$#" -eq 0 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
# Find all TUIs
|
# Find all TUIs
|
||||||
while IFS= read -r -d '' file; do
|
while IFS= read -r -d '' file; do
|
||||||
if grep -q '^Exec=.*alacritty.*-e' "$file"; then
|
if grep -q '^Exec=.*$TERMINAL.*-e' "$file"; then
|
||||||
TUIS+=("$(basename "${file%.desktop}")")
|
TUIS+=("$(basename "${file%.desktop}")")
|
||||||
fi
|
fi
|
||||||
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
|
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
|
||||||
|
|||||||
@@ -4,7 +4,4 @@ set -e
|
|||||||
|
|
||||||
omarchy-snapshot create || [ $? -eq 127 ]
|
omarchy-snapshot create || [ $? -eq 127 ]
|
||||||
omarchy-update-git
|
omarchy-update-git
|
||||||
omarchy-migrate
|
omarchy-update-perform
|
||||||
omarchy-update-system-pkgs
|
|
||||||
omarchy-update-restart
|
|
||||||
omarchy-restart-waybar # removes update-available icon
|
|
||||||
|
|||||||
4
bin/omarchy-update-available-reset
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Ensure Waybar icon offering the available update is removed
|
||||||
|
pkill -RTMIN+7 waybar
|
||||||
33
bin/omarchy-update-branch
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if (($# == 0)); then
|
||||||
|
echo "Usage: omarchy-verion-branch-set [master|dev]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
branch="$1"
|
||||||
|
|
||||||
|
# Snapshot before switching branch
|
||||||
|
omarchy-snapshot create || [ $? -eq 127 ]
|
||||||
|
|
||||||
|
if ! git -C "$OMARCHY_PATH" diff --quiet || ! git -C "$OMARCHY_PATH" diff --cached --quiet; then
|
||||||
|
stashed=true
|
||||||
|
git -C "$OMARCHY_PATH" stash push -u -m "Autostash before switching to $branch"
|
||||||
|
else
|
||||||
|
stashed=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Switch branches
|
||||||
|
git -C "$OMARCHY_PATH" switch "$branch"
|
||||||
|
|
||||||
|
# Reapply stash if we made one
|
||||||
|
if [[ $stashed == true ]]; then
|
||||||
|
if ! git -C "$OMARCHY_PATH" stash pop; then
|
||||||
|
echo "⚠️ Conflicts when applying stash — stash kept"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update the system from the new branch
|
||||||
|
omarchy-update-perform
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo -e "\e[32mUpdate Omarchy\e[0m"
|
echo -e "\e[32mUpdate Omarchy\e[0m"
|
||||||
|
|
||||||
git -C $OMARCHY_PATH pull --autostash
|
git -C $OMARCHY_PATH pull --autostash
|
||||||
git -C $OMARCHY_PATH diff --check || git -C $OMARCHY_PATH reset --merge
|
git -C $OMARCHY_PATH diff --check || git -C $OMARCHY_PATH reset --merge
|
||||||
|
|||||||
8
bin/omarchy-update-perform
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
omarchy-update-available-reset
|
||||||
|
omarchy-update-system-pkgs
|
||||||
|
omarchy-migrate
|
||||||
|
omarchy-update-restart
|
||||||
126
bin/omarchy-upload-log
Executable file
@@ -0,0 +1,126 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Upload logs to 0x0.st
|
||||||
|
|
||||||
|
LOG_TYPE="${1:-install}"
|
||||||
|
TEMP_LOG="/tmp/upload-log.txt"
|
||||||
|
SYSTEM_INFO="/tmp/system-info.txt"
|
||||||
|
|
||||||
|
# Get system information if fastfetch is available
|
||||||
|
if command -v fastfetch >/dev/null 2>&1; then
|
||||||
|
{
|
||||||
|
echo "========================================="
|
||||||
|
echo "SYSTEM INFORMATION"
|
||||||
|
echo "========================================="
|
||||||
|
# Use fastfetch with no logo to get clean output
|
||||||
|
fastfetch --logo none --pipe 2>/dev/null || echo "Failed to get system info"
|
||||||
|
echo ""
|
||||||
|
echo "========================================="
|
||||||
|
echo "LOG CONTENT"
|
||||||
|
echo "========================================="
|
||||||
|
echo ""
|
||||||
|
} >"$SYSTEM_INFO"
|
||||||
|
else
|
||||||
|
# Fallback to basic info if fastfetch isn't available
|
||||||
|
{
|
||||||
|
echo "========================================="
|
||||||
|
echo "SYSTEM INFORMATION"
|
||||||
|
echo "========================================="
|
||||||
|
echo "Hostname: $(hostname)"
|
||||||
|
echo "Kernel: $(uname -r)"
|
||||||
|
echo "Date: $(date)"
|
||||||
|
echo ""
|
||||||
|
echo "========================================="
|
||||||
|
echo "LOG CONTENT"
|
||||||
|
echo "========================================="
|
||||||
|
echo ""
|
||||||
|
} >"$SYSTEM_INFO"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$LOG_TYPE" in
|
||||||
|
install)
|
||||||
|
ARCHINSTALL_LOG="/var/log/archinstall/install.log"
|
||||||
|
OMARCHY_LOG="/var/log/omarchy-install.log"
|
||||||
|
|
||||||
|
# Combine system info with logs
|
||||||
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
||||||
|
cat $ARCHINSTALL_LOG $OMARCHY_LOG >>"$TEMP_LOG" 2>/dev/null
|
||||||
|
|
||||||
|
if [ ! -s "$TEMP_LOG" ]; then
|
||||||
|
echo "Error: No install logs found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Uploading installation log to 0x0.st..."
|
||||||
|
;;
|
||||||
|
|
||||||
|
this-boot)
|
||||||
|
# Combine system info with boot logs
|
||||||
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
||||||
|
journalctl -b 0 >>"$TEMP_LOG" 2>/dev/null
|
||||||
|
|
||||||
|
if [ ! -s "$TEMP_LOG" ]; then
|
||||||
|
echo "Error: No logs found for current boot"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Uploading current boot logs to 0x0.st..."
|
||||||
|
;;
|
||||||
|
|
||||||
|
last-boot)
|
||||||
|
# Combine system info with previous boot logs
|
||||||
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
||||||
|
journalctl -b -1 >>"$TEMP_LOG" 2>/dev/null
|
||||||
|
|
||||||
|
if [ ! -s "$TEMP_LOG" ]; then
|
||||||
|
echo "Error: No logs found for previous boot"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Uploading previous boot logs to 0x0.st..."
|
||||||
|
;;
|
||||||
|
|
||||||
|
installed)
|
||||||
|
# System info plus all installed packages
|
||||||
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
||||||
|
{
|
||||||
|
echo ""
|
||||||
|
echo "========================================="
|
||||||
|
echo "INSTALLED PACKAGES (pacman -Q)"
|
||||||
|
echo "========================================="
|
||||||
|
pacman -Q 2>/dev/null || echo "Failed to get package list"
|
||||||
|
} >>"$TEMP_LOG"
|
||||||
|
|
||||||
|
if [ ! -s "$TEMP_LOG" ]; then
|
||||||
|
echo "Error: Failed to gather system information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Uploading system information to 0x0.st..."
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 [install|this-boot|last-boot|system-info]"
|
||||||
|
echo " install - Upload installation logs (default)"
|
||||||
|
echo " this-boot - Upload logs from current boot"
|
||||||
|
echo " last-boot - Upload logs from previous boot"
|
||||||
|
echo " installed - Upload system info and installed packages"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
URL=$(curl -sF "file=@$TEMP_LOG" -Fexpires=24 https://0x0.st)
|
||||||
|
|
||||||
|
if [ $? -eq 0 ] && [ -n "$URL" ]; then
|
||||||
|
echo "✓ Log uploaded successfully!"
|
||||||
|
echo "Share this URL:"
|
||||||
|
echo ""
|
||||||
|
echo " $URL"
|
||||||
|
echo ""
|
||||||
|
echo "This link will expire in 24 hours."
|
||||||
|
else
|
||||||
|
echo "Error: Failed to upload log file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -1,3 +1,2 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
cat $OMARCHY_PATH/version
|
||||||
git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1)
|
|
||||||
|
|||||||
11
bin/omarchy-webapp-handler-hey
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
url="$1"
|
||||||
|
web_url="https://app.hey.com"
|
||||||
|
|
||||||
|
# Handle mailto: URLs
|
||||||
|
if [[ $url =~ ^mailto: ]]; then
|
||||||
|
email=$(echo "$url" | sed 's/mailto://')
|
||||||
|
web_url="https://app.hey.com/messages/new?to=$email"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec omarchy-launch-webapp "$web_url"
|
||||||
20
bin/omarchy-webapp-handler-zoom
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
url="$1"
|
||||||
|
web_url="https://app.zoom.us/wc/home"
|
||||||
|
|
||||||
|
if [[ $url =~ ^zoom(mtg|us):// ]]; then
|
||||||
|
confno=$(echo "$url" | sed -n 's/.*[?&]confno=\([^&]*\).*/\1/p')
|
||||||
|
|
||||||
|
if [[ -n $confno ]]; then
|
||||||
|
pwd=$(echo "$url" | sed -n 's/.*[?&]pwd=\([^&]*\).*/\1/p')
|
||||||
|
|
||||||
|
if [[ -n $pwd ]]; then
|
||||||
|
web_url="https://app.zoom.us/wc/join/$confno?pwd=$pwd"
|
||||||
|
else
|
||||||
|
web_url="https://app.zoom.us/wc/join/$confno"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec omarchy-launch-webapp "$web_url"
|
||||||
@@ -1,46 +1,71 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ "$#" -ne 3 ]; then
|
if [ "$#" -lt 3 ]; then
|
||||||
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
|
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
|
||||||
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
|
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
|
||||||
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
|
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
|
||||||
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
|
ICON_REF=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
|
||||||
|
CUSTOM_EXEC=""
|
||||||
|
MIME_TYPES=""
|
||||||
|
INTERACTIVE_MODE=true
|
||||||
else
|
else
|
||||||
APP_NAME="$1"
|
APP_NAME="$1"
|
||||||
APP_URL="$2"
|
APP_URL="$2"
|
||||||
ICON_URL="$3"
|
ICON_REF="$3"
|
||||||
|
CUSTOM_EXEC="$4" # Optional custom exec command
|
||||||
|
MIME_TYPES="$5" # Optional mime types
|
||||||
|
INTERACTIVE_MODE=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then
|
# Ensure valid execution
|
||||||
|
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_REF" ]]; then
|
||||||
echo "You must set app name, app URL, and icon URL!"
|
echo "You must set app name, app URL, and icon URL!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Refer to local icon or fetch remotely from URL
|
||||||
ICON_DIR="$HOME/.local/share/applications/icons"
|
ICON_DIR="$HOME/.local/share/applications/icons"
|
||||||
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
if [[ $ICON_REF =~ ^https?:// ]]; then
|
||||||
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
||||||
|
if curl -sL -o "$ICON_PATH" "$ICON_REF"; then
|
||||||
mkdir -p "$ICON_DIR"
|
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
||||||
|
else
|
||||||
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
|
echo "Error: Failed to download icon."
|
||||||
echo "Error: Failed to download icon."
|
exit 1
|
||||||
return 1
|
fi
|
||||||
|
else
|
||||||
|
ICON_PATH="$ICON_DIR/$ICON_REF"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Use custom exec if provided, otherwise default behavior
|
||||||
|
if [[ -n $CUSTOM_EXEC ]]; then
|
||||||
|
EXEC_COMMAND="$CUSTOM_EXEC"
|
||||||
|
else
|
||||||
|
EXEC_COMMAND="omarchy-launch-webapp $APP_URL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create application .desktop file
|
||||||
|
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
||||||
|
|
||||||
cat >"$DESKTOP_FILE" <<EOF
|
cat >"$DESKTOP_FILE" <<EOF
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Name=$APP_NAME
|
Name=$APP_NAME
|
||||||
Comment=$APP_NAME
|
Comment=$APP_NAME
|
||||||
Exec=omarchy-launch-webapp $APP_URL
|
Exec=$EXEC_COMMAND
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Icon=$ICON_PATH
|
Icon=$ICON_PATH
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Add mime types if provided
|
||||||
|
if [[ -n $MIME_TYPES ]]; then
|
||||||
|
echo "MimeType=$MIME_TYPES" >>"$DESKTOP_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
chmod +x "$DESKTOP_FILE"
|
chmod +x "$DESKTOP_FILE"
|
||||||
|
|
||||||
if [ "$#" -ne 3 ]; then
|
if [[ $INTERACTIVE_MODE == true ]]; then
|
||||||
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
|
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ DESKTOP_DIR="$HOME/.local/share/applications/"
|
|||||||
if [ "$#" -eq 0 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
# Find all web apps
|
# Find all web apps
|
||||||
while IFS= read -r -d '' file; do
|
while IFS= read -r -d '' file; do
|
||||||
if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then
|
if grep -q '^Exec=.*\(omarchy-launch-webapp\|omarchy-webapp-handler\).*' "$file"; then
|
||||||
WEB_APPS+=("$(basename "${file%.desktop}")")
|
WEB_APPS+=("$(basename "${file%.desktop}")")
|
||||||
fi
|
fi
|
||||||
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
|
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
|
||||||
|
|||||||
5
boot.sh
@@ -1,5 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Set install mode to online since boot.sh is used for curl installations
|
||||||
|
export OMARCHY_ONLINE_INSTALL=true
|
||||||
|
|
||||||
ansi_art=' ▄▄▄
|
ansi_art=' ▄▄▄
|
||||||
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
|
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
||||||
@@ -26,7 +29,7 @@ git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/
|
|||||||
# Use custom branch if instructed, otherwise default to master
|
# Use custom branch if instructed, otherwise default to master
|
||||||
OMARCHY_REF="${OMARCHY_REF:-master}"
|
OMARCHY_REF="${OMARCHY_REF:-master}"
|
||||||
if [[ $OMARCHY_REF != "master" ]]; then
|
if [[ $OMARCHY_REF != "master" ]]; then
|
||||||
echo -e "\eUsing branch: $OMARCHY_REF"
|
echo -e "\e[32mUsing branch: $OMARCHY_REF\e[0m"
|
||||||
cd ~/.local/share/omarchy
|
cd ~/.local/share/omarchy
|
||||||
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
|
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
|
||||||
cd -
|
cd -
|
||||||
|
|||||||
@@ -16,5 +16,6 @@ decorations = "None"
|
|||||||
|
|
||||||
[keyboard]
|
[keyboard]
|
||||||
bindings = [
|
bindings = [
|
||||||
{ key = "F11", action = "ToggleFullscreen" }
|
{ key = "F11", action = "ToggleFullscreen" },
|
||||||
|
{ key = "Insert", mods = "Shift", action = "Paste" }
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
--ozone-platform=wayland
|
--ozone-platform=wayland
|
||||||
--ozone-platform-hint=wayland
|
--ozone-platform-hint=wayland
|
||||||
--enable-features=TouchpadOverscrollHistoryNavigation
|
--enable-features=TouchpadOverscrollHistoryNavigation
|
||||||
|
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
|
||||||
|
|||||||
27
config/ghostty/config
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Dynamic theme colors
|
||||||
|
config-file = ?"~/.config/omarchy/current/theme/ghostty.conf"
|
||||||
|
|
||||||
|
# Font
|
||||||
|
font-family = "CaskaydiaMono Nerd Font"
|
||||||
|
font-style = Regular
|
||||||
|
font-size = 9
|
||||||
|
|
||||||
|
# Window
|
||||||
|
window-theme = ghostty
|
||||||
|
window-padding-x = 14
|
||||||
|
window-padding-y = 14
|
||||||
|
confirm-close-surface=false
|
||||||
|
resize-overlay = never
|
||||||
|
gtk-toolbar-style = flat
|
||||||
|
|
||||||
|
# Cursor styling
|
||||||
|
cursor-style = "block"
|
||||||
|
cursor-style-blink = false
|
||||||
|
shell-integration-features = no-cursor
|
||||||
|
|
||||||
|
# Keyboard bindings
|
||||||
|
keybind = f11=toggle_fullscreen
|
||||||
|
keybind = shift+insert=paste_from_clipboard
|
||||||
|
|
||||||
|
# SSH session terminfo
|
||||||
|
shell-integration-features = ssh-env
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
# Extra autostart processes
|
# Extra autostart processes
|
||||||
# exec-once = uwsm app -- my-service
|
# exec-once = uwsm-app -- my-service
|
||||||
|
|||||||
@@ -1,26 +1,27 @@
|
|||||||
# Application bindings
|
# Application bindings
|
||||||
$terminal = uwsm app -- alacritty
|
$terminal = uwsm-app -- $TERMINAL
|
||||||
$browser = omarchy-launch-browser
|
$browser = omarchy-launch-browser
|
||||||
|
|
||||||
bindd = SUPER, return, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
bindd = SUPER, RETURN, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
||||||
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
|
bindd = SUPER, F, File manager, exec, uwsm-app -- nautilus --new-window
|
||||||
bindd = SUPER, B, Browser, exec, $browser
|
bindd = SUPER, B, Browser, exec, $browser
|
||||||
bindd = SUPER, M, Music, exec, uwsm app -- spotify
|
bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private
|
||||||
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
|
bindd = SUPER, M, Music, exec, omarchy-launch-or-focus spotify
|
||||||
|
bindd = SUPER, N, Editor, exec, omarchy-launch-editor
|
||||||
bindd = SUPER, T, Activity, exec, $terminal -e btop
|
bindd = SUPER, T, Activity, exec, $terminal -e btop
|
||||||
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
|
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
|
||||||
bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop
|
bindd = SUPER, G, Signal, exec, omarchy-launch-or-focus signal "uwsm-app -- signal-desktop"
|
||||||
bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu
|
bindd = SUPER, O, Obsidian, exec, omarchy-launch-or-focus "^obsidian$" "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
|
||||||
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
|
bindd = SUPER, SLASH, Passwords, exec, uwsm-app -- 1password
|
||||||
|
|
||||||
# If your web app url contains #, type it as ## to prevent hyperland treat it as comments
|
# If your web app url contains #, type it as ## to prevent hyprland from treating it as a comment
|
||||||
bindd = SUPER, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
bindd = SUPER, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
||||||
bindd = SUPER SHIFT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
|
bindd = SUPER SHIFT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
|
||||||
bindd = SUPER, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
|
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
|
||||||
bindd = SUPER, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
|
bindd = SUPER, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
|
||||||
bindd = SUPER, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
|
bindd = SUPER, Y, YouTube, exec, omarchy-launch-or-focus-webapp YouTube "https://youtube.com/"
|
||||||
bindd = SUPER SHIFT, G, WhatsApp, exec, omarchy-launch-webapp "https://web.whatsapp.com/"
|
bindd = SUPER SHIFT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
|
||||||
bindd = SUPER ALT, G, Google Messages, exec, omarchy-launch-webapp "https://messages.google.com/web/conversations"
|
bindd = SUPER ALT, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
|
||||||
bindd = SUPER, X, X, exec, omarchy-launch-webapp "https://x.com/"
|
bindd = SUPER, X, X, exec, omarchy-launch-webapp "https://x.com/"
|
||||||
bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
|
bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
# Extra env variables
|
# Extra env variables
|
||||||
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
|
|
||||||
# env = MY_GLOBAL_ENV,setting
|
# env = MY_GLOBAL_ENV,setting
|
||||||
|
|||||||
@@ -16,4 +16,5 @@ source = ~/.config/hypr/monitors.conf
|
|||||||
source = ~/.config/hypr/input.conf
|
source = ~/.config/hypr/input.conf
|
||||||
source = ~/.config/hypr/bindings.conf
|
source = ~/.config/hypr/bindings.conf
|
||||||
source = ~/.config/hypr/envs.conf
|
source = ~/.config/hypr/envs.conf
|
||||||
|
source = ~/.config/hypr/looknfeel.conf
|
||||||
source = ~/.config/hypr/autostart.conf
|
source = ~/.config/hypr/autostart.conf
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ source = ~/.config/omarchy/current/theme/hyprlock.conf
|
|||||||
background {
|
background {
|
||||||
monitor =
|
monitor =
|
||||||
color = $color
|
color = $color
|
||||||
|
path = ~/.config/omarchy/current/background
|
||||||
|
blur_passes = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
animations {
|
animations {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Makes hyprsunset do nothing to the screen by default
|
# Makes hyprsunset do nothing to the screen by default
|
||||||
# Without this, the default applies some tint to the monitor
|
# Without this, the default applies some tint to the monitor
|
||||||
profile {
|
profile {
|
||||||
time = 00:00
|
time = 07:00
|
||||||
identity = true
|
identity = true
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
input {
|
input {
|
||||||
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
|
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
|
||||||
# kb_layout = us,dk,eu
|
# kb_layout = us,dk,eu
|
||||||
kb_options = compose:caps # ,grp:alts_toggle
|
kb_options = compose:caps # ,grp:shifts_toggle
|
||||||
|
|
||||||
# Change speed of keyboard repeat
|
# Change speed of keyboard repeat
|
||||||
repeat_rate = 40
|
repeat_rate = 40
|
||||||
@@ -12,7 +12,7 @@ input {
|
|||||||
# Start with numlock on by default
|
# Start with numlock on by default
|
||||||
numlock_by_default = true
|
numlock_by_default = true
|
||||||
|
|
||||||
# Increase sensitity for mouse/trackpack (default: 0)
|
# Increase sensitivity for mouse/trackpad (default: 0)
|
||||||
# sensitivity = 0.35
|
# sensitivity = 0.35
|
||||||
|
|
||||||
touchpad {
|
touchpad {
|
||||||
@@ -27,5 +27,10 @@ input {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Scroll faster in the terminal
|
# Scroll nicely in the terminal
|
||||||
windowrule = scrolltouchpad 1.5, class:Alacritty
|
windowrule = scrolltouchpad 1.5, class:(Alacritty|kitty)
|
||||||
|
windowrule = scrolltouchpad 0.2, class:com.mitchellh.ghostty
|
||||||
|
|
||||||
|
# Enable touchpad gestures for changing workspaces
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Gestures/
|
||||||
|
# gesture = 3, horizontal, workspace
|
||||||
|
|||||||
23
config/hypr/looknfeel.conf
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Change the default Omarchy look'n'feel
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
|
general {
|
||||||
|
# No gaps between windows
|
||||||
|
# gaps_in = 0
|
||||||
|
# gaps_out = 0
|
||||||
|
|
||||||
|
# Use master layout instead of dwindle
|
||||||
|
# layout = master
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
|
decoration {
|
||||||
|
# Use round window corners
|
||||||
|
# rounding = 8
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Dwindle-Layout/
|
||||||
|
dwindle {
|
||||||
|
# Avoid overly wide single-window layouts on wide screens
|
||||||
|
# single_window_aspect_ratio = 1 1
|
||||||
|
}
|
||||||
30
config/kitty/kitty.conf
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
include ~/.config/omarchy/current/theme/kitty.conf
|
||||||
|
|
||||||
|
# Font
|
||||||
|
font_family CaskaydiaMono Nerd Font
|
||||||
|
bold_italic_font auto
|
||||||
|
font_size 9.0
|
||||||
|
|
||||||
|
# Window
|
||||||
|
window_padding_width 14
|
||||||
|
window_padding_height 14
|
||||||
|
hide_window_decorations yes
|
||||||
|
show_window_resize_notification no
|
||||||
|
confirm_os_window_close 0
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
map F11 toggle_fullscreen
|
||||||
|
|
||||||
|
# Allow remote access
|
||||||
|
single_instance yes
|
||||||
|
allow_remote_control yes
|
||||||
|
|
||||||
|
# Aesthetics
|
||||||
|
cursor_shape block
|
||||||
|
enable_audio_bell no
|
||||||
|
|
||||||
|
# Minimal Tab bar styling
|
||||||
|
tab_bar_edge bottom
|
||||||
|
tab_bar_style powerline
|
||||||
|
tab_powerline_style slanted
|
||||||
|
tab_title_template {title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}
|
||||||
56
config/nvim/lua/plugins/all-themes.lua
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
return {
|
||||||
|
-- Load all theme plugins but don't apply them
|
||||||
|
-- This ensures all colorschemes are available for hot-reloading
|
||||||
|
{
|
||||||
|
"ribru17/bamboo.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"catppuccin/nvim",
|
||||||
|
name = "catppuccin",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sainnhe/everforest",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ellisonleao/gruvbox.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rebelot/kanagawa.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tahayvr/matteblack.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loctvl842/monokai-pro.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"shaunsingh/nord.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rose-pine/neovim",
|
||||||
|
name = "rose-pine",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/tokyonight.nvim",
|
||||||
|
lazy = true,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
}
|
||||||
45
config/nvim/lua/plugins/omarchy-theme-hotreload.lua
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
name = "theme-hotreload",
|
||||||
|
dir = vim.fn.stdpath("config"),
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
local transparency_file = vim.fn.stdpath("config") .. "/plugin/after/transparency.lua"
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("User", {
|
||||||
|
pattern = "LazyReload",
|
||||||
|
callback = function()
|
||||||
|
package.loaded["plugins.theme"] = nil
|
||||||
|
|
||||||
|
vim.schedule(function()
|
||||||
|
local ok, theme_spec = pcall(require, "plugins.theme")
|
||||||
|
if not ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, spec in ipairs(theme_spec) do
|
||||||
|
if spec[1] == "LazyVim/LazyVim" and spec.opts and spec.opts.colorscheme then
|
||||||
|
local colorscheme = spec.opts.colorscheme
|
||||||
|
|
||||||
|
require("lazy.core.loader").colorscheme(colorscheme)
|
||||||
|
|
||||||
|
vim.defer_fn(function()
|
||||||
|
pcall(vim.cmd.colorscheme, colorscheme)
|
||||||
|
|
||||||
|
if vim.fn.filereadable(transparency_file) == 1 then
|
||||||
|
vim.defer_fn(function()
|
||||||
|
vim.cmd.source(transparency_file)
|
||||||
|
end, 5)
|
||||||
|
end
|
||||||
|
end, 5)
|
||||||
|
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||