Compare commits

..

2 Commits

Author SHA1 Message Date
[1;13DDavid Heinemeier Hansson
9aff0d4b3b Note about consequences 2026-02-15 23:06:07 +01:00
David Heinemeier Hansson
bcd52fa289 Switch back to mainline chromium
We no longer need the fork, as the themeing is now fully natively
supported
2026-02-13 18:08:42 +01:00
147 changed files with 170 additions and 1314 deletions

View File

@@ -1,62 +0,0 @@
# Style
- Two spaces for indentation, no tabs
- Use Bash syntax for conditionals: `[[ -f $file ]]`, not `[ -f "$file" ]`
# Command Naming
All commands start with `omarchy-`. Prefixes indicate purpose:
- `cmd-` - check if commands exist, misc utility commands
- `pkg-` - package management helpers
- `hw-` - hardware detection (return exit codes for use in conditionals)
- `refresh-` - copy default config to user's `~/.config/`
- `restart-` - restart a component
- `launch-` - open applications
- `install-` - install optional software
- `setup-` - interactive setup wizards
- `toggle-` - toggle features on/off
- `theme-` - theme management
- `update-` - update components
# Helper Commands
Use these instead of raw shell commands:
- `omarchy-cmd-missing` / `omarchy-cmd-present` - check for commands
- `omarchy-pkg-missing` / `omarchy-pkg-present` - check for packages
- `omarchy-pkg-add` - install packages (handles both pacman and AUR)
- `omarchy-hw-asus-rog` - detect ASUS ROG hardware (and similar `hw-*` commands)
# Config Structure
- `config/` - default configs copied to `~/.config/`
- `default/themed/*.tpl` - templates with `{{ variable }}` placeholders for theme colors
- `themes/*/colors.toml` - theme color definitions (accent, background, foreground, color0-15)
# Refresh Pattern
To copy a default config to user config with automatic backup:
```bash
omarchy-refresh-config hypr/hyprlock.conf
```
This copies `~/.local/share/omarchy/config/hypr/hyprlock.conf` to `~/.config/hypr/hyprlock.conf`.
# Migrations
To create a new migration, run `omarchy-dev-add-migration --no-edit`. This creates a migration file named after the unix timestamp of the last commit.
Migration format:
- No shebang line
- Start with an `echo` describing what the migration does
Example:
```bash
echo "Disable fingerprint in hyprlock if fingerprint auth is not configured"
if omarchy-cmd-missing fprintd-list || ! fprintd-list "$USER" 2>/dev/null | grep -q "finger"; then
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = false/' ~/.config/hypr/hyprlock.conf
fi
```

View File

@@ -1,13 +0,0 @@
#!/bin/bash
# Returns true if a battery is present on the system.
# Used by the battery monitor and other battery-related checks.
for bat in /sys/class/power_supply/BAT*; do
[[ -r "$bat/present" ]] &&
[[ "$(cat "$bat/present")" == "1" ]] &&
[[ "$(cat "$bat/type")" == "Battery" ]] &&
exit 0
done
exit 1

View File

@@ -3,15 +3,14 @@
# Set the branch for Omarchy's git repository. # Set the branch for Omarchy's git repository.
if (($# == 0)); then if (($# == 0)); then
echo "Usage: omarchy-branch-set [master|rc|dev]" echo "Usage: omarchy-branch-set [master|dev]"
exit 1 exit 1
else else
branch="$1" branch="$1"
fi fi
if [[ "$branch" != "master" && "$branch" != "rc" && "$branch" != "dev" ]]; then case "$branch" in
echo "Error: Invalid branch '$branch'. Must be one of: master, rc, dev" "master") git -C $OMARCHY_PATH switch master ;;
exit 1 "dev") git -C $OMARCHY_PATH switch dev ;;
fi *) echo "Unknown branch: $branch"; exit 1; ;;
esac
git -C $OMARCHY_PATH switch $branch

View File

@@ -1,21 +0,0 @@
#!/bin/bash
# Adjust brightness on the most likely display device.
# Usage: omarchy-brightness-display <step>
step="${1:-+5%}"
# Start with the first possible output, then refine to the most likely given an order heuristic.
device="$(ls -1 /sys/class/backlight 2>/dev/null | head -n1)"
for candidate in amdgpu_bl* intel_backlight acpi_video*; do
if [[ -e "/sys/class/backlight/$candidate" ]]; then
device="$candidate"
break
fi
done
# Set the actual brightness of the display device.
brightnessctl -d "$device" set "$step" >/dev/null
# Use SwayOSD to display the new brightness setting.
omarchy-swayosd-brightness "$(brightnessctl -d "$device" -m | cut -d',' -f4 | tr -d '%')"

View File

