mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-06 12:39:35 +02:00
Compare commits
124
Commits
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Returns the battery full capacity in Wh (rounded to whole number).
|
||||
# Used by omarchy-battery-status for displaying battery capacity.
|
||||
|
||||
battery_info=$(upower -i $(upower -e | grep BAT))
|
||||
|
||||
echo "$battery_info" | awk '/energy-full:/ {
|
||||
printf "%d", $2
|
||||
exit
|
||||
}'
|
||||
@@ -9,6 +9,7 @@ BATTERY_STATE=$(upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{pr
|
||||
|
||||
send_notification() {
|
||||
notify-send -u critical " Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
|
||||
omarchy-hook battery-low "$1"
|
||||
}
|
||||
|
||||
if [[ -n $BATTERY_LEVEL && $BATTERY_LEVEL =~ ^[0-9]+$ ]]; then
|
||||
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Returns the battery time remaining (to empty or full) in a compact format.
|
||||
|
||||
battery_info=$(upower -i $(upower -e | grep BAT))
|
||||
|
||||
echo "$battery_info" | awk '/time to (empty|full)/ {
|
||||
value = $4
|
||||
unit = $5
|
||||
if (unit == "minutes") {
|
||||
hours = int(value / 60)
|
||||
minutes = int(value % 60)
|
||||
} else {
|
||||
hours = int(value)
|
||||
minutes = int((value - hours) * 60)
|
||||
}
|
||||
if (hours > 0 && minutes > 0) {
|
||||
printf "%dh %dm", hours, minutes
|
||||
} else if (hours > 0) {
|
||||
printf "%dh", hours
|
||||
} else {
|
||||
printf "%dm", minutes
|
||||
}
|
||||
exit
|
||||
}'
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Returns a formatted battery status string with percentage and power draw/charge.
|
||||
# Used by the battery notification hotkey (Ctrl + Shift + Super + B).
|
||||
|
||||
battery_info=$(upower -i $(upower -e | grep BAT))
|
||||
|
||||
percentage=$(echo "$battery_info" | awk '/percentage/ {
|
||||
print int($2)
|
||||
exit
|
||||
}')
|
||||
|
||||
power_rate=$(echo "$battery_info" | awk '/energy-rate/ {
|
||||
rounded = sprintf("%.1f", $2)
|
||||
sub(/\.0$/, "", rounded)
|
||||
print rounded
|
||||
exit
|
||||
}')
|
||||
|
||||
state=$(echo "$battery_info" | awk '/state/ { print $2; exit }')
|
||||
time_remaining=$(omarchy-battery-remaining-time)
|
||||
capacity=$(omarchy-battery-capacity)
|
||||
|
||||
if [[ $state == "charging" ]]; then
|
||||
echo " Battery ${percentage}% · ${time_remaining} to full · ${power_rate}W / ${capacity}Wh"
|
||||
else
|
||||
echo " Battery ${percentage}% · ${time_remaining} left · ${power_rate}W / ${capacity}Wh"
|
||||
fi
|
||||
@@ -63,7 +63,7 @@ start_webcam_overlay() {
|
||||
done
|
||||
|
||||
ffplay -f v4l2 $video_size_arg -framerate 30 "$WEBCAM_DEVICE" \
|
||||
-vf "scale=${target_width}:-1" \
|
||||
-vf "crop=iw/2:ih,scale=${target_width}:-1" \
|
||||
-window_title "WebcamOverlay" \
|
||||
-noborder \
|
||||
-fflags nobuffer -flags low_delay \
|
||||
@@ -135,7 +135,17 @@ stop_screenrecording() {
|
||||
notify-send "Screen recording error" "Recording process had to be force-killed. Video may be corrupted." -u critical -t 5000
|
||||
else
|
||||
trim_first_frame
|
||||
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
|
||||
local filename=$(cat "$RECORDING_FILE" 2>/dev/null)
|
||||
local preview="${filename%.mp4}-preview.png"
|
||||
|
||||
# Generate a preview thumbnail from the first frame
|
||||
ffmpeg -y -i "$filename" -ss 00:00:00.1 -vframes 1 -q:v 2 "$preview" -loglevel quiet 2>/dev/null
|
||||
|
||||
(
|
||||
ACTION=$(notify-send "Screen recording saved" "Open with Super + Alt + , (or click this)" -t 10000 -i "${preview:-$filename}" -A "default=open")
|
||||
[[ $ACTION == "default" ]] && mpv "$filename"
|
||||
rm -f "$preview"
|
||||
) &
|
||||
fi
|
||||
|
||||
rm -f "$RECORDING_FILE"
|
||||
|
||||
+24
-21
@@ -65,27 +65,30 @@ get_rectangles() {
|
||||
|
||||
# Select based on mode
|
||||
case "$MODE" in
|
||||
region)
|
||||
hyprpicker -r -z >/dev/null 2>&1 & PID=$!
|
||||
sleep .1
|
||||
SELECTION=$(slurp 2>/dev/null)
|
||||
kill $PID 2>/dev/null
|
||||
;;
|
||||
windows)
|
||||
hyprpicker -r -z >/dev/null 2>&1 & PID=$!
|
||||
sleep .1
|
||||
SELECTION=$(get_rectangles | slurp -r 2>/dev/null)
|
||||
kill $PID 2>/dev/null
|
||||
;;
|
||||
fullscreen)
|
||||
SELECTION=$(hyprctl monitors -j | jq -r "${JQ_MONITOR_GEO} .[] | select(.focused == true) | format_geo")
|
||||
;;
|
||||
smart|*)
|
||||
RECTS=$(get_rectangles)
|
||||
hyprpicker -r -z >/dev/null 2>&1 & PID=$!
|
||||
sleep .1
|
||||
SELECTION=$(echo "$RECTS" | slurp 2>/dev/null)
|
||||
kill $PID 2>/dev/null
|
||||
region)
|
||||
hyprpicker -r -z >/dev/null 2>&1 &
|
||||
PID=$!
|
||||
sleep .1
|
||||
SELECTION=$(slurp 2>/dev/null)
|
||||
kill $PID 2>/dev/null
|
||||
;;
|
||||
windows)
|
||||
hyprpicker -r -z >/dev/null 2>&1 &
|
||||
PID=$!
|
||||
sleep .1
|
||||
SELECTION=$(get_rectangles | slurp -r 2>/dev/null)
|
||||
kill $PID 2>/dev/null
|
||||
;;
|
||||
fullscreen)
|
||||
SELECTION=$(hyprctl monitors -j | jq -r "${JQ_MONITOR_GEO} .[] | select(.focused == true) | format_geo")
|
||||
;;
|
||||
smart | *)
|
||||
RECTS=$(get_rectangles)
|
||||
hyprpicker -r -z >/dev/null 2>&1 &
|
||||
PID=$!
|
||||
sleep .1
|
||||
SELECTION=$(echo "$RECTS" | slurp 2>/dev/null)
|
||||
kill $PID 2>/dev/null
|
||||
|
||||
# If the selection area is L * W < 20, we'll assume you were trying to select whichever
|
||||
# window or output it was inside of to prevent accidental 2px snapshots
|
||||
|
||||
@@ -73,9 +73,10 @@ if [[ ! -f $RESUME_DROP_IN ]]; then
|
||||
echo "Adding resume kernel parameters"
|
||||
sudo swapon -p 0 "$SWAP_FILE" 2>/dev/null
|
||||
RESUME_DEVICE=$(findmnt -no SOURCE -T "$SWAP_FILE" | sed 's/\[.*\]//')
|
||||
RESUME_OFFSET=$(btrfs inspect-internal map-swapfile -r "$SWAP_FILE")
|
||||
RESUME_OFFSET=$(sudo btrfs inspect-internal map-swapfile -r "$SWAP_FILE")
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
echo "KERNEL_CMDLINE[default]+=\"resume=$RESUME_DEVICE resume_offset=$RESUME_OFFSET\"" | sudo tee "$RESUME_DROP_IN" >/dev/null
|
||||
echo "KERNEL_CMDLINE[default]+=\" resume=$RESUME_DEVICE resume_offset=$RESUME_OFFSET\"" | sudo tee "$RESUME_DROP_IN" >/dev/null
|
||||
sudo tee -a /etc/default/limine < "$RESUME_DROP_IN" >/dev/null
|
||||
fi
|
||||
|
||||
# Use ACPI alarm for RTC wakeup on s2idle systems (needed for suspend-then-hibernate)
|
||||
@@ -84,7 +85,8 @@ if grep -q "\[s2idle\]" /sys/power/mem_sleep 2>/dev/null; then
|
||||
if [[ ! -f $LIMINE_DROP_IN ]]; then
|
||||
echo "Enabling ACPI RTC alarm for s2idle suspend"
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
echo 'KERNEL_CMDLINE[default]+="rtc_cmos.use_acpi_alarm=1"' | sudo tee "$LIMINE_DROP_IN" >/dev/null
|
||||
echo 'KERNEL_CMDLINE[default]+=" rtc_cmos.use_acpi_alarm=1"' | sudo tee "$LIMINE_DROP_IN" >/dev/null
|
||||
sudo tee -a /etc/default/limine < "$LIMINE_DROP_IN" >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Detect whether the computer has an Intel CPU.
|
||||
|
||||
[[ $(grep -m1 "vendor_id" /proc/cpuinfo 2>/dev/null | cut -d: -f2 | tr -d ' ') == "GenuineIntel" ]]
|
||||
@@ -4,6 +4,9 @@
|
||||
MONITOR_INFO=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true)')
|
||||
ACTIVE_MONITOR=$(echo "$MONITOR_INFO" | jq -r '.name')
|
||||
CURRENT_SCALE=$(echo "$MONITOR_INFO" | jq -r '.scale')
|
||||
WIDTH=$(echo "$MONITOR_INFO" | jq -r '.width')
|
||||
HEIGHT=$(echo "$MONITOR_INFO" | jq -r '.height')
|
||||
REFRESH_RATE=$(echo "$MONITOR_INFO" | jq -r '.refreshRate')
|
||||
|
||||
# Cycle through scales: 1 → 1.6 → 2 → 3 → 1
|
||||
CURRENT_INT=$(awk -v s="$CURRENT_SCALE" 'BEGIN { printf "%.0f", s * 10 }')
|
||||
@@ -16,6 +19,6 @@ case "$CURRENT_INT" in
|
||||
esac
|
||||
|
||||
hyprctl keyword misc:disable_scale_notification true
|
||||
hyprctl keyword monitor "$ACTIVE_MONITOR,preferred,auto,$NEW_SCALE"
|
||||
hyprctl keyword monitor "$ACTIVE_MONITOR,${WIDTH}x${HEIGHT}@${REFRESH_RATE},auto,$NEW_SCALE"
|
||||
hyprctl keyword misc:disable_scale_notification false
|
||||
notify-send " Display scaling set to ${NEW_SCALE}x"
|
||||
|
||||
@@ -50,9 +50,9 @@ case "$1" in
|
||||
ruby)
|
||||
echo -e "Installing Ruby on Rails...\n"
|
||||
omarchy-pkg-add libyaml
|
||||
mise use --global ruby@latest
|
||||
mise settings add idiomatic_version_file_enable_tools ruby
|
||||
mise settings add ruby.compile false
|
||||
mise settings add idiomatic_version_file_enable_tools ruby
|
||||
mise use --global ruby@latest
|
||||
echo "gem: --no-document" >~/.gemrc
|
||||
mise x ruby -- gem install rails --no-document
|
||||
echo -e "\nYou can now run: rails new myproject"
|
||||
|
||||
@@ -14,4 +14,4 @@ sudo usermod -aG nordvpn "$USER"
|
||||
echo -e "\nNordVPN installed! After reboot, run 'nordvpn login' to authenticate."
|
||||
|
||||
echo
|
||||
gum confirm "Reboot now to make NordVPN usable?" && sudo reboot now
|
||||
gum confirm "Reboot now to make NordVPN usable?" && omarchy-system-reboot
|
||||
|
||||
+14
-8
@@ -19,6 +19,13 @@ back_to() {
|
||||
fi
|
||||
}
|
||||
|
||||
toggle_existing_menu() {
|
||||
if pgrep -f "walker.*--dmenu" >/dev/null; then
|
||||
walker --close >/dev/null 2>&1
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
menu() {
|
||||
local prompt="$1"
|
||||
local options="$2"
|
||||
@@ -214,6 +221,7 @@ show_font_menu() {
|
||||
show_setup_menu() {
|
||||
local options=" Audio\n Wifi\n Bluetooth\n Power Profile\n System Sleep\n Monitors"
|
||||
[[ -f ~/.config/hypr/bindings.conf ]] && options="$options\n Keybindings"
|
||||
options="$options\n Key Remapping"
|
||||
[[ -f ~/.config/hypr/input.conf ]] && options="$options\n Input"
|
||||
options="$options\n DNS\n Security\n Config"
|
||||
|
||||
@@ -226,6 +234,7 @@ show_setup_menu() {
|
||||
*Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;;
|
||||
*Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;;
|
||||
*Input*) open_in_editor ~/.config/hypr/input.conf ;;
|
||||
*Key\ Remapping*) omarchy-setup-makima && open_in_editor "$HOME/.config/makima/AT Translated Set 2 keyboard.toml" && omarchy-restart-makima ;;
|
||||
*DNS*) present_terminal omarchy-setup-dns ;;
|
||||
*Security*) show_setup_security_menu ;;
|
||||
*Config*) show_setup_config_menu ;;
|
||||
@@ -308,7 +317,7 @@ show_install_menu() {
|
||||
}
|
||||
|
||||
show_install_service_menu() {
|
||||
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN\n Bitwarden\n Chromium Account") in
|
||||
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN [AUR]\n Bitwarden\n Chromium Account") in
|
||||
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
||||
*Tailscale*) present_terminal omarchy-install-tailscale ;;
|
||||
*NordVPN*) present_terminal omarchy-install-nordvpn ;;
|
||||
@@ -346,14 +355,9 @@ show_install_ai_menu() {
|
||||
echo ollama
|
||||
)
|
||||
|
||||
case $(menu "Install" " Dictation\n Claude Code\n Codex\n Gemini CLI\n Copilot CLI\n Cursor CLI\n LM Studio\n Ollama\n Crush") in
|
||||
case $(menu "Install" " Dictation\n LM Studio\n Ollama\n Crush") in
|
||||
*Dictation*) present_terminal omarchy-voxtype-install ;;
|
||||
*Claude*) install "Claude Code" "claude-code" ;;
|
||||
*Codex*) install "Codex" "openai-codex" ;;
|
||||
*Gemini*) install "Gemini CLI" "gemini-cli" ;;
|
||||
*Copilot*) install "Copilot CLI" "github-copilot-cli" ;;
|
||||
*Cursor*) install "Cursor CLI" "cursor-cli" ;;
|
||||
*Studio*) install "LM Studio" "lmstudio" ;;
|
||||
*Studio*) install "LM Studio" "lmstudio-bin" ;;
|
||||
*Ollama*) install "Ollama" $ollama_pkg ;;
|
||||
*Crush*) install "Crush" "crush-bin" ;;
|
||||
*) show_install_menu ;;
|
||||
@@ -619,6 +623,8 @@ go_to_menu() {
|
||||
USER_EXTENSIONS="$HOME/.config/omarchy/extensions/menu.sh"
|
||||
[[ -f $USER_EXTENSIONS ]] && source "$USER_EXTENSIONS"
|
||||
|
||||
toggle_existing_menu
|
||||
|
||||
if [[ -n $1 ]]; then
|
||||
BACK_TO_EXIT=true
|
||||
go_to_menu "$1"
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install an npx wrapper for a given npm package.
|
||||
# Usage: omarchy-npx-install <package> [command-name]
|
||||
#
|
||||
# If command-name is omitted, it defaults to the package name.
|
||||
# Example: omarchy-npx-install opencode-ai opencode
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: omarchy-npx-install <package> [command-name]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
package=$1
|
||||
command=${2:-$1}
|
||||
|
||||
mkdir -p "$HOME/.local/bin"
|
||||
|
||||
cat > "$HOME/.local/bin/$command" <<EOF
|
||||
#!/bin/bash
|
||||
exec npx --yes $package "\$@"
|
||||
EOF
|
||||
|
||||
chmod +x "$HOME/.local/bin/$command"
|
||||
@@ -20,7 +20,8 @@ pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
|
||||
|
||||
if [[ -n $pkg_names ]]; then
|
||||
# Add aur/ prefix to each package name and convert to space-separated for yay
|
||||
sudo -v
|
||||
source omarchy-sudo-keepalive
|
||||
|
||||
echo "$pkg_names" | sed 's/^/aur\//' | tr '\n' ' ' | xargs yay -S --noconfirm
|
||||
sudo updatedb
|
||||
omarchy-show-done
|
||||
|
||||
@@ -17,7 +17,9 @@ fzf_args=(
|
||||
pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}")
|
||||
|
||||
if [[ -n $pkg_names ]]; then
|
||||
# Convert newline-separated selections to space-separated for yay
|
||||
source omarchy-sudo-keepalive
|
||||
|
||||
# Convert newline-separated selections to space-separated for pacman
|
||||
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -S --noconfirm
|
||||
omarchy-show-done
|
||||
fi
|
||||
|
||||
@@ -3,6 +3,6 @@ set -e
|
||||
|
||||
# Reinstall the Omarchy configuration directory from the git source.
|
||||
|
||||
git clone "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
|
||||
git clone --depth=1 "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
|
||||
mv $OMARCHY_PATH ~/.local/share/omarchy-old
|
||||
mv ~/.local/share/omarchy-new $OMARCHY_PATH
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Restart makima - key remapping service for remapping Copilot key to Omarchy Menu
|
||||
|
||||
sudo systemctl restart makima
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Setup makima - key remapping service for remapping Copilot key to Omarchy Menu
|
||||
|
||||
CONFIG_FILE="$HOME/.config/makima/AT Translated Set 2 keyboard.toml"
|
||||
|
||||
if [[ ! -f $CONFIG_FILE ]]; then
|
||||
omarchy-pkg-add makima-bin
|
||||
|
||||
mkdir -p "$HOME/.config/makima"
|
||||
cp "$OMARCHY_PATH/default/makima/AT Translated Set 2 keyboard.toml" "$CONFIG_FILE"
|
||||
|
||||
sudo mkdir -p /etc/systemd/system/makima.service.d
|
||||
sudo tee /etc/systemd/system/makima.service.d/override.conf >/dev/null <<EOF
|
||||
[Service]
|
||||
User=$USER
|
||||
Environment="MAKIMA_CONFIG=/home/$USER/.config/makima"
|
||||
EOF
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now makima 2>/dev/null || true
|
||||
fi
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Prompt for sudo once and keep the credential alive in the background.
|
||||
# Source this script so the trap applies to the calling shell:
|
||||
# source omarchy-sudo-keepalive
|
||||
|
||||
sudo -v
|
||||
while true; do sudo -n true; sleep 60; done 2>/dev/null &
|
||||
SUDO_KEEPALIVE_PID=$!
|
||||
trap "kill $SUDO_KEEPALIVE_PID 2>/dev/null" EXIT
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Toggle passwordless sudo for the current user.
|
||||
# First run: enables passwordless sudo for 15 minutes (after confirmation).
|
||||
# Second run: disables it early.
|
||||
|
||||
NOPASSWD_FILE="/etc/sudoers.d/99-omarchy-nopasswd-${USER}"
|
||||
TIMER_NAME="omarchy-nopasswd-expire-${USER}"
|
||||
|
||||
# Safety: if the file exists but the timer doesn't (e.g. after reboot), clean up
|
||||
if sudo test -f "$NOPASSWD_FILE" && ! systemctl is-active "${TIMER_NAME}.timer" &>/dev/null; then
|
||||
sudo rm "$NOPASSWD_FILE"
|
||||
fi
|
||||
|
||||
# Check for the file directly — sudo -n can stay cached or be granted by other rules
|
||||
if sudo test -f "$NOPASSWD_FILE"; then
|
||||
sudo rm "$NOPASSWD_FILE"
|
||||
sudo systemctl stop "${TIMER_NAME}.timer" 2>/dev/null
|
||||
echo "Passwordless sudo has been DISABLED. Sudo will require a password again."
|
||||
else
|
||||
echo ""
|
||||
echo "⚠️ WARNING: This will allow ANY process running as your user to"
|
||||
echo "execute ANY command as root WITHOUT a password for 15 minutes."
|
||||
echo ""
|
||||
echo "This is useful for AI agents that need to run sudo commands,"
|
||||
echo "but it significantly weakens the security of your system."
|
||||
echo "Anyone or anything with access to your user account gets full root."
|
||||
echo ""
|
||||
echo "Passwordless sudo will automatically disable after 15 minutes."
|
||||
echo "Run this command again to disable it early."
|
||||
echo ""
|
||||
|
||||
if gum confirm "Enable passwordless sudo for 15 minutes? This is a significant security risk!"; then
|
||||
echo "${USER} ALL=(ALL) NOPASSWD: ALL" | sudo tee "$NOPASSWD_FILE" > /dev/null
|
||||
sudo chmod 440 "$NOPASSWD_FILE"
|
||||
sudo systemd-run --on-active=15m --timer-property=AccuracySec=1s --unit="$TIMER_NAME" \
|
||||
rm "$NOPASSWD_FILE"
|
||||
echo "Passwordless sudo has been ENABLED. It will automatically disable in 15 minutes."
|
||||
echo "Note: if you restart before then, run omarchy-sudo-passwordless-toggle again to disable it."
|
||||
else
|
||||
echo "Aborted. No changes made."
|
||||
fi
|
||||
fi
|
||||
+1
-1
@@ -5,7 +5,7 @@ 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
|
||||
|
||||
if [[ $1 == "-y" ]] || omarchy-update-confirm; then
|
||||
omarchy-snapshot create || (( $? == 127 ))
|
||||
omarchy-snapshot create || (($? == 127))
|
||||
omarchy-update-git
|
||||
omarchy-update-perform
|
||||
fi
|
||||
|
||||
@@ -4,5 +4,7 @@ set -e
|
||||
|
||||
echo -e "\e[32mUpdate Omarchy\e[0m"
|
||||
|
||||
omarchy-update-time
|
||||
|
||||
git -C $OMARCHY_PATH pull --autostash
|
||||
git -C $OMARCHY_PATH --no-pager diff --check || git -C $OMARCHY_PATH reset --merge
|
||||
|
||||
@@ -3,14 +3,13 @@
|
||||
set -e
|
||||
|
||||
# Ensure screensaver/sleep doesn't set in during updates
|
||||
hyprctl dispatch tagwindow +noidle &> /dev/null || true
|
||||
hyprctl dispatch tagwindow +noidle &>/dev/null || true
|
||||
|
||||
# Capture update logs (CLICOLOR_FORCE keeps gum styled when stdout is piped through tee)
|
||||
export CLICOLOR_FORCE=1
|
||||
exec > >(tee "/tmp/omarchy-update.log") 2>&1
|
||||
|
||||
# Perform all update steps
|
||||
omarchy-update-time
|
||||
omarchy-update-keyring
|
||||
omarchy-update-available-reset
|
||||
omarchy-update-system-pkgs
|
||||
@@ -24,4 +23,4 @@ omarchy-update-analyze-logs
|
||||
omarchy-update-restart
|
||||
|
||||
# Re-enable screensaver/sleep after updates
|
||||
hyprctl dispatch tagwindow -- -noidle &> /dev/null || true
|
||||
hyprctl dispatch tagwindow -- -noidle &>/dev/null || true
|
||||
|
||||
@@ -20,5 +20,6 @@ decorations = "None"
|
||||
[keyboard]
|
||||
bindings = [
|
||||
{ key = "Insert", mods = "Shift", action = "Paste" },
|
||||
{ key = "Insert", mods = "Control", action = "Copy" }
|
||||
{ key = "Insert", mods = "Control", action = "Copy" },
|
||||
{ key = "Return", mods = "Shift", chars = "\u001B\r" }
|
||||
]
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Application bindings
|
||||
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"
|
||||
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" tmux new
|
||||
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" bash -c "tmux attach || tmux new -s Work"
|
||||
bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser
|
||||
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
|
||||
bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"
|
||||
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
|
||||
|
||||
@@ -18,7 +18,7 @@ input {
|
||||
|
||||
# Increase sensitivity for mouse/trackpad (default: 0)
|
||||
# sensitivity = 0.35
|
||||
|
||||
|
||||
# Turn off mouse acceleration (default: false)
|
||||
# force_no_accel = true
|
||||
|
||||
@@ -47,3 +47,7 @@ windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2
|
||||
# Enable touchpad gestures for changing workspaces
|
||||
# See https://wiki.hyprland.org/Configuring/Gestures/
|
||||
# gesture = 3, horizontal, workspace
|
||||
|
||||
# Enable touchpad gestures for moving focus (helpful on scrolling layout)
|
||||
# gesture = 3, left, dispatcher, movefocus, l
|
||||
# gesture = 3, right, dispatcher, movefocus, r
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# relative paths are resolved relative to the location of the config file
|
||||
stylesheets: ["../omarchy/current/theme/hyprland-preview-share-picker.css"]
|
||||
# default page selected when the picker is opened
|
||||
default_page: windows
|
||||
default_page: outputs
|
||||
|
||||
window:
|
||||
# height of the application window
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This hook is called with the current battery percentage when the low battery
|
||||
# notification is sent. To put it into use, remove .sample from the name.
|
||||
|
||||
SOUND_FILE="/usr/share/sounds/freedesktop/stereo/dialog-warning.oga"
|
||||
|
||||
if omarchy-cmd-present mpv && [[ -f $SOUND_FILE ]]; then
|
||||
mpv --no-video "$SOUND_FILE" >/dev/null 2>&1
|
||||
fi
|
||||
@@ -4,7 +4,7 @@ set -g prefix2 C-b
|
||||
bind C-Space send-prefix
|
||||
|
||||
# Reload config
|
||||
bind q source-file ~/.config/tmux/tmux.conf
|
||||
bind q source-file ~/.config/tmux/tmux.conf \; display "Configuration reloaded"
|
||||
|
||||
# Vi mode for copy
|
||||
setw -g mode-keys vi
|
||||
@@ -43,6 +43,8 @@ bind -n M-9 select-window -t 9
|
||||
|
||||
bind -n M-Left select-window -t -1
|
||||
bind -n M-Right select-window -t +1
|
||||
bind -n M-S-Left swap-window -t -1 \; select-window -t -1
|
||||
bind -n M-S-Right swap-window -t +1 \; select-window -t +1
|
||||
|
||||
# Session controls
|
||||
bind R command-prompt -I "#S" "rename-session -- '%%'"
|
||||
@@ -75,11 +77,13 @@ set -g status-interval 5
|
||||
set -g status-left-length 30
|
||||
set -g status-right-length 50
|
||||
set -g window-status-separator ""
|
||||
set -gw automatic-rename on
|
||||
set -gw automatic-rename-format '#{b:pane_current_path}'
|
||||
|
||||
# Theme
|
||||
set -g status-style "bg=default,fg=default"
|
||||
set -g status-left "#[fg=black,bg=blue,bold] #S #[bg=default] "
|
||||
set -g status-right "#[fg=blue]#{?client_prefix,PREFIX ,}#[fg=brightblack]#h "
|
||||
set -g status-right "#[fg=blue]#{?pane_in_mode,COPY ,}#{?client_prefix,PREFIX ,}#{?window_zoomed_flag,ZOOM ,}#[fg=brightblack]#h "
|
||||
set -g window-status-format "#[fg=brightblack] #I:#W "
|
||||
set -g window-status-current-format "#[fg=blue,bold] #I:#W "
|
||||
set -g pane-border-style "fg=brightblack"
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
|
||||
# Ensure Omarchy bins are in the path
|
||||
export OMARCHY_PATH=$HOME/.local/share/omarchy
|
||||
export PATH=$OMARCHY_PATH/bin:$PATH
|
||||
export PATH=$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin
|
||||
|
||||
# Set default terminal and editor
|
||||
source ~/.config/uwsm/default
|
||||
|
||||
# Activate mise if present on the system
|
||||
omarchy-cmd-present mise && eval "$(mise activate bash)"
|
||||
omarchy-cmd-present mise && eval "$(mise activate bash --shims)"
|
||||
|
||||
+17
-6
@@ -6,18 +6,29 @@ if command -v eza &> /dev/null; then
|
||||
alias lta='lt -a'
|
||||
fi
|
||||
|
||||
alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
|
||||
if [[ "$TERM" == "xterm-kitty" ]]; then
|
||||
alias ff="fzf --preview 'case \$(file --mime-type -b {}) in image/*) kitty icat --clear --transfer-mode=memory --stdin=no --place=\${FZF_PREVIEW_COLUMNS}x\${FZF_PREVIEW_LINES}@0x0 {} ;; *) bat --style=numbers --color=always {} ;; esac'"
|
||||
else
|
||||
alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
|
||||
fi
|
||||
alias eff='$EDITOR "$(ff)"'
|
||||
sff() { if [ $# -eq 0 ]; then echo "Usage: sff <destination> (e.g. sff host:/tmp/)"; return 1; fi; local file; file=$(find . -type f -printf '%T@\t%p\n' | sort -rn | cut -f2- | ff) && [ -n "$file" ] && scp "$file" "$1"; }
|
||||
|
||||
if command -v zoxide &> /dev/null; then
|
||||
alias cd="zd"
|
||||
zd() {
|
||||
if [ $# -eq 0 ]; then
|
||||
builtin cd ~ && return
|
||||
elif [ -d "$1" ]; then
|
||||
builtin cd "$1"
|
||||
if (( $# == 0 )); then
|
||||
builtin cd ~ || return
|
||||
elif [[ -d $1 ]]; then
|
||||
builtin cd "$1" || return
|
||||
else
|
||||
z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found"
|
||||
if ! z "$@"; then
|
||||
echo "Error: Directory not found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
printf "\U000F17A9 "
|
||||
pwd
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Create a new worktree and branch from within current git directory.
|
||||
ga() {
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: ga [branch name]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local branch="$1"
|
||||
local base="$(basename "$PWD")"
|
||||
local path="../${base}--${branch}"
|
||||
|
||||
git worktree add -b "$branch" "$path"
|
||||
mise trust "$path"
|
||||
cd "$path"
|
||||
}
|
||||
|
||||
# Remove worktree and branch from within active worktree directory.
|
||||
gd() {
|
||||
if gum confirm "Remove worktree and branch?"; then
|
||||
local cwd base branch root worktree
|
||||
|
||||
cwd="$(pwd)"
|
||||
worktree="$(basename "$cwd")"
|
||||
|
||||
# split on first `--`
|
||||
root="${worktree%%--*}"
|
||||
branch="${worktree#*--}"
|
||||
|
||||
# Protect against accidentally nuking a non-worktree directory
|
||||
if [[ "$root" != "$worktree" ]]; then
|
||||
cd "../$root"
|
||||
git worktree remove "$cwd" --force || return 1
|
||||
git branch -D "$branch"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ if command -v zoxide &> /dev/null; then
|
||||
fi
|
||||
|
||||
if command -v try &> /dev/null; then
|
||||
eval "$(SHELL=/bin/bash try init ~/Work/tries)"
|
||||
eval "$(SHELL=/bin/bash command try init ~/Work/tries)"
|
||||
fi
|
||||
|
||||
if command -v fzf &> /dev/null; then
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
--
|
||||
Name = "omarchythemes"
|
||||
NamePretty = "Omarchy Themes"
|
||||
HideFromProviderlist = true
|
||||
|
||||
-- Check if file exists using Lua (no subprocess)
|
||||
local function file_exists(path)
|
||||
@@ -93,4 +94,3 @@ function GetEntries()
|
||||
|
||||
return entries
|
||||
end
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/steam.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/geforce.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/moonlight.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/system.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/telegram.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/terminals.conf
|
||||
|
||||
@@ -14,7 +14,7 @@ windowrule {
|
||||
windowrule {
|
||||
name = jetbrains-popup
|
||||
match:class = ^(jetbrains-.*)
|
||||
match:title = ^()$
|
||||
match:title = ^(| )$
|
||||
match:float = 1
|
||||
tag = +jetbrains
|
||||
center = on
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Float LocalSend and fzf file picker
|
||||
windowrule = float on, match:class (Share|localsend)
|
||||
windowrule = center on, match:class (Share|localsend)
|
||||
windowrule = size 1100 700, match:class localsend
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
windowrule {
|
||||
name = moonlight
|
||||
match:class = com.moonlight_stream.Moonlight
|
||||
fullscreen = 1
|
||||
idle_inhibit = fullscreen
|
||||
}
|
||||
@@ -43,7 +43,7 @@ bindd = SUPER CTRL, S, Share, exec, omarchy-menu share
|
||||
|
||||
# Waybar-less information
|
||||
bindd = SUPER CTRL ALT, T, Show time, exec, notify-send " $(date +"%A %H:%M — %d %B W%V %Y")"
|
||||
bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send " Battery is at $(omarchy-battery-remaining)%"
|
||||
bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send "$(omarchy-battery-status)"
|
||||
|
||||
# Control panels
|
||||
bindd = SUPER CTRL, A, Audio controls, exec, omarchy-launch-audio
|
||||
|
||||
@@ -103,6 +103,7 @@ animations {
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 0, 0, ease
|
||||
animation = specialWorkspace, 1, 4, easeOutQuint, slidevert
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Run omarchy-restart-makima after any changes
|
||||
|
||||
[remap]
|
||||
KEY_LEFTMETA-KEY_LEFTSHIFT-KEY_F23 = ["KEY_LEFTMETA", "KEY_LEFTALT", "KEY_SPACE"]
|
||||
|
||||
[settings]
|
||||
GRAB_DEVICE = "true"
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Lazy-unmount gvfsd-fuse filesystems before suspend/hibernate to prevent the
|
||||
# kernel's process freeze from timing out. FUSE daemons (like gvfsd-fuse from
|
||||
# Nautilus) can block in uninterruptible sleep during freeze, causing suspend
|
||||
# to silently fail. After wake, restart gvfs so the FUSE mount is restored.
|
||||
|
||||
if [[ $1 == "pre" ]]; then
|
||||
while IFS=' ' read -r _ mountpoint fstype _; do
|
||||
if [[ $fstype == fuse.gvfsd-fuse ]]; then
|
||||
mountpoint=$(printf '%b' "$mountpoint")
|
||||
fusermount3 -uz "$mountpoint" 2>/dev/null || fusermount -uz "$mountpoint" 2>/dev/null || true
|
||||
fi
|
||||
done < /proc/mounts
|
||||
fi
|
||||
|
||||
if [[ $1 == "post" ]]; then
|
||||
# Run in background — user.slice is still frozen at this point, so a
|
||||
# synchronous restart would block the thaw for up to 90 seconds.
|
||||
(
|
||||
sleep 5
|
||||
for uid_dir in /run/user/*; do
|
||||
uid=$(basename "$uid_dir")
|
||||
if [[ -S $uid_dir/bus ]]; then
|
||||
sudo -u "#$uid" env \
|
||||
DBUS_SESSION_BUS_ADDRESS="unix:path=$uid_dir/bus" \
|
||||
XDG_RUNTIME_DIR="$uid_dir" \
|
||||
systemctl --user restart gvfs-daemon.service 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
) &
|
||||
disown
|
||||
fi
|
||||
@@ -18,12 +18,14 @@ run_logged $OMARCHY_INSTALL/config/remove-fcitx5-autostart.sh
|
||||
run_logged $OMARCHY_INSTALL/config/localdb.sh
|
||||
run_logged $OMARCHY_INSTALL/config/walker-elephant.sh
|
||||
run_logged $OMARCHY_INSTALL/config/fast-shutdown.sh
|
||||
run_logged $OMARCHY_INSTALL/config/unmount-fuse.sh
|
||||
run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
|
||||
run_logged $OMARCHY_INSTALL/config/input-group.sh
|
||||
run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh
|
||||
run_logged $OMARCHY_INSTALL/config/kernel-modules-hook.sh
|
||||
run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.sh
|
||||
run_logged $OMARCHY_INSTALL/config/wifi-powersave-rules.sh
|
||||
run_logged $OMARCHY_INSTALL/config/plocate-ac-only.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/network.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
|
||||
@@ -32,7 +34,10 @@ run_logged $OMARCHY_INSTALL/config/hardware/printer.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel-thermald.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/vulkan.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-intel-panther-lake-display.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-bcm43xx.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh
|
||||
@@ -42,5 +47,8 @@ run_logged $OMARCHY_INSTALL/config/hardware/fix-surface-keyboard.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-audio-mixer.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-mic.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-yt6801-ethernet-adapter.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-dell-xps-audio.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-synaptic-touchpad.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-tuxedo-backlight.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/framework16-qmk-hid.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel-ipu7-camera.sh
|
||||
|
||||
@@ -30,6 +30,6 @@ EOF
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/t2-mac.conf >/dev/null
|
||||
# Generated by Omarchy installer for T2 Mac support
|
||||
KERNEL_CMDLINE[default]+="intel_iommu=on iommu=pt pcie_ports=compat"
|
||||
KERNEL_CMDLINE[default]+=" intel_iommu=on iommu=pt pcie_ports=compat"
|
||||
EOF
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Fix audio on Dell XPS 2026 (Panther Lake) by blacklisting SOF audio modules
|
||||
# that conflict with standard HDA drivers. This turns off audio, but allows boot.
|
||||
# This is meant to be removed as soon as its fixed upstream.
|
||||
|
||||
if lspci | grep -iE 'vga|3d|display' | grep -qi 'panther lake'; then
|
||||
sudo tee /etc/modprobe.d/blacklist-audio.conf << 'EOF'
|
||||
blacklist snd_sof_pci_intel_ptl
|
||||
blacklist snd_sof_pci_intel_lnl
|
||||
blacklist snd_sof_pci_intel_mtl
|
||||
blacklist snd_sof_intel_hda_generic
|
||||
blacklist snd_sof_intel_hda_common
|
||||
blacklist snd_sof_intel_hda
|
||||
blacklist snd_sof_pci
|
||||
blacklist snd_sof
|
||||
blacklist soundwire_intel
|
||||
blacklist snd_soc_cs35l56_sdw
|
||||
blacklist snd_soc_cs35l56
|
||||
blacklist snd_soc_skl_hda_dsp
|
||||
EOF
|
||||
fi
|
||||
@@ -0,0 +1,32 @@
|
||||
# Fix Dell XPS haptic touchpad losing haptic feedback after suspend/resume.
|
||||
# The I2C controller's runtime power management aggressively suspends the touchpad,
|
||||
# and on resume the haptic engine sometimes fails to reinitialize.
|
||||
# This udev rule keeps the I2C controller always on to prevent that.
|
||||
# Applies to any Dell XPS with the Synaptics haptic touchpad (06CB:D01A).
|
||||
|
||||
if cat /sys/class/dmi/id/product_name 2>/dev/null | grep -qi "XPS" \
|
||||
&& ls /sys/bus/i2c/devices/i2c-VEN_06CB:00 2>/dev/null; then
|
||||
|
||||
# Disable runtime PM for I2C controller so haptic state isn't lost
|
||||
sudo tee /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules << 'EOF'
|
||||
ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:19.0", ATTR{power/control}="on"
|
||||
ACTION=="add", SUBSYSTEM=="platform", KERNEL=="i2c_designware.0", ATTR{power/control}="on"
|
||||
EOF
|
||||
sudo udevadm control --reload-rules
|
||||
|
||||
# Rebind the I2C HID touchpad on boot and resume to reinitialize haptic engine
|
||||
sudo tee /etc/systemd/system/dell-xps-haptic-touchpad.service << 'SVC'
|
||||
[Unit]
|
||||
Description=Rebind Dell XPS haptic touchpad
|
||||
After=systemd-udev-settle.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/bin/bash -c 'if [[ -d /sys/bus/i2c/devices/i2c-VEN_06CB:00 ]]; then echo "i2c-VEN_06CB:00" | tee /sys/bus/i2c/drivers/i2c_hid_acpi/unbind > /dev/null 2>&1; sleep 1; echo "i2c-VEN_06CB:00" | tee /sys/bus/i2c/drivers/i2c_hid_acpi/bind > /dev/null 2>&1; fi'
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target suspend.target hibernate.target
|
||||
SVC
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable dell-xps-haptic-touchpad.service
|
||||
fi
|
||||
@@ -0,0 +1,18 @@
|
||||
# Fix display issues on Intel Panther Lake (Xe3) GPUs by disabling power-saving
|
||||
# features that cause screen to run at 10hz (e.g. Dell XPS 2026).
|
||||
if lspci | grep -iE 'vga|3d|display' | grep -qi 'panther lake'; then
|
||||
echo "Detected Intel Panther Lake GPU, applying display fixes..."
|
||||
|
||||
PANTHER_LAKE_CMDLINE='KERNEL_CMDLINE[default]+=" xe.enable_psr=0 xe.enable_panel_replay=0 xe.enable_fbc=0 xe.enable_dc=0"'
|
||||
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/intel-panther-lake-display.conf >/dev/null
|
||||
# Fix Panther Lake display issues by disabling Xe power-saving features
|
||||
$PANTHER_LAKE_CMDLINE
|
||||
EOF
|
||||
|
||||
# Also append to /etc/default/limine if it exists, since it overrides drop-in configs
|
||||
if [ -f /etc/default/limine ] && ! grep -q 'xe.enable_psr' /etc/default/limine; then
|
||||
echo "$PANTHER_LAKE_CMDLINE" | sudo tee -a /etc/default/limine >/dev/null
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,15 @@
|
||||
# Install Tuxedo drivers for keyboard backlighting on Tuxedo laptops and
|
||||
# compatible devices like the Slimbook Executive (Clevo/Tuxedo chassis).
|
||||
if cat /sys/class/dmi/id/sys_vendor 2>/dev/null | grep -qi "TUXEDO\|Slimbook"; then
|
||||
omarchy-pkg-add linux-headers tuxedo-drivers-nocompatcheck-dkms
|
||||
|
||||
# Blacklist the legacy clevo_xsm_wmi module which conflicts with the tuxedo-drivers
|
||||
# clevo_wmi module. When clevo_xsm_wmi loads first, it grabs the Clevo WMI GUIDs,
|
||||
# preventing tuxedo-drivers from initializing the keyboard backlight properly.
|
||||
echo "blacklist clevo_xsm_wmi" | sudo tee /etc/modprobe.d/blacklist-clevo-xsm-wmi.conf > /dev/null
|
||||
|
||||
# Remove any orphaned clevo_xsm_wmi module files not managed by a package
|
||||
for f in /lib/modules/*/extra/clevo-xsm-wmi.ko; do
|
||||
[ -f "$f" ] && sudo rm "$f"
|
||||
done
|
||||
fi
|
||||
@@ -0,0 +1,5 @@
|
||||
# Install MIPI camera support for Intel IPU7 hardware
|
||||
|
||||
if grep -q "OVTI08F4" /sys/bus/acpi/devices/*/hid 2>/dev/null; then
|
||||
omarchy-pkg-add intel-ipu7-camera
|
||||
fi
|
||||
@@ -0,0 +1,11 @@
|
||||
# Enable thermald for Intel laptops (Sandy Bridge and newer)
|
||||
# Thermald is useful for Intel Sandy Bridge (2nd gen Core, model 42/45) and newer CPUs.
|
||||
|
||||
if omarchy-hw-intel; then
|
||||
# Check if Sandy Bridge or newer (model >= 42). Sandy Bridge: model 42 (mobile), 45 (desktop)
|
||||
cpu_model=$(grep -m1 "^model\s*:" /proc/cpuinfo 2>/dev/null | cut -d: -f2 | tr -d ' ')
|
||||
if ((cpu_model >= 42)) && omarchy-battery-present; then
|
||||
omarchy-pkg-add thermald
|
||||
sudo systemctl enable thermald
|
||||
fi
|
||||
fi
|
||||
@@ -1,8 +1,8 @@
|
||||
# This installs hardware video acceleration for Intel GPUs
|
||||
# Check if we have an Intel GPU at all
|
||||
if INTEL_GPU=$(lspci | grep -iE 'vga|3d|display' | grep -i 'intel'); then
|
||||
# HD Graphics and newer uses intel-media-driver
|
||||
if [[ ${INTEL_GPU,,} =~ "hd graphics"|"xe"|"iris" ]]; then
|
||||
# HD Graphics / Iris / Xe / Arc use intel-media-driver
|
||||
if [[ ${INTEL_GPU,,} =~ (hd\ graphics|uhd\ graphics|xe|iris|arc) ]]; then
|
||||
omarchy-pkg-add intel-media-driver
|
||||
elif [[ ${INTEL_GPU,,} =~ "gma" ]]; then
|
||||
# Older generations from 2008 to ~2014-2017 use libva-intel-driver
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
sudo install -d /etc/systemd/system/plocate-updatedb.service.d
|
||||
printf '%s\n' '[Unit]' 'ConditionACPower=true' | sudo tee /etc/systemd/system/plocate-updatedb.service.d/ac-only.conf >/dev/null
|
||||
sudo systemctl daemon-reload
|
||||
@@ -0,0 +1,2 @@
|
||||
sudo mkdir -p /usr/lib/systemd/system-sleep
|
||||
sudo install -m 0755 -o root -g root "$OMARCHY_PATH/default/systemd/system-sleep/unmount-fuse" /usr/lib/systemd/system-sleep/
|
||||
@@ -32,6 +32,11 @@ EOF
|
||||
sudo cp $OMARCHY_PATH/default/limine/default.conf /etc/default/limine
|
||||
sudo sed -i "s|@@CMDLINE@@|$CMDLINE|g" /etc/default/limine
|
||||
|
||||
# Append any drop-in kernel cmdline configs (from hardware fix scripts, etc.)
|
||||
for dropin in /etc/limine-entry-tool.d/*.conf; do
|
||||
[ -f "$dropin" ] && cat "$dropin" | sudo tee -a /etc/default/limine >/dev/null
|
||||
done
|
||||
|
||||
# UKI and EFI fallback are EFI only
|
||||
if [[ -z $EFI ]]; then
|
||||
sudo sed -i '/^ENABLE_UKI=/d; /^ENABLE_LIMINE_FALLBACK=/d' /etc/default/limine
|
||||
@@ -56,15 +61,15 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
# Enable quota to allow space-aware algorithms to work
|
||||
sudo btrfs quota enable /
|
||||
# Disable btrfs quotas (they cause performance issues)
|
||||
sudo btrfs quota disable / 2>/dev/null || true
|
||||
|
||||
# Tweak default Snapper configs
|
||||
# Tweak default Snapper configs (number-based pruning only, space-aware limits need quotas)
|
||||
sudo sed -i 's/^TIMELINE_CREATE="yes"/TIMELINE_CREATE="no"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^NUMBER_LIMIT="50"/NUMBER_LIMIT="5"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^NUMBER_LIMIT_IMPORTANT="10"/NUMBER_LIMIT_IMPORTANT="5"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^SPACE_LIMIT="0.5"/SPACE_LIMIT="0.3"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^FREE_LIMIT="0.2"/FREE_LIMIT="0.3"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^SPACE_LIMIT="0.5"/SPACE_LIMIT="0"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^FREE_LIMIT="0.2"/FREE_LIMIT="0"/' /etc/snapper/configs/{root,home}
|
||||
|
||||
chrootable_systemctl_enable limine-snapper-sync.service
|
||||
fi
|
||||
|
||||
@@ -16,7 +16,6 @@ brightnessctl
|
||||
btop
|
||||
chromium
|
||||
clang
|
||||
claude-code
|
||||
cups
|
||||
cups-browsed
|
||||
cups-filters
|
||||
@@ -92,7 +91,6 @@ obs-studio
|
||||
obsidian
|
||||
omarchy-nvim
|
||||
omarchy-walker
|
||||
opencode
|
||||
pamixer
|
||||
pinta
|
||||
playerctl
|
||||
|
||||
@@ -19,6 +19,8 @@ iwd
|
||||
jdk-openjdk
|
||||
libpulse
|
||||
libsass
|
||||
intel-ipu7-camera
|
||||
intel-media-driver
|
||||
libva-intel-driver
|
||||
libva-nvidia-driver
|
||||
limine
|
||||
@@ -42,9 +44,11 @@ pipewire-pulse
|
||||
qt6-wayland
|
||||
sassc
|
||||
snapper
|
||||
thermald
|
||||
webp-pixbuf-loader
|
||||
wget
|
||||
yay-debug
|
||||
tuxedo-drivers-nocompatcheck-dkms
|
||||
yt6801-dkms
|
||||
zram-generator
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ run_logged $OMARCHY_INSTALL/packaging/nvim.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/icons.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/webapps.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/tuis.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/npx.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/asus-rog.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/framework16.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/surface.sh
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
omarchy-npx-install @anthropic-ai/claude-code claude
|
||||
omarchy-npx-install @openai/codex codex
|
||||
omarchy-npx-install @google/gemini-cli gemini
|
||||
omarchy-npx-install @github/copilot copilot
|
||||
omarchy-npx-install opencode-ai opencode
|
||||
omarchy-npx-install playwright playwright-cli
|
||||
@@ -1,3 +1,3 @@
|
||||
echo "Drop wayfreeze as hyprpicker replaces its function"
|
||||
|
||||
omarchy-pkg-drop wayfreeze
|
||||
omarchy-pkg-drop wayfreeze-git wayfreeze
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
echo "Add Alt+Shift+Arrow keybindings for swapping tmux windows"
|
||||
|
||||
TMUX_CONF=~/.config/tmux/tmux.conf
|
||||
|
||||
if [[ -f $TMUX_CONF ]]; then
|
||||
if ! grep -q "bind -n M-S-Left swap-window" "$TMUX_CONF"; then
|
||||
sed -i '/bind -n M-Right select-window -t +1/a\
|
||||
bind -n M-S-Left swap-window -t -1 \\; select-window -t -1\
|
||||
bind -n M-S-Right swap-window -t +1 \\; select-window -t +1' "$TMUX_CONF"
|
||||
fi
|
||||
|
||||
omarchy-restart-tmux
|
||||
fi
|
||||
@@ -0,0 +1,67 @@
|
||||
echo "Fix nvim transparency to preserve highlight foreground colors"
|
||||
|
||||
TRANSPARENCY_FILE="$HOME/.config/nvim/plugin/after/transparency.lua"
|
||||
|
||||
if [[ -f "$TRANSPARENCY_FILE" ]]; then
|
||||
cat > "$TRANSPARENCY_FILE" << 'EOF'
|
||||
-- Make highlight groups transparent while preserving their other attributes
|
||||
local function make_transparent(name)
|
||||
local ok, hl = pcall(vim.api.nvim_get_hl, 0, { name = name, link = false })
|
||||
if ok then
|
||||
hl.bg = nil
|
||||
vim.api.nvim_set_hl(0, name, hl)
|
||||
end
|
||||
end
|
||||
|
||||
local groups = {
|
||||
-- transparent background
|
||||
"Normal",
|
||||
"NormalFloat",
|
||||
"FloatBorder",
|
||||
"Pmenu",
|
||||
"Terminal",
|
||||
"EndOfBuffer",
|
||||
"FoldColumn",
|
||||
"Folded",
|
||||
"SignColumn",
|
||||
"LineNr",
|
||||
"CursorLineNr",
|
||||
"NormalNC",
|
||||
"WhichKeyFloat",
|
||||
"TelescopeBorder",
|
||||
"TelescopeNormal",
|
||||
"TelescopePromptBorder",
|
||||
"TelescopePromptTitle",
|
||||
-- neotree
|
||||
"NeoTreeNormal",
|
||||
"NeoTreeNormalNC",
|
||||
"NeoTreeVertSplit",
|
||||
"NeoTreeWinSeparator",
|
||||
"NeoTreeEndOfBuffer",
|
||||
-- nvim-tree
|
||||
"NvimTreeNormal",
|
||||
"NvimTreeVertSplit",
|
||||
"NvimTreeEndOfBuffer",
|
||||
-- notify
|
||||
"NotifyINFOBody",
|
||||
"NotifyERRORBody",
|
||||
"NotifyWARNBody",
|
||||
"NotifyTRACEBody",
|
||||
"NotifyDEBUGBody",
|
||||
"NotifyINFOTitle",
|
||||
"NotifyERRORTitle",
|
||||
"NotifyWARNTitle",
|
||||
"NotifyTRACETitle",
|
||||
"NotifyDEBUGTitle",
|
||||
"NotifyINFOBorder",
|
||||
"NotifyERRORBorder",
|
||||
"NotifyWARNBorder",
|
||||
"NotifyTRACEBorder",
|
||||
"NotifyDEBUGBorder",
|
||||
}
|
||||
|
||||
for _, name in ipairs(groups) do
|
||||
make_transparent(name)
|
||||
end
|
||||
EOF
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
echo "Use mise shims in ~/.config/uwsm/env"
|
||||
|
||||
UWSM_ENV="$HOME/.config/uwsm/env"
|
||||
|
||||
if [[ -f $UWSM_ENV ]] && grep -q 'mise activate bash)' "$UWSM_ENV"; then
|
||||
sed -i 's/mise activate bash)/mise activate bash --shims)/g' "$UWSM_ENV"
|
||||
fi
|
||||
@@ -0,0 +1,11 @@
|
||||
echo "Add automatic-rename settings to tmux configuration"
|
||||
|
||||
if [[ -f ~/.config/tmux/tmux.conf ]]; then
|
||||
if ! grep -q "set -gw automatic-rename on" ~/.config/tmux/tmux.conf; then
|
||||
sed -i '/set -g window-status-separator ""/a\
|
||||
set -gw automatic-rename on\
|
||||
set -gw automatic-rename-format '\''#{b:pane_current_path}'\''\
|
||||
' ~/.config/tmux/tmux.conf
|
||||
omarchy-restart-tmux
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,3 @@
|
||||
echo "Only run plocate indexing on AC power to prevent hangs after sleep"
|
||||
|
||||
source $OMARCHY_PATH/install/config/plocate-ac-only.sh
|
||||
@@ -0,0 +1,7 @@
|
||||
echo "Update hyprland-preview-share-picker config to default to outputs page"
|
||||
|
||||
CONFIG_FILE=~/.config/hyprland-preview-share-picker/config.yaml
|
||||
|
||||
if [[ -f $CONFIG_FILE ]]; then
|
||||
sed -i 's/^default_page: windows$/default_page: outputs/' "$CONFIG_FILE"
|
||||
fi
|
||||
@@ -0,0 +1,5 @@
|
||||
echo "Install Intel GPU hardware acceleration drivers if missing"
|
||||
|
||||
if lspci | grep -iE 'vga|3d|display' | grep -qi 'intel'; then
|
||||
source "$OMARCHY_PATH/install/config/hardware/intel.sh"
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
echo "Add Shift+Return keyboard binding for multi-line as used by Claude Code to Alacritty"
|
||||
|
||||
ALACRITTY_CONFIG=~/.config/alacritty/alacritty.toml
|
||||
|
||||
if [[ -f $ALACRITTY_CONFIG ]] && ! grep -q 'key = "Return"' "$ALACRITTY_CONFIG"; then
|
||||
sed -i 's/{ key = "Insert", mods = "Control", action = "Copy" }/{ key = "Insert", mods = "Control", action = "Copy" },\n { key = "Return", mods = "Shift", chars = "\\u001B\\r" }/' "$ALACRITTY_CONFIG"
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
echo "Add sample low battery notification hook"
|
||||
|
||||
mkdir -p ~/.config/omarchy/hooks
|
||||
|
||||
if [[ ! -f ~/.config/omarchy/hooks/battery-low.sample ]]; then
|
||||
cp "$OMARCHY_PATH/config/omarchy/hooks/battery-low.sample" ~/.config/omarchy/hooks/battery-low.sample
|
||||
fi
|
||||
@@ -0,0 +1,4 @@
|
||||
echo "Install system-sleep hook to unmount gvfsd-fuse before suspend/hibernate"
|
||||
|
||||
sudo mkdir -p /usr/lib/systemd/system-sleep
|
||||
sudo install -m 0755 -o root -g root "$OMARCHY_PATH/default/systemd/system-sleep/unmount-fuse" /usr/lib/systemd/system-sleep/
|
||||
@@ -0,0 +1,3 @@
|
||||
echo "Enable thermald for Intel Sandy Bridge and newer laptops"
|
||||
|
||||
source "$OMARCHY_PATH/install/config/hardware/intel-thermald.sh"
|
||||
@@ -0,0 +1,3 @@
|
||||
echo "Install npx wrappers for AI CLI tools and playwright"
|
||||
|
||||
source "$OMARCHY_PATH/install/packaging/npx.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
echo "Add COPY mode indicator to tmux status bar"
|
||||
|
||||
if [[ -f ~/.config/tmux/tmux.conf ]]; then
|
||||
if ! grep -q "pane_in_mode" ~/.config/tmux/tmux.conf; then
|
||||
sed -i 's/#{?client_prefix/#{?pane_in_mode,COPY ,}#{?client_prefix/' ~/.config/tmux/tmux.conf
|
||||
omarchy-restart-tmux
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,12 @@
|
||||
echo "Disable btrfs quotas and space-aware snapper limits on existing installs"
|
||||
|
||||
if omarchy-cmd-present btrfs; then
|
||||
if sudo btrfs quota status / 2>/dev/null | grep -q "Quota enabled: yes"; then
|
||||
sudo btrfs quota disable /
|
||||
fi
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present snapper; then
|
||||
sudo sed -i 's/^SPACE_LIMIT="0\.3"/SPACE_LIMIT="0"/' /etc/snapper/configs/{root,home} 2>/dev/null
|
||||
sudo sed -i 's/^FREE_LIMIT="0\.3"/FREE_LIMIT="0"/' /etc/snapper/configs/{root,home} 2>/dev/null
|
||||
fi
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
@@ -0,0 +1,64 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]=""
|
||||
theme_background=false
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#c7d2de"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#9fcfe9"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#b5deef"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#355066"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#c7d2de"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#355066"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#9fcfe9"
|
||||
|
||||
# Box outline and divider line color
|
||||
theme[cpu_box]="#79abd2"
|
||||
theme[mem_box]="#79abd2"
|
||||
theme[net_box]="#79abd2"
|
||||
theme[proc_box]="#79abd2"
|
||||
theme[div_line]="#355066"
|
||||
|
||||
# Gradient for all meters and graphs
|
||||
theme[temp_start]="#b5deef"
|
||||
theme[temp_mid]="#92c7e7"
|
||||
theme[temp_end]="#79abd2"
|
||||
|
||||
theme[cpu_start]="#b5deef"
|
||||
theme[cpu_mid]="#92c7e7"
|
||||
theme[cpu_end]="#79abd2"
|
||||
|
||||
theme[free_start]="#92c7e7"
|
||||
theme[free_mid]="#86b6da"
|
||||
theme[free_end]="#86b6da"
|
||||
|
||||
theme[cached_start]="#86b6da"
|
||||
theme[cached_mid]="#86b6da"
|
||||
theme[cached_end]="#86b6da"
|
||||
|
||||
theme[available_start]="#b5deef"
|
||||
theme[available_mid]="#b5deef"
|
||||
theme[available_end]="#b5deef"
|
||||
|
||||
theme[used_start]="#79abd2"
|
||||
theme[used_mid]="#79abd2"
|
||||
theme[used_end]="#79abd2"
|
||||
|
||||
theme[download_start]="#86b6da"
|
||||
theme[download_mid]="#b5deef"
|
||||
theme[download_end]="#92c7e7"
|
||||
|
||||
theme[upload_start]="#86b6da"
|
||||
theme[upload_mid]="#b5deef"
|
||||
theme[upload_end]="#92c7e7"
|
||||
@@ -0,0 +1 @@
|
||||
14,31,41
|
||||
@@ -0,0 +1,35 @@
|
||||
# Accent and UI colors
|
||||
accent = "#f2fcff"
|
||||
active_border_color = "#f2fcff"
|
||||
active_tab_background = "#6fb8e3"
|
||||
|
||||
# Cursor colors
|
||||
cursor = "#f2fcff"
|
||||
|
||||
# Primary colors
|
||||
foreground = "#d6e2ee"
|
||||
background = "#16242d"
|
||||
|
||||
# Selection colors
|
||||
selection_foreground = "#1b2d40"
|
||||
selection_background = "#4d9ed3"
|
||||
|
||||
# Normal colors (ANSI 0-7)
|
||||
color0 = "#1b2d40"
|
||||
color1 = "#4d86b0"
|
||||
color2 = "#5e95bc"
|
||||
color3 = "#6fa4c9"
|
||||
color4 = "#6fb8e3"
|
||||
color5 = "#8bc9eb"
|
||||
color6 = "#b4e4f6"
|
||||
color7 = "#d6e2ee"
|
||||
|
||||
# Bright colors (ANSI 8-15)
|
||||
color8 = "#304860"
|
||||
color9 = "#73a6cb"
|
||||
color10 = "#86b7d8"
|
||||
color11 = "#9dcae5"
|
||||
color12 = "#f2fcff"
|
||||
color13 = "#b1d8ee"
|
||||
color14 = "#d1eef8"
|
||||
color15 = "#ffffff"
|
||||
@@ -0,0 +1,26 @@
|
||||
$activeBorderColor = rgb(f2fcff)
|
||||
$activeShadowColor = rgb(6fb8e3)
|
||||
$inactiveBorderColor = rgba(30486099)
|
||||
$inactiveShadowColor = rgba(30486077)
|
||||
|
||||
general {
|
||||
col.active_border = $activeBorderColor
|
||||
col.inactive_border = $inactiveBorderColor
|
||||
gaps_in = 8
|
||||
gaps_out = 16
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_active = $activeBorderColor
|
||||
col.border_inactive = $inactiveBorderColor
|
||||
}
|
||||
|
||||
decoration {
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 16
|
||||
render_power = 4
|
||||
color = $activeShadowColor
|
||||
color_inactive = $inactiveShadowColor
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Yaru-blue
|
||||
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
{
|
||||
"omacom-io/lumon.nvim",
|
||||
name = "lumon",
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "lumon",
|
||||
},
|
||||
},
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
@@ -0,0 +1,44 @@
|
||||
@define-color background-color #1b2d40;
|
||||
@define-color border-color #304860;
|
||||
@define-color label #d6e2ee;
|
||||
@define-color image #d6e2ee;
|
||||
@define-color progress #6fb8e3;
|
||||
@define-color edge-light #f2fcff;
|
||||
|
||||
/* Cancel out Omarchy defaults */
|
||||
window:not(:backdrop),
|
||||
window:backdrop {
|
||||
border: none;
|
||||
border-width: 0;
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
/* Draw the Lumon OSD shell */
|
||||
window:not(:backdrop) #container,
|
||||
window:backdrop #container {
|
||||
border: 2px solid alpha(@border-color, 0.92);
|
||||
background-color: alpha(@background-color, 0.95);
|
||||
padding: 12px 16px;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
image,
|
||||
label {
|
||||
color: @label;
|
||||
}
|
||||
|
||||
progressbar {
|
||||
min-height: 8px;
|
||||
}
|
||||
|
||||
progressbar trough {
|
||||
background: alpha(@border-color, 0.24);
|
||||
box-shadow: inset 0 1px rgba(242, 252, 255, 0.03);
|
||||
}
|
||||
|
||||
progressbar progress {
|
||||
background: linear-gradient(90deg, @progress, @edge-light);
|
||||
box-shadow: 0 0 10px rgba(111, 184, 227, 0.18);
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
@define-color foreground #d6e2ee;
|
||||
@define-color background #213442;
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"name": "White Omarchy",
|
||||
"name": "White",
|
||||
"extension": "Bjarne.white-theme"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user