mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
1 Commits
v3.2.0
...
optional-h
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd632f90e1 |
3
.github/ISSUE_TEMPLATE/bug.yml
vendored
3
.github/ISSUE_TEMPLATE/bug.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
name: Bug
|
name: Bug
|
||||||
description: Report a validated bug -- NOT FOR SUPPORT REQUESTS
|
description: Report a problem
|
||||||
labels: [bug]
|
labels: [bug]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
@@ -19,6 +19,5 @@ body:
|
|||||||
id: steps
|
id: steps
|
||||||
attributes:
|
attributes:
|
||||||
label: What's wrong?
|
label: What's wrong?
|
||||||
description: Describe the issue, include steps to recreate it if possible, and attach the output of `omarchy-debug` if possible
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
7
.github/ISSUE_TEMPLATE/config.yml
vendored
7
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,8 +1 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
|
||||||
- name: Suggestion
|
|
||||||
url: https://github.com/basecamp/omarchy/discussions/categories/suggestions
|
|
||||||
about: Suggest a new feature, change to existing feature, or other ideas in Discussions.
|
|
||||||
- name: Support
|
|
||||||
url: https://omarchy.org/discord
|
|
||||||
about: Need help? Join our Discord community for support with any issues. GitHub issues should be used for verified bugs only.
|
|
||||||
|
|||||||
15
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
15
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
name: Documentation
|
||||||
|
description: New pages or changes to existing
|
||||||
|
labels: [documentation]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Remember: Omarchy is an open source gift, not a product you bought from a vendor
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: What correction or addition do we need?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
15
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
15
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
name: Enhancement
|
||||||
|
description: Feature or change
|
||||||
|
labels: [enhancement]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Remember: Omarchy is an open source gift, not a product you bought from a vendor
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: What do you need?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
# Omarchy
|
# Omarchy
|
||||||
|
|
||||||
Omarchy is a beautiful, modern & opinionated Linux distribution by DHH.
|
Turn a fresh Arch installation into a fully-configured, beautiful, and modern web development system based on Hyprland by running a single command. That's the one-line pitch for Omarchy (like it was for Omakub). No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools. Omarchy is an opinionated take on what Linux can be at its best.
|
||||||
|
|
||||||
Read more at [omarchy.org](https://omarchy.org).
|
Read more at [omarchy.org](https://omarchy.org).
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT).
|
Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT).
|
||||||
|
|
||||||
|
|||||||
12
applications/nvim.desktop
Normal file
12
applications/nvim.desktop
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Neovim
|
||||||
|
GenericName=Text Editor
|
||||||
|
Comment=Edit text files
|
||||||
|
Exec=omarchy-launch-editor %F
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Keywords=Text;editor;
|
||||||
|
Icon=nvim
|
||||||
|
Categories=Utility;TextEditor;
|
||||||
|
StartupNotify=false
|
||||||
|
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Walker
|
|
||||||
Comment=Walker Service
|
|
||||||
Exec=walker --gapplication-service
|
|
||||||
StartupNotify=false
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
@@ -4,20 +4,33 @@
|
|||||||
|
|
||||||
BATTERY_THRESHOLD=10
|
BATTERY_THRESHOLD=10
|
||||||
NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
|
NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
|
||||||
BATTERY_LEVEL=$(omarchy-battery-remaining)
|
|
||||||
BATTERY_STATE=$(upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}')
|
get_battery_percentage() {
|
||||||
|
upower -i "$(upower -e | grep 'BAT')" \
|
||||||
|
| awk -F: '/percentage/ {
|
||||||
|
gsub(/[%[:space:]]/, "", $2);
|
||||||
|
val=$2;
|
||||||
|
printf("%d\n", (val+0.5))
|
||||||
|
exit
|
||||||
|
}'
|
||||||
|
}
|
||||||
|
|
||||||
|
get_battery_state() {
|
||||||
|
upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
send_notification() {
|
send_notification() {
|
||||||
notify-send -u critical " Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
|
notify-send -u critical " Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ -n "$BATTERY_LEVEL" && "$BATTERY_LEVEL" =~ ^[0-9]+$ ]]; then
|
BATTERY_LEVEL=$(get_battery_percentage)
|
||||||
if [[ $BATTERY_STATE == "discharging" && $BATTERY_LEVEL -le $BATTERY_THRESHOLD ]]; then
|
BATTERY_STATE=$(get_battery_state)
|
||||||
if [[ ! -f $NOTIFICATION_FLAG ]]; then
|
|
||||||
send_notification $BATTERY_LEVEL
|
if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then
|
||||||
touch $NOTIFICATION_FLAG
|
if [[ ! -f "$NOTIFICATION_FLAG" ]]; then
|
||||||
fi
|
send_notification "$BATTERY_LEVEL"
|
||||||
else
|
touch "$NOTIFICATION_FLAG"
|
||||||
rm -f $NOTIFICATION_FLAG
|
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
rm -f "$NOTIFICATION_FLAG"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Returns the battery percentage remaining as an integer.
|
|
||||||
|
|
||||||
upower -i $(upower -e | grep BAT) \
|
|
||||||
| awk -F: '/percentage/ {
|
|
||||||
gsub(/[%[:space:]]/, "", $2);
|
|
||||||
val=$2;
|
|
||||||
printf("%d\n", (val+0.5))
|
|
||||||
exit
|
|
||||||
}'
|
|
||||||
@@ -12,9 +12,8 @@ if [[ -f "$FIRST_RUN_MODE" ]]; then
|
|||||||
bash "$OMARCHY_PATH/install/first-run/firewall.sh"
|
bash "$OMARCHY_PATH/install/first-run/firewall.sh"
|
||||||
bash "$OMARCHY_PATH/install/first-run/dns-resolver.sh"
|
bash "$OMARCHY_PATH/install/first-run/dns-resolver.sh"
|
||||||
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
|
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
|
||||||
bash "$OMARCHY_PATH/install/first-run/elephant.sh"
|
|
||||||
sudo rm -f /etc/sudoers.d/first-run
|
sudo rm -f /etc/sudoers.d/first-run
|
||||||
|
|
||||||
bash "$OMARCHY_PATH/install/first-run/welcome.sh"
|
|
||||||
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
|
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
|
||||||
|
bash "$OMARCHY_PATH/install/first-run/welcome.sh"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -8,17 +8,15 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DESKTOP_AUDIO="false"
|
SCOPE=""
|
||||||
MICROPHONE_AUDIO="false"
|
AUDIO="false"
|
||||||
WEBCAM="false"
|
WEBCAM="false"
|
||||||
STOP_RECORDING="false"
|
|
||||||
|
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--with-desktop-audio) DESKTOP_AUDIO="true" ;;
|
--with-audio) AUDIO="true" ;;
|
||||||
--with-microphone-audio) MICROPHONE_AUDIO="true" ;;
|
|
||||||
--with-webcam) WEBCAM="true" ;;
|
--with-webcam) WEBCAM="true" ;;
|
||||||
--stop-recording) STOP_RECORDING="true"
|
output|region) SCOPE="$arg" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -59,35 +57,27 @@ start_webcam_overlay() {
|
|||||||
|
|
||||||
start_screenrecording() {
|
start_screenrecording() {
|
||||||
local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
||||||
local audio_devices=""
|
|
||||||
local audio_args=""
|
local audio_args=""
|
||||||
|
|
||||||
[[ "$DESKTOP_AUDIO" == "true" ]] && audio_devices+="default_output"
|
# Merge audio tracks into one - separate tracks only play one at a time in most players
|
||||||
|
[[ "$AUDIO" == "true" ]] && audio_args="-a default_output|default_input"
|
||||||
|
|
||||||
if [[ "$MICROPHONE_AUDIO" == "true" ]]; then
|
gpu-screen-recorder -w "$@" -f 60 -c mp4 -o "$filename" $audio_args &
|
||||||
# Merge audio tracks into one - separate tracks only play one at a time in most players
|
|
||||||
[[ -n "$audio_devices" ]] && audio_devices+="|"
|
|
||||||
audio_devices+="default_input"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -n "$audio_devices" ]] && audio_args+="-a $audio_devices"
|
|
||||||
|
|
||||||
gpu-screen-recorder -w portal -f 60 -fallback-cpu-encoding yes -o "$filename" $audio_args -ac aac &
|
|
||||||
toggle_screenrecording_indicator
|
toggle_screenrecording_indicator
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_screenrecording() {
|
stop_screenrecording() {
|
||||||
pkill -SIGINT -f "^gpu-screen-recorder" # SIGINT required to save video properly
|
pkill -SIGINT -f "gpu-screen-recorder" # SIGINT required to save video properly
|
||||||
|
|
||||||
# Wait a maximum of 5 seconds to finish before hard killing
|
# Wait a maximum of 5 seconds to finish before hard killing
|
||||||
local count=0
|
local count=0
|
||||||
while pgrep -f "^gpu-screen-recorder" >/dev/null && [ $count -lt 50 ]; do
|
while pgrep -f "gpu-screen-recorder" >/dev/null && [ $count -lt 50 ]; do
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
count=$((count + 1))
|
count=$((count + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
if pgrep -f "^gpu-screen-recorder" >/dev/null; then
|
if pgrep -f "gpu-screen-recorder" >/dev/null; then
|
||||||
pkill -9 -f "^gpu-screen-recorder"
|
pkill -9 -f "gpu-screen-recorder"
|
||||||
cleanup_webcam
|
cleanup_webcam
|
||||||
notify-send "Screen recording error" "Recording process had to be force-killed. Video may be corrupted." -u critical -t 5000
|
notify-send "Screen recording error" "Recording process had to be force-killed. Video may be corrupted." -u critical -t 5000
|
||||||
else
|
else
|
||||||
@@ -102,19 +92,51 @@ toggle_screenrecording_indicator() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
screenrecording_active() {
|
screenrecording_active() {
|
||||||
pgrep -f "^gpu-screen-recorder" >/dev/null || pgrep -f "WebcamOverlay" >/dev/null
|
pgrep -f "gpu-screen-recorder" >/dev/null || pgrep -x slurp >/dev/null || pgrep -f "WebcamOverlay" >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
if screenrecording_active; then
|
if screenrecording_active; then
|
||||||
if pgrep -f "WebcamOverlay" >/dev/null && ! pgrep -f "^gpu-screen-recorder" >/dev/null; then
|
if pgrep -x slurp >/dev/null; then
|
||||||
|
pkill -x slurp 2>/dev/null
|
||||||
|
elif pgrep -f "WebcamOverlay" >/dev/null && ! pgrep -f "gpu-screen-recorder" >/dev/null; then
|
||||||
cleanup_webcam
|
cleanup_webcam
|
||||||
else
|
else
|
||||||
stop_screenrecording
|
stop_screenrecording
|
||||||
fi
|
fi
|
||||||
elif [[ "$STOP_RECORDING" == "false" ]]; then
|
elif [[ "$SCOPE" == "output" ]]; then
|
||||||
[[ "$WEBCAM" == "true" ]] && start_webcam_overlay
|
[[ "$WEBCAM" == "true" ]] && start_webcam_overlay
|
||||||
|
|
||||||
start_screenrecording || cleanup_webcam
|
if ! output=$(slurp -o -f "%o"); then
|
||||||
|
[[ "$WEBCAM" == "true" ]] && cleanup_webcam
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$output" ]]; then
|
||||||
|
notify-send "Error" "Could not detect monitor" -u critical
|
||||||
|
[[ "$WEBCAM" == "true" ]] && cleanup_webcam
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
start_screenrecording "$output"
|
||||||
else
|
else
|
||||||
exit 1
|
[[ "$WEBCAM" == "true" ]] && start_webcam_overlay
|
||||||
|
|
||||||
|
scale=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .scale')
|
||||||
|
|
||||||
|
if ! region=$(slurp -f "%wx%h+%x+%y"); then
|
||||||
|
[[ "$WEBCAM" == "true" ]] && cleanup_webcam
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$region" =~ ^([0-9]+)x([0-9]+)\+([0-9]+)\+([0-9]+)$ ]]; then
|
||||||
|
w=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[1]} * $scale}")
|
||||||
|
h=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[2]} * $scale}")
|
||||||
|
x=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[3]} * $scale}")
|
||||||
|
y=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[4]} * $scale}")
|
||||||
|
scaled_region="${w}x${h}+${x}+${y}"
|
||||||
|
else
|
||||||
|
scaled_region="$region"
|
||||||
|
fi
|
||||||
|
|
||||||
|
start_screenrecording region -region "$scaled_region"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,26 +1,25 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
screensaver_in_focus() {
|
screensaver_in_focus() {
|
||||||
hyprctl activewindow -j | jq -e '.class == "org.omarchy.screensaver"' >/dev/null 2>&1
|
hyprctl activewindow -j | jq -e '.class == "Screensaver"' >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_screensaver() {
|
exit_screensaver() {
|
||||||
hyprctl keyword cursor:invisible false
|
hyprctl keyword cursor:invisible false
|
||||||
pkill -x tte 2>/dev/null
|
pkill -x tte 2>/dev/null
|
||||||
pkill -f org.omarchy.screensaver 2>/dev/null
|
pkill -f "alacritty --class Screensaver" 2>/dev/null
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
|
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
|
||||||
|
|
||||||
printf '\033]11;rgb:00/00/00\007' # Set background color to black
|
|
||||||
|
|
||||||
hyprctl keyword cursor:invisible true &>/dev/null
|
hyprctl keyword cursor:invisible true &>/dev/null
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
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 120 --canvas-width 0 --canvas-height 0 --anchor-canvas c --anchor-text c\
|
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \
|
||||||
--no-eol --no-restore-cursor random_effect &
|
"$effect" &
|
||||||
|
|
||||||
while pgrep -x tte >/dev/null; do
|
while pgrep -x tte >/dev/null; do
|
||||||
if read -n 1 -t 3 || ! screensaver_in_focus; then
|
if read -n 1 -t 3 || ! screensaver_in_focus; then
|
||||||
|
|||||||
@@ -6,10 +6,8 @@ shell_pid=$(pgrep -P "$terminal_pid" | tail -n1)
|
|||||||
|
|
||||||
if [[ -n $shell_pid ]]; then
|
if [[ -n $shell_pid ]]; then
|
||||||
cwd=$(readlink -f "/proc/$shell_pid/cwd" 2>/dev/null)
|
cwd=$(readlink -f "/proc/$shell_pid/cwd" 2>/dev/null)
|
||||||
shell=$(readlink -f "/proc/$shell_pid/exe" 2>/dev/null)
|
|
||||||
|
|
||||||
# Check if $shell is a valid shell and $cwd is a directory.
|
if [[ -d $cwd ]]; then
|
||||||
if grep -qs "$shell" /etc/shells && [[ -d $cwd ]]; then
|
|
||||||
echo "$cwd"
|
echo "$cwd"
|
||||||
else
|
else
|
||||||
echo "$HOME"
|
echo "$HOME"
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
LOG_FILE="/tmp/omarchy-debug.log"
|
|
||||||
|
|
||||||
cat > "$LOG_FILE" <<EOF
|
|
||||||
Date: $(date)
|
|
||||||
Hostname: $(hostname)
|
|
||||||
Omarchy Branch: $(git -C "$OMARCHY_PATH" branch --show-current 2>/dev/null || echo "unknown")
|
|
||||||
|
|
||||||
=========================================
|
|
||||||
SYSTEM INFORMATION
|
|
||||||
=========================================
|
|
||||||
$(inxi -Farz)
|
|
||||||
|
|
||||||
=========================================
|
|
||||||
DMESG
|
|
||||||
=========================================
|
|
||||||
$(sudo dmesg)
|
|
||||||
|
|
||||||
=========================================
|
|
||||||
JOURNALCTL (CURRENT BOOT, ERRORS ONLY)
|
|
||||||
=========================================
|
|
||||||
$(journalctl -b -p 4..1)
|
|
||||||
|
|
||||||
=========================================
|
|
||||||
INSTALLED PACKAGES
|
|
||||||
=========================================
|
|
||||||
$({ expac -S '%n %v (%r)' $(pacman -Qqe) 2>/dev/null; comm -13 <(pacman -Sql | sort) <(pacman -Qqe | sort) | xargs -r expac -Q '%n %v (AUR)'; } | sort)
|
|
||||||
EOF
|
|
||||||
|
|
||||||
OPTIONS=("View log" "Save in current directory")
|
|
||||||
if ping -c 1 8.8.8.8 >/dev/null 2>&1; then
|
|
||||||
OPTIONS=("Upload log" "${OPTIONS[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
ACTION=$(gum choose "${OPTIONS[@]}")
|
|
||||||
|
|
||||||
case "$ACTION" in
|
|
||||||
"Upload log")
|
|
||||||
echo "Uploading debug log to 0x0.st..."
|
|
||||||
URL=$(curl -sF "file=@$LOG_FILE" -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
|
|
||||||
;;
|
|
||||||
"View log")
|
|
||||||
less "$LOG_FILE"
|
|
||||||
;;
|
|
||||||
"Save in current directory")
|
|
||||||
cp "$LOG_FILE" "./omarchy-debug.log"
|
|
||||||
echo "✓ Log saved to $(pwd)/omarchy-debug.log"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -18,7 +18,6 @@ if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
|
|||||||
pkill -SIGUSR2 ghostty
|
pkill -SIGUSR2 ghostty
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sed -i "s/font_family = .*/font_family = $font_name/g" ~/.config/hypr/hyprlock.conf
|
|
||||||
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 \
|
||||||
@@ -28,10 +27,7 @@ if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
|
|||||||
|
|
||||||
omarchy-restart-waybar
|
omarchy-restart-waybar
|
||||||
omarchy-restart-swayosd
|
omarchy-restart-swayosd
|
||||||
|
omarchy-restart-walker
|
||||||
if pgrep -x ghostty; then
|
|
||||||
notify-send " You must restart Ghostty to see font change"
|
|
||||||
fi
|
|
||||||
|
|
||||||
omarchy-hook font-set "$font_name"
|
omarchy-hook font-set "$font_name"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [[ $# -lt 1 ]]; then
|
if [[ $# -lt 1 ]]; then
|
||||||
echo "Usage: omarchy-hook [name] [args...]"
|
echo "Usage: omarchy-hook [name] [args...]"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Toggle to pop-out a tile to stay fixed on a display basis.
|
|
||||||
|
|
||||||
# Usage:
|
|
||||||
# omarchy-hyprland-window-pop [width height [x y]]
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# width Optional. Width of the floating window. Default: 1300
|
|
||||||
# height Optional. Height of the floating window. Default: 900
|
|
||||||
# x Optional. X position of the window. Must provide both X and Y to take effect.
|
|
||||||
# y Optional. Y position of the window. Must provide both X and Y to take effect.
|
|
||||||
#
|
|
||||||
# Behavior:
|
|
||||||
# - If the window is already pinned, it will be unpinned and removed from the pop layer.
|
|
||||||
# - If the window is not pinned, it will be floated, resized, moved/centered, pinned, brought to top, and popped.
|
|
||||||
|
|
||||||
width=${1:-1300}
|
|
||||||
height=${2:-900}
|
|
||||||
x=${3:-}
|
|
||||||
y=${4:-}
|
|
||||||
|
|
||||||
active=$(hyprctl activewindow -j)
|
|
||||||
pinned=$(echo "$active" | jq ".pinned")
|
|
||||||
addr=$(echo "$active" | jq -r ".address")
|
|
||||||
|
|
||||||
if [[ $pinned == "true" ]]; then
|
|
||||||
hyprctl -q --batch \
|
|
||||||
dispatch pin address:$addr; \
|
|
||||||
dispatch togglefloating address:$addr; \
|
|
||||||
dispatch tagwindow -pop address:$addr;
|
|
||||||
elif [[ -n $addr ]]; then
|
|
||||||
hyprctl dispatch togglefloating address:$addr
|
|
||||||
hyprctl dispatch resizeactive exact $width $height address:$addr
|
|
||||||
|
|
||||||
if [[ -n $x && -n $y ]]; then
|
|
||||||
hyprctl dispatch moveactive $x $y address:$addr
|
|
||||||
else
|
|
||||||
hyprctl dispatch centerwindow address:$addr
|
|
||||||
fi
|
|
||||||
|
|
||||||
hyprctl -q --batch \
|
|
||||||
dispatch pin address:$addr; \
|
|
||||||
dispatch alterzorder top address:$addr; \
|
|
||||||
dispatch tagwindow +pop address:$addr;
|
|
||||||
fi
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
workspace_id=$(hyprctl activeworkspace -j | jq -r .id)
|
|
||||||
gaps=$(hyprctl workspacerules -j | jq -r ".[] | select(.workspaceString==\"$workspace_id\") | .gapsOut[0] // 0")
|
|
||||||
|
|
||||||
if [[ $gaps == "0" ]]; then
|
|
||||||
hyprctl keyword "workspace $workspace_id, gapsout:10, gapsin:5, bordersize:2"
|
|
||||||
else \
|
|
||||||
hyprctl keyword "workspace $workspace_id, gapsout:0, gapsin:0, bordersize:0"
|
|
||||||
fi
|
|
||||||
@@ -50,7 +50,6 @@ ruby)
|
|||||||
omarchy-pkg-add libyaml
|
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
|
||||||
echo "gem: --no-document" > ~/.gemrc
|
|
||||||
mise x ruby -- gem install rails --no-document
|
mise x ruby -- gem install rails --no-document
|
||||||
echo -e "\nYou can now run: rails new myproject"
|
echo -e "\nYou can now run: rails new myproject"
|
||||||
;;
|
;;
|
||||||
|
|||||||
12
bin/omarchy-install-hyprscrolling
Executable file
12
bin/omarchy-install-hyprscrolling
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Installing hyprscrolling plugin"
|
||||||
|
|
||||||
|
omarchy-pkg-add meson cpio cmake
|
||||||
|
hyprpm update
|
||||||
|
hyprpm add https://github.com/hyprwm/hyprland-plugins
|
||||||
|
hyprpm enable hyprscrolling
|
||||||
|
|
||||||
|
if ! grep -q '/hypr/scrolling\.conf' ~/.config/hypr/hyprland.conf; then
|
||||||
|
sed -i '/source = ~\/\.local\/share\/omarchy\/default\/hypr\/windows\.conf/a source = ~/.local/share/omarchy/default/hypr/scrolling.conf' ~/.config/hypr/hyprland.conf
|
||||||
|
fi
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "Now pick dependencies matching your graphics card"
|
echo "Now pick dependencies matching your graphics card"
|
||||||
sudo pacman -S --noconfirm steam
|
sudo pacman -Syu --noconfirm steam
|
||||||
setsid gtk-launch steam >/dev/null 2>&1 &
|
setsid gtk-launch steam >/dev/null 2>&1 &
|
||||||
|
|||||||
@@ -7,53 +7,15 @@ fi
|
|||||||
|
|
||||||
package="$1"
|
package="$1"
|
||||||
|
|
||||||
# Map package name to desktop entry ID
|
|
||||||
case "$package" in
|
|
||||||
alacritty) desktop_id="Alacritty.desktop" ;;
|
|
||||||
ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;;
|
|
||||||
kitty) desktop_id="kitty.desktop" ;;
|
|
||||||
*)
|
|
||||||
echo "Unknown terminal: $package"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Install package
|
# Install package
|
||||||
if omarchy-pkg-add $package; then
|
if omarchy-pkg-add $package; then
|
||||||
# Copy custom desktop entry for alacritty with X-TerminalArg* keys
|
# Set as default terminal
|
||||||
if [[ $package == "alacritty" ]]; then
|
echo "Setting $package as new default terminal..."
|
||||||
mkdir -p ~/.local/share/applications
|
sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default
|
||||||
cat > ~/.local/share/applications/Alacritty.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
TryExec=alacritty
|
|
||||||
Exec=alacritty
|
|
||||||
Icon=Alacritty
|
|
||||||
Terminal=false
|
|
||||||
Categories=System;TerminalEmulator;
|
|
||||||
Name=Alacritty
|
|
||||||
GenericName=Terminal
|
|
||||||
Comment=A fast, cross-platform, OpenGL terminal emulator
|
|
||||||
StartupNotify=true
|
|
||||||
StartupWMClass=Alacritty
|
|
||||||
Actions=New;
|
|
||||||
X-TerminalArgExec=-e
|
|
||||||
X-TerminalArgAppId=--class=
|
|
||||||
X-TerminalArgTitle=--title=
|
|
||||||
X-TerminalArgDir=--working-directory=
|
|
||||||
|
|
||||||
[Desktop Action New]
|
# Restart is needed for new default to take effect
|
||||||
Name=New Terminal
|
echo
|
||||||
Exec=alacritty
|
gum confirm "Restart to use new terminal?" && systemctl reboot --no-wall
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Update xdg-terminals.list to prioritize the proper terminal
|
|
||||||
cat > ~/.config/xdg-terminals.list << EOF
|
|
||||||
# Terminal emulator preference order for xdg-terminal-exec
|
|
||||||
# The first found and valid terminal will be used
|
|
||||||
$desktop_id
|
|
||||||
EOF
|
|
||||||
else
|
else
|
||||||
echo "Failed to install $package"
|
echo "Failed to install $package"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -21,7 +21,4 @@ EOF
|
|||||||
# Ensure VSC's own auto-update feature is turned off
|
# Ensure VSC's own auto-update feature is turned off
|
||||||
printf '{\n "update.mode": "none"\n}\n' > ~/.config/Code/User/settings.json
|
printf '{\n "update.mode": "none"\n}\n' > ~/.config/Code/User/settings.json
|
||||||
|
|
||||||
# Apply Omarchy theme to VSCode
|
|
||||||
omarchy-theme-set-vscode
|
|
||||||
|
|
||||||
setsid gtk-launch code
|
setsid gtk-launch code
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Install xpadneo to ensure controllers work out of the box
|
|
||||||
sudo pacman -S --noconfirm --needed linux-headers
|
|
||||||
yay -S --noconfirm xpadneo-dkms
|
|
||||||
|
|
||||||
# Prevent xpad/xpadneo driver conflict
|
|
||||||
echo blacklist xpad | sudo tee /etc/modprobe.d/blacklist-xpad.conf >/dev/null
|
|
||||||
echo hid_xpadneo | sudo tee /etc/modules-load.d/xpadneo.conf >/dev/null
|
|
||||||
|
|
||||||
# Give user access to game controllers
|
|
||||||
sudo usermod -a -G input $USER
|
|
||||||
|
|
||||||
# Modules need to be loaded
|
|
||||||
gum confirm "Install requires reboot. Ready?" && sudo reboot now
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
exec omarchy-launch-or-focus-tui "bash -c 'fastfetch; read -n 1 -s'"
|
exec setsid uwsm-app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s'
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
rfkill unblock bluetooth
|
|
||||||
exec omarchy-launch-or-focus-tui bluetui
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
omarchy-cmd-present "$EDITOR" || EDITOR=nvim
|
case "${EDITOR:-nvim}" in
|
||||||
|
|
||||||
case "$EDITOR" in
|
|
||||||
nvim | vim | nano | micro | hx | helix)
|
nvim | vim | nano | micro | hx | helix)
|
||||||
exec omarchy-launch-tui "$EDITOR" "$@"
|
exec setsid uwsm-app -- "$TERMINAL" -e "$EDITOR" "$@"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
exec setsid uwsm-app -- "$EDITOR" "$@"
|
exec setsid uwsm-app -- "$EDITOR" "$@"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
cmd="$*"
|
cmd="$*"
|
||||||
exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.omarchy.terminal --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
|
exec setsid uwsm-app -- alacritty -o font.size=9 --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
|
||||||
@@ -12,5 +12,5 @@ WINDOW_ADDRESS=$(hyprctl clients -j | jq -r --arg p "$WINDOW_PATTERN" '.[]|selec
|
|||||||
if [[ -n $WINDOW_ADDRESS ]]; then
|
if [[ -n $WINDOW_ADDRESS ]]; then
|
||||||
hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS"
|
hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS"
|
||||||
else
|
else
|
||||||
eval exec setsid $LAUNCH_COMMAND
|
eval exec $LAUNCH_COMMAND
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
APP_ID="org.omarchy.$(basename $1)"
|
|
||||||
LAUNCH_COMMAND="omarchy-launch-tui $@"
|
|
||||||
|
|
||||||
exec omarchy-launch-or-focus "$APP_ID" "$LAUNCH_COMMAND"
|
|
||||||
@@ -6,7 +6,7 @@ if ! command -v tte &>/dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Exit early if screensave is already running
|
# Exit early if screensave is already running
|
||||||
pgrep -f org.omarchy.screensaver && exit 0
|
pgrep -f "alacritty --class Screensaver" && exit 0
|
||||||
|
|
||||||
# Allow screensaver to be turned off but also force started
|
# Allow screensaver to be turned off but also force started
|
||||||
if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ]]; then
|
if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ]]; then
|
||||||
@@ -14,34 +14,15 @@ if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ]
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
|
focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
|
||||||
terminal=$(xdg-terminal-exec --print-id)
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
case $terminal in
|
# FIXME: Find a way to make this generic where we it can work for kitty + ghostty
|
||||||
*Alacritty*)
|
hyprctl dispatch exec -- \
|
||||||
hyprctl dispatch exec -- \
|
alacritty --class Screensaver \
|
||||||
alacritty --class=org.omarchy.screensaver \
|
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
|
||||||
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
|
-e omarchy-cmd-screensaver
|
||||||
-e omarchy-cmd-screensaver
|
|
||||||
;;
|
|
||||||
*ghostty*)
|
|
||||||
hyprctl dispatch exec -- \
|
|
||||||
ghostty --class=org.omarchy.screensaver \
|
|
||||||
--font-size=18 \
|
|
||||||
-e omarchy-cmd-screensaver
|
|
||||||
;;
|
|
||||||
*kitty*)
|
|
||||||
hyprctl dispatch exec -- \
|
|
||||||
kitty --class=org.omarchy.screensaver \
|
|
||||||
--override font_size=18 \
|
|
||||||
-e omarchy-cmd-screensaver
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
notify-send "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
hyprctl dispatch focusmonitor $focused
|
hyprctl dispatch focusmonitor $focused
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.omarchy.$(basename $1) -e "$1" "${@:2}"
|
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
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* | helium*) ;;
|
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium-browser*) ;;
|
||||||
*) browser="chromium.desktop" ;;
|
*) browser="chromium.desktop" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
rfkill unblock wifi
|
exec setsid uwsm-app -- "$TERMINAL" --class=Impala -e impala "$@"
|
||||||
omarchy-launch-or-focus-tui impala
|
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ if pgrep -x "1password" >/dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Avoid running screensaver when locked
|
# Avoid running screensaver when locked
|
||||||
pkill -f org.omarchy.screensaver
|
pkill -f "alacritty --class Screensaver"
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ menu() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "$options" | omarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 630 -p "$prompt…" "${args[@]}" 2>/dev/null
|
echo -e "$options" | omarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 600 -p "$prompt…" "${args[@]}" 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
terminal() {
|
terminal() {
|
||||||
xdg-terminal-exec --app-id=org.omarchy.terminal "$@"
|
alacritty --class=Omarchy -e "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
present_terminal() {
|
present_terminal() {
|
||||||
@@ -112,19 +112,19 @@ show_screenshot_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_screenrecord_menu() {
|
show_screenrecord_menu() {
|
||||||
omarchy-cmd-screenrecord --stop-recording && exit 0
|
case $(menu "Screenrecord" " Region\n Region + Audio\n Display\n Display + Audio\n Display + Webcam") in
|
||||||
|
*"Region + Audio"*) omarchy-cmd-screenrecord region --with-audio ;;
|
||||||
case $(menu "Screenrecord" " With desktop audio\n With desktop + microphone audio\n With desktop + microphone audio + webcam") in
|
*Region*) omarchy-cmd-screenrecord ;;
|
||||||
*"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;;
|
*"Display + Audio"*) omarchy-cmd-screenrecord output --with-audio ;;
|
||||||
*"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;;
|
*"Display + Webcam"*) omarchy-cmd-screenrecord output --with-audio --with-webcam ;;
|
||||||
*"With desktop + microphone audio + webcam") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam ;;
|
*Display*) omarchy-cmd-screenrecord output ;;
|
||||||
*) back_to show_capture_menu ;;
|
*) back_to show_capture_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
show_share_menu() {
|
show_share_menu() {
|
||||||
case $(menu "Share" " Clipboard\n File \n Folder") in
|
case $(menu "Share" " Clipboard\n File \n Folder") in
|
||||||
*Clipboard*) omarchy-cmd-share clipboard ;;
|
*Clipboard*) terminal bash -c "omarchy-cmd-share clipboard" ;;
|
||||||
*File*) terminal bash -c "omarchy-cmd-share file" ;;
|
*File*) terminal bash -c "omarchy-cmd-share file" ;;
|
||||||
*Folder*) terminal bash -c "omarchy-cmd-share folder" ;;
|
*Folder*) terminal bash -c "omarchy-cmd-share folder" ;;
|
||||||
*) back_to show_trigger_menu ;;
|
*) back_to show_trigger_menu ;;
|
||||||
@@ -154,7 +154,12 @@ show_style_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_theme_menu() {
|
show_theme_menu() {
|
||||||
omarchy-launch-walker -m menus:omarchythemes --width 800 --minheight 400
|
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() {
|
show_font_menu() {
|
||||||
@@ -173,9 +178,15 @@ show_setup_menu() {
|
|||||||
options="$options\n Defaults\n DNS\n Security\n Config"
|
options="$options\n Defaults\n DNS\n Security\n Config"
|
||||||
|
|
||||||
case $(menu "Setup" "$options") in
|
case $(menu "Setup" "$options") in
|
||||||
*Audio*) omarchy-launch-or-focus-tui wiremix ;;
|
*Audio*) $TERMINAL --class=Wiremix -e wiremix ;;
|
||||||
*Wifi*) omarchy-launch-wifi ;;
|
*Wifi*)
|
||||||
*Bluetooth*) omarchy-launch-bluetooth ;;
|
rfkill unblock wifi
|
||||||
|
omarchy-launch-wifi
|
||||||
|
;;
|
||||||
|
*Bluetooth*)
|
||||||
|
rfkill unblock bluetooth
|
||||||
|
blueberry
|
||||||
|
;;
|
||||||
*Power*) show_setup_power_menu ;;
|
*Power*) show_setup_power_menu ;;
|
||||||
*Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;;
|
*Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;;
|
||||||
*Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;;
|
*Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;;
|
||||||
@@ -221,7 +232,7 @@ show_setup_security_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 Terminal\n AI\n Windows\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 Windows\n Gaming\n Extra") 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 ;;
|
||||||
@@ -234,6 +245,7 @@ show_install_menu() {
|
|||||||
*AI*) show_install_ai_menu ;;
|
*AI*) show_install_ai_menu ;;
|
||||||
*Windows*) present_terminal "omarchy-windows-vm install" ;;
|
*Windows*) present_terminal "omarchy-windows-vm install" ;;
|
||||||
*Gaming*) show_install_gaming_menu ;;
|
*Gaming*) show_install_gaming_menu ;;
|
||||||
|
*Extra*) show_install_extra_menu ;;
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -253,7 +265,7 @@ show_install_editor_menu() {
|
|||||||
*VSCode*) present_terminal omarchy-install-vscode ;;
|
*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*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
*Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
||||||
*Helix*) install "Helix" "helix" ;;
|
*Helix*) install "Helix" "helix" ;;
|
||||||
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
|
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
|
||||||
*) show_install_menu ;;
|
*) show_install_menu ;;
|
||||||
@@ -276,11 +288,11 @@ show_install_ai_menu() {
|
|||||||
echo ollama
|
echo ollama
|
||||||
)
|
)
|
||||||
|
|
||||||
case $(menu "Install" " Claude Code\n Cursor CLI\n Gemini\n OpenAI Codex\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*) install "Cursor CLI" "cursor-cli" ;;
|
*Cursor*) aur_install "Cursor CLI" "cursor-cli" ;;
|
||||||
*OpenAI*) install "OpenAI Codex" "openai-codex-bin" ;;
|
*OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;;
|
||||||
*Gemini*) install "Gemini" "gemini-cli" ;;
|
*Gemini*) aur_install "Gemini" "gemini-cli" ;;
|
||||||
*Studio*) install "LM Studio" "lmstudio" ;;
|
*Studio*) install "LM Studio" "lmstudio" ;;
|
||||||
*Ollama*) install "Ollama" $ollama_pkg ;;
|
*Ollama*) install "Ollama" $ollama_pkg ;;
|
||||||
*Crush*) install "Crush" "crush-bin" ;;
|
*Crush*) install "Crush" "crush-bin" ;;
|
||||||
@@ -290,11 +302,17 @@ show_install_ai_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_install_gaming_menu() {
|
show_install_gaming_menu() {
|
||||||
case $(menu "Install" " Steam\n RetroArch [AUR]\n Minecraft\n Xbox Controller [AUR]") in
|
case $(menu "Install" " Steam\n RetroArch [AUR]\n Minecraft") in
|
||||||
*Steam*) present_terminal omarchy-install-steam ;;
|
*Steam*) present_terminal omarchy-install-steam ;;
|
||||||
*RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
|
*RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
|
||||||
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
|
*Minecraft*) aur_install_and_launch "Minecraft [AUR]" "minecraft-launcher" "minecraft-launcher" ;;
|
||||||
*Xbox*) present_terminal omarchy-install-xbox-controllers ;;
|
*) show_install_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
show_install_extra_menu() {
|
||||||
|
case $(menu "Install" " Hyprscrolling") in
|
||||||
|
*Hyprscrolling*) present_terminal omarchy-install-hyprscrolling ;;
|
||||||
*) show_install_menu ;;
|
*) show_install_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -377,20 +395,27 @@ show_remove_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_update_menu() {
|
show_update_menu() {
|
||||||
case $(menu "Update" " Omarchy\n Config\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone\n Time") in
|
case $(menu "Update" " Omarchy\n Branch\n Config\n Extra Themes\n Process\n Hardware\n Firmware\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 ;;
|
||||||
*Hardware*) show_update_hardware_menu ;;
|
*Hardware*) show_update_hardware_menu ;;
|
||||||
*Firmware*) present_terminal omarchy-update-firmware ;;
|
*Firmware*) present_terminal omarchy-update-firmware ;;
|
||||||
*Timezone*) present_terminal omarchy-tz-select ;;
|
*Timezone*) present_terminal omarchy-tz-select ;;
|
||||||
*Time*) present_terminal omarchy-update-time ;;
|
|
||||||
*Password*) show_update_password_menu ;;
|
*Password*) show_update_password_menu ;;
|
||||||
*) show_main_menu ;;
|
*) show_main_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 ;;
|
||||||
|
|||||||
@@ -49,17 +49,6 @@ parse_keycodes() {
|
|||||||
code="${BASH_REMATCH[1]}"
|
code="${BASH_REMATCH[1]}"
|
||||||
symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE")
|
symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE")
|
||||||
echo "${line/code:${code}/$symbol}"
|
echo "${line/code:${code}/$symbol}"
|
||||||
elif [[ "$line" =~ mouse:([0-9]+) ]]; then
|
|
||||||
code="${BASH_REMATCH[1]}"
|
|
||||||
|
|
||||||
case "$code" in
|
|
||||||
272) symbol="LEFT MOUSE BUTTON" ;;
|
|
||||||
273) symbol="RIGHT MOUSE BUTTON" ;;
|
|
||||||
274) symbol="MIDDLE MOUSE BUTTON" ;;
|
|
||||||
*) symbol="mouse:${code}" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo "${line/mouse:${code}/$symbol}"
|
|
||||||
else
|
else
|
||||||
echo "$line"
|
echo "$line"
|
||||||
fi
|
fi
|
||||||
@@ -112,11 +101,6 @@ dynamic_bindings() {
|
|||||||
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hardcoded bindings, like the copy-url extension and such
|
|
||||||
static_bindings() {
|
|
||||||
echo "SHIFT ALT,L,Copy URL from Web App,extension,copy-url"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Parse and format keybindings
|
# Parse and format keybindings
|
||||||
#
|
#
|
||||||
# `awk` does the heavy lifting:
|
# `awk` does the heavy lifting:
|
||||||
@@ -163,67 +147,13 @@ parse_bindings() {
|
|||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
prioritize_entries() {
|
|
||||||
awk '
|
|
||||||
{
|
|
||||||
line = $0
|
|
||||||
prio = 50
|
|
||||||
if (match(line, /Terminal/)) prio = 0
|
|
||||||
if (match(line, /Browser/) && !match(line, /Browser[[:space:]]*\(/)) prio = 1
|
|
||||||
if (match(line, /File manager/)) prio = 2
|
|
||||||
if (match(line, /Launch apps/)) prio = 3
|
|
||||||
if (match(line, /Omarchy menu/)) prio = 4
|
|
||||||
if (match(line, /System menu/)) prio = 5
|
|
||||||
if (match(line, /Theme menu/)) prio = 6
|
|
||||||
if (match(line, /Full screen/)) prio = 7
|
|
||||||
if (match(line, /Close window/)) prio = 8
|
|
||||||
if (match(line, /Toggle window floating/)) prio = 9
|
|
||||||
if (match(line, /Toggle window split/)) prio = 10
|
|
||||||
if (match(line, /Universal/)) prio = 11
|
|
||||||
if (match(line, /Clipboard/)) prio = 12
|
|
||||||
if (match(line, /Emoji picker/)) prio = 13
|
|
||||||
if (match(line, /Color picker/)) prio = 14
|
|
||||||
if (match(line, /Screenshot/)) prio = 15
|
|
||||||
if (match(line, /Screenrecording/)) prio = 16
|
|
||||||
if (match(line, /(Switch|Next|Former|Previous).*workspace/)) prio = 17
|
|
||||||
if (match(line, /Move window to workspace/)) prio = 18
|
|
||||||
if (match(line, /Swap window/)) prio = 19
|
|
||||||
if (match(line, /Move window focus/)) prio = 20
|
|
||||||
if (match(line, /Move window$/)) prio = 21
|
|
||||||
if (match(line, /Resize window/)) prio = 22
|
|
||||||
if (match(line, /Expand window/)) prio = 23
|
|
||||||
if (match(line, /Shrink window/)) prio = 24
|
|
||||||
if (match(line, /scratchpad/)) prio = 25
|
|
||||||
if (match(line, /notification/)) prio = 26
|
|
||||||
if (match(line, /Toggle window transparency/)) prio = 27
|
|
||||||
if (match(line, /Toggle workspace gaps/)) prio = 28
|
|
||||||
if (match(line, /Toggle nightlight/)) prio = 29
|
|
||||||
if (match(line, /group/)) prio = 94
|
|
||||||
if (match(line, /Scroll active workspace/)) prio = 95
|
|
||||||
if (match(line, /Cycle to/)) prio = 96
|
|
||||||
if (match(line, /Reveal active/)) prio = 97
|
|
||||||
if (match(line, /Apple Display/)) prio = 98
|
|
||||||
if (match(line, /XF86/)) prio = 99
|
|
||||||
|
|
||||||
# print "priority<TAB>line"
|
|
||||||
printf "%d\t%s\n", prio, line
|
|
||||||
}' |
|
|
||||||
sort -k1,1n -k2,2 |
|
|
||||||
cut -f2-
|
|
||||||
}
|
|
||||||
|
|
||||||
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))
|
||||||
|
|
||||||
build_keymap_cache
|
build_keymap_cache
|
||||||
|
|
||||||
{
|
dynamic_bindings |
|
||||||
dynamic_bindings
|
|
||||||
static_bindings
|
|
||||||
} |
|
|
||||||
sort -u |
|
sort -u |
|
||||||
parse_keycodes |
|
parse_keycodes |
|
||||||
parse_bindings |
|
parse_bindings |
|
||||||
prioritize_entries |
|
|
||||||
walker --dmenu -p 'Keybindings' --width 800 --height "$menu_height"
|
walker --dmenu -p 'Keybindings' --width 800 --height "$menu_height"
|
||||||
|
|
||||||
|
|||||||
7
bin/omarchy-pkg-ignored
Executable file
7
bin/omarchy-pkg-ignored
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
IGNORED_PACKAGES_FILE="$OMARCHY_PATH/install/packages.ignored"
|
||||||
|
|
||||||
|
if [[ -f $IGNORED_PACKAGES_FILE ]]; then
|
||||||
|
tr '\r\n' ',' <"$IGNORED_PACKAGES_FILE" | sed 's/,$//'
|
||||||
|
fi
|
||||||
@@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
omarchy-refresh-config hypr/autostart.conf
|
omarchy-refresh-config hypr/autostart.conf
|
||||||
omarchy-refresh-config hypr/bindings.conf
|
omarchy-refresh-config hypr/bindings.conf
|
||||||
|
omarchy-refresh-config hypr/envs.conf
|
||||||
omarchy-refresh-config hypr/input.conf
|
omarchy-refresh-config hypr/input.conf
|
||||||
omarchy-refresh-config hypr/looknfeel.conf
|
|
||||||
omarchy-refresh-config hypr/hyprland.conf
|
omarchy-refresh-config hypr/hyprland.conf
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ -f /boot/EFI/linux/omarchy_linux.efi ]] && [[ -f /boot/EFI/linux/$(cat /etc/machine-id)_linux.efi ]]; then
|
|
||||||
echo "Cleanup extra UKI"
|
|
||||||
sudo rm -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi
|
|
||||||
fi
|
|
||||||
echo "Resetting limine config"
|
|
||||||
|
|
||||||
sudo mv /boot/limine.conf /boot/limine.conf.bak
|
|
||||||
|
|
||||||
sudo tee /boot/limine.conf <<EOF >/dev/null
|
|
||||||
### Read more at config document: https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md
|
|
||||||
#timeout: 3
|
|
||||||
default_entry: 2
|
|
||||||
interface_branding: Omarchy Bootloader
|
|
||||||
interface_branding_color: 2
|
|
||||||
hash_mismatch_panic: no
|
|
||||||
|
|
||||||
term_background: 1a1b26
|
|
||||||
backdrop: 1a1b26
|
|
||||||
|
|
||||||
# Terminal colors (Tokyo Night palette)
|
|
||||||
term_palette: 15161e;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;a9b1d6
|
|
||||||
term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5
|
|
||||||
|
|
||||||
# Text colors
|
|
||||||
term_foreground: c0caf5
|
|
||||||
term_foreground_bright: c0caf5
|
|
||||||
term_background_bright: 24283b
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
sudo limine-update
|
|
||||||
sudo limine-snapper-sync
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf
|
|
||||||
omarchy-refresh-pacman-mirrorlist
|
|
||||||
@@ -1,7 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ $1 == "edge" ]]; then
|
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist
|
||||||
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
|
|
||||||
else
|
|
||||||
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ $1 == "edge" ]]; then
|
|
||||||
sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/edge/$arch|' /etc/pacman.conf
|
|
||||||
else
|
|
||||||
sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/stable/$arch|' /etc/pacman.conf
|
|
||||||
fi
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ "$EUID" -eq 0 ]; then
|
|
||||||
echo "Error: This script should not be run as root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "This will reinstall all the default Omarchy packages and reset all default configs.\nWarning: All changes to configs will be lost.\n"
|
|
||||||
|
|
||||||
if gum confirm "Are you sure you want to reinstall and lose all config changes?"; then
|
|
||||||
echo "Resetting Omarchy repository"
|
|
||||||
git clone "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
|
|
||||||
rm -rf $OMARCHY_PATH
|
|
||||||
mv ~/.local/share/omarchy-new $OMARCHY_PATH
|
|
||||||
|
|
||||||
echo "Reinstalling missing Omarchy packages"
|
|
||||||
mapfile -t packages < <(grep -v '^#' "$OMARCHY_PATH/install/omarchy-base.packages" | grep -v '^$')
|
|
||||||
sudo pacman -Syu --noconfirm --needed "${packages[@]}"
|
|
||||||
|
|
||||||
echo "Resetting all Omarchy configs"
|
|
||||||
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
|
||||||
cp ~/.local/share/omarchy/default/bashrc ~/.bashrc
|
|
||||||
echo '[[ -f ~/.bashrc ]] && . ~/.bashrc' | tee ~/.bash_profile >/dev/null
|
|
||||||
|
|
||||||
$(bash $OMARCHY_PATH/install/config/theme.sh)
|
|
||||||
$(bash $OMARCHY_PATH/install/config/git.sh)
|
|
||||||
|
|
||||||
omarchy-refresh-limine
|
|
||||||
omarchy-refresh-plymouth
|
|
||||||
omarchy-nvim-setup
|
|
||||||
fi
|
|
||||||
@@ -12,10 +12,10 @@ if [[ $EUID -eq 0 ]]; then
|
|||||||
# Restart services as the script owner
|
# Restart services as the script owner
|
||||||
systemd-run --uid="$SCRIPT_OWNER" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \
|
systemd-run --uid="$SCRIPT_OWNER" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \
|
||||||
bash -c "
|
bash -c "
|
||||||
systemctl --user restart elephant.service
|
setsid uwsm-app -- elephant &
|
||||||
setsid walker --gapplication-service &
|
setsid uwsm-app -- walker --gapplication-service &
|
||||||
"
|
"
|
||||||
else
|
else
|
||||||
systemctl --user restart elephant.service
|
setsid uwsm-app -- elephant &
|
||||||
setsid walker --gapplication-service &
|
setsid uwsm-app -- walker --gapplication-service &
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -51,16 +51,6 @@ EOF
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
add_hyprlock_fingerprint_icon() {
|
|
||||||
print_info "Adding fingerprint icon to hyprlock placeholder text..."
|
|
||||||
sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password <\/span>/' ~/.config/hypr/hyprlock.conf
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_hyprlock_fingerprint_icon() {
|
|
||||||
print_info "Removing fingerprint icon from hyprlock placeholder text..."
|
|
||||||
sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_pam_config() {
|
remove_pam_config() {
|
||||||
# Remove from sudo
|
# Remove from sudo
|
||||||
if grep -q pam_fprintd.so /etc/pam.d/sudo; then
|
if grep -q pam_fprintd.so /etc/pam.d/sudo; then
|
||||||
@@ -81,9 +71,6 @@ if [[ "--remove" == "$1" ]]; then
|
|||||||
# Remove PAM configuration
|
# Remove PAM configuration
|
||||||
remove_pam_config
|
remove_pam_config
|
||||||
|
|
||||||
# Remove fingerprint icon from hyprlock placeholder text
|
|
||||||
remove_hyprlock_fingerprint_icon
|
|
||||||
|
|
||||||
# Uninstall packages
|
# Uninstall packages
|
||||||
print_info "Removing fingerprint packages..."
|
print_info "Removing fingerprint packages..."
|
||||||
sudo pacman -Rns --noconfirm fprintd
|
sudo pacman -Rns --noconfirm fprintd
|
||||||
@@ -103,9 +90,6 @@ else
|
|||||||
# Configure PAM
|
# Configure PAM
|
||||||
setup_pam_config
|
setup_pam_config
|
||||||
|
|
||||||
# Add fingerprint icon to hyprlock placeholder text
|
|
||||||
add_hyprlock_fingerprint_icon
|
|
||||||
|
|
||||||
# Enroll first fingerprint
|
# Enroll first fingerprint
|
||||||
print_success "\nLet's setup your right index finger as the first fingerprint."
|
print_success "\nLet's setup your right index finger as the first fingerprint."
|
||||||
print_info "Keep moving the finger around on sensor until the process completes.\n"
|
print_info "Keep moving the finger around on sensor until the process completes.\n"
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
COMMAND="$1"
|
COMMAND="$1"
|
||||||
OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/omarchy}
|
OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/omarchy}
|
||||||
|
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ if pgrep -x waybar >/dev/null; then
|
|||||||
omarchy-restart-waybar
|
omarchy-restart-waybar
|
||||||
fi
|
fi
|
||||||
omarchy-restart-swayosd
|
omarchy-restart-swayosd
|
||||||
omarchy-restart-terminal
|
|
||||||
hyprctl reload
|
hyprctl reload
|
||||||
pkill -SIGUSR2 btop
|
pkill -SIGUSR2 btop
|
||||||
makoctl reload
|
makoctl reload
|
||||||
|
|
||||||
# Change gnome, browser, vscode, cursor themes
|
# Change gnome, browser, vscode, cursor themes
|
||||||
|
omarchy-theme-set-terminal
|
||||||
omarchy-theme-set-gnome
|
omarchy-theme-set-gnome
|
||||||
omarchy-theme-set-browser
|
omarchy-theme-set-browser
|
||||||
omarchy-theme-set-vscode
|
omarchy-theme-set-vscode
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ if omarchy-cmd-present chromium || omarchy-cmd-present helium-browser || omarchy
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if omarchy-cmd-present helium-browser; then
|
||||||
|
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
||||||
|
helium-browser --no-startup-window --refresh-platform-policy
|
||||||
|
fi
|
||||||
|
|
||||||
if omarchy-cmd-present brave; then
|
if omarchy-cmd-present brave; then
|
||||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
||||||
brave --refresh-platform-policy --no-startup-window
|
brave --refresh-platform-policy --no-startup-window
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# omarchy-theme-set-obsidian: Bootstrap and update Omarchy theme for Obsidian
|
# omarchy-theme-set-obsidian: Bootstrap and update Omarchy theme for Obsidian
|
||||||
#
|
#
|
||||||
# - Ensures registry at ~/.local/state/omarchy/obsidian-vaults
|
# - Ensures registry at ~/.local/state/omarchy/obsidian-vaults
|
||||||
# - Populates by extracting vault paths from ~/.config/obsidian/obsidian.json
|
# - If missing/empty, bootstraps by scanning ~/Documents/*/.obsidian and ~/Dropbox/*/.obsidian
|
||||||
# - For each valid vault:
|
# - For each valid vault:
|
||||||
# - Ensures .obsidian/themes/Omarchy/{manifest.json, theme.css}
|
# - Ensures .obsidian/themes/Omarchy/{manifest.json, theme.css}
|
||||||
# - Updates theme.css (uses current theme’s obsidian.css if present; otherwise generates -- see below)
|
# - Updates theme.css (uses current theme’s obsidian.css if present; otherwise generates -- see below)
|
||||||
@@ -26,18 +26,30 @@
|
|||||||
VAULTS_FILE="$HOME/.local/state/omarchy/obsidian-vaults"
|
VAULTS_FILE="$HOME/.local/state/omarchy/obsidian-vaults"
|
||||||
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
||||||
|
|
||||||
|
# Ensure the vaults registry exists, or bootstrap from known locations
|
||||||
ensure_vaults_file() {
|
ensure_vaults_file() {
|
||||||
mkdir -p "$(dirname "$VAULTS_FILE")"
|
mkdir -p "$(dirname "$VAULTS_FILE")"
|
||||||
|
# If file exists (even empty), do not scan; treat as authoritative
|
||||||
|
if [ -f "$VAULTS_FILE" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
local tmpfile
|
local tmpfile
|
||||||
tmpfile="$(mktemp)"
|
tmpfile="$(mktemp)"
|
||||||
# Extract the Obsidian vault location from config file <base>/<vault>/.obsidian
|
# Scan a couple of common locations for <base>/<vault>/.obsidian
|
||||||
jq -r '.vaults | values[].path' ~/.config/obsidian/obsidian.json 2>/dev/null >>"$tmpfile"
|
for base in "$HOME/Documents" "$HOME/Dropbox"; do
|
||||||
if [ -s "$tmpfile" ]; then
|
[ -d "$base" ] || continue
|
||||||
sort -u "$tmpfile" >"$VAULTS_FILE"
|
for d in "$base"/*/.obsidian; do
|
||||||
else
|
[ -d "$d" ] || continue
|
||||||
: >"$VAULTS_FILE"
|
vault_dir="${d%/.obsidian}"
|
||||||
fi
|
printf "%s\n" "$vault_dir" >>"$tmpfile"
|
||||||
rm "$tmpfile"
|
done
|
||||||
|
done
|
||||||
|
if [ -s "$tmpfile" ]; then
|
||||||
|
sort -u "$tmpfile" >"$VAULTS_FILE"
|
||||||
|
else
|
||||||
|
: >"$VAULTS_FILE"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpfile"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ensure theme directory and minimal manifest exist in a vault
|
# Ensure theme directory and minimal manifest exist in a vault
|
||||||
@@ -87,35 +99,6 @@ calculate_brightness() {
|
|||||||
echo $(((r * 299 + g * 587 + b * 114) / 1000))
|
echo $(((r * 299 + g * 587 + b * 114) / 1000))
|
||||||
}
|
}
|
||||||
|
|
||||||
# Calculate approximate contrast ratio between two colors
|
|
||||||
# Returns ratio scaled by 100 (e.g., 450 = 4.5:1 ratio)
|
|
||||||
# (this is due to bash not supporting decimal math)
|
|
||||||
calculate_contrast_ratio() {
|
|
||||||
local hex1="$1" hex2="$2"
|
|
||||||
local br1=$(calculate_brightness "$hex1") # 0-255 range
|
|
||||||
local br2=$(calculate_brightness "$hex2") # 0-255 range
|
|
||||||
|
|
||||||
# Ensure br1 is the lighter color (higher brightness)
|
|
||||||
if [ $br1 -lt $br2 ]; then
|
|
||||||
local temp=$br1
|
|
||||||
br1=$br2
|
|
||||||
br2=$temp
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Approximate contrast ratio scaled by 100
|
|
||||||
# Add offset to avoid division by zero and approximate WCAG +0.05 behavior
|
|
||||||
echo $(((br1 + 13) * 100 / (br2 + 13)))
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check if two colors meet minimum contrast threshold
|
|
||||||
# Usage: meets_contrast_threshold <ratio> <threshold>
|
|
||||||
# Both ratio and threshold should be scaled by 100 (e.g., 300 = 3:1)
|
|
||||||
meets_contrast_threshold() {
|
|
||||||
local ratio="$1" # Ratio scaled by 100 (from calculate_contrast_ratio)
|
|
||||||
local threshold="$2" # Threshold scaled by 100 (300=3:1, 450=4.5:1, 700=7:1)
|
|
||||||
[ $ratio -ge $threshold ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Calculate color distance (euclidean in RGB space)
|
# Calculate color distance (euclidean in RGB space)
|
||||||
color_distance() {
|
color_distance() {
|
||||||
local hex1="$1"
|
local hex1="$1"
|
||||||
@@ -258,30 +241,38 @@ extract_theme_data() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Sort by distance and get the closest color for code background
|
||||||
|
local -a closest_to_bg
|
||||||
|
readarray -t closest_to_bg < <(printf '%s\n' "${bg_distances[@]}" | sort -n | head -1 | cut -d: -f2)
|
||||||
|
|
||||||
# All background variations use the same as primary background
|
# All background variations use the same as primary background
|
||||||
local bg_primary_alt="$bg_color"
|
local bg_primary_alt="$bg_color"
|
||||||
local bg_secondary="$bg_color"
|
local bg_secondary="$bg_color"
|
||||||
local bg_secondary_alt="$bg_color"
|
local bg_secondary_alt="$bg_color"
|
||||||
|
|
||||||
# Generate code background color that will contrast with foreground text
|
# Code block background uses the closest different color
|
||||||
read -r r g b <<<"$(hex_to_rgb "$bg_color")"
|
local code_bg="${closest_to_bg[0]}"
|
||||||
if [ $bg_brightness -gt 127 ]; then
|
|
||||||
r=$((r - 10))
|
|
||||||
g=$((g - 10))
|
|
||||||
b=$((b - 10))
|
|
||||||
else
|
|
||||||
r=$((r + 15))
|
|
||||||
g=$((g + 15))
|
|
||||||
b=$((b + 15))
|
|
||||||
fi
|
|
||||||
[ $r -lt 0 ] && r=0
|
|
||||||
[ $r -gt 255 ] && r=255
|
|
||||||
[ $g -lt 0 ] && g=0
|
|
||||||
[ $g -gt 255 ] && g=255
|
|
||||||
[ $b -lt 0 ] && b=0
|
|
||||||
[ $b -gt 255 ] && b=255
|
|
||||||
code_bg=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
|
|
||||||
|
|
||||||
|
# If no different color available, create a subtle variant for code blocks
|
||||||
|
if [ -z "$code_bg" ]; then
|
||||||
|
read -r r g b <<<"$(hex_to_rgb "$bg_color")"
|
||||||
|
if [ $bg_brightness -gt 127 ]; then
|
||||||
|
r=$((r - 10))
|
||||||
|
g=$((g - 10))
|
||||||
|
b=$((b - 10))
|
||||||
|
else
|
||||||
|
r=$((r + 15))
|
||||||
|
g=$((g + 15))
|
||||||
|
b=$((b + 15))
|
||||||
|
fi
|
||||||
|
[ $r -lt 0 ] && r=0
|
||||||
|
[ $r -gt 255 ] && r=255
|
||||||
|
[ $g -lt 0 ] && g=0
|
||||||
|
[ $g -gt 255 ] && g=255
|
||||||
|
[ $b -lt 0 ] && b=0
|
||||||
|
[ $b -gt 255 ] && b=255
|
||||||
|
code_bg=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
|
||||||
|
fi
|
||||||
|
|
||||||
# Find closest color to foreground for code block text
|
# Find closest color to foreground for code block text
|
||||||
local code_fg=""
|
local code_fg=""
|
||||||
@@ -366,22 +357,6 @@ extract_theme_data() {
|
|||||||
border_color=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
|
border_color=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set text colors for muted/faint based on contrast
|
|
||||||
local text_muted_color="$border_color"
|
|
||||||
local text_faint_color="$border_color"
|
|
||||||
|
|
||||||
# Validate border color contrast against background
|
|
||||||
|
|
||||||
# Represents a 3:1 WCAG contrast ratio
|
|
||||||
local ideal_contrast_ratio=300
|
|
||||||
|
|
||||||
local border_contrast=$(calculate_contrast_ratio "$border_color" "$bg_color")
|
|
||||||
if ! meets_contrast_threshold "$border_contrast" "$ideal_contrast_ratio"; then
|
|
||||||
# Override text colors for readability, keep border color for visibility
|
|
||||||
text_muted_color="$fg_color"
|
|
||||||
text_faint_color="$fg_color"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get unique colors array (without bg/fg) sorted by frequency
|
# Get unique colors array (without bg/fg) sorted by frequency
|
||||||
local -a unique_colors
|
local -a unique_colors
|
||||||
readarray -t unique_colors < <(echo "$filtered_data" | sort_colors_by_frequency)
|
readarray -t unique_colors < <(echo "$filtered_data" | sort_colors_by_frequency)
|
||||||
@@ -391,7 +366,7 @@ extract_theme_data() {
|
|||||||
readarray -t color_slots < <(fill_color_slots "${unique_colors[@]}" | tr ' ' '\n')
|
readarray -t color_slots < <(fill_color_slots "${unique_colors[@]}" | tr ' ' '\n')
|
||||||
|
|
||||||
# Extract fonts
|
# Extract fonts
|
||||||
local monospace_font="JetBrainsMono Nerd Font"
|
local monospace_font="CaskaydiaMono Nerd Font"
|
||||||
local ui_font="Liberation Sans"
|
local ui_font="Liberation Sans"
|
||||||
|
|
||||||
if [ -f "$CURRENT_THEME_DIR/alacritty.toml" ]; then
|
if [ -f "$CURRENT_THEME_DIR/alacritty.toml" ]; then
|
||||||
@@ -446,8 +421,8 @@ extract_theme_data() {
|
|||||||
--text-mark: ${color_slots[7]};
|
--text-mark: ${color_slots[7]};
|
||||||
--interactive-accent: ${color_slots[8]};
|
--interactive-accent: ${color_slots[8]};
|
||||||
--blockquote-border: ${color_slots[9]};
|
--blockquote-border: ${color_slots[9]};
|
||||||
--text-muted: $text_muted_color; /* Use text-specific color for muted text */
|
--text-muted: $border_color; /* Use border color for muted text */
|
||||||
--text-faint: $text_faint_color; /* Use text-specific color for faint text */
|
--text-faint: $border_color; /* Use border color for faint text */
|
||||||
|
|
||||||
/* Additional mappings */
|
/* Additional mappings */
|
||||||
--text-accent: var(--interactive-accent);
|
--text-accent: var(--interactive-accent);
|
||||||
|
|||||||
@@ -4,10 +4,5 @@ if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
|
|||||||
touch ~/.config/alacritty/alacritty.toml
|
touch ~/.config/alacritty/alacritty.toml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if pgrep -x kitty; then
|
killall -SIGUSR1 kitty
|
||||||
killall -SIGUSR1 kitty
|
killall -SIGUSR2 ghostty
|
||||||
fi
|
|
||||||
|
|
||||||
if pgrep -x ghostty; then
|
|
||||||
killall -SIGUSR2 ghostty
|
|
||||||
fi
|
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
for dir in ~/.config/omarchy/themes/*/; do
|
for dir in ~/.config/omarchy/themes/*/; do
|
||||||
if [[ -d $dir ]] && [[ ! -L "${dir%/}" ]] && [[ -d "$dir/.git" ]]; then
|
[ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull
|
||||||
echo "Updating: $(basename "$dir")"
|
|
||||||
git -C "$dir" pull
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ if [ "$#" -ne 4 ]; then
|
|||||||
APP_NAME=$(gum input --prompt "Name> " --placeholder "My TUI")
|
APP_NAME=$(gum input --prompt "Name> " --placeholder "My TUI")
|
||||||
APP_EXEC=$(gum input --prompt "Launch Command> " --placeholder "lazydocker or bash -c 'dust; read -n 1 -s'")
|
APP_EXEC=$(gum input --prompt "Launch Command> " --placeholder "lazydocker or bash -c 'dust; read -n 1 -s'")
|
||||||
WINDOW_STYLE=$(gum choose --header "Window style" float tile)
|
WINDOW_STYLE=$(gum choose --header "Window style" float tile)
|
||||||
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG or SVG!)")
|
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
|
||||||
else
|
else
|
||||||
APP_NAME="$1"
|
APP_NAME="$1"
|
||||||
APP_EXEC="$2"
|
APP_EXEC="$2"
|
||||||
@@ -43,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=xdg-terminal-exec --app-id=$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
|
||||||
|
|||||||
@@ -2,10 +2,6 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
trap 'echo ""; echo -e "\033[0;31mSomething went wrong during the update!\n\nPlease review the output above carefully, correct the error, and retry the update.\n\nIf you need assistance, get help from the community at https://omarchy.org/discord\033[0m"' ERR
|
omarchy-snapshot create || [ $? -eq 127 ]
|
||||||
|
omarchy-update-git
|
||||||
if omarchy-update-confirm; then
|
omarchy-update-perform
|
||||||
omarchy-snapshot create || [ $? -eq 127 ]
|
|
||||||
omarchy-update-git
|
|
||||||
omarchy-update-perform
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
|
|
||||||
# Ensure Waybar icon offering the available update is removed
|
# Ensure Waybar icon offering the available update is removed
|
||||||
pkill -RTMIN+7 waybar
|
pkill -RTMIN+7 waybar
|
||||||
exit 0
|
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
gum style --border normal --border-foreground 6 --padding "1 2" \
|
|
||||||
"Ready to update Omarchy?" \
|
|
||||||
"" \
|
|
||||||
"• You cannot stop the update once you start!" \
|
|
||||||
"• Make sure you're connected to power or have a full battery"
|
|
||||||
|
|
||||||
if ! gum confirm "Continue with update?"; then
|
|
||||||
echo "Update cancelled"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Ensure we have the omarchy-keyring and it's populated
|
|
||||||
if omarchy-pkg-missing omarchy-keyring || ! sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 &>/dev/null; then
|
|
||||||
sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
|
|
||||||
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
|
|
||||||
|
|
||||||
# This is generally not a good idea, but this is a special case because we're going to be updating
|
|
||||||
# the full set of packages in omarchy-update-system-pkgs right after this (and it needs latest keyring)!
|
|
||||||
sudo pacman -Sy
|
|
||||||
omarchy-pkg-add omarchy-keyring
|
|
||||||
|
|
||||||
sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571
|
|
||||||
fi
|
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
omarchy-update-time
|
|
||||||
omarchy-update-keyring
|
|
||||||
omarchy-update-available-reset
|
omarchy-update-available-reset
|
||||||
omarchy-update-system-pkgs
|
omarchy-update-system-pkgs
|
||||||
omarchy-migrate
|
omarchy-migrate
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
# Used in package emergencies if a bad package has been pushed and we can't revoke.
|
||||||
|
# Requires manually installing the good package using sudo pacman -U <url>
|
||||||
|
ignored_packages=$(omarchy-pkg-ignored)
|
||||||
|
|
||||||
echo -e "\e[32m\nUpdate system packages\e[0m"
|
echo -e "\e[32m\nUpdate system packages\e[0m"
|
||||||
sudo pacman -Syu --noconfirm
|
[[ -n $ignored_packages ]] && echo "sudo pacman -Syu --noconfirm --ignore \"$ignored_packages\""
|
||||||
|
sudo pacman -Syu --noconfirm --ignore "$ignored_packages"
|
||||||
|
|
||||||
# Update AUR packages if any are installed
|
# Update AUR packages if any are installed
|
||||||
if pacman -Qem >/dev/null; then
|
if pacman -Qem >/dev/null; then
|
||||||
if omarchy-pkg-aur-accessible; then
|
if omarchy-pkg-aur-accessible; then
|
||||||
echo -e "\e[32m\nUpdate AUR packages\e[0m"
|
echo -e "\e[32m\nUpdate AUR packages\e[0m"
|
||||||
yay -Sua --noconfirm
|
[[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\""
|
||||||
|
yay -Sua --noconfirm --ignore "$ignored_packages"
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
|
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
|
||||||
@@ -17,7 +21,7 @@ if pacman -Qem >/dev/null; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
orphans=$(pacman -Qtdq || true)
|
orphans=$(pacman -Qtdq)
|
||||||
if [[ -n $orphans ]]; then
|
if [[ -n $orphans ]]; then
|
||||||
echo -e "\e[32m\nRemove orphan system packages\e[0m"
|
echo -e "\e[32m\nRemove orphan system packages\e[0m"
|
||||||
for pkg in $orphans; do
|
for pkg in $orphans; do
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo "Updating time..."
|
|
||||||
sudo systemctl restart systemd-timesyncd
|
|
||||||
@@ -30,7 +30,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then
|
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then
|
||||||
echo "You must select at least one web app to remove."
|
echo "You must provide web app names."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ launch_windows() {
|
|||||||
echo "Starting Windows VM..."
|
echo "Starting Windows VM..."
|
||||||
|
|
||||||
# Send desktop notification
|
# Send desktop notification
|
||||||
notify-send " Starting Windows VM" " This can take 15-30 seconds" -t 15000
|
notify-send "Windows VM" "Starting Windows VM, this may take a moment..."
|
||||||
|
|
||||||
if ! docker-compose -f "$COMPOSE_FILE" up -d 2>&1; then
|
if ! docker-compose -f "$COMPOSE_FILE" up -d 2>&1; then
|
||||||
echo "❌ Failed to start Windows VM!"
|
echo "❌ Failed to start Windows VM!"
|
||||||
@@ -298,7 +298,7 @@ launch_windows() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Give it a moment more to fully initialize
|
# Give it a moment more to fully initialize
|
||||||
sleep 5
|
sleep 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract credentials from compose file
|
# Extract credentials from compose file
|
||||||
@@ -327,7 +327,7 @@ To stop: omarchy-windows-vm stop"
|
|||||||
"$LIFECYCLE"
|
"$LIFECYCLE"
|
||||||
|
|
||||||
# Detect display scale from Hyprland
|
# Detect display scale from Hyprland
|
||||||
HYPR_SCALE=$(hyprctl monitors -j | jq -r '.[] | select (.focused == true) | .scale')
|
HYPR_SCALE=$(hyprctl monitors -j | jq -r '.[0].scale')
|
||||||
SCALE_PERCENT=$(echo "$HYPR_SCALE" | awk '{print int($1 * 100)}')
|
SCALE_PERCENT=$(echo "$HYPR_SCALE" | awk '{print int($1 * 100)}')
|
||||||
|
|
||||||
RDP_SCALE=""
|
RDP_SCALE=""
|
||||||
@@ -339,7 +339,7 @@ To stop: omarchy-windows-vm stop"
|
|||||||
# If scale is less than 130%, don't set any scale (use default 100)
|
# If scale is less than 130%, don't set any scale (use default 100)
|
||||||
|
|
||||||
# Connect with RDP in fullscreen (auto-detects resolution)
|
# Connect with RDP in fullscreen (auto-detects resolution)
|
||||||
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /cert:ignore /title:"Windows VM - Omarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE
|
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 +f -grab-keyboard /cert:ignore /title:"Windows VM - Omarchy" /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE
|
||||||
|
|
||||||
# After RDP closes, stop the container unless --keep-alive was specified
|
# After RDP closes, stop the container unless --keep-alive was specified
|
||||||
if [ "$KEEP_ALIVE" = false ]; then
|
if [ "$KEEP_ALIVE" = false ]; then
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ general.import = [ "~/.config/omarchy/current/theme/alacritty.toml" ]
|
|||||||
TERM = "xterm-256color"
|
TERM = "xterm-256color"
|
||||||
|
|
||||||
[font]
|
[font]
|
||||||
normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
|
normal = { family = "CaskaydiaMono Nerd Font", style = "Regular" }
|
||||||
bold = { family = "JetBrainsMono Nerd Font", style = "Bold" }
|
bold = { family = "CaskaydiaMono Nerd Font", style = "Bold" }
|
||||||
italic = { family = "JetBrainsMono Nerd Font", style = "Italic" }
|
italic = { family = "CaskaydiaMono Nerd Font", style = "Italic" }
|
||||||
size = 9
|
size = 9
|
||||||
|
|
||||||
[window]
|
[window]
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
TriggerKey=
|
|
||||||
PastePrimaryKey=
|
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<string>monospace</string>
|
<string>monospace</string>
|
||||||
</test>
|
</test>
|
||||||
<edit name="family" mode="assign" binding="strong">
|
<edit name="family" mode="assign" binding="strong">
|
||||||
<string>JetBrainsMono Nerd Font</string>
|
<string>CaskaydiaMono Nerd Font</string>
|
||||||
</edit>
|
</edit>
|
||||||
</match>
|
</match>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
config-file = ?"~/.config/omarchy/current/theme/ghostty.conf"
|
config-file = ?"~/.config/omarchy/current/theme/ghostty.conf"
|
||||||
|
|
||||||
# Font
|
# Font
|
||||||
font-family = "JetBrainsMono Nerd Font"
|
font-family = "CaskaydiaMono Nerd Font"
|
||||||
font-style = Regular
|
font-style = Regular
|
||||||
font-size = 9
|
font-size = 9
|
||||||
|
|
||||||
@@ -17,18 +17,11 @@ gtk-toolbar-style = flat
|
|||||||
# Cursor styling
|
# Cursor styling
|
||||||
cursor-style = "block"
|
cursor-style = "block"
|
||||||
cursor-style-blink = false
|
cursor-style-blink = false
|
||||||
|
shell-integration-features = no-cursor
|
||||||
# Cursor styling + SSH session terminfo
|
|
||||||
# (all shell integration options must be passed together)
|
|
||||||
shell-integration-features = no-cursor,ssh-env
|
|
||||||
|
|
||||||
# Keyboard bindings
|
# Keyboard bindings
|
||||||
keybind = shift+insert=paste_from_clipboard
|
keybind = shift+insert=paste_from_clipboard
|
||||||
keybind = control+insert=copy_to_clipboard
|
keybind = control+insert=copy_to_clipboard
|
||||||
keybind = super+control+shift+alt+arrow_down=resize_split:down,100
|
|
||||||
keybind = super+control+shift+alt+arrow_up=resize_split:up,100
|
|
||||||
keybind = super+control+shift+alt+arrow_left=resize_split:left,100
|
|
||||||
keybind = super+control+shift+alt+arrow_right=resize_split:right,100
|
|
||||||
|
|
||||||
# Slowdown mouse scrolling
|
# SSH session terminfo
|
||||||
mouse-scroll-multiplier = 0.95
|
shell-integration-features = ssh-env
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
# See https://git-scm.com/docs/git-config
|
|
||||||
|
|
||||||
[alias]
|
|
||||||
co = checkout
|
|
||||||
br = branch
|
|
||||||
ci = commit
|
|
||||||
st = status
|
|
||||||
[init]
|
|
||||||
defaultBranch = master
|
|
||||||
[pull]
|
|
||||||
rebase = true # Rebase (instead of merge) on pull
|
|
||||||
[push]
|
|
||||||
autoSetupRemote = true # Automatically set upstream branch on push
|
|
||||||
[diff]
|
|
||||||
algorithm = histogram # Clearer diffs on moved/edited lines
|
|
||||||
colorMoved = plain # Highlight moved blocks in diffs
|
|
||||||
mnemonicPrefix = true # More intuitive refs in diff output
|
|
||||||
[commit]
|
|
||||||
verbose = true # Include diff comment in commit message template
|
|
||||||
[column]
|
|
||||||
ui = auto # Output in columns when possible
|
|
||||||
[branch]
|
|
||||||
sort = -committerdate # Sort branches by most recent commit first
|
|
||||||
[tag]
|
|
||||||
sort = -version:refname # Sort version numbers as you would expect
|
|
||||||
[rerere]
|
|
||||||
enabled = true # Record and reuse conflict resolutions
|
|
||||||
autoupdate = true # Apply stored conflict resolutions automatically
|
|
||||||
@@ -1,18 +1,20 @@
|
|||||||
# Application bindings
|
# Application bindings
|
||||||
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"
|
$terminal = uwsm-app -- $TERMINAL
|
||||||
|
$browser = omarchy-launch-browser
|
||||||
|
|
||||||
|
bindd = SUPER, RETURN, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
||||||
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
|
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
|
||||||
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
|
bindd = SUPER SHIFT, B, Browser, exec, $browser
|
||||||
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
|
bindd = SUPER SHIFT ALT, B, Browser (private), exec, $browser --private
|
||||||
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
|
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
|
||||||
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
|
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
|
||||||
bindd = SUPER SHIFT, T, Activity, exec, omarchy-launch-tui btop
|
bindd = SUPER SHIFT, T, Activity, exec, $terminal -e btop
|
||||||
bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker
|
bindd = SUPER SHIFT, D, Docker, exec, $terminal -e lazydocker
|
||||||
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
|
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus signal "uwsm-app -- signal-desktop"
|
||||||
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
|
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus "^obsidian$" "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
|
||||||
bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
|
|
||||||
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
|
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
|
||||||
|
|
||||||
# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
|
# If your web app url contains #, type it as ## to prevent hyperland treat it as comments
|
||||||
bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
||||||
bindd = SUPER SHIFT ALT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
|
bindd = SUPER SHIFT ALT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
|
||||||
bindd = SUPER SHIFT, 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/"
|
||||||
@@ -20,7 +22,6 @@ bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
|
|||||||
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
|
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
|
||||||
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
|
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
|
||||||
bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
|
bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
|
||||||
bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
|
|
||||||
bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/"
|
bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/"
|
||||||
bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
|
bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
|
||||||
|
|
||||||
|
|||||||
2
config/hypr/envs.conf
Normal file
2
config/hypr/envs.conf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Extra env variables
|
||||||
|
# env = MY_GLOBAL_ENV,setting
|
||||||
@@ -16,6 +16,7 @@ source = ~/.config/omarchy/current/theme/hyprland.conf
|
|||||||
source = ~/.config/hypr/monitors.conf
|
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/looknfeel.conf
|
source = ~/.config/hypr/looknfeel.conf
|
||||||
source = ~/.config/hypr/autostart.conf
|
source = ~/.config/hypr/autostart.conf
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ input-field {
|
|||||||
outer_color = $outer_color
|
outer_color = $outer_color
|
||||||
outline_thickness = 4
|
outline_thickness = 4
|
||||||
|
|
||||||
font_family = JetBrainsMono Nerd Font
|
font_family = CaskaydiaMono Nerd Font Propo
|
||||||
font_color = $font_color
|
font_color = $font_color
|
||||||
|
|
||||||
placeholder_text = Enter Password
|
placeholder_text = Enter Password
|
||||||
check_color = $check_color
|
check_color = $check_color
|
||||||
fail_text = <i>$FAIL ($ATTEMPTS)</i>
|
fail_text = <i>$FAIL ($ATTEMPTS)</i>
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ profile {
|
|||||||
identity = true
|
identity = true
|
||||||
}
|
}
|
||||||
|
|
||||||
# To enable auto switch to nightlight, set in your .config/hypr/autostart:
|
# Enable auto switch to nightlight:
|
||||||
# exec-once = uwsm app -- hyprsunset
|
|
||||||
# and use the following:
|
|
||||||
# profile {
|
# profile {
|
||||||
# time = 20:00
|
# time = 20:00
|
||||||
# temperature = 4000
|
# temperature = 4000
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -2,10 +2,9 @@
|
|||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
general {
|
general {
|
||||||
# No gaps between windows or borders
|
# No gaps between windows
|
||||||
# gaps_in = 0
|
# gaps_in = 0
|
||||||
# gaps_out = 0
|
# gaps_out = 0
|
||||||
# border_size = 0
|
|
||||||
|
|
||||||
# Use master layout instead of dwindle
|
# Use master layout instead of dwindle
|
||||||
# layout = master
|
# layout = master
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ monitor=,preferred,auto,auto
|
|||||||
|
|
||||||
# Good compromise for 27" or 32" 4K monitors (but fractional!)
|
# Good compromise for 27" or 32" 4K monitors (but fractional!)
|
||||||
# env = GDK_SCALE,1.75
|
# env = GDK_SCALE,1.75
|
||||||
# monitor=,preferred,auto,1.6
|
# monitor=,preferred,auto,1.666667
|
||||||
|
|
||||||
# Straight 1x setup for low-resolution displays like 1080p or 1440p
|
# Straight 1x setup for low-resolution displays like 1080p or 1440p
|
||||||
# env = GDK_SCALE,1
|
# env = GDK_SCALE,1
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
screencopy {
|
|
||||||
allow_token_by_default = true
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[binds]
|
|
||||||
|
|
||||||
# Print the current image file
|
|
||||||
<Ctrl+p> = exec lp "$imv_current_file"
|
|
||||||
|
|
||||||
# Delete the current image and quit the viewer
|
|
||||||
<Ctrl+x> = exec rm "$imv_current_file"; quit
|
|
||||||
|
|
||||||
# Delete the current image and move to the next one
|
|
||||||
<Ctrl+Shift+X> = exec rm "$imv_current_file"; close
|
|
||||||
|
|
||||||
# Rotate the currently open image by 90 degrees
|
|
||||||
<Ctrl+r> = exec mogrify -rotate 90 "$imv_current_file"
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
include ~/.config/omarchy/current/theme/kitty.conf
|
include ~/.config/omarchy/current/theme/kitty.conf
|
||||||
|
|
||||||
# Font
|
# Font
|
||||||
font_family JetBrainsMono Nerd Font
|
font_family CaskaydiaMono Nerd Font
|
||||||
bold_italic_font auto
|
bold_italic_font auto
|
||||||
font_size 9.0
|
font_size 9.0
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
label {
|
label {
|
||||||
font-family: 'JetBrainsMono Nerd Font';
|
font-family: 'CaskaydiaMono Nerd Font';
|
||||||
font-size: 11pt;
|
font-size: 11pt;
|
||||||
|
|
||||||
color: @label;
|
color: @label;
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
# Changes require a restart to take effect.
|
# Changes require a restart to take effect.
|
||||||
|
|
||||||
# Install other terminals via Install > Terminal
|
export TERMINAL=alacritty
|
||||||
export TERMINAL=xdg-terminal-exec
|
|
||||||
|
|
||||||
# Use code for VSCode
|
|
||||||
export EDITOR=nvim
|
export EDITOR=nvim
|
||||||
|
|
||||||
# Use a custom directory for screenshots (remember to make the directory!)
|
|
||||||
# export OMARCHY_SCREENSHOT_DIR="$HOME/Pictures/Screenshots"
|
|
||||||
|
|
||||||
# Use a custom directory for screenrecordings (remember to make the directory!)
|
|
||||||
# export OMARCHY_SCREENRECORD_DIR="$HOME/Videos/Screencasts"
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Ensure Omarchy bins are in the path
|
# Ensure Omarchy bins are in the path
|
||||||
export OMARCHY_PATH=$HOME/.local/share/omarchy
|
export OMARCHY_PATH=$HOME/.local/share/omarchy
|
||||||
export PATH=$OMARCHY_PATH/bin:$PATH
|
export PATH=$OMARCHY_PATH/bin/:$PATH
|
||||||
|
|
||||||
# Set default terminal and editor
|
# Set default terminal and editor
|
||||||
source ~/.config/uwsm/default
|
source ~/.config/uwsm/default
|
||||||
|
|||||||
@@ -1,21 +1,41 @@
|
|||||||
force_keyboard_focus = true # forces keyboard forcus to stay in Walker
|
force_keyboard_focus = true # forces keyboard forcus to stay in Walker
|
||||||
|
close_when_open = true # close walker when invoking while already opened
|
||||||
selection_wrap = true # wrap list if at bottom or top
|
selection_wrap = true # wrap list if at bottom or top
|
||||||
|
click_to_close = true # closes walker if clicking outside of the main content area
|
||||||
|
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
|
||||||
|
exact_search_prefix = "'" # disable fuzzy searching
|
||||||
theme = "omarchy-default" # theme to use
|
theme = "omarchy-default" # theme to use
|
||||||
|
disable_mouse = false # disable mouse (on input and list only)
|
||||||
additional_theme_location = "~/.local/share/omarchy/default/walker/themes/"
|
additional_theme_location = "~/.local/share/omarchy/default/walker/themes/"
|
||||||
hide_action_hints = true # globally hide the action hints
|
|
||||||
|
[shell]
|
||||||
|
anchor_top = true
|
||||||
|
anchor_bottom = true
|
||||||
|
anchor_left = true
|
||||||
|
anchor_right = true
|
||||||
|
|
||||||
[placeholders]
|
[placeholders]
|
||||||
"default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
|
"default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
|
||||||
|
|
||||||
[keybinds]
|
[keybinds]
|
||||||
|
close = ["Escape"]
|
||||||
|
next = ["Down"]
|
||||||
|
previous = ["Up"]
|
||||||
|
toggle_exact = ["ctrl e"]
|
||||||
|
resume_last_query = ["ctrl r"]
|
||||||
quick_activate = []
|
quick_activate = []
|
||||||
|
|
||||||
[providers]
|
[providers]
|
||||||
max_results = 256 # 256 should be enough for everyone
|
|
||||||
default = [
|
default = [
|
||||||
"desktopapplications",
|
"desktopapplications",
|
||||||
|
"menus",
|
||||||
"websearch",
|
"websearch",
|
||||||
] # providers to be queried by default
|
] # providers to be queried by default
|
||||||
|
empty = ["desktopapplications"] # providers to be queried when query is empty
|
||||||
|
max_results = 50 # global max results
|
||||||
|
|
||||||
|
[providers.sets] # define your own defaults/empty sets of providers
|
||||||
|
[providers.max_results_provider] # define max results per provider in here
|
||||||
|
|
||||||
[[providers.prefixes]]
|
[[providers.prefixes]]
|
||||||
prefix = "/"
|
prefix = "/"
|
||||||
@@ -40,3 +60,86 @@ provider = "websearch"
|
|||||||
[[providers.prefixes]]
|
[[providers.prefixes]]
|
||||||
prefix = "$"
|
prefix = "$"
|
||||||
provider = "clipboard"
|
provider = "clipboard"
|
||||||
|
|
||||||
|
[providers.actions] # This will be MERGED/OVEWRITTEN with what the user specifies
|
||||||
|
dmenu = [{ action = "select", default = true, bind = "Return" }]
|
||||||
|
|
||||||
|
providerlist = [
|
||||||
|
{ action = "activate", default = true, bind = "Return", after = "ClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
bluetooth = [
|
||||||
|
{ action = "find", global = true, bind = "ctrl f", after = "AsyncClearReload" },
|
||||||
|
{ action = "trust", bind = "ctrl t", after = "AsyncReload" },
|
||||||
|
{ action = "untrust", bind = "ctrl t", after = "AsyncReload" },
|
||||||
|
{ action = "pair", bind = "Return", after = "AsyncReload" },
|
||||||
|
{ action = "remove", bind = "ctrl d", after = "AsyncReload" },
|
||||||
|
{ action = "connect", bind = "Return", after = "AsyncReload" },
|
||||||
|
{ action = "disconnect", bind = "Return", after = "AsyncReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
archlinuxpkgs = [
|
||||||
|
{ action = "install", bind = "Return", default = true },
|
||||||
|
{ action = "remove", bind = "Return" },
|
||||||
|
]
|
||||||
|
|
||||||
|
calc = [
|
||||||
|
{ action = "copy", default = true, bind = "Return" },
|
||||||
|
{ action = "delete", bind = "ctrl d", after = "AsyncReload" },
|
||||||
|
{ action = "save", bind = "ctrl s", after = "AsyncClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
websearch = [
|
||||||
|
{ action = "search", default = true, bind = "Return" },
|
||||||
|
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
desktopapplications = [
|
||||||
|
{ action = "start", default = true, bind = "Return" },
|
||||||
|
{ action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" },
|
||||||
|
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
|
||||||
|
{ action = "pin", bind = "ctrl p", after = "AsyncReload" },
|
||||||
|
{ action = "unpin", bind = "ctrl p", after = "AsyncReload" },
|
||||||
|
{ action = "pinup", bind = "ctrl n", after = "AsyncReload" },
|
||||||
|
{ action = "pindown", bind = "ctrl m", after = "AsyncReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
files = [
|
||||||
|
{ action = "open", default = true, bind = "Return" },
|
||||||
|
{ action = "opendir", label = "open dir", bind = "ctrl Return" },
|
||||||
|
{ action = "copypath", label = "copy path", bind = "ctrl shift c" },
|
||||||
|
{ action = "copyfile", label = "copy file", bind = "ctrl c" },
|
||||||
|
]
|
||||||
|
|
||||||
|
todo = [
|
||||||
|
{ action = "save", default = true, bind = "Return", after = "ClearReload" },
|
||||||
|
{ action = "delete", bind = "ctrl d", after = "ClearReload" },
|
||||||
|
{ action = "active", bind = "Return", after = "ClearReload" },
|
||||||
|
{ action = "inactive", bind = "Return", after = "ClearReload" },
|
||||||
|
{ action = "done", bind = "ctrl f", after = "ClearReload" },
|
||||||
|
{ action = "clear", bind = "ctrl x", after = "ClearReload", global = true },
|
||||||
|
]
|
||||||
|
|
||||||
|
runner = [
|
||||||
|
{ action = "run", default = true, bind = "Return" },
|
||||||
|
{ action = "runterminal", label = "run in terminal", bind = "shift Return" },
|
||||||
|
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
symbols = [
|
||||||
|
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
|
||||||
|
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
unicode = [
|
||||||
|
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
|
||||||
|
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
clipboard = [
|
||||||
|
{ action = "copy", default = true, bind = "Return" },
|
||||||
|
{ action = "remove", bind = "ctrl d", after = "ClearReload" },
|
||||||
|
{ action = "remove_all", global = true, label = "clear", bind = "ctrl shift d", after = "ClearReload" },
|
||||||
|
{ action = "toggle_images", global = true, label = "toggle images", bind = "ctrl i", after = "ClearReload" },
|
||||||
|
{ action = "edit", bind = "ctrl o" },
|
||||||
|
]
|
||||||
|
|||||||
@@ -28,7 +28,6 @@
|
|||||||
"7": "7",
|
"7": "7",
|
||||||
"8": "8",
|
"8": "8",
|
||||||
"9": "9",
|
"9": "9",
|
||||||
"10": "0",
|
|
||||||
"active": ""
|
"active": ""
|
||||||
},
|
},
|
||||||
"persistent-workspaces": {
|
"persistent-workspaces": {
|
||||||
@@ -42,7 +41,6 @@
|
|||||||
"custom/omarchy": {
|
"custom/omarchy": {
|
||||||
"format": "<span font='omarchy'>\ue900</span>",
|
"format": "<span font='omarchy'>\ue900</span>",
|
||||||
"on-click": "omarchy-menu",
|
"on-click": "omarchy-menu",
|
||||||
"on-click-right": "xdg-terminal-exec",
|
|
||||||
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
|
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
|
||||||
},
|
},
|
||||||
"custom/update": {
|
"custom/update": {
|
||||||
@@ -51,13 +49,13 @@
|
|||||||
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
|
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
|
||||||
"tooltip-format": "Omarchy update available",
|
"tooltip-format": "Omarchy update available",
|
||||||
"signal": 7,
|
"signal": 7,
|
||||||
"interval": 21600
|
"interval": 3600
|
||||||
},
|
},
|
||||||
|
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"interval": 5,
|
"interval": 5,
|
||||||
"format": "",
|
"format": "",
|
||||||
"on-click": "omarchy-launch-or-focus-tui btop"
|
"on-click": "$TERMINAL -e btop"
|
||||||
},
|
},
|
||||||
"clock": {
|
"clock": {
|
||||||
"format": "{:L%A %H:%M}",
|
"format": "{:L%A %H:%M}",
|
||||||
@@ -100,14 +98,13 @@
|
|||||||
"bluetooth": {
|
"bluetooth": {
|
||||||
"format": "",
|
"format": "",
|
||||||
"format-disabled": "",
|
"format-disabled": "",
|
||||||
"format-connected": "",
|
"format-connected": "",
|
||||||
"format-no-controller": "",
|
|
||||||
"tooltip-format": "Devices connected: {num_connections}",
|
"tooltip-format": "Devices connected: {num_connections}",
|
||||||
"on-click": "omarchy-launch-bluetooth"
|
"on-click": "blueberry"
|
||||||
},
|
},
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"format": "{icon}",
|
"format": "{icon}",
|
||||||
"on-click": "omarchy-launch-or-focus-tui wiremix",
|
"on-click": "$TERMINAL --class=Wiremix -e wiremix",
|
||||||
"on-click-right": "pamixer -t",
|
"on-click-right": "pamixer -t",
|
||||||
"tooltip-format": "Playing at {volume}%",
|
"tooltip-format": "Playing at {volume}%",
|
||||||
"scroll-step": 5,
|
"scroll-step": 5,
|
||||||
@@ -125,7 +122,7 @@
|
|||||||
"modules": ["custom/expand-icon", "tray"]
|
"modules": ["custom/expand-icon", "tray"]
|
||||||
},
|
},
|
||||||
"custom/expand-icon": {
|
"custom/expand-icon": {
|
||||||
"format": "",
|
"format": "",
|
||||||
"tooltip": false
|
"tooltip": false
|
||||||
},
|
},
|
||||||
"custom/screenrecording-indicator": {
|
"custom/screenrecording-indicator": {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
font-family: 'JetBrainsMono Nerd Font';
|
font-family: 'CaskaydiaMono Nerd Font';
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#custom-expand-icon {
|
#custom-expand-icon {
|
||||||
margin-right: 18px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
tooltip {
|
tooltip {
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# Terminal emulator preference order for xdg-terminal-exec
|
|
||||||
# The first found and valid terminal will be used
|
|
||||||
com.mitchellh.ghostty.desktop
|
|
||||||
@@ -1,26 +1,19 @@
|
|||||||
# File system
|
# File system
|
||||||
if command -v eza &> /dev/null; then
|
alias ls='eza -lh --group-directories-first --icons=auto'
|
||||||
alias ls='eza -lh --group-directories-first --icons=auto'
|
alias lsa='ls -a'
|
||||||
alias lsa='ls -a'
|
alias lt='eza --tree --level=2 --long --icons --git'
|
||||||
alias lt='eza --tree --level=2 --long --icons --git'
|
alias lta='lt -a'
|
||||||
alias lta='lt -a'
|
|
||||||
fi
|
|
||||||
|
|
||||||
alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
|
alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
|
||||||
|
alias cd="zd"
|
||||||
if command -v zoxide &> /dev/null; then
|
zd() {
|
||||||
alias cd="zd"
|
if [ $# -eq 0 ]; then
|
||||||
zd() {
|
builtin cd ~ && return
|
||||||
if [ $# -eq 0 ]; then
|
elif [ -d "$1" ]; then
|
||||||
builtin cd ~ && return
|
builtin cd "$1"
|
||||||
elif [ -d "$1" ]; then
|
else
|
||||||
builtin cd "$1"
|
z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found"
|
||||||
else
|
fi
|
||||||
z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found"
|
}
|
||||||
fi
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
open() {
|
open() {
|
||||||
xdg-open "$@" >/dev/null 2>&1 &
|
xdg-open "$@" >/dev/null 2>&1 &
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ iso2sd() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Format an entire drive for a single partition using exFAT
|
# Format an entire drive for a single partition using ext4
|
||||||
format-drive() {
|
format-drive() {
|
||||||
if [ $# -ne 2 ]; then
|
if [ $# -ne 2 ]; then
|
||||||
echo "Usage: format-drive <device> <name>"
|
echo "Usage: format-drive <device> <name>"
|
||||||
@@ -25,20 +25,14 @@ format-drive() {
|
|||||||
else
|
else
|
||||||
echo "WARNING: This will completely erase all data on $1 and label it '$2'."
|
echo "WARNING: This will completely erase all data on $1 and label it '$2'."
|
||||||
read -rp "Are you sure you want to continue? (y/N): " confirm
|
read -rp "Are you sure you want to continue? (y/N): " confirm
|
||||||
|
|
||||||
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||||||
sudo wipefs -a "$1"
|
sudo wipefs -a "$1"
|
||||||
sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress
|
sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress
|
||||||
sudo parted -s "$1" mklabel gpt
|
sudo parted -s "$1" mklabel gpt
|
||||||
sudo parted -s "$1" mkpart primary 1MiB 100%
|
sudo parted -s "$1" mkpart primary ext4 1MiB 100%
|
||||||
|
sudo mkfs.ext4 -L "$2" "$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")"
|
||||||
partition="$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")"
|
sudo chmod -R 777 "/run/media/$USER/$2"
|
||||||
sudo partprobe "$1" || true
|
echo "Drive $1 formatted and labeled '$2'."
|
||||||
sudo udevadm settle || true
|
|
||||||
|
|
||||||
sudo mkfs.exfat -n "$2" "$partition"
|
|
||||||
|
|
||||||
echo "Drive $1 formatted as exFAT and labeled '$2'."
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -55,28 +49,19 @@ transcode-video-4K() {
|
|||||||
|
|
||||||
# Transcode any image to JPG image that's great for shrinking wallpapers
|
# Transcode any image to JPG image that's great for shrinking wallpapers
|
||||||
img2jpg() {
|
img2jpg() {
|
||||||
img="$1"
|
magick $1 -quality 95 -strip ${1%.*}.jpg
|
||||||
shift
|
|
||||||
|
|
||||||
magick "$img" $@ -quality 95 -strip ${img%.*}-optimized.jpg
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Transcode any image to JPG image that's great for sharing online without being too big
|
# Transcode any image to JPG image that's great for sharing online without being too big
|
||||||
img2jpg-small() {
|
img2jpg-small() {
|
||||||
img="$1"
|
magick $1 -resize 1080x\> -quality 95 -strip ${1%.*}.jpg
|
||||||
shift
|
|
||||||
|
|
||||||
magick "$img" $@ -resize 1080x\> -quality 95 -strip ${img%.*}-optimized.jpg
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Transcode any image to compressed-but-lossless PNG
|
# Transcode any image to compressed-but-lossless PNG
|
||||||
img2png() {
|
img2png() {
|
||||||
img="$1"
|
magick "$1" -strip -define png:compression-filter=5 \
|
||||||
shift
|
|
||||||
|
|
||||||
magick "$img" $@ -strip -define png:compression-filter=5 \
|
|
||||||
-define png:compression-level=9 \
|
-define png:compression-level=9 \
|
||||||
-define png:compression-strategy=1 \
|
-define png:compression-strategy=1 \
|
||||||
-define png:exclude-chunk=all \
|
-define png:exclude-chunk=all \
|
||||||
"${img%.*}-optimized.png"
|
"${1%.*}.png"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,6 @@ if command -v zoxide &> /dev/null; then
|
|||||||
eval "$(zoxide init bash)"
|
eval "$(zoxide init bash)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if command -v try &> /dev/null; then
|
|
||||||
eval "$(try init ~/Work/tries)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if command -v fzf &> /dev/null; then
|
if command -v fzf &> /dev/null; then
|
||||||
if [[ -f /usr/share/fzf/completion.bash ]]; then
|
if [[ -f /usr/share/fzf/completion.bash ]]; then
|
||||||
source /usr/share/fzf/completion.bash
|
source /usr/share/fzf/completion.bash
|
||||||
|
|||||||
7
default/bash/prompt
Normal file
7
default/bash/prompt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Technicolor dreams
|
||||||
|
force_color_prompt=yes
|
||||||
|
color_prompt=yes
|
||||||
|
|
||||||
|
# Simple prompt with path in the window/pane title and caret for typing line
|
||||||
|
PS1=$'\uf0a9 '
|
||||||
|
PS1="\[\e]0;\w\a\]$PS1"
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
source ~/.local/share/omarchy/default/bash/shell
|
source ~/.local/share/omarchy/default/bash/shell
|
||||||
source ~/.local/share/omarchy/default/bash/aliases
|
source ~/.local/share/omarchy/default/bash/aliases
|
||||||
source ~/.local/share/omarchy/default/bash/functions
|
source ~/.local/share/omarchy/default/bash/functions
|
||||||
|
source ~/.local/share/omarchy/default/bash/prompt
|
||||||
source ~/.local/share/omarchy/default/bash/init
|
source ~/.local/share/omarchy/default/bash/init
|
||||||
source ~/.local/share/omarchy/default/bash/envs
|
source ~/.local/share/omarchy/default/bash/envs
|
||||||
[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc
|
[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc
|
||||||
|
|||||||
@@ -9,5 +9,6 @@ if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_comple
|
|||||||
source /usr/share/bash-completion/bash_completion
|
source /usr/share/bash-completion/bash_completion
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure command hashing is off for mise
|
# Set complete path
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
set +h
|
set +h
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
# If not running interactively, don't do anything (leave this at the top of this file)
|
|
||||||
[[ $- != *i* ]] && return
|
|
||||||
|
|
||||||
# All the default Omarchy aliases and functions
|
# All the default Omarchy aliases and functions
|
||||||
# (don't mess with these directly, just overwrite them here!)
|
# (don't mess with these directly, just overwrite them here!)
|
||||||
source ~/.local/share/omarchy/default/bash/rc
|
source ~/.local/share/omarchy/default/bash/rc
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
--
|
|
||||||
-- Dynamic Omarchy Theme Menu for Elephant/Walker
|
|
||||||
--
|
|
||||||
Name = "omarchythemes"
|
|
||||||
NamePretty = "Omarchy Themes"
|
|
||||||
|
|
||||||
-- The main function elephant will call
|
|
||||||
function GetEntries()
|
|
||||||
local entries = {}
|
|
||||||
local theme_dir = os.getenv("HOME") .. "/.config/omarchy/themes"
|
|
||||||
|
|
||||||
-- First, get all theme directories
|
|
||||||
local find_dirs_cmd = "find -L '" .. theme_dir .. "' -mindepth 1 -maxdepth 1 -type d 2>/dev/null"
|
|
||||||
|
|
||||||
local handle = io.popen(find_dirs_cmd)
|
|
||||||
if not handle then
|
|
||||||
return entries
|
|
||||||
end
|
|
||||||
|
|
||||||
for theme_path in handle:lines() do
|
|
||||||
local theme_name = theme_path:match(".*/(.+)$")
|
|
||||||
|
|
||||||
if theme_name then
|
|
||||||
-- find preview image
|
|
||||||
local find_preview_cmd = "find -L '"
|
|
||||||
.. theme_path
|
|
||||||
.. "' -maxdepth 1 -type f \\( -name 'preview.png' -o -name 'preview.jpg' \\) 2>/dev/null | head -n 1"
|
|
||||||
local preview_handle = io.popen(find_preview_cmd)
|
|
||||||
local preview_path = nil
|
|
||||||
|
|
||||||
if preview_handle then
|
|
||||||
preview_path = preview_handle:read("*l")
|
|
||||||
preview_handle:close()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- If no preview found, use first image from backgrounds folder
|
|
||||||
if not preview_path or preview_path == "" then
|
|
||||||
local bg_cmd = "find -L '"
|
|
||||||
.. theme_path
|
|
||||||
.. "/backgrounds' -maxdepth 1 -type f \\( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' \\) 2>/dev/null | head -n 1"
|
|
||||||
local bg_handle = io.popen(bg_cmd)
|
|
||||||
if bg_handle then
|
|
||||||
preview_path = bg_handle:read("*l")
|
|
||||||
bg_handle:close()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if preview_path and preview_path ~= "" then
|
|
||||||
local display_name = theme_name:gsub("_", " "):gsub("%-", " ")
|
|
||||||
display_name = display_name:gsub("(%a)([%w_']*)", function(first, rest)
|
|
||||||
return first:upper() .. rest:lower()
|
|
||||||
end)
|
|
||||||
display_name = display_name .. " "
|
|
||||||
|
|
||||||
table.insert(entries, {
|
|
||||||
Text = display_name,
|
|
||||||
Preview = preview_path,
|
|
||||||
PreviewType = "file",
|
|
||||||
Actions = {
|
|
||||||
activate = "omarchy-theme-set " .. theme_name,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
handle:close()
|
|
||||||
return entries
|
|
||||||
end
|
|
||||||
|
|
||||||
@@ -1,2 +1 @@
|
|||||||
windowrule = noscreenshare, class:^(1[p|P]assword)$
|
windowrule = noscreenshare, class:^(1Password)$
|
||||||
windowrule = tag +floating-window, class:^(1[p|P]assword)$
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Browser types
|
# Browser types
|
||||||
windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)
|
windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable|helium)
|
||||||
windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf)
|
windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf)
|
||||||
|
|
||||||
# Force chromium-based browsers into a tile to deal with --app bug
|
# Force chromium-based browsers into a tile to deal with --app bug
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
# Focus floating DaVinci Resolve dialog windows
|
|
||||||
windowrule = stayfocused, class:.*[Rr]esolve.*, floating:1
|
|
||||||
@@ -1,22 +1,6 @@
|
|||||||
# Fix splash screen showing in weird places and prevent annoying focus takeovers
|
# Fixing popup size issue
|
||||||
windowrule = tag +jetbrains-splash, class:^(jetbrains-.*)$, title:^(splash)$, floating:1
|
windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1
|
||||||
windowrule = center, tag:jetbrains-splash
|
|
||||||
windowrule = nofocus, tag:jetbrains-splash
|
|
||||||
windowrule = noborder, tag:jetbrains-splash
|
|
||||||
|
|
||||||
# Center popups/find windows
|
# Fix tab dragging (always have a single space character as their title)
|
||||||
windowrule = tag +jetbrains, class:^(jetbrains-.*), title:^()$, floating:1
|
windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$
|
||||||
windowrule = center, tag:jetbrains
|
windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$
|
||||||
|
|
||||||
# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.)
|
|
||||||
windowrule = stayfocused, tag:jetbrains
|
|
||||||
windowrule = noborder, tag:jetbrains
|
|
||||||
|
|
||||||
# For some reason tag:jetbrains does not work for size rule
|
|
||||||
windowrule = size >50% >50%, class:^(jetbrains-.*), title:^()$, floating:1
|
|
||||||
|
|
||||||
# Disable window flicker when autocomplete or tooltips appear
|
|
||||||
windowrule = noinitialfocus, class:^(jetbrains-.*)$, title:^(win.*)$, floating:1
|
|
||||||
|
|
||||||
# Disable mouse focus
|
|
||||||
windowrule = nofollowmouse, class:^(jetbrains-.*)$
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Picture-in-picture overlays
|
# Picture-in-picture overlays
|
||||||
windowrule = tag +pip, title:(Picture.?in.?[Pp]icture)
|
windowrule = tag +pip, title:(Picture.{0,1}in.{0,1}[Pp]icture)
|
||||||
windowrule = float, tag:pip
|
windowrule = float, tag:pip
|
||||||
windowrule = pin, tag:pip
|
windowrule = pin, tag:pip
|
||||||
windowrule = size 600 338, tag:pip
|
windowrule = size 600 338, tag:pip
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user