@@ -1,12 +0,0 @@
#!/bin/bash
# Adjust the brightness on Apple Studio Displays and Apple XDR Displays using asdcontrol.
if [[ $# -eq 0 ]]; then
echo "Adjust Apple Display Brightness by passing +5000 or -5000 (or any range from 0-60000)"
else
device="$(sudo asdcontrol --detect /dev/usb/hiddev* | grep ^/dev/usb/hiddev | cut -d: -f1)"
sudo asdcontrol "$device" -- "$1" >/dev/null
value="$(sudo asdcontrol "$device" | awk -F= '/BRIGHTNESS=/{print $2+0}')"
omarchy-swayosd-brightness "$(( value * 100 / 60000 ))"
fi

View File

@@ -1,40 +0,0 @@
#!/bin/bash
# Adjust keyboard backlight brightness using available steps.
# Usage: omarchy-brightness-keyboard <up|down>
direction="${1:-up}"
# Find keyboard backlight device (look for *kbd_backlight* pattern in leds class).
device=""
for candidate in /sys/class/leds/*kbd_backlight*; do
if [[ -e "$candidate" ]]; then
device="$(basename "$candidate")"
break
fi
done
if [[ -z "$device" ]]; then
echo "No keyboard backlight device found" >&2
exit 1
fi
# Get current and max brightness to determine step size.
max_brightness="$(brightnessctl -d "$device" max)"
current_brightness="$(brightnessctl -d "$device" get)"
# Calculate step as one unit (keyboards typically have discrete levels like 0-3).
if [[ "$direction" == "up" ]]; then
new_brightness=$((current_brightness + 1))
[[ $new_brightness -gt $max_brightness ]] && new_brightness=$max_brightness
else
new_brightness=$((current_brightness - 1))
[[ $new_brightness -lt 0 ]] && new_brightness=0
fi
# Set the new brightness.
brightnessctl -d "$device" set "$new_brightness" >/dev/null
# Use SwayOSD to display the new brightness setting.
percent=$((new_brightness * 100 / max_brightness))
omarchy-swayosd-brightness "$percent"

View File

@@ -14,7 +14,7 @@
# and people with a lot of experience managing Linux systems. # and people with a lot of experience managing Linux systems.
if (($# == 0)); then if (($# == 0)); then
echo "Usage: omarchy-channel-set [stable|rc|edge|dev]" echo "Usage: omarchy-channel-set [stable|edge|dev]"
exit 1 exit 1
else else
channel="$1" channel="$1"
@@ -22,7 +22,6 @@ fi
case "$channel" in case "$channel" in
"stable") omarchy-branch-set "master" && omarchy-refresh-pacman "stable" && sudo pacman -Suu --noconfirm ;; "stable") omarchy-branch-set "master" && omarchy-refresh-pacman "stable" && sudo pacman -Suu --noconfirm ;;
"rc") omarchy-branch-set "rc" && omarchy-refresh-pacman "rc" && sudo pacman -Suu --noconfirm ;;
"edge") omarchy-branch-set "master" && omarchy-refresh-pacman "edge" ;; "edge") omarchy-branch-set "master" && omarchy-refresh-pacman "edge" ;;
"dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;; "dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;;
*) echo "Unknown channel: $channel"; exit 1; ;; *) echo "Unknown channel: $channel"; exit 1; ;;

View File

@@ -0,0 +1,16 @@
#!/bin/bash
# Adjust the brightness on Apple Studio Displays and Apple XDR Displays using asdcontrol.
if [[ $# -eq 0 ]]; then
echo "Adjust Apple Display Brightness by passing +5000 or -5000 (or any range from 0-60000)"
else
DEVICE="$(sudo asdcontrol --detect /dev/usb/hiddev* | grep ^/dev/usb/hiddev | cut -d: -f1)"
sudo asdcontrol "$DEVICE" -- "$1" >/dev/null
VALUE="$(sudo asdcontrol "$DEVICE" | awk -F= '/BRIGHTNESS=/{print $2+0}')"
swayosd-client \
--monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \
--custom-icon display-brightness \
--custom-progress "$(awk -v v="$VALUE" 'BEGIN{printf "%.2f", v/60000}')" \
--custom-progress-text "$(( VALUE * 100 / 60000 ))%"
fi

View File

@@ -17,11 +17,9 @@ if [ -f "$MKINITCPIO_CONF" ] && grep -q "^HOOKS+=(resume)$" "$MKINITCPIO_CONF";
exit 0 exit 0
fi fi
if [[ $1 != "--force" ]]; then MEM_TOTAL_HUMAN=$(free --human | awk '/Mem/ {print $2}')
MEM_TOTAL_HUMAN=$(free --human | awk '/Mem/ {print $2}') if ! gum confirm "Use $MEM_TOTAL_HUMAN on boot drive to make hibernation available?"; then
if ! gum confirm "Use $MEM_TOTAL_HUMAN on boot drive to make hibernation available?"; then exit 0
exit 0
fi
fi fi
SWAP_SUBVOLUME="/swap" SWAP_SUBVOLUME="/swap"
@@ -59,26 +57,14 @@ sudo mkdir -p /etc/mkinitcpio.conf.d
echo "Adding resume hook to $MKINITCPIO_CONF" echo "Adding resume hook to $MKINITCPIO_CONF"
echo "HOOKS+=(resume)" | sudo tee "$MKINITCPIO_CONF" >/dev/null echo "HOOKS+=(resume)" | sudo tee "$MKINITCPIO_CONF" >/dev/null
# Ensure keyboard backlight doesn't prevent sleep # Configure suspend-then-hibernate
sudo cp -p "$OMARCHY_PATH/default/systemd/system-sleep/keyboard-backlight" /usr/lib/systemd/system-sleep/ echo "Configuring suspend-then-hibernate"
sudo mkdir -p /etc/systemd/logind.conf.d /etc/systemd/sleep.conf.d
sudo cp "$OMARCHY_PATH/default/systemd/lid.conf" /etc/systemd/logind.conf.d/
sudo cp "$OMARCHY_PATH/default/systemd/hibernate.conf" /etc/systemd/sleep.conf.d/
# Use ACPI alarm for RTC wakeup on s2idle systems (needed for suspend-then-hibernate) # Regenerate initramfs
if grep -q "\[s2idle\]" /sys/power/mem_sleep 2>/dev/null; then
LIMINE_DROP_IN="/etc/limine-entry-tool.d/rtc-alarm.conf"
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
fi
fi
# Regenerate initramfs and boot entry
echo "Regenerating initramfs..." echo "Regenerating initramfs..."
sudo limine-mkinitcpio sudo limine-mkinitcpio
sudo limine-update
echo echo "Hibernation enabled"
if [[ $1 != "--force" ]] && gum confirm "Reboot to enable hibernation?"; then
omarchy-cmd-reboot
fi

View File

@@ -1,6 +0,0 @@
#!/bin/bash
# Detect whether the computer is an Asus ROG machine.
[[ "$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)" == "ASUSTeK COMPUTER INC." ]] &&
grep -q "ROG" /sys/class/dmi/id/product_family 2>/dev/null

View File

@@ -1,17 +0,0 @@
#!/bin/bash
# Install and launch Geforce Now.
set -e
omarchy-pkg-add flatpak
cd /tmp
# Download and run GeForce NOW
curl -LO https://international.download.nvidia.com/GFNLinux/GeForceNOWSetup.bin
chmod +x GeForceNOWSetup.bin
./GeForceNOWSetup.bin
# Ensure a separate browser process not started by GFN is available.
# If not, it seems like GFN has a tendency to hang on login.
setsid omarchy-launch-browser

View File

@@ -1,10 +1,15 @@
#!/bin/bash #!/bin/bash
# Install the Tailscale mesh VPN service and a web app for the Tailscale Admin Console. # Install the Tailscale mesh VPN service, the tsui TUI management app, and a web app for the Tailscale Admin Console.
curl -fsSL https://tailscale.com/install.sh | sh curl -fsSL https://tailscale.com/install.sh | sh
curl -fsSL https://neuralink.com/tsui/install.sh | bash
echo -e "\nStarting Tailscale..." echo -e "\nStarting Tailscale..."
sudo tailscale up --accept-routes sudo tailscale up --accept-routes
omarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png echo -e "\nAdd tsui to sudoers..."
echo "$USER ALL=(ALL) NOPASSWD: $(which tsui)" | sudo tee /etc/sudoers.d/tsui
omarchy-tui-install "Tailscale" "sudo tsui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
omarchy-webapp-install "Tailscale Admin Console" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# Launch the Walker application launcher while ensuring that it's data provider (called elephant) is running first. # Launch the Walker application launcher while ensuring that it's data provider (called elephant) is runnig first.
# Ensure elephant is running before launching walker # Ensure elephant is running before launching walker
if ! pgrep -x elephant > /dev/null; then if ! pgrep -x elephant > /dev/null; then

View File

@@ -88,11 +88,10 @@ show_learn_menu() {
} }
show_trigger_menu() { show_trigger_menu() {
case $(menu "Trigger" " Capture\n Share\n󰔎 Toggle\n Hardware") in case $(menu "Trigger" " Capture\n Share\n󰔎 Toggle") in
*Capture*) show_capture_menu ;; *Capture*) show_capture_menu ;;
*Share*) show_share_menu ;; *Share*) show_share_menu ;;
*Toggle*) show_toggle_menu ;; *Toggle*) show_toggle_menu ;;
*Hardware*) show_hardware_menu ;;
*) show_main_menu ;; *) show_main_menu ;;
esac esac
} }
@@ -174,13 +173,6 @@ show_toggle_menu() {
esac esac
} }
show_hardware_menu() {
case $(menu "Toggle" " Hybrid GPU") in
*"Hybrid GPU"*) present_terminal omarchy-toggle-hybrid-gpu ;;
*) show_trigger_menu ;;
esac
}
show_style_menu() { show_style_menu() {
case $(menu "Style" "󰸌 Theme\n Font\n Background\n Hyprland\n󱄄 Screensaver\n About") in case $(menu "Style" "󰸌 Theme\n Font\n Background\n Hyprland\n󱄄 Screensaver\n About") in
*Theme*) show_theme_menu ;; *Theme*) show_theme_menu ;;
@@ -355,9 +347,8 @@ show_install_ai_menu() {
} }
show_install_gaming_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\n RetroArch [AUR]\n󰍳 Minecraft\n󰖺 Xbox Controller [AUR]") in
*Steam*) present_terminal omarchy-install-steam ;; *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" ;; *RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;; *Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
*Xbox*) present_terminal omarchy-install-xbox-controllers ;; *Xbox*) present_terminal omarchy-install-xbox-controllers ;;
@@ -431,12 +422,11 @@ show_install_elixir_menu() {
} }
show_remove_menu() { show_remove_menu() {
case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰵮 Development\n󰏓 Preinstalls\n Dictation\n󰸌 Theme\n󰍲 Windows\n󰈷 Fingerprint\n Fido2") in case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰵮 Development\n Dictation\n󰸌 Theme\n󰍲 Windows\n󰈷 Fingerprint\n Fido2") in
*Package*) terminal omarchy-pkg-remove ;; *Package*) terminal omarchy-pkg-remove ;;
*Web*) present_terminal omarchy-webapp-remove ;; *Web*) present_terminal omarchy-webapp-remove ;;
*TUI*) present_terminal omarchy-tui-remove ;; *TUI*) present_terminal omarchy-tui-remove ;;
*Development*) show_remove_development_menu ;; *Development*) show_remove_development_menu ;;
*Preinstalls*) present_terminal omarchy-remove-all ;;
*Dictation*) present_terminal omarchy-voxtype-remove ;; *Dictation*) present_terminal omarchy-voxtype-remove ;;
*Theme*) present_terminal omarchy-theme-remove ;; *Theme*) present_terminal omarchy-theme-remove ;;
*Windows*) present_terminal "omarchy-windows-vm remove" ;; *Windows*) present_terminal "omarchy-windows-vm remove" ;;
@@ -447,7 +437,7 @@ show_remove_menu() {
} }
show_remove_development_menu() { show_remove_development_menu() {
case $(menu "Remove" "󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure") in case $(menu "Remove" "󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure") in
*Rails*) present_terminal "omarchy-remove-dev-env ruby" ;; *Rails*) present_terminal "omarchy-remove-dev-env ruby" ;;
*JavaScript*) show_remove_javascript_menu ;; *JavaScript*) show_remove_javascript_menu ;;
*Go*) present_terminal "omarchy-remove-dev-env go" ;; *Go*) present_terminal "omarchy-remove-dev-env go" ;;
@@ -465,7 +455,7 @@ show_remove_development_menu() {
} }
show_remove_javascript_menu() { show_remove_javascript_menu() {
case $(menu "Remove" " Node.js\n Bun\n Deno") in case $(menu "Remove" " Node.js\n Bun\n Deno") in
*Node*) present_terminal "omarchy-remove-dev-env node" ;; *Node*) present_terminal "omarchy-remove-dev-env node" ;;
*Bun*) present_terminal "omarchy-remove-dev-env bun" ;; *Bun*) present_terminal "omarchy-remove-dev-env bun" ;;
*Deno*) present_terminal "omarchy-remove-dev-env deno" ;; *Deno*) present_terminal "omarchy-remove-dev-env deno" ;;
@@ -474,7 +464,7 @@ show_remove_javascript_menu() {
} }
show_remove_php_menu() { show_remove_php_menu() {
case $(menu "Remove" " PHP\n Laravel\n Symfony") in case $(menu "Remove" " PHP\n Laravel\n Symfony") in
*PHP*) present_terminal "omarchy-remove-dev-env php" ;; *PHP*) present_terminal "omarchy-remove-dev-env php" ;;
*Laravel*) present_terminal "omarchy-remove-dev-env laravel" ;; *Laravel*) present_terminal "omarchy-remove-dev-env laravel" ;;
*Symfony*) present_terminal "omarchy-remove-dev-env symfony" ;; *Symfony*) present_terminal "omarchy-remove-dev-env symfony" ;;
@@ -483,7 +473,7 @@ show_remove_php_menu() {
} }
show_remove_elixir_menu() { show_remove_elixir_menu() {
case $(menu "Remove" " Elixir\n Phoenix") in case $(menu "Remove" " Elixir\n Phoenix") in
*Elixir*) present_terminal "omarchy-remove-dev-env elixir" ;; *Elixir*) present_terminal "omarchy-remove-dev-env elixir" ;;
*Phoenix*) present_terminal "omarchy-remove-dev-env phoenix" ;; *Phoenix*) present_terminal "omarchy-remove-dev-env phoenix" ;;
*) show_remove_development_menu ;; *) show_remove_development_menu ;;
@@ -507,9 +497,8 @@ show_update_menu() {
} }
show_update_channel_menu() { show_update_channel_menu() {
case $(menu "Update channel" "🟢 Stable\n🟡 RC\n🟠 Edge\n🔴 Dev") in case $(menu "Update channel" "🟢 Stable\n🟡 Edge\n🔴 Dev") in
*Stable*) present_terminal "omarchy-channel-set stable" ;; *Stable*) present_terminal "omarchy-channel-set stable" ;;
*RC*) present_terminal "omarchy-channel-set rc" ;;
*Edge*) present_terminal "omarchy-channel-set edge" ;; *Edge*) present_terminal "omarchy-channel-set edge" ;;
*Dev*) present_terminal "omarchy-channel-set dev" ;; *Dev*) present_terminal "omarchy-channel-set dev" ;;
*) show_update_menu ;; *) show_update_menu ;;
@@ -557,10 +546,6 @@ show_update_password_menu() {
esac esac
} }
show_about() {
omarchy-launch-about
}
show_system_menu() { show_system_menu() {
local options=" Lock\n󱄄 Screensaver" local options=" Lock\n󱄄 Screensaver"
[ -f ~/.local/state/omarchy/toggles/suspend-on ] && options="$options\n󰒲 Suspend" [ -f ~/.local/state/omarchy/toggles/suspend-on ] && options="$options\n󰒲 Suspend"
@@ -588,7 +573,6 @@ go_to_menu() {
*learn*) show_learn_menu ;; *learn*) show_learn_menu ;;
*trigger*) show_trigger_menu ;; *trigger*) show_trigger_menu ;;
*share*) show_share_menu ;; *share*) show_share_menu ;;
*capture*) show_capture_menu ;;
*style*) show_style_menu ;; *style*) show_style_menu ;;
*theme*) show_theme_menu ;; *theme*) show_theme_menu ;;
*screenshot*) show_screenshot_menu ;; *screenshot*) show_screenshot_menu ;;
@@ -598,7 +582,7 @@ go_to_menu() {
*install*) show_install_menu ;; *install*) show_install_menu ;;
*remove*) show_remove_menu ;; *remove*) show_remove_menu ;;
*update*) show_update_menu ;; *update*) show_update_menu ;;
*about*) show_about ;; *about*) omarchy-launch-about ;;
*system*) show_system_menu ;; *system*) show_system_menu ;;
esac esac
} }

View File

@@ -7,18 +7,17 @@
sudo cp -f /etc/pacman.conf /etc/pacman.conf.bak sudo cp -f /etc/pacman.conf /etc/pacman.conf.bak
sudo cp -f /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak sudo cp -f /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
channel="${1:-stable}" if [[ $1 == "edge" ]]; then
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-edge.conf /etc/pacman.conf
if [[ "$channel" != "stable" && "$channel" != "rc" && "$channel" != "edge" ]]; then sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
echo "Error: Invalid channel '$channel'. Must be one of: stable, rc, edge" echo "Setting channel to edge"
exit 1 else
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-stable.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist
echo "Setting channel to stable"
fi fi
echo "Setting channel to $channel"
echo echo
sudo cp -f "$OMARCHY_PATH/default/pacman/pacman-$channel.conf" /etc/pacman.conf
sudo cp -f "$OMARCHY_PATH/default/pacman/mirrorlist-$channel" /etc/pacman.d/mirrorlist
# Reset all package DBs and then update # Reset all package DBs and then update
sudo pacman -Syyu --noconfirm sudo pacman -Syyu --noconfirm

View File

@@ -1,5 +0,0 @@
#!/bin/bash
# Overwrite the user tmux config with the Omarchy default and reload tmux.
omarchy-refresh-config tmux/tmux.conf

View File

@@ -5,17 +5,9 @@
# Ensure walker is set to autostart # Ensure walker is set to autostart
mkdir -p ~/.config/autostart/ mkdir -p ~/.config/autostart/
cp $OMARCHY_PATH/default/walker/walker.desktop ~/.config/autostart/ cp $OMARCHY_PATH/default/walker/walker.desktop ~/.config/autostart/
# And restarts if it crashes or is killed
mkdir -p ~/.config/systemd/user/app-walker@autostart.service.d/
cp $OMARCHY_PATH/default/walker/restart.conf ~/.config/systemd/user/app-walker@autostart.service.d/restart.conf
systemctl --user daemon-reload systemctl --user daemon-reload
# Refresh configs
omarchy-refresh-config walker/config.toml omarchy-refresh-config walker/config.toml
omarchy-refresh-config elephant/calc.toml omarchy-refresh-config elephant/calc.toml
omarchy-refresh-config elephant/desktopapplications.toml omarchy-refresh-config elephant/desktopapplications.toml
# Restart service
omarchy-restart-walker omarchy-restart-walker

View File

@@ -1,25 +0,0 @@
#!/bin/bash
# Remove preinstalled Omarchy applications (web apps, TUIs, and selected packages).
# This removes all web apps, TUIs, plus specific desktop applications.
if gum confirm "Are you sure you want to remove all preinstalled web apps, TUI wrappers, and desktop applications?"; then
echo -e "Removing preinstalled Omarchy applications...\n"
omarchy-webapp-remove-all
omarchy-tui-remove-all
omarchy-pkg-drop \
aether \
typora \
spotify \
libreoffice-fresh \
1password-beta \
1password-cli \
xournalpp \
signal-desktop \
pinta \
obsidian \
obs-studio \
kdenlive
fi

View File

@@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
# Remove a development environment that was previously installed via omarchy-install-dev-env.
# Usage: omarchy-remove-dev-env <ruby|node|bun|deno|go|php|laravel|symfony|python|elixir|phoenix|zig|rust|java|dotnet|ocaml|clojure>
if [[ -z "$1" ]]; then if [[ -z "$1" ]]; then
echo "Usage: omarchy-remove-dev-env <ruby|node|bun|deno|go|php|laravel|symfony|python|elixir|phoenix|zig|rust|java|dotnet|ocaml|clojure>" >&2 echo "Usage: omarchy-remove-dev-env <ruby|node|bun|deno|go|php|laravel|symfony|python|elixir|phoenix|zig|rust|java|dotnet|ocaml|clojure>" >&2
exit 1 exit 1

View File

@@ -1,7 +1,4 @@
#!/bin/bash #!/bin/bash
# Reset the sudo lockout/faillock for the current user.
# This clears any failed authentication attempts that may have locked the user out.
# Resetting sudo lockout for user # Resetting sudo lockout for user
su -c "faillock --reset --user $USER" su -c "faillock --reset --user $USER"

View File

@@ -1,7 +1,4 @@
#!/bin/bash #!/bin/bash
# Restart an application by killing it and relaunching via uwsm.
# Usage: omarchy-restart-app <application-name>
pkill -x $1 pkill -x $1
setsid uwsm-app -- $1 >/dev/null 2>&1 & setsid uwsm-app -- $1 >/dev/null 2>&1 &

View File

@@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
# Unblock and restart the bluetooth service.
echo -e "Unblocking bluetooth...\n" echo -e "Unblocking bluetooth...\n"
rfkill unblock bluetooth rfkill unblock bluetooth
rfkill list bluetooth rfkill list bluetooth

View File

@@ -1,5 +1,3 @@
#!/bin/bash #!/bin/bash
# Restart the hypridle service (used for idle detection and auto-lock).
omarchy-restart-app hypridle omarchy-restart-app hypridle

View File

@@ -1,5 +1,3 @@
#!/bin/bash #!/bin/bash
# Restart the hyprsunset service (used for blue light filtering/night light).
omarchy-restart-app hyprsunset omarchy-restart-app hyprsunset

View File

@@ -2,6 +2,4 @@
# Reload opencode configuration (used by the Omarchy theme switching). # Reload opencode configuration (used by the Omarchy theme switching).
if pgrep -x opencode >/dev/null; then killall -SIGUSR2 opencode
killall -SIGUSR2 opencode
fi

View File

@@ -1,6 +1,4 @@
#!/bin/bash #!/bin/bash
# Restart the PipeWire audio service to fix audio issues or apply new configuration.
echo -e "Restarting pipewire audio service...\n" echo -e "Restarting pipewire audio service...\n"
systemctl --user restart pipewire.service systemctl --user restart pipewire.service

View File

@@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
# Unblock and restart the Wi-Fi service.
echo -e "Unblocking wifi...\n" echo -e "Unblocking wifi...\n"
rfkill unblock wifi rfkill unblock wifi
rfkill list wifi rfkill list wifi

View File

@@ -1,5 +1,3 @@
#!/bin/bash #!/bin/bash
# Restart the XCompose input method service (fcitx5) to apply new compose key settings.
omarchy-restart-app fcitx5 omarchy-restart-app fcitx5

View File

@@ -58,13 +58,11 @@ EOF
add_hyprlock_fingerprint_icon() { add_hyprlock_fingerprint_icon() {
print_info "Adding fingerprint icon to hyprlock placeholder text..." print_info "Adding fingerprint icon to hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = true/' ~/.config/hypr/hyprlock.conf
} }
remove_hyprlock_fingerprint_icon() { remove_hyprlock_fingerprint_icon() {
print_info "Removing fingerprint icon from hyprlock placeholder text..." print_info "Removing fingerprint icon from hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = false/' ~/.config/hypr/hyprlock.conf
} }
remove_pam_config() { remove_pam_config() {

View File

@@ -1,7 +1,4 @@
#!/bin/bash #!/bin/bash
# Display a "Done!" message with a spinner and wait for user to press any key.
# Used by various install scripts to indicate completion.
echo echo
gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -n 1 -s' gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -n 1 -s'

View File

@@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
# Display the Omarchy logo in the terminal using green color.
# Used by various presentation scripts to show branding.
clear clear
echo -e "\033[32m" echo -e "\033[32m"
cat <~/.local/share/omarchy/logo.txt cat <~/.local/share/omarchy/logo.txt

View File

@@ -31,6 +31,4 @@ create)
restore) restore)
sudo limine-snapper-restore sudo limine-snapper-restore
;; ;;
delete)
sudo snapper -c "$config" delete 0
esac esac

View File

@@ -1,9 +1,5 @@
#!/bin/bash #!/bin/bash
# Manage persistent state files for Omarchy toggles and settings.
# Usage: omarchy-state <set|clear> <state-name-or-pattern>
# Used to track whether features like suspend, idle lock, etc are enabled or disabled.
STATE_DIR="$HOME/.local/state/omarchy" STATE_DIR="$HOME/.local/state/omarchy"
mkdir -p "$STATE_DIR" mkdir -p "$STATE_DIR"

View File

@@ -1,15 +0,0 @@
#!/bin/bash
# Display brightness level using SwayOSD on the current monitor.
# Usage: omarchy-swayosd-brightness <percent>
percent="$1"
progress="$(awk -v p="$percent" 'BEGIN{printf "%.2f", p/100}')"
[[ "$progress" == "0.00" ]] && progress="0.01"
swayosd-client \
--monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \
--custom-icon display-brightness \
--custom-progress "$progress" \
--custom-progress-text "${percent}%"

View File

@@ -1,9 +0,0 @@
#!/bin/bash
# Refresh the current theme from its templates.
THEME_NAME_PATH="$HOME/.config/omarchy/current/theme.name"
if [[ -f $THEME_NAME_PATH ]]; then
omarchy-theme-set "$(cat $THEME_NAME_PATH)"
fi

View File

@@ -57,7 +57,6 @@ omarchy-theme-set-gnome
omarchy-theme-set-browser omarchy-theme-set-browser
omarchy-theme-set-vscode omarchy-theme-set-vscode
omarchy-theme-set-obsidian omarchy-theme-set-obsidian
omarchy-theme-set-asusctl
# Call hook on theme set # Call hook on theme set
omarchy-hook theme-set "$THEME_NAME" omarchy-hook theme-set "$THEME_NAME"

View File

@@ -1,7 +0,0 @@
#!/bin/bash
ASUSCTL_THEME=~/.config/omarchy/current/theme/asusctl.rgb
if omarchy-cmd-present asusctl; then
asusctl aura effect static -c $(sed 's/^#//' $ASUSCTL_THEME)
fi

View File

@@ -2,7 +2,7 @@
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then if omarchy-cmd-present chromium || omarchy-cmd-present helium-browser || omarchy-cmd-present brave; then
if [[ -f $CHROMIUM_THEME ]]; then if [[ -f $CHROMIUM_THEME ]]; then
THEME_RGB_COLOR=$(<$CHROMIUM_THEME) THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ }) THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })

View File

@@ -1,53 +0,0 @@
#!/bin/bash
# Toggle dedicated vs integrated GPU mode via supergfxd (for hybrid gpu laptops, like Asus G14).
# Requires reboot to take effect.
# Ensure supergfxctl has been installed
if omarchy-cmd-missing supergfxctl; then
omarchy-pkg-add supergfxctl
sudo systemctl enable supergfxd
# Needed to deal with restoring to sleep where going through VFIO first means we don't need to reboot.
sudo sed -i "s/\"vfio_enable\": \".*\"/\"vfio_enable\": true/" /etc/supergfxd.conf
fi
gpu_mode=$(supergfxctl -g)
case "$gpu_mode" in
"Integrated")
if gum confirm "Enable dedicated GPU and reboot?"; then
# Switch to hybrid mode
sudo sed -i "s/\"mode\": \".*\"/\"mode\": \"Hybrid\"/" /etc/supergfxd.conf
# Let hybrid mode be the default after system sleep
sudo rm -rf /usr/lib/systemd/system-sleep/force-igpu
# Remove the startup delay override (not needed for Hybrid mode)
sudo rm -rf /etc/systemd/system/supergfxd.service.d/delay-start.conf
omarchy-cmd-reboot
fi
;;
"Hybrid")
if gum confirm "Use only integrated GPU and reboot?"; then
# Switch to integrated mode
sudo sed -i "s/\"mode\": \".*\"/\"mode\": \"Integrated\"/" /etc/supergfxd.conf
# Force igpu mode after system sleep (or dgpu could get activated)
sudo mkdir -p /usr/lib/systemd/system-sleep
sudo cp -p $OMARCHY_PATH/default/systemd/system-sleep/force-igpu /usr/lib/systemd/system-sleep/
# Delay supergfxd startup to avoid race condition with display manager
# that can cause system freeze when booting in Integrated mode
sudo mkdir -p /etc/systemd/system/supergfxd.service.d
sudo cp -p $OMARCHY_PATH/default/systemd/system/supergfxd.service.d/delay-start.conf /etc/systemd/system/supergfxd.service.d/
omarchy-cmd-reboot
fi
;;
*)
echo "Hybrid GPU not found or in unknown mode."
exit 1
;;
esac

View File

@@ -1,36 +0,0 @@
#!/bin/bash
# Remove all TUIs installed via omarchy-tui-install.
# Identifies TUIs by their Exec pattern (xdg-terminal-exec --app-id=TUI.).
set -e
APP_DIR="${1:-$HOME/.local/share/applications}"
ICON_DIR="$HOME/.local/share/applications/icons"
echo "Scanning for TUIs in $APP_DIR..."
tui_desktop_files=()
while IFS= read -r -d '' file; do
if grep -q "Exec=xdg-terminal-exec --app-id=TUI\." "$file" 2>/dev/null; then
tui_desktop_files+=("$file")
fi
done < <(find "$APP_DIR" -maxdepth 1 -name "*.desktop" -print0 2>/dev/null)
if [[ ${#tui_desktop_files[@]} -eq 0 ]]; then
echo "No TUIs found."
exit 0
fi
for file in "${tui_desktop_files[@]}"; do
app_name=$(basename "$file" .desktop)
echo "Removing TUI: $app_name"
rm -f "$file"
rm -f "$ICON_DIR/$app_name.png"
done
if command -v update-desktop-database &>/dev/null; then
update-desktop-database "$APP_DIR" &>/dev/null || true
fi
echo "TUIs removed successfully."

View File

@@ -2,7 +2,7 @@
set -e set -e
trap 'echo ""; echo -e "\033[0;31mSomething went wrong during the update!\n\nPlease review the output above carefully, correct the error, and retry the update.\n\nIf you need assistance, get help from the community at https://omarchy.org/discord\033[0m";omarchy-snapshot delete' ERR 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 if [[ $1 == "-y" ]] || omarchy-update-confirm; then
omarchy-snapshot create || [ $? -eq 127 ] omarchy-snapshot create || [ $? -eq 127 ]

View File

@@ -1,13 +0,0 @@
#!/bin/bash
# Update AUR packages if any are installed
if pacman -Qem >/dev/null; then
if omarchy-pkg-aur-accessible; then
echo -e "\e[32m\nUpdate AUR packages\e[0m"
yay -Sua --noconfirm --cleanafter --ignore gcc14,gcc14-libs
echo
else
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
echo
fi
fi

View File

@@ -7,5 +7,5 @@ if omarchy-cmd-missing fwupdmgr; then
omarchy-pkg-add fwupd omarchy-pkg-add fwupd
fi fi
fwupdmgr refresh --force fwupdmgr refresh
sudo fwupdmgr update sudo fwupdmgr update

View File

@@ -1,10 +0,0 @@
#!/bin/bash
orphans=$(pacman -Qtdq || true)
if [[ -n $orphans ]]; then
echo -e "\e[32m\nRemove orphan system packages\e[0m"
for pkg in $orphans; do
sudo pacman -Rs --noconfirm "$pkg" || true
done
echo
fi

View File

@@ -14,8 +14,6 @@ omarchy-update-keyring
omarchy-update-available-reset omarchy-update-available-reset
omarchy-update-system-pkgs omarchy-update-system-pkgs
omarchy-migrate omarchy-migrate
omarchy-update-aur-pkgs
omarchy-update-orphan-pkgs
omarchy-hook post-update omarchy-hook post-update
omarchy-update-analyze-logs omarchy-update-analyze-logs

View File

@@ -4,3 +4,24 @@ set -e
echo -e "\e[32m\nUpdate system packages\e[0m" echo -e "\e[32m\nUpdate system packages\e[0m"
sudo pacman -Syyu --noconfirm sudo pacman -Syyu --noconfirm
# Update AUR packages if any are installed
if pacman -Qem >/dev/null; then
if omarchy-pkg-aur-accessible; then
echo -e "\e[32m\nUpdate AUR packages\e[0m"
yay -Sua --noconfirm --ignore gcc14,gcc14-libs
echo
else
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
echo
fi
fi
orphans=$(pacman -Qtdq || true)
if [[ -n $orphans ]]; then
echo -e "\e[32m\nRemove orphan system packages\e[0m"
for pkg in $orphans; do
sudo pacman -Rs --noconfirm "$pkg" || true
done
echo
fi

View File

@@ -2,8 +2,6 @@
if grep -q "https://stable-mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then if grep -q "https://stable-mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then
mirror="stable" mirror="stable"
elif grep -q "https://rc-mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then
mirror="rc"
elif grep -q "https://mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then elif grep -q "https://mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then
mirror="edge" mirror="edge"
else else
@@ -14,8 +12,6 @@ if grep -q "https://pkgs.omarchy.org/stable/" /etc/pacman.conf; then
pkgs="stable" pkgs="stable"
elif grep -q "https://pkgs.omarchy.org/edge/" /etc/pacman.conf; then elif grep -q "https://pkgs.omarchy.org/edge/" /etc/pacman.conf; then
pkgs="edge" pkgs="edge"
elif grep -q "https://pkgs.omarchy.org/rc/" /etc/pacman.conf; then
pkgs="rc"
else else
pkgs="unknown" pkgs="unknown"
fi fi

View File

@@ -1,36 +0,0 @@
#!/bin/bash
# Remove all web apps installed via omarchy-webapp-install.
# Identifies web apps by their Exec pattern (omarchy-launch-webapp or omarchy-webapp-handler).
set -e
APP_DIR="${1:-$HOME/.local/share/applications}"
ICON_DIR="$HOME/.local/share/applications/icons"
echo "Scanning for web apps in $APP_DIR..."
webapp_desktop_files=()
while IFS= read -r -d '' file; do
if grep -q "Exec=omarchy-launch-webapp\|Exec=omarchy-webapp-handler" "$file" 2>/dev/null; then
webapp_desktop_files+=("$file")
fi
done < <(find "$APP_DIR" -maxdepth 1 -name "*.desktop" -print0 2>/dev/null)
if [[ ${#webapp_desktop_files[@]} -eq 0 ]]; then
echo "No web apps found."
exit 0
fi
for file in "${webapp_desktop_files[@]}"; do
app_name=$(basename "$file" .desktop)
echo "Removing web app: $app_name"
rm -f "$file"
rm -f "$ICON_DIR/$app_name.png"
done
if command -v update-desktop-database &>/dev/null; then
update-desktop-database "$APP_DIR" &>/dev/null || true
fi
echo "Web apps removed successfully."

View File

@@ -185,8 +185,6 @@ services:
DISK_SIZE: "$SELECTED_DISK" DISK_SIZE: "$SELECTED_DISK"
USERNAME: "$USERNAME" USERNAME: "$USERNAME"
PASSWORD: "$PASSWORD" PASSWORD: "$PASSWORD"
TZ: "$(timedatectl show -p Timezone --value 2>/dev/null || echo UTC)"
ARGUMENTS: "-rtc base=localtime,clock=host,driftfix=slew"
devices: devices:
- /dev/kvm - /dev/kvm
- /dev/net/tun - /dev/net/tun
@@ -242,11 +240,6 @@ EOF
} }
remove_windows() { remove_windows() {
if ! gum confirm --default=false "Remove Windows VM and delete all associated data?"; then
echo "Removal cancelled by user"
exit 1
fi
echo "Removing Windows VM..." echo "Removing Windows VM..."
docker-compose -f "$COMPOSE_FILE" down 2>/dev/null || true docker-compose -f "$COMPOSE_FILE" down 2>/dev/null || true
@@ -261,6 +254,25 @@ remove_windows() {
echo "Windows VM removal completed!" echo "Windows VM removal completed!"
} }
wait_for_rdp_ready() {
local WIN_USER="$1"
local WIN_PASS="$2"
local TIMEOUT=240
local SECONDS=0
echo "Waiting for Windows VM to be ready..."
while ! timeout 5s xfreerdp3 /auth-only /cert:ignore /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 &>/dev/null; do
sleep 2
if [ $SECONDS -gt $TIMEOUT ]; then
echo "❌ Timeout waiting for RDP!"
echo " The VM might still be installing Windows."
echo " Check progress at: http://127.0.0.1:8006"
return 1
fi
done
}
launch_windows() { launch_windows() {
KEEP_ALIVE=false KEEP_ALIVE=false
if [ "$1" = "--keep-alive" ] || [ "$1" = "-k" ]; then if [ "$1" = "--keep-alive" ] || [ "$1" = "-k" ]; then
@@ -297,19 +309,11 @@ launch_windows() {
notify-send -u critical "Windows VM" "Failed to start Windows VM" notify-send -u critical "Windows VM" "Failed to start Windows VM"
exit 1 exit 1
fi fi
fi
echo "Waiting for Windows VM to start..." if ! wait_for_rdp_ready "$WIN_USER" "$WIN_PASS"; then
WAIT_COUNT=0 notify-send -u critical "Windows VM" "Did not come alive in time."
until docker logs omarchy-windows 2>&1 | grep -qi "windows started successfully"; do exit 1
sleep 2
WAIT_COUNT=$((WAIT_COUNT + 1))
if [ $WAIT_COUNT -gt 60 ]; then # 2 minutes timeout
echo ""
echo "❌ Timeout: Windows VM failed to start within 2 minutes"
echo " Check logs: docker logs omarchy-windows"
exit 1
fi
done
fi fi
# Build the connection info # Build the connection info
@@ -342,7 +346,7 @@ To stop: omarchy-windows-vm stop"
# If scale is less than 130%, don't set any scale (use default 100) # If scale is less than 130%, don't set any scale (use default 100)
# Connect with RDP in fullscreen (auto-detects resolution) # Connect with RDP in fullscreen (auto-detects resolution)
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /clipboard /cert:ignore /title:"Windows VM - Omarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /cert:ignore /title:"Windows VM - Omarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE
# After RDP closes, stop the container unless --keep-alive was specified # After RDP closes, stop the container unless --keep-alive was specified
if [ "$KEEP_ALIVE" = false ]; then if [ "$KEEP_ALIVE" = false ]; then

View File

@@ -1 +0,0 @@
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT, Insert,"'

View File

@@ -32,6 +32,3 @@ keybind = super+control+shift+alt+arrow_right=resize_split:right,100
# Slowdown mouse scrolling # Slowdown mouse scrolling
mouse-scroll-multiplier = 0.95 mouse-scroll-multiplier = 0.95
# Fix general slowness on hyprland (https://github.com/ghostty-org/ghostty/discussions/3224)
async-backend = epoll

View File

@@ -1,8 +1,6 @@
# Application bindings # Application bindings
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"
bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
bindd = SUPER 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 bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
@@ -25,9 +23,6 @@ bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Goo
bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/" bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/"
bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post" bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
# Add extra bindings
# bind = SUPER SHIFT, R, exec, alacritty -e ssh your-server
# Overwrite existing bindings, like putting Omarchy Menu on Super + Space # Overwrite existing bindings, like putting Omarchy Menu on Super + Space
# unbind = SUPER, SPACE # unbind = SUPER, SPACE
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu # bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu

View File

@@ -39,5 +39,5 @@ input-field {
} }
auth { auth {
fingerprint:enabled = false fingerprint:enabled = true
} }

View File

@@ -3,10 +3,6 @@
input { input {
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt # Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
# kb_layout = us,dk,eu # kb_layout = us,dk,eu
# Use a specific keyboard variant if needed (e.g. intl for international keyboards)
# kb_variant = intl
kb_options = compose:caps # ,grp:alts_toggle kb_options = compose:caps # ,grp:alts_toggle
# Change speed of keyboard repeat # Change speed of keyboard repeat

View File

@@ -12,9 +12,3 @@
# *) back_to show_main_menu ;; # *) back_to show_main_menu ;;
# esac # esac
# } # }
#
# Example of overriding just the about menu action: (Using zsh instead of bash (default))
#
# show_about() {
# exec omarchy-launch-or-focus-tui "zsh -c 'fastfetch; read -k 1'"
# }

View File

@@ -1,4 +1,4 @@
[server] [server]
show_percentage = true show_percentage = true
max_volume = 100 max_volume = 100
style = "~/.config/swayosd/style.css" style = "./style.css"

View File

@@ -1,67 +0,0 @@
# Prefix
set -g prefix C-Space
set -g prefix2 C-b
bind C-Space send-prefix
# General
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",*:RGB"
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -g history-limit 50000
set -g escape-time 0
set -g focus-events on
set -g set-clipboard on
setw -g aggressive-resize on
set -g detach-on-destroy off
# Status bar
set -g status-position top
set -g status-interval 5
set -g status-left-length 30
set -g status-right-length 50
set -g window-status-separator ""
# 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 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"
set -g pane-active-border-style "fg=blue"
set -g message-style "bg=default,fg=blue"
set -g message-command-style "bg=default,fg=blue"
set -g mode-style "bg=blue,fg=black"
setw -g clock-mode-colour blue
# Reload config
bind M-r source-file ~/.config/tmux/tmux.conf
# Rename window / session
bind r command-prompt -I "#W" "rename-window -- '%%'"
bind R command-prompt -I "#S" "rename-session -- '%%'"
# Vi mode for copy
setw -g mode-keys vi
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
# Pane resizing
bind -r S-Left resize-pane -L 1
bind -r S-Down resize-pane -D 1
bind -r S-Up resize-pane -U 1
bind -r S-Right resize-pane -R 1
# Saner splits that open in the same directory
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# New windows in same directory
bind c new-window -c "#{pane_current_path}"
# Sessions
bind C new-session
bind X kill-session

View File

@@ -116,7 +116,6 @@
"format-muted": "", "format-muted": "",
"format-icons": { "format-icons": {
"headphone": "", "headphone": "",
"headset": "",
"default": ["", "", ""] "default": ["", "", ""]
} }
}, },

View File

@@ -1,5 +0,0 @@
# overwrites default wiremix configuration
# defaults: https://github.com/tsowell/wiremix/blob/main/wiremix.toml
[char_sets.default]
default_device = "⮞"

View File

@@ -21,9 +21,9 @@ if command -v zoxide &> /dev/null; then
} }
fi fi
open() ( open() {
xdg-open "$@" >/dev/null 2>&1 & xdg-open "$@" >/dev/null 2>&1 &
) }
# Directories # Directories
alias ..='cd ..' alias ..='cd ..'
@@ -34,7 +34,6 @@ alias ....='cd ../../..'
alias c='opencode' alias c='opencode'
alias d='docker' alias d='docker'
alias r='rails' alias r='rails'
alias t='tmux attach || tmux new -s Work'
n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; }
# Git # Git

View File

@@ -58,7 +58,7 @@ img2jpg() {
img="$1" img="$1"
shift shift
magick "$img" $@ -quality 95 -strip ${img%.*}-converted.jpg magick "$img" $@ -quality 95 -strip ${img%.*}-optimized.jpg
} }
# Transcode any image to JPG image that's great for sharing online without being too big # Transcode any image to JPG image that's great for sharing online without being too big
@@ -66,14 +66,7 @@ img2jpg-small() {
img="$1" img="$1"
shift shift
magick "$img" $@ -resize 1080x\> -quality 95 -strip ${img%.*}-small.jpg magick "$img" $@ -resize 1080x\> -quality 95 -strip ${img%.*}-optimized.jpg
}
# Transcode any image to JPG image that's great for sharing online without being too big
img2jpg-medium() {
img="$1"
shift
magick "$img" $@ -resize 1800x\> -quality 95 -strip ${img%.*}-medium.jpg
} }
# Transcode any image to compressed-but-lossless PNG # Transcode any image to compressed-but-lossless PNG
@@ -87,24 +80,3 @@ img2png() {
-define png:exclude-chunk=all \ -define png:exclude-chunk=all \
"${img%.*}-optimized.png" "${img%.*}-optimized.png"
} }
# SSH Port Forwarding Functions
fip() {
[[ $# -lt 2 ]] && echo "Usage: fip <host> <port1> [port2] ..." && return 1
local host="$1"
shift
for port in "$@"; do
ssh -f -N -L "$port:localhost:$port" "$host" && echo "Forwarding localhost:$port -> $host:$port"
done
}
dip() {
[[ $# -eq 0 ]] && echo "Usage: dip <port1> [port2] ..." && return 1
for port in "$@"; do
pkill -f "ssh.*-L $port:localhost:$port" && echo "Stopped forwarding port $port" || echo "No forwarding on port $port"
done
}
lip() {
pgrep -af "ssh.*-L [0-9]+:localhost:[0-9]+" || echo "No active forwards"
}

View File

@@ -3,9 +3,6 @@ if command -v mise &> /dev/null; then
fi fi
if command -v starship &> /dev/null; then if command -v starship &> /dev/null; then
# clear stale readline state before rendering prompt (prevents artifacts in prompt after abnormal exits like SIGQUIT)
__sanitize_prompt() { printf '\r\033[K'; }
PROMPT_COMMAND="__sanitize_prompt${PROMPT_COMMAND:+;$PROMPT_COMMAND}"
eval "$(starship init bash)" eval "$(starship init bash)"
fi fi

View File

@@ -9,4 +9,3 @@ source ~/.local/share/omarchy/default/bash/rc
# #
# Make an alias for invoking commands you use constantly # Make an alias for invoking commands you use constantly
# alias p='python' # alias p='python'
# alias cx="claude --permission-mode=plan --allow-dangerously-skip-permissions"

View File

@@ -9,9 +9,7 @@ source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf 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/retroarch.conf
source = ~/.local/share/omarchy/default/hypr/apps/steam.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/system.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 source = ~/.local/share/omarchy/default/hypr/apps/terminals.conf
source = ~/.local/share/omarchy/default/hypr/apps/walker.conf source = ~/.local/share/omarchy/default/hypr/apps/walker.conf
source = ~/.local/share/omarchy/default/hypr/apps/webcam-overlay.conf source = ~/.local/share/omarchy/default/hypr/apps/webcam-overlay.conf

View File

@@ -1,6 +1,2 @@
windowrule = no_screen_share on, match:class ^(Bitwarden)$ windowrule = no_screen_share on, match:class ^(Bitwarden)$
windowrule = tag +floating-window, match:class ^(Bitwarden)$ windowrule = tag +floating-window, match:class ^(Bitwarden)$
# Bitwarden Chrome Extension
windowrule = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default
windowrule = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default

View File

@@ -1,16 +1,13 @@
# Browser types # Browser types
windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)
windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf)
windowrule = tag -default-opacity, match:tag chromium-based-browser
windowrule = tag -default-opacity, match:tag firefox-based-browser
# Video apps: remove chromium browser tag so they don't get opacity applied
windowrule = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
windowrule = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
# Force chromium-based browsers into a tile to deal with --app bug # Force chromium-based browsers into a tile to deal with --app bug
windowrule = tile on, match:tag chromium-based-browser windowrule = tile on, match:tag chromium-based-browser
# Only a subtle opacity change, but not for video sites # Only a subtle opacity change, but not for video sites
windowrule = opacity 1.0 0.97, match:tag chromium-based-browser windowrule = opacity 1 0.97, match:tag chromium-based-browser
windowrule = opacity 1.0 0.97, match:tag firefox-based-browser windowrule = opacity 1 0.97, match:tag firefox-based-browser
# Some video sites should never have opacity applied to them
windowrule = opacity 1.0 1.0, match:initial_title ((?i)(?:[a-z0-9-]+\.)*youtube\.com_/|app\.zoom\.us_/wc/home)

View File

@@ -1,5 +0,0 @@
windowrule {
name = geforce
match:class = GeForceNOW
idle_inhibit = fullscreen
}

View File

@@ -1,41 +1,22 @@
# Fix splash screen showing in weird places and prevent annoying focus takeovers # Fix splash screen showing in weird places and prevent annoying focus takeovers
windowrule { windowrule = tag +jetbrains-splash, match:class ^(jetbrains-.*)$, match:title ^(splash)$, match:float 1
name = jetbrains-splash windowrule = center on, match:tag jetbrains-splash
match:class = ^(jetbrains-.*)$ windowrule = no_focus on, match:tag jetbrains-splash
match:title = ^(splash)$ windowrule = border_size 0, match:tag jetbrains-splash
match:float = 1
tag = +jetbrains-splash
center = on
no_focus = on
border_size = 0
}
# Center popups/find windows # Center popups/find windows
windowrule { windowrule = tag +jetbrains, match:class ^(jetbrains-.*), match:title ^()$, match:float 1
name = jetbrains-popup windowrule = center on, match:tag jetbrains
match:class = ^(jetbrains-.*)
match:title = ^()$ # Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.)
match:float = 1 windowrule = stay_focused on, match:tag jetbrains
tag = +jetbrains windowrule = border_size 0, match:tag jetbrains
center = on
# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.) # For some reason tag:jetbrains does not work for size rule
stay_focused = on windowrule = min_size (monitor_w*0.5) (monitor_h*0.5), match:class ^(jetbrains-.*), match:title ^()$, match:float 1
border_size = 0
min_size = (monitor_w*0.5) (monitor_h*0.5)
}
# Disable window flicker when autocomplete or tooltips appear # Disable window flicker when autocomplete or tooltips appear
windowrule { windowrule = no_initial_focus on, match:class ^(jetbrains-.*)$, match:title ^(win.*)$, match:float 1
name = jetbrains-tooltip
match:class = ^(jetbrains-.*)$
match:title = ^(win.*)$
match:float = 1
no_initial_focus = on
}
# Disable mouse focus # Disable mouse focus
windowrule { windowrule = no_follow_mouse on, match:class ^(jetbrains-.*)$
name = jetbrains-focus
no_follow_mouse = on
match:class = ^(jetbrains-.*)$
}

View File

@@ -1,6 +1,5 @@
# Picture-in-picture overlays # Picture-in-picture overlays
windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture) windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture)
windowrule = tag -default-opacity, match:tag pip
windowrule = float on, match:tag pip windowrule = float on, match:tag pip
windowrule = pin on, match:tag pip windowrule = pin on, match:tag pip
windowrule = size 600 338, match:tag pip windowrule = size 600 338, match:tag pip

View File

@@ -1,2 +1 @@
windowrule = tag -default-opacity, match:class qemu
windowrule = opacity 1 1, match:class qemu windowrule = opacity 1 1, match:class qemu

View File

@@ -1,4 +1,3 @@
windowrule = fullscreen on, match:class com.libretro.RetroArch windowrule = fullscreen on, match:class com.libretro.RetroArch
windowrule = tag -default-opacity, match:class com.libretro.RetroArch
windowrule = opacity 1 1, match:class com.libretro.RetroArch windowrule = opacity 1 1, match:class com.libretro.RetroArch
windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch

View File

@@ -1,8 +1,7 @@
# Float Steam # Float Steam
windowrule = float on, match:class steam windowrule = float on, match:class steam
windowrule = center on, match:class steam, match:title Steam windowrule = center on, match:class steam, match:title Steam
windowrule = tag -default-opacity, match:class steam.* windowrule = opacity 1 1, match:class steam
windowrule = opacity 1 1, match:class steam.*
windowrule = size 1100 700, match:class steam, match:title Steam windowrule = size 1100 700, match:class steam, match:title Steam
windowrule = size 460 800, match:class steam, match:title Friends List windowrule = size 460 800, match:class steam, match:title Friends List
windowrule = idle_inhibit fullscreen, match:class steam windowrule = idle_inhibit fullscreen, match:class steam

View File

@@ -12,7 +12,6 @@ windowrule = fullscreen on, match:class org.omarchy.screensaver
windowrule = float on, match:class org.omarchy.screensaver windowrule = float on, match:class org.omarchy.screensaver
# No transparency on media windows # No transparency on media windows
windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
# Popped window rounding # Popped window rounding

View File

@@ -1,2 +0,0 @@
# Prevent Telegram from stealing focus on new messages
windowrule = focus_on_activate off, match:class org.telegram.desktop

View File

@@ -1,4 +1,2 @@
# Define terminal tag to style them uniformly # Define terminal tag to style them uniformly
windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty) windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty)
windowrule = tag -default-opacity, match:tag terminal
windowrule = opacity 0.97 0.9, match:tag terminal

View File

@@ -3,8 +3,3 @@ bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard
# Nautilus compatibility
bindd = SUPER, C, Nautilus Copy, sendshortcut, CTRL,c, active, class:^(org.gnome.Nautilus)$
bindd = SUPER, V, Nautilus Paste, sendshortcut, CTRL,v, active, class:^(org.gnome.Nautilus)$
bindd = SUPER, X, Nautilus Cut, sendshortcut, CTRL,x, active, class:^(org.gnome.Nautilus)$

View File

@@ -6,16 +6,14 @@ bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume rai
bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower
bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle
bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle
bindeld = ,XF86MonBrightnessUp, Brightness up, exec, omarchy-brightness-display +5% bindeld = ,XF86MonBrightnessUp, Brightness up, exec, $osdclient --brightness raise
bindeld = ,XF86MonBrightnessDown, Brightness down, exec, omarchy-brightness-display 5%- bindeld = ,XF86MonBrightnessDown, Brightness down, exec, $osdclient --brightness lower
bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up
bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down
# Precise 1% multimedia adjustments with Alt modifier # Precise 1% multimedia adjustments with Alt modifier
bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1 bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1
bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1 bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1
bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, omarchy-brightness-display +1% bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, $osdclient --brightness +1
bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, omarchy-brightness-display 1%- bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, $osdclient --brightness -1
# Requires playerctl # Requires playerctl
bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next

View File

@@ -1,7 +1,6 @@
# Menus # Menus
bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker
bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols
bindd = SUPER CTRL, C, Capture menu, exec, omarchy-menu capture
bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
bindd = SUPER, ESCAPE, System menu, exec, omarchy-menu system bindd = SUPER, ESCAPE, System menu, exec, omarchy-menu system
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
@@ -29,9 +28,9 @@ bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle
bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight
# Control Apple Display brightness # Control Apple Display brightness
bindd = CTRL, F1, Apple Display brightness down, exec, omarchy-brightness-display-apple -5000 bindd = CTRL, F1, Apple Display brightness down, exec, omarchy-cmd-apple-display-brightness -5000
bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-brightness-display-apple +5000 bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-cmd-apple-display-brightness +5000
bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-brightness-display-apple +60000 bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-cmd-apple-display-brightness +60000
# Captures # Captures
bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot

View File

@@ -6,7 +6,7 @@ env = HYPRCURSOR_SIZE,24
env = GDK_BACKEND,wayland,x11,* env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORM,wayland;xcb
env = QT_STYLE_OVERRIDE,kvantum env = QT_STYLE_OVERRIDE,kvantum
env = SDL_VIDEODRIVER,wayland,x11 env = SDL_VIDEODRIVER,wayland
env = MOZ_ENABLE_WAYLAND,1 env = MOZ_ENABLE_WAYLAND,1
env = ELECTRON_OZONE_PLATFORM_HINT,wayland env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = OZONE_PLATFORM,wayland env = OZONE_PLATFORM,wayland

View File

@@ -131,14 +131,9 @@ cursor {
hide_on_key_press = true hide_on_key_press = true
} }
# Auto toggle scratchpad on switching workspace from scratchpad
binds {
hide_special_on_workspace_change = true
}
# Style Gum confirm to match terminal theme # Style Gum confirm to match terminal theme
env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan
env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black
env = GUM_CONFIRM_SELECTED_BACKGROUND,2 # Green env = GUM_CONFIRM_SELECTED_BACKGROUND,2 # Green
env = GUM_CONFIRM_UNSELECTED_FOREGROUND,7 # White env = GUM_CONFIRM_UNSELECTED_FOREGROUND,0 # Black
env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey

View File

@@ -2,14 +2,11 @@
# Hyprland 0.53+ syntax # Hyprland 0.53+ syntax
windowrule = suppress_event maximize, match:class .* windowrule = suppress_event maximize, match:class .*
# Tag all windows for default opacity (apps can override with -default-opacity tag) # Just dash of opacity by default
windowrule = tag +default-opacity, match:class .* windowrule = opacity 0.97 0.9, match:class .*
# Fix some dragging issues with XWayland # Fix some dragging issues with XWayland
windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0
# App-specific tweaks (may remove default-opacity tag) # App-specific tweaks
source = ~/.local/share/omarchy/default/hypr/apps.conf source = ~/.local/share/omarchy/default/hypr/apps.conf
# Apply default opacity after apps have had a chance to opt out
windowrule = opacity 0.97 0.9, match:tag default-opacity

View File

@@ -3,7 +3,7 @@ TARGET_OS_NAME="Omarchy"
ESP_PATH="/boot" ESP_PATH="/boot"
KERNEL_CMDLINE[default]="@@CMDLINE@@" KERNEL_CMDLINE[default]="@@CMDLINE@@"
KERNEL_CMDLINE[default]+=" quiet splash" KERNEL_CMDLINE[default]+="quiet splash"
ENABLE_UKI=yes ENABLE_UKI=yes
CUSTOM_UKI_NAME="omarchy" CUSTOM_UKI_NAME="omarchy"

View File

@@ -1,5 +1,5 @@
--- ---
name: omarchy name: Omarchy
description: > description: >
REQUIRED for ANY changes to Linux desktop, window manager, or system config. REQUIRED for ANY changes to Linux desktop, window manager, or system config.
Use when editing ~/.config/hypr/, ~/.config/waybar/, ~/.config/walker/, Use when editing ~/.config/hypr/, ~/.config/waybar/, ~/.config/walker/,

View File

@@ -1 +0,0 @@
Server = https://rc-mirror.omarchy.org/$repo/os/$arch

View File

@@ -1,30 +0,0 @@
# See the pacman.conf(5) manpage for option and repository directives
[options]
Color
ILoveCandy
VerbosePkgLists
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
ParallelDownloads = 5
DownloadUser = alpm
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
# pacman searches repositories in the order defined here
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[omarchy]
SigLevel = Optional TrustAll
Server = https://pkgs.omarchy.org/edge/$arch

View File

@@ -1,2 +0,0 @@
[Manager]
DefaultTimeoutStopSec=5s

View File

@@ -0,0 +1,3 @@
[Sleep]
HibernateDelaySec=30min
HibernateOnACPower=no

2
default/systemd/lid.conf Normal file
View File

@@ -0,0 +1,2 @@
[Login]
HandleLidSwitch=suspend-then-hibernate

View File

@@ -1,18 +0,0 @@
#!/bin/bash
# Use the Vfio to Integrated trick to turn off NVIDIA dgpu when in integrated mode
# without needing to restart the computer. This is needed because computers like the Asus G14
# will wake after suspend in Hybrid mode, even if the system was in Integrated mode before
# suspending.
if [[ $1 == "post" ]]; then
# small delay so the device is fully re-enumerated
sleep 4
# force-bind dGPU to vfio (fully detached from nvidia)
/usr/bin/supergfxctl -m Vfio
sleep 1
# then go back to Integrated, which powers it off again
/usr/bin/supergfxctl -m Integrated
fi

View File

@@ -1,18 +0,0 @@
#!/bin/bash
# Turn off keyboard backlight before hibernate to prevent hang on power-off.
# The ASUS keyboard controller can block S4 shutdown if LEDs are active.
if [[ $1 == "pre" && $2 == "hibernate" ]]; then
device=""
for candidate in /sys/class/leds/*kbd_backlight*; do
if [[ -e "$candidate" ]]; then
device="$(basename "$candidate")"
break
fi
done
if [[ -n "$device" ]]; then
brightnessctl -d "$device" set 0 >/dev/null 2>&1
fi
fi

View File

@@ -1,6 +0,0 @@
[Service]
# Delay startup to avoid race condition with display manager initialization
# when booting in Integrated mode. Without this delay, the system can freeze
# on boot because supergfxd tries to disable the dGPU while the display
# subsystem is still initializing.
ExecStartPre=/bin/sleep 5

View File

@@ -1 +0,0 @@
{{ accent }}

View File

@@ -1,3 +0,0 @@
[Service]
Restart=always
RestartSec=2

View File

@@ -1,18 +0,0 @@
## Use software volume control for all ALSA devices.
## This prevents hardware mixer quirks (like muffled audio on Realtek codecs)
## and provides consistent volume behavior across all hardware.
monitor.alsa.rules = [
{
matches = [
{
device.name = "~alsa_card.*"
}
]
actions = {
update-props = {
api.alsa.soft-mixer = true
}
}
}
]

View File

@@ -19,8 +19,6 @@ run_logged $OMARCHY_INSTALL/config/fast-shutdown.sh
run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
run_logged $OMARCHY_INSTALL/config/input-group.sh run_logged $OMARCHY_INSTALL/config/input-group.sh
run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh
run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.sh
run_logged $OMARCHY_INSTALL/config/hibernation.sh
run_logged $OMARCHY_INSTALL/config/hardware/network.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/set-wireless-regdom.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
@@ -28,7 +26,6 @@ run_logged $OMARCHY_INSTALL/config/hardware/bluetooth.sh
run_logged $OMARCHY_INSTALL/config/hardware/printer.sh run_logged $OMARCHY_INSTALL/config/hardware/printer.sh
run_logged $OMARCHY_INSTALL/config/hardware/usb-autosuspend.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/ignore-power-button.sh
run_logged $OMARCHY_INSTALL/config/hardware/legacy-gpu-terminal.sh
run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.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-bcm43xx.sh
@@ -36,7 +33,3 @@ 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-suspend-nvme.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.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-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-synaptic-touchpad.sh

View File

@@ -1,3 +1,7 @@
sudo mkdir -p /etc/systemd/system.conf.d sudo mkdir -p /etc/systemd/system.conf.d
sudo cp "$OMARCHY_PATH/default/systemd/faster-shutdown.conf" /etc/systemd/system.conf.d/10-faster-shutdown.conf
cat <<EOF | sudo tee /etc/systemd/system.conf.d/10-faster-shutdown.conf
[Manager]
DefaultTimeoutStopSec=5s
EOF
sudo systemctl daemon-reload sudo systemctl daemon-reload

View File

@@ -1,13 +0,0 @@
# Fix audio volume on Asus ROG laptops by using a soft mixer.
if omarchy-hw-asus-rog; then
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
cp $OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf ~/.config/wireplumber/wireplumber.conf.d/
rm -rf ~/.local/state/wireplumber/default-routes
# Unmute the Master control on the ALC285 card (often muted by default)
card=$(aplay -l 2>/dev/null | grep -i "ALC285" | head -1 | sed 's/card \([0-9]*\).*/\1/')
if [[ -n "$card" ]]; then
amixer -c "$card" set Master 80% unmute 2>/dev/null
fi
fi

View File

@@ -1,15 +0,0 @@
# Fix internal mic gain on ASUS ROG laptops with Realtek ALC285.
# The mic boost is way too high by default, causing clipping.
# Sets levels and stores ALSA state so it persists across reboots.
if omarchy-hw-asus-rog; then
for card in /proc/asound/card*/codec*; do
if grep -q "ALC285" "$card" 2>/dev/null; then
cardnum=$(echo "$card" | grep -oP 'card\K\d+')
amixer -c "$cardnum" set 'Internal Mic Boost' 0 >/dev/null 2>&1 || true
amixer -c "$cardnum" set 'Capture' 70% >/dev/null 2>&1 || true
sudo alsactl store "$cardnum" 2>/dev/null || true
break
fi
done
fi

View File

@@ -1,6 +0,0 @@
# Enable Synaptics InterTouch for confirmed touchpads if not already loaded
if grep -qi synaptics /proc/bus/input/devices \
&& ! lsmod | grep -q '^psmouse'; then
modprobe psmouse synaptics_intertouch=1
fi

View File

@@ -1,4 +0,0 @@
# Install drivers for Motorcomm YT6801 ethernet adapter used by the Slimbook Executive
if lspci | grep -i "YT6801\|Motorcomm.*Ethernet"; then
omarchy-pkg-add linux-headers yt6801-dkms
fi

Some files were not shown because too many files have changed in this diff Show More