Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
688d706a93 |
@@ -7,16 +7,19 @@ battery_info=$(upower -i $(upower -e | grep BAT))
|
||||
echo "$battery_info" | awk '/time to (empty|full)/ {
|
||||
value = $4
|
||||
unit = $5
|
||||
if (unit ~ /^minute/) {
|
||||
printf "%dm", int(value)
|
||||
if (unit == "minutes") {
|
||||
hours = int(value / 60)
|
||||
minutes = int(value % 60)
|
||||
} else {
|
||||
hours = int(value)
|
||||
minutes = int((value - hours) * 60)
|
||||
if (minutes > 0) {
|
||||
printf "%dh %dm", hours, minutes
|
||||
} else {
|
||||
printf "%dh", hours
|
||||
}
|
||||
}
|
||||
if (hours > 0 && minutes > 0) {
|
||||
printf "%dh %dm", hours, minutes
|
||||
} else if (hours > 0) {
|
||||
printf "%dh", hours
|
||||
} else {
|
||||
printf "%dm", minutes
|
||||
}
|
||||
exit
|
||||
}'
|
||||
|
||||
@@ -23,19 +23,14 @@ fi
|
||||
max_brightness="$(brightnessctl -d "$device" max)"
|
||||
current_brightness="$(brightnessctl -d "$device" get)"
|
||||
|
||||
# Calculate step as 10% of max brightness. Keyboards with many levels (e.g. 512)
|
||||
# need larger steps; keyboards with few levels (e.g. 3) fall back to step=1.
|
||||
step=$(( max_brightness / 10 ))
|
||||
(( step < 1 )) && step=1
|
||||
|
||||
# Calculate step as one unit (keyboards typically have discrete levels like 0-3).
|
||||
if [[ $direction == "cycle" ]]; then
|
||||
new_brightness=$(( current_brightness + step ))
|
||||
(( new_brightness > max_brightness )) && new_brightness=0
|
||||
new_brightness=$(( (current_brightness + 1) % (max_brightness + 1) ))
|
||||
elif [[ $direction == "up" ]]; then
|
||||
new_brightness=$(( current_brightness + step ))
|
||||
new_brightness=$((current_brightness + 1))
|
||||
(( new_brightness > max_brightness )) && new_brightness=$max_brightness
|
||||
else
|
||||
new_brightness=$(( current_brightness - step ))
|
||||
new_brightness=$((current_brightness - 1))
|
||||
(( new_brightness < 0 )) && new_brightness=0
|
||||
fi
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ start_webcam_overlay() {
|
||||
done
|
||||
|
||||
ffplay -f v4l2 $video_size_arg -framerate 30 "$WEBCAM_DEVICE" \
|
||||
-vf "crop=iw/2:ih,scale=${target_width}:-1" \
|
||||
-vf "scale=${target_width}:-1" \
|
||||
-window_title "WebcamOverlay" \
|
||||
-noborder \
|
||||
-fflags nobuffer -flags low_delay \
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}"
|
||||
|
||||
if [[ ! -d $OUTPUT_DIR ]]; then
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
notify-send "Created screenshot directory: $OUTPUT_DIR" -u normal -t 2000
|
||||
notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pkill slurp && exit 0
|
||||
|
||||
@@ -33,7 +33,7 @@ if [[ -n $font_name ]]; then
|
||||
omarchy-restart-swayosd
|
||||
|
||||
if pgrep -x ghostty; then
|
||||
notify-send -u low " You must restart Ghostty to see font change"
|
||||
notify-send " You must restart Ghostty to see font change"
|
||||
fi
|
||||
|
||||
omarchy-hook font-set "$font_name"
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""Haptic feedback daemon for Synaptics touchpads with Manual Trigger.
|
||||
|
||||
Monitors touchpad button press events and sends haptic pulses via HID
|
||||
feature reports. Required because the kernel's HID haptic subsystem only
|
||||
supports Auto Trigger with waveform enumeration, not the simpler Manual
|
||||
Trigger protocol used by these Synaptics touchpads.
|
||||
"""
|
||||
|
||||
import fcntl, glob, os, struct, sys
|
||||
|
||||
VENDOR = "06CB"
|
||||
PRODUCT = "D01A"
|
||||
REPORT_ID = 0x37
|
||||
INTENSITY = 40 # 0-100
|
||||
|
||||
# input_event: struct timeval (16 bytes on 64-bit) + type(H) + code(H) + value(i)
|
||||
EVENT_FORMAT = "llHHi"
|
||||
EVENT_SIZE = struct.calcsize(EVENT_FORMAT)
|
||||
EV_KEY = 0x01
|
||||
BTN_LEFT = 272
|
||||
BTN_RIGHT = 273
|
||||
BTN_MIDDLE = 274
|
||||
|
||||
# ioctl: HIDIOCSFEATURE(len) = _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len)
|
||||
def HIDIOCSFEATURE(length):
|
||||
return 0xC0000000 | (length << 16) | (ord("H") << 8) | 0x06
|
||||
|
||||
|
||||
def find_hidraw():
|
||||
for path in sorted(glob.glob("/sys/class/hidraw/hidraw*")):
|
||||
uevent = os.path.join(path, "device", "uevent")
|
||||
try:
|
||||
with open(uevent) as f:
|
||||
content = f.read().upper()
|
||||
if f"0000{VENDOR}" in content and f"0000{PRODUCT}" in content:
|
||||
return os.path.join("/dev", os.path.basename(path))
|
||||
except OSError:
|
||||
continue
|
||||
return None
|
||||
|
||||
|
||||
def find_touchpad_event():
|
||||
for path in sorted(glob.glob("/sys/class/input/event*/device/name")):
|
||||
try:
|
||||
with open(path) as f:
|
||||
name = f.read().strip().upper()
|
||||
if VENDOR in name and PRODUCT in name and "TOUCHPAD" in name:
|
||||
event = path.split("/")[-3]
|
||||
return os.path.join("/dev/input", event)
|
||||
except OSError:
|
||||
continue
|
||||
return None
|
||||
|
||||
|
||||
def main():
|
||||
hidraw = find_hidraw()
|
||||
if not hidraw:
|
||||
print("No Synaptics haptic touchpad hidraw device found", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
event = find_touchpad_event()
|
||||
if not event:
|
||||
print("No Synaptics haptic touchpad input device found", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
print(f"Haptic touchpad: hidraw={hidraw} input={event} intensity={INTENSITY}", flush=True)
|
||||
|
||||
haptic_report = struct.pack("BB", REPORT_ID, INTENSITY)
|
||||
ioctl_req = HIDIOCSFEATURE(len(haptic_report))
|
||||
|
||||
hidraw_fd = os.open(hidraw, os.O_RDWR)
|
||||
event_fd = os.open(event, os.O_RDONLY)
|
||||
|
||||
try:
|
||||
while True:
|
||||
data = os.read(event_fd, EVENT_SIZE)
|
||||
if len(data) < EVENT_SIZE:
|
||||
continue
|
||||
_, _, ev_type, code, value = struct.unpack(EVENT_FORMAT, data)
|
||||
if ev_type == EV_KEY and code in (BTN_LEFT, BTN_RIGHT, BTN_MIDDLE) and value == 1:
|
||||
try:
|
||||
fcntl.ioctl(hidraw_fd, ioctl_req, haptic_report)
|
||||
except OSError:
|
||||
pass
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
finally:
|
||||
os.close(event_fd)
|
||||
os.close(hidraw_fd)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -3,4 +3,4 @@
|
||||
# Detect whether the computer is a Framework Laptop 16.
|
||||
|
||||
[[ $(cat /sys/class/dmi/id/sys_vendor 2>/dev/null) == "Framework" ]] &&
|
||||
omarchy-hw-match "Laptop 16"
|
||||
grep -q "Laptop 16" /sys/class/dmi/id/product_name 2>/dev/null
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Detect whether the computer has an Intel Panther Lake GPU.
|
||||
|
||||
lspci | grep -iE 'vga|3d|display' | grep -qi 'panther lake'
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Match against the computer's DMI product name (case-insensitive).
|
||||
# Usage: omarchy-hw-match "XPS"
|
||||
|
||||
grep -qi "$1" /sys/class/dmi/id/product_name 2>/dev/null
|
||||
@@ -3,4 +3,4 @@
|
||||
# Detect whether the computer is a Microsoft Surface device.
|
||||
|
||||
[[ $(cat /sys/class/dmi/id/sys_vendor 2>/dev/null) == "Microsoft Corporation" ]] &&
|
||||
omarchy-hw-match "Surface"
|
||||
grep -q "Surface" /sys/class/dmi/id/product_name 2>/dev/null
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Detect whether Vulkan is available.
|
||||
|
||||
[[ -d /usr/share/vulkan/icd.d ]] &&
|
||||
find /usr/share/vulkan/icd.d -maxdepth 1 -name "*.json" -print -quit | grep -q .
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Toggles transparency for the currently focused window.
|
||||
|
||||
hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
|
||||
@@ -21,4 +21,4 @@ esac
|
||||
hyprctl keyword misc:disable_scale_notification true
|
||||
hyprctl keyword monitor "$ACTIVE_MONITOR,${WIDTH}x${HEIGHT}@${REFRESH_RATE},auto,$NEW_SCALE"
|
||||
hyprctl keyword misc:disable_scale_notification false
|
||||
notify-send -u low " Display scaling set to ${NEW_SCALE}x"
|
||||
notify-send " Display scaling set to ${NEW_SCALE}x"
|
||||
|
||||
@@ -6,8 +6,8 @@ CURRENT_VALUE=$(hyprctl getoption "layout:single_window_aspect_ratio" 2>/dev/nul
|
||||
# Parse vec2 output: "vec2: [1, 1]" or "vec2: [0, 0]"
|
||||
if [[ $CURRENT_VALUE == *"[1, 1]"* ]]; then
|
||||
hyprctl keyword layout:single_window_aspect_ratio "0 0"
|
||||
notify-send -u low " Disable single-window square aspect ratio"
|
||||
notify-send " Disable single-window square aspect ratio"
|
||||
else
|
||||
hyprctl keyword layout:single_window_aspect_ratio "1 1"
|
||||
notify-send -u low " Enable single-window square aspect"
|
||||
notify-send " Enable single-window square aspect"
|
||||
fi
|
||||
|
||||
@@ -11,4 +11,4 @@ case "$CURRENT_LAYOUT" in
|
||||
esac
|
||||
|
||||
hyprctl keyword workspace $ACTIVE_WORKSPACE, layout:$NEW_LAYOUT
|
||||
notify-send -u low " Workspace layout set to $NEW_LAYOUT"
|
||||
notify-send " Workspace layout set to $NEW_LAYOUT"
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install support for using Xbox and PlayStation controllers with Steam/RetroArch/etc.
|
||||
|
||||
set -e
|
||||
|
||||
# Xbox: Install xpadneo for improved Xbox controller support
|
||||
omarchy-pkg-add linux-headers
|
||||
omarchy-pkg-aur-add xpadneo-dkms
|
||||
|
||||
# Xbox: 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
|
||||
|
||||
# PlayStation: Ensure hid-playstation module loads at boot
|
||||
echo hid_playstation | sudo tee /etc/modules-load.d/hid-playstation.conf >/dev/null
|
||||
|
||||
# PlayStation: Enable userspace HID for Bluetooth controller support
|
||||
if [ -f /etc/bluetooth/input.conf ]; then
|
||||
grep -q "UserspaceHID=true" /etc/bluetooth/input.conf || \
|
||||
sudo sed -i '/^\[General\]/a UserspaceHID=true' /etc/bluetooth/input.conf
|
||||
else
|
||||
printf '[General]\nUserspaceHID=true\n' | sudo tee /etc/bluetooth/input.conf >/dev/null
|
||||
fi
|
||||
|
||||
# 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,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install the ONCE service, enable its background service, and launch the TUI.
|
||||
|
||||
echo "Installing ONCE..."
|
||||
omarchy-pkg-add once-bin
|
||||
|
||||
echo "Enabling ONCE background service..."
|
||||
sudo systemctl enable --now once-background.service
|
||||
|
||||
echo -e "\nLaunching ONCE..."
|
||||
once
|
||||
@@ -1,9 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install and launch Steam after first letting the user pick the correct grahics card drivers.
|
||||
# Install Steam with gaming essentials (Gamescope, GameMode, MangoHud) and launch.
|
||||
|
||||
set -e
|
||||
|
||||
omarchy-pkg-add gamescope gamemode lib32-gamemode mangohud lib32-mangohud
|
||||
|
||||
echo "Now pick dependencies matching your graphics card"
|
||||
sudo pacman -S steam
|
||||
setsid gtk-launch steam >/dev/null 2>&1 &
|
||||
|
||||
# Override Steam's .desktop to launch inside Gamescope
|
||||
mkdir -p ~/.local/share/applications
|
||||
sed 's|Exec=/usr/bin/steam|Exec=gamescope -e -- steam|' \
|
||||
/usr/share/applications/steam.desktop > ~/.local/share/applications/steam.desktop
|
||||
|
||||
setsid gamescope -e -- steam >/dev/null 2>&1 &
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install support for using Xbox controllers with Steam/RetroArch/etc.
|
||||
|
||||
set -e
|
||||
|
||||
# Install xpadneo to ensure controllers work out of the box
|
||||
omarchy-pkg-add linux-headers
|
||||
omarchy-pkg-aur-add 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
|
||||
@@ -46,7 +46,7 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
||||
-e omarchy-cmd-screensaver
|
||||
;;
|
||||
*)
|
||||
notify-send -u low "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty"
|
||||
notify-send "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -54,7 +54,7 @@ present_terminal() {
|
||||
}
|
||||
|
||||
open_in_editor() {
|
||||
notify-send -u low "Editing config file" "$1"
|
||||
notify-send "Editing config file" "$1"
|
||||
omarchy-launch-editor "$1"
|
||||
}
|
||||
|
||||
@@ -317,11 +317,10 @@ show_install_menu() {
|
||||
}
|
||||
|
||||
show_install_service_menu() {
|
||||
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN [AUR]\n ONCE\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 ;;
|
||||
*ONCE*) present_terminal omarchy-install-once ;;
|
||||
*Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;;
|
||||
*Chromium*) present_terminal omarchy-install-chromium-google-account ;;
|
||||
*) show_install_menu ;;
|
||||
@@ -366,12 +365,12 @@ show_install_ai_menu() {
|
||||
}
|
||||
|
||||
show_install_gaming_menu() {
|
||||
case $(menu "Install" " Steam\n NVIDIA GeForce NOW\n RetroArch [AUR]\n Minecraft\n Xbox Controller [AUR]") in
|
||||
case $(menu "Install" " Steam + Gamescope\n NVIDIA GeForce NOW\n RetroArch [AUR]\n Minecraft\n Xbox + PS Controllers [AUR]") in
|
||||
*Steam*) present_terminal omarchy-install-steam ;;
|
||||
*GeForce*) present_terminal omarchy-install-geforce-now ;;
|
||||
*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" ;;
|
||||
*Xbox*) present_terminal omarchy-install-xbox-controllers ;;
|
||||
*Controllers*) present_terminal omarchy-install-controllers ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -13,10 +13,6 @@ if gum confirm "Are you sure you want to remove all preinstalled web apps, TUI w
|
||||
cp "$OMARCHY_PATH/default/hypr/plain-bindings.conf" ~/.config/hypr/bindings.conf
|
||||
hyprctl reload
|
||||
|
||||
# Remove npx stubs
|
||||
rm -f ~/.local/bin/codex ~/.local/bin/gemini ~/.local/bin/copilot \
|
||||
~/.local/bin/opencode ~/.local/bin/playwright-cli ~/.local/bin/pi
|
||||
|
||||
omarchy-pkg-drop \
|
||||
aether \
|
||||
typora \
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Reload the intel_quicki2c driver to fix a dead trackpad.
|
||||
# The THC (Touch Host Controller) can fail to initialize interrupts
|
||||
# during boot or after suspend, leaving the trackpad registered but
|
||||
# not delivering events.
|
||||
|
||||
sudo modprobe -r intel_quicki2c && sudo modprobe intel_quicki2c
|
||||
@@ -13,12 +13,12 @@ if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present chromium; then
|
||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
||||
chromium --refresh-platform-policy --no-startup-window >/dev/null
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present brave; then
|
||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | 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 >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -35,6 +35,5 @@ set_theme() {
|
||||
}
|
||||
|
||||
set_theme "code" "$HOME/.config/Code/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-vscode-theme-changes"
|
||||
set_theme "code-insiders" "$HOME/.config/Code - Insiders/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-vscode-insiders-theme-changes"
|
||||
set_theme "codium" "$HOME/.config/VSCodium/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-codium-theme-changes"
|
||||
set_theme "cursor" "$HOME/.config/Cursor/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-cursor-theme-changes"
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
if pgrep -x hypridle >/dev/null; then
|
||||
pkill -x hypridle
|
||||
notify-send -u low " Stop locking computer when idle"
|
||||
notify-send " Stop locking computer when idle"
|
||||
else
|
||||
uwsm-app -- hypridle >/dev/null 2>&1 &
|
||||
notify-send -u low " Now locking computer when idle"
|
||||
notify-send " Now locking computer when idle"
|
||||
fi
|
||||
|
||||
pkill -RTMIN+9 waybar
|
||||
|
||||
@@ -21,10 +21,10 @@ restart_nightlighted_waybar() {
|
||||
|
||||
if [[ $CURRENT_TEMP == $OFF_TEMP ]]; then
|
||||
hyprctl hyprsunset temperature $ON_TEMP
|
||||
notify-send -u low " Nightlight screen temperature"
|
||||
notify-send " Nightlight screen temperature"
|
||||
restart_nightlighted_waybar
|
||||
else
|
||||
hyprctl hyprsunset temperature $OFF_TEMP
|
||||
notify-send -u low " Daylight screen temperature"
|
||||
notify-send " Daylight screen temperature"
|
||||
restart_nightlighted_waybar
|
||||
fi
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
makoctl mode -t do-not-disturb
|
||||
|
||||
if makoctl mode | grep -q 'do-not-disturb'; then
|
||||
notify-send -u low " Silenced notifications"
|
||||
notify-send " Silenced notifications"
|
||||
else
|
||||
notify-send -u low " Enabled notifications"
|
||||
notify-send " Enabled notifications"
|
||||
fi
|
||||
|
||||
pkill -RTMIN+10 waybar
|
||||
|
||||
@@ -4,9 +4,9 @@ STATE_FILE=~/.local/state/omarchy/toggles/screensaver-off
|
||||
|
||||
if [[ -f $STATE_FILE ]]; then
|
||||
rm -f $STATE_FILE
|
||||
notify-send -u low " Screensaver enabled"
|
||||
notify-send " Screensaver enabled"
|
||||
else
|
||||
mkdir -p "$(dirname $STATE_FILE)"
|
||||
touch $STATE_FILE
|
||||
notify-send -u low " Screensaver disabled"
|
||||
notify-send " Screensaver disabled"
|
||||
fi
|
||||
|
||||
@@ -4,9 +4,9 @@ STATE_FILE=~/.local/state/omarchy/toggles/suspend-off
|
||||
|
||||
if [[ -f $STATE_FILE ]]; then
|
||||
rm -f $STATE_FILE
|
||||
notify-send -u low " Suspend now available in system menu"
|
||||
notify-send " Suspend now available in system menu"
|
||||
else
|
||||
mkdir -p "$(dirname $STATE_FILE)"
|
||||
touch $STATE_FILE
|
||||
notify-send -u low " Suspend removed from system menu"
|
||||
notify-send " Suspend removed from system menu"
|
||||
fi
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Update system firmware using fwupd. Ensures the fwupd EFI binary is installed
|
||||
# in the ESP so UEFI capsule updates work with the Limine bootloader.
|
||||
|
||||
set -e
|
||||
echo -e "\e[32mUpdate Firmware\e[0m"
|
||||
|
||||
@@ -10,9 +7,5 @@ if omarchy-cmd-missing fwupdmgr; then
|
||||
omarchy-pkg-add fwupd
|
||||
fi
|
||||
|
||||
if [[ -d /sys/firmware/efi ]] && [[ -f /usr/lib/fwupd/efi/fwupdx64.efi ]]; then
|
||||
sudo install -D /usr/lib/fwupd/efi/fwupdx64.efi /boot/EFI/arch/fwupdx64.efi
|
||||
fi
|
||||
|
||||
fwupdmgr refresh --force
|
||||
sudo fwupdmgr update
|
||||
|
||||
@@ -2,16 +2,13 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Run the update inside a PTY so pacman/yay keep showing download progress
|
||||
# while still logging the full session for later analysis.
|
||||
if [[ -z $OMARCHY_UPDATE_LOGGED ]]; then
|
||||
script_command=$(printf '%q ' "$0" "$@")
|
||||
exec env OMARCHY_UPDATE_LOGGED=1 script -qefc "$script_command" "/tmp/omarchy-update.log"
|
||||
fi
|
||||
|
||||
# Ensure screensaver/sleep doesn't set in during updates
|
||||
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-keyring
|
||||
omarchy-update-available-reset
|
||||
|
||||
@@ -11,9 +11,6 @@ if gum confirm "Install Voxtype + AI model (~150MB) to enable dictation?"; then
|
||||
cp $OMARCHY_PATH/default/voxtype/config.toml ~/.config/voxtype/
|
||||
|
||||
voxtype setup --download --no-post-install
|
||||
if omarchy-hw-vulkan; then
|
||||
voxtype setup gpu --enable || true
|
||||
fi
|
||||
voxtype setup systemd
|
||||
|
||||
omarchy-restart-waybar
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
|
||||
env = GDK_SCALE,2
|
||||
monitor=,preferred,auto,auto,vrr,1
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
# Good compromise for 27" or 32" 4K monitors (but fractional!)
|
||||
# env = GDK_SCALE,1.75
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
# To put it into use, remove .sample from the name.
|
||||
|
||||
# Example: Show the name of the theme that was just set.
|
||||
# notify-send -u low "New font" "Your new font is $1"
|
||||
# notify-send "New font" "Your new font is $1"
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
# To put it into use, remove .sample from the name.
|
||||
|
||||
# Example: Show notification after the system has been updated.
|
||||
# notify-send -u low "Update Performed" "Your system is now up to date"
|
||||
# notify-send "Update Performed" "Your system is now up to date"
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
# To put it into use, remove .sample from the name.
|
||||
|
||||
# Example: Show the name of the theme that was just set.
|
||||
# notify-send -u low "New theme" "Your new theme is $1"
|
||||
# notify-send "New theme" "Your new theme is $1"
|
||||
|
||||
@@ -72,8 +72,8 @@
|
||||
"format-wifi": "{icon}",
|
||||
"format-ethernet": "",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)",
|
||||
"tooltip-format-ethernet": "Connected",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"interval": 3,
|
||||
"spacing": 1,
|
||||
|
||||
@@ -13,31 +13,23 @@ img2jpg() {
|
||||
img="$1"
|
||||
shift
|
||||
|
||||
magick "$img" "$@" -quality 85 -strip "${img%.*}-converted.jpg"
|
||||
magick "$img" "$@" -quality 95 -strip "${img%.*}-converted.jpg"
|
||||
}
|
||||
|
||||
# Transcode any image to a small JPG (max 1080px wide)
|
||||
# Transcode any image to a small JPG (max 1080px wide) that's great for sharing online
|
||||
img2jpg-small() {
|
||||
img="$1"
|
||||
shift
|
||||
|
||||
magick "$img" "$@" -resize 1080x\> -quality 85 -strip "${img%.*}-small.jpg"
|
||||
magick "$img" "$@" -resize 1080x\> -quality 95 -strip "${img%.*}-small.jpg"
|
||||
}
|
||||
|
||||
# Transcode any image to a 4K JPG (max 2160px wide)
|
||||
# Transcode any image to a medium JPG (max 1800px wide) that's great for sharing online
|
||||
img2jpg-medium() {
|
||||
img="$1"
|
||||
shift
|
||||
|
||||
magick "$img" "$@" -resize 2160x\> -quality 85 -strip "${img%.*}-medium.jpg"
|
||||
}
|
||||
|
||||
# Transcode any image to a 6K JPG (max 3160px wide)
|
||||
img2jpg-large() {
|
||||
img="$1"
|
||||
shift
|
||||
|
||||
magick "$img" "$@" -resize 3160x\> -quality 85 -strip "${img%.*}-large.jpg"
|
||||
magick "$img" "$@" -resize 1800x\> -quality 95 -strip "${img%.*}-medium.jpg"
|
||||
}
|
||||
|
||||
# Transcode any image to compressed-but-lossless PNG
|
||||
|
||||
@@ -7,11 +7,11 @@ ga() {
|
||||
|
||||
local branch="$1"
|
||||
local base="$(basename "$PWD")"
|
||||
local wt_path="../${base}--${branch}"
|
||||
local path="../${base}--${branch}"
|
||||
|
||||
git worktree add -b "$branch" "$wt_path"
|
||||
mise trust "$wt_path"
|
||||
cd "$wt_path"
|
||||
git worktree add -b "$branch" "$path"
|
||||
mise trust "$path"
|
||||
cd "$path"
|
||||
}
|
||||
|
||||
# Remove worktree and branch from within active worktree directory.
|
||||
|
||||
@@ -3,6 +3,7 @@ source = ~/.local/share/omarchy/default/hypr/apps/1password.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/browser.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/localsend.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Fix splash screen showing in weird places and prevent annoying focus takeovers
|
||||
windowrule {
|
||||
name = jetbrains-splash
|
||||
match:class = ^(jetbrains-.*)$
|
||||
match:title = ^(splash)$
|
||||
match:float = 1
|
||||
tag = +jetbrains-splash
|
||||
center = on
|
||||
no_focus = on
|
||||
border_size = 0
|
||||
}
|
||||
|
||||
# Center popups/find windows
|
||||
windowrule {
|
||||
name = jetbrains-popup
|
||||
match:class = ^(jetbrains-.*)
|
||||
match:title = ^(| )$
|
||||
match:float = 1
|
||||
tag = +jetbrains
|
||||
center = on
|
||||
# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.)
|
||||
stay_focused = on
|
||||
border_size = 0
|
||||
min_size = (monitor_w*0.5) (monitor_h*0.5)
|
||||
}
|
||||
|
||||
# Disable window flicker when autocomplete or tooltips appear
|
||||
windowrule {
|
||||
name = jetbrains-tooltip
|
||||
match:class = ^(jetbrains-.*)$
|
||||
match:title = ^(win.*)$
|
||||
match:float = 1
|
||||
no_initial_focus = on
|
||||
}
|
||||
|
||||
# Disable mouse focus
|
||||
windowrule {
|
||||
name = jetbrains-focus
|
||||
no_follow_mouse = on
|
||||
match:class = ^(jetbrains-.*)$
|
||||
}
|
||||
@@ -13,7 +13,7 @@ bindd = , XF86Calculator, Calculator, exec, gnome-calculator
|
||||
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar
|
||||
bindd = SUPER CTRL, SPACE, Theme background menu, exec, omarchy-menu background
|
||||
bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, omarchy-menu theme
|
||||
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, omarchy-hyprland-active-window-transparency-toggle
|
||||
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
|
||||
bindd = SUPER SHIFT, BACKSPACE, Toggle window gaps, exec, omarchy-hyprland-window-gaps-toggle
|
||||
bindd = SUPER CTRL, BACKSPACE, Toggle single-window square aspect, exec, omarchy-hyprland-window-single-square-aspect-toggle
|
||||
|
||||
@@ -42,8 +42,8 @@ bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
|
||||
bindd = SUPER CTRL, S, Share, exec, omarchy-menu share
|
||||
|
||||
# Waybar-less information
|
||||
bindd = SUPER CTRL ALT, T, Show time, exec, notify-send -u low " $(date +"%A %H:%M · %d %B %Y · Week %V")"
|
||||
bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send -u low "$(omarchy-battery-status)"
|
||||
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 "$(omarchy-battery-status)"
|
||||
|
||||
# Control panels
|
||||
bindd = SUPER CTRL, A, Audio controls, exec, omarchy-launch-audio
|
||||
|
||||
@@ -2,7 +2,7 @@ TARGET_OS_NAME="Omarchy"
|
||||
|
||||
ESP_PATH="/boot"
|
||||
|
||||
KERNEL_CMDLINE[default]+="@@CMDLINE@@"
|
||||
KERNEL_CMDLINE[default]="@@CMDLINE@@"
|
||||
KERNEL_CMDLINE[default]+=" quiet splash"
|
||||
|
||||
ENABLE_UKI=yes
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from gi import require_version
|
||||
|
||||
require_version("Nautilus", "4.1")
|
||||
|
||||
from gi.repository import GObject, Gio, Nautilus
|
||||
|
||||
|
||||
class SendViaLocalSendAction(GObject.GObject, Nautilus.MenuProvider):
|
||||
def _launch_localsend(self, paths):
|
||||
command = self._resolve_command()
|
||||
if not command:
|
||||
return
|
||||
|
||||
if command[-1] == "@@":
|
||||
command = command + paths + ["@@"]
|
||||
else:
|
||||
command = command + paths
|
||||
|
||||
Gio.Subprocess.new(command, Gio.SubprocessFlags.NONE)
|
||||
|
||||
def _resolve_command(self):
|
||||
localsend = shutil.which("localsend")
|
||||
if localsend:
|
||||
return [localsend, "--headless", "send"]
|
||||
|
||||
flatpak = shutil.which("flatpak")
|
||||
if flatpak and self._has_flatpak_app(flatpak, "org.localsend.localsend_app"):
|
||||
return [
|
||||
flatpak,
|
||||
"run",
|
||||
"--file-forwarding",
|
||||
"org.localsend.localsend_app",
|
||||
"@@",
|
||||
]
|
||||
|
||||
return None
|
||||
|
||||
def _has_flatpak_app(self, flatpak, app_id):
|
||||
process = Gio.Subprocess.new(
|
||||
[flatpak, "info", app_id],
|
||||
Gio.SubprocessFlags.STDOUT_SILENCE | Gio.SubprocessFlags.STDERR_SILENCE,
|
||||
)
|
||||
return process.wait_check()
|
||||
|
||||
def _selected_paths(self, files):
|
||||
paths = []
|
||||
|
||||
for file in files:
|
||||
location = file.get_location()
|
||||
if not location:
|
||||
continue
|
||||
|
||||
path = location.get_path()
|
||||
if path and path not in paths:
|
||||
paths.append(path)
|
||||
|
||||
return paths
|
||||
|
||||
def _make_item(self, paths):
|
||||
label = (
|
||||
"Send via LocalSend" if len(paths) == 1 else "Send selected via LocalSend"
|
||||
)
|
||||
item = Nautilus.MenuItem(
|
||||
name="LocalSendNautilus::send_via_localsend",
|
||||
label=label,
|
||||
icon="localsend",
|
||||
)
|
||||
item.connect("activate", self._on_activate, paths)
|
||||
return item
|
||||
|
||||
def _on_activate(self, _menu, paths):
|
||||
self._launch_localsend(paths)
|
||||
|
||||
def get_file_items(self, *args):
|
||||
files = args[0] if len(args) == 1 else args[1]
|
||||
paths = self._selected_paths(files)
|
||||
|
||||
if not paths or not self._resolve_command():
|
||||
return []
|
||||
|
||||
return [self._make_item(paths)]
|
||||
@@ -29,4 +29,5 @@ if [[ $1 == "post" ]]; then
|
||||
fi
|
||||
done
|
||||
) &
|
||||
disown
|
||||
fi
|
||||
|
||||
@@ -14,7 +14,6 @@ run_logged $OMARCHY_INSTALL/config/mise-work.sh
|
||||
run_logged $OMARCHY_INSTALL/config/fix-powerprofilesctl-shebang.sh
|
||||
run_logged $OMARCHY_INSTALL/config/docker.sh
|
||||
run_logged $OMARCHY_INSTALL/config/mimetypes.sh
|
||||
run_logged $OMARCHY_INSTALL/config/nautilus-python.sh
|
||||
run_logged $OMARCHY_INSTALL/config/remove-fcitx5-autostart.sh
|
||||
run_logged $OMARCHY_INSTALL/config/localdb.sh
|
||||
run_logged $OMARCHY_INSTALL/config/walker-elephant.sh
|
||||
@@ -27,7 +26,6 @@ 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
|
||||
@@ -36,30 +34,21 @@ 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/intel/video-acceleration.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/lpmd.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/thermald.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/ipu7-camera.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/ptl-kernel.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/fix-wifi7-eht.sh
|
||||
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-haptic-touchpad.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-ptl-display.sh
|
||||
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-audio-mixer.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-mic.sh
|
||||
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/framework/fix-f13-amd-audio-input.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/framework/qmk-hid.sh
|
||||
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/apple/fix-spi-keyboard.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/apple/fix-suspend-nvme.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/apple/fix-t2.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
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-suspend-nvme.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh
|
||||
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
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
# Fix Dell XPS haptic touchpad.
|
||||
# The Synaptics haptic touchpad (06CB:D01A) uses the HID Manual Trigger
|
||||
# protocol, but the kernel's HID haptic subsystem only supports Auto Trigger.
|
||||
# This sets up a lightweight daemon that monitors touchpad button events and
|
||||
# sends haptic pulses via HID feature reports on the hidraw device.
|
||||
# Also disables I2C runtime PM to prevent the haptic engine losing state
|
||||
# across suspend/resume.
|
||||
|
||||
if omarchy-hw-match "XPS" \
|
||||
&& ls /sys/bus/i2c/devices/i2c-VEN_06CB:00 2>/dev/null; then
|
||||
|
||||
# Keep I2C controller power on to prevent haptic engine losing state
|
||||
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
|
||||
|
||||
# Haptic feedback daemon as a systemd service
|
||||
sudo tee /etc/systemd/system/dell-xps-haptic-touchpad.service << SVC
|
||||
[Unit]
|
||||
Description=Dell XPS haptic touchpad feedback
|
||||
After=systemd-udev-settle.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=$OMARCHY_PATH/bin/omarchy-haptic-touchpad
|
||||
Restart=on-failure
|
||||
RestartSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
SVC
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable dell-xps-haptic-touchpad.service
|
||||
fi
|
||||
@@ -1,21 +0,0 @@
|
||||
# Fix display issues on Dell XPS 2026+ with LG OLED panel and Intel Panther Lake (Xe3) GPU.
|
||||
# Power-saving features cause the screen to run at 10hz.
|
||||
if omarchy-hw-match "XPS" \
|
||||
&& omarchy-hw-intel-ptl \
|
||||
&& test "$(od -An -tx1 -j8 -N2 /sys/class/drm/card*-eDP-*/edid 2>/dev/null | tr -d ' \n')" = "30e4"; then
|
||||
|
||||
echo "Detected Dell XPS with LG OLED panel on Panther Lake, applying display power-saving fix..."
|
||||
|
||||
CMDLINE='KERNEL_CMDLINE[default]+=" xe.enable_panel_replay=0"'
|
||||
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/dell-xps-ptl-display.conf >/dev/null
|
||||
# Fix Dell XPS OLED display issues by disabling Xe PSR2 power-saving feature
|
||||
$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_panel_replay' /etc/default/limine; then
|
||||
echo "$CMDLINE" | sudo tee -a /etc/default/limine >/dev/null
|
||||
fi
|
||||
fi
|
||||
@@ -19,7 +19,6 @@ if lspci -nn | grep -q "106b:180[12]"; then
|
||||
sudo systemctl enable tiny-dfr.service
|
||||
|
||||
echo "apple-bce" | sudo tee /etc/modules-load.d/t2.conf >/dev/null
|
||||
echo "hci_bcm4377" | sudo tee -a /etc/modules-load.d/t2.conf >/dev/null
|
||||
|
||||
echo "MODULES+=(apple-bce usbhid hid_apple hid_generic xhci_pci xhci_hcd)" | sudo tee /etc/mkinitcpio.conf.d/apple-t2.conf >/dev/null
|
||||
|
||||
@@ -32,13 +31,5 @@ EOF
|
||||
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"
|
||||
EOF
|
||||
|
||||
cat <<EOF | sudo tee /etc/t2fand.conf >/dev/null
|
||||
[Fan1]
|
||||
low_temp=55
|
||||
high_temp=75
|
||||
speed_curve=linear
|
||||
always_full_speed=false
|
||||
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,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
|
||||
@@ -1,5 +1,5 @@
|
||||
# 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 / Iris / Xe / Arc use intel-media-driver
|
||||
if [[ ${INTEL_GPU,,} =~ (hd\ graphics|uhd\ graphics|xe|iris|arc) ]]; then
|
||||
@@ -1,15 +0,0 @@
|
||||
# Temporary fix for Dell XPS 14/16 on Panther Lake
|
||||
# Disable WiFi 7 (EHT/802.11be) on Intel BE200/BE211 cards
|
||||
# The iwlwifi driver has a broken EHT RX data path — APs drop to MCS 0 NSS 1
|
||||
# when EHT is negotiated, making WiFi unusable. Disabling EHT falls
|
||||
# back to WiFi 6 (HE/802.11ax) which works at full speed.
|
||||
# This should be removed when Intel fixes the firmware/driver.
|
||||
|
||||
if lspci -nn | grep -qE '\[8086:(e440|272b)\]'; then
|
||||
sudo tee /etc/modprobe.d/iwlwifi-disable-eht.conf <<'EOF'
|
||||
# Temporary fix Dell XPS 14/16 on Panther lake
|
||||
# Disable WiFi 7 (EHT) on Intel BE200/BE211 — broken RX rate adaptation
|
||||
# Remove this file when fixes land in the iwlwifi EHT data path
|
||||
options iwlwifi disable_11be=Y
|
||||
EOF
|
||||
fi
|
||||
@@ -1,10 +0,0 @@
|
||||
# Install Intel Low Power Mode Daemon for supported hybrid Intel CPUs (Alder Lake and newer)
|
||||
# Supported models: Alder Lake (151/154), Raptor Lake (183/186/191),
|
||||
# Meteor Lake (170/172), Lunar Lake (189), Panther Lake (204)
|
||||
|
||||
if omarchy-hw-intel && omarchy-battery-present; then
|
||||
cpu_model=$(grep -m1 "^model\s*:" /proc/cpuinfo 2>/dev/null | cut -d: -f2 | tr -d ' ')
|
||||
if [[ "$cpu_model" =~ ^(151|154|170|172|183|186|189|191|204)$ ]]; then
|
||||
omarchy-pkg-add intel-lpmd
|
||||
fi
|
||||
fi
|
||||
@@ -1,15 +0,0 @@
|
||||
# Install Panther Lake kernel for Intel Panther Lake systems
|
||||
# The linux-ptl kernel includes audio driver patches not yet in mainline.
|
||||
|
||||
if omarchy-hw-intel-ptl; then
|
||||
echo "Detected Intel Panther Lake, installing PTL kernel..."
|
||||
|
||||
omarchy-pkg-add linux-ptl linux-ptl-headers
|
||||
sudo pacman -Rdd --noconfirm linux linux-headers 2>/dev/null || true
|
||||
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/intel-panther-lake.conf >/dev/null
|
||||
# Only show Panther Lake kernel in boot menu
|
||||
BOOT_ORDER="linux-ptl*, *fallback, Snapshots"
|
||||
EOF
|
||||
fi
|
||||
@@ -1,4 +0,0 @@
|
||||
EXTENSIONS_DIR="$HOME/.local/share/nautilus-python/extensions"
|
||||
|
||||
mkdir -p "$EXTENSIONS_DIR"
|
||||
cp "$OMARCHY_PATH/default/nautilus-python/extensions/localsend.py" "$EXTENSIONS_DIR/"
|
||||
@@ -16,7 +16,6 @@ brightnessctl
|
||||
btop
|
||||
chromium
|
||||
clang
|
||||
claude-code
|
||||
cups
|
||||
cups-browsed
|
||||
cups-filters
|
||||
|
||||
@@ -20,7 +20,6 @@ jdk-openjdk
|
||||
libpulse
|
||||
libsass
|
||||
intel-ipu7-camera
|
||||
intel-lpmd
|
||||
intel-media-driver
|
||||
libva-intel-driver
|
||||
libva-nvidia-driver
|
||||
@@ -30,8 +29,6 @@ limine-snapper-sync
|
||||
linux
|
||||
linux-firmware
|
||||
linux-headers
|
||||
linux-ptl
|
||||
linux-ptl-headers
|
||||
macbook12-spi-driver-dkms
|
||||
nvidia-580xx-dkms
|
||||
nvidia-dkms
|
||||
|
||||
@@ -1,6 +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
|
||||
omarchy-npx-install @mariozechner/pi-coding-agent pi
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
echo "Fix audio input on AMD Framework laptops"
|
||||
|
||||
source $OMARCHY_PATH/install/config/hardware/framework/fix-f13-amd-audio-input.sh || true
|
||||
source $OMARCHY_PATH/install/config/hardware/fix-f13-amd-audio-input.sh || true
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
echo "Fix NVMe suspend issues on MacBook models"
|
||||
|
||||
bash $OMARCHY_PATH/install/config/hardware/apple/fix-suspend-nvme.sh
|
||||
bash $OMARCHY_PATH/install/config/hardware/fix-apple-suspend-nvme.sh
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
echo "Fix microphone gain and audio mixing on Asus ROG laptops"
|
||||
|
||||
source "$OMARCHY_PATH/install/config/hardware/asus/fix-mic.sh"
|
||||
source "$OMARCHY_PATH/install/config/hardware/asus/fix-audio-mixer.sh"
|
||||
source "$OMARCHY_PATH/install/config/hardware/fix-asus-rog-mic.sh"
|
||||
source "$OMARCHY_PATH/install/config/hardware/fix-asus-rog-audio-mixer.sh"
|
||||
|
||||
if omarchy-hw-asus-rog; then
|
||||
omarchy-restart-pipewire
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
echo "Install Framework 16 keyboard RGB support"
|
||||
|
||||
source $OMARCHY_PATH/install/packaging/framework16.sh
|
||||
source $OMARCHY_PATH/install/config/hardware/framework/qmk-hid.sh
|
||||
source $OMARCHY_PATH/install/config/hardware/framework16-qmk-hid.sh
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
echo "Remap Copilot key to Omarchy Menu using makima"
|
||||
|
||||
omarchy-pkg-add makima-bin
|
||||
source $OMARCHY_PATH/install/config/makima.sh
|
||||
@@ -1,3 +0,0 @@
|
||||
echo "Add LocalSend entry to Nautilus context menu"
|
||||
|
||||
source $OMARCHY_PATH/install/config/nautilus-python.sh
|
||||
@@ -1,3 +1,3 @@
|
||||
echo "Enable thermald for Intel Sandy Bridge and newer laptops"
|
||||
|
||||
source "$OMARCHY_PATH/install/config/hardware/intel/thermald.sh"
|
||||
source "$OMARCHY_PATH/install/config/hardware/intel-thermald.sh"
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
echo "Enable GPU in voxtype if Vulkan is available"
|
||||
|
||||
if omarchy-cmd-present voxtype; then
|
||||
if omarchy-hw-vulkan; then
|
||||
echo "Vulkan is available, enabling GPU in voxtype"
|
||||
voxtype setup gpu --enable || true
|
||||
fi
|
||||
|
||||
# see https://github.com/peteonrails/voxtype/commit/ce6e9919cbe54cb8808dcb3cdd3bcb3260d7b900
|
||||
# earlier versions of voxtype hard-coded the non-GPU backend in the systemd service file,
|
||||
# so we need to re-run setup to update it to use /usr/bin/voxtype (the symlink)
|
||||
voxtype setup systemd
|
||||
|
||||
systemctl --user restart voxtype
|
||||
omarchy-restart-waybar
|
||||
fi
|
||||
@@ -1,3 +0,0 @@
|
||||
echo "Install Intel Low Power Mode for Intel CPUs"
|
||||
|
||||
source "$OMARCHY_PATH/install/config/hardware/intel/lpmd.sh"
|
||||
@@ -1,6 +0,0 @@
|
||||
echo "Fix KERNEL_CMDLINE merge behavior in /etc/default/limine"
|
||||
|
||||
if [[ -f /etc/default/limine ]]; then
|
||||
sudo sed -i 's/^KERNEL_CMDLINE\[default\]="/KERNEL_CMDLINE[default]+="/' /etc/default/limine
|
||||
sudo limine-mkinitcpio
|
||||
fi
|
||||
@@ -1,7 +0,0 @@
|
||||
echo "Load Bluetooth driver module on T2 Macs"
|
||||
|
||||
if lspci -nn | grep -q "106b:180[12]"; then
|
||||
if ! grep -q "hci_bcm4377" /etc/modules-load.d/t2.conf 2>/dev/null; then
|
||||
echo "hci_bcm4377" | sudo tee -a /etc/modules-load.d/t2.conf >/dev/null
|
||||
fi
|
||||
fi
|
||||
@@ -1,11 +0,0 @@
|
||||
echo "Install tuned fan curve for T2 MacBook"
|
||||
|
||||
if lspci -nn | grep -q "106b:180[12]" && [[ ! -f /etc/t2fand.conf ]]; then
|
||||
cat <<EOF | sudo tee /etc/t2fand.conf >/dev/null
|
||||
[Fan1]
|
||||
low_temp=55
|
||||
high_temp=75
|
||||
speed_curve=linear
|
||||
always_full_speed=false
|
||||
EOF
|
||||
fi
|
||||
@@ -1,7 +0,0 @@
|
||||
echo "Remove misleading waybar network transfer speeds"
|
||||
|
||||
if grep -q "bandwidthDownBytes" ~/.config/waybar/config.jsonc; then
|
||||
sed -i 's/"tooltip-format-wifi": "{essid} ({frequency} GHz)\\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}"/"tooltip-format-wifi": "{essid} ({frequency} GHz)"/' ~/.config/waybar/config.jsonc
|
||||
sed -i 's/"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}"/"tooltip-format-ethernet": "Connected"/' ~/.config/waybar/config.jsonc
|
||||
omarchy-restart-waybar
|
||||
fi
|
||||
|
Before Width: | Height: | Size: 308 KiB After Width: | Height: | Size: 600 KiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 443 KiB |
|
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 568 KiB |
|
Before Width: | Height: | Size: 365 KiB After Width: | Height: | Size: 436 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 478 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 561 KiB After Width: | Height: | Size: 543 KiB |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 525 KiB |
|
Before Width: | Height: | Size: 435 KiB After Width: | Height: | Size: 598 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 2.0 MiB |
@@ -1,64 +0,0 @@
|
||||
# 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"
|
||||
@@ -1 +0,0 @@
|
||||
14,31,41
|
||||
@@ -1,35 +0,0 @@
|
||||
# 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"
|
||||
@@ -1,26 +0,0 @@
|
||||
$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
|
||||
}
|
||||
}
|
||||