mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
103 Commits
master
...
restart-wa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a52c8796a | ||
|
|
be7f316371 | ||
|
|
b1553d3b31 | ||
|
|
055e969a56 | ||
|
|
050899e5b3 | ||
|
|
bd8b12b23b | ||
|
|
c268fb6c9b | ||
|
|
248a7a611b | ||
|
|
e487dace43 | ||
|
|
ba14cd36dd | ||
|
|
34b22a23f6 | ||
|
|
f0d5c35271 | ||
|
|
63fc96a541 | ||
|
|
4ba39ba73c | ||
|
|
1a14938382 | ||
|
|
9581cce1af | ||
|
|
cf72c02ea5 | ||
|
|
4b3e21445b | ||
|
|
8878478103 | ||
|
|
74ff475693 | ||
|
|
22f64160f5 | ||
|
|
ea76f8196c | ||
|
|
49a2941e2b | ||
|
|
6a5b64b4bc | ||
|
|
c484b66bcb | ||
|
|
87da28a965 | ||
|
|
23b74c6212 | ||
|
|
69dbee75cd | ||
|
|
d9c5df29d1 | ||
|
|
7c9708d647 | ||
|
|
5a9f0318e8 | ||
|
|
ab4694e3f5 | ||
|
|
bebf14a18c | ||
|
|
ff2a47c67e | ||
|
|
d9bd4a8db3 | ||
|
|
8fc5b6e346 | ||
|
|
7265c22728 | ||
|
|
32d187eab0 | ||
|
|
c19fc1593a | ||
|
|
7ffdfdbda9 | ||
|
|
161fa3f313 | ||
|
|
d6c28f317d | ||
|
|
4348ab6ef1 | ||
|
|
9d07cc884c | ||
|
|
ba31e3073c | ||
|
|
2df5f231cb | ||
|
|
26afde34ff | ||
|
|
3b94207ba7 | ||
|
|
e567020e1b | ||
|
|
f78f5b2c2c | ||
|
|
ec305459f8 | ||
|
|
55231e9726 | ||
|
|
a8e0762fbe | ||
|
|
bb91f90839 | ||
|
|
5b534de6a0 | ||
|
|
4fe357972e | ||
|
|
7015601d77 | ||
|
|
532f4310d0 | ||
|
|
56b02f62b5 | ||
|
|
d89614248b | ||
|
|
77a57aa838 | ||
|
|
e455d1bd68 | ||
|
|
adfe182984 | ||
|
|
768c553c4c | ||
|
|
bf99a2ddc0 | ||
|
|
0930583526 | ||
|
|
4a6baafd05 | ||
|
|
c1bf6c4694 | ||
|
|
66daacb30d | ||
|
|
988418aea1 | ||
|
|
25451f4a03 | ||
|
|
d884265d46 | ||
|
|
5e1ce16358 | ||
|
|
713b6e3a36 | ||
|
|
2c7b283aef | ||
|
|
4701726c83 | ||
|
|
bfc3c69cf1 | ||
|
|
21514dc577 | ||
|
|
5ff76df5e4 | ||
|
|
bab0004d08 | ||
|
|
93079858f1 | ||
|
|
4287472e02 | ||
|
|
291786d36a | ||
|
|
05b82cbee5 | ||
|
|
1ff31cfe41 | ||
|
|
cd995319bf | ||
|
|
281f0b86d2 | ||
|
|
55668f4c6d | ||
|
|
9c71962a16 | ||
|
|
7d77500c33 | ||
|
|
fb1d9ccfa3 | ||
|
|
2f75e9c7ec | ||
|
|
b22ed8448a | ||
|
|
a0d2f007fd | ||
|
|
955844cb5d | ||
|
|
295c7c91fc | ||
|
|
bc1a531534 | ||
|
|
4cec214a53 | ||
|
|
0b5ba427b2 | ||
|
|
dcb9527770 | ||
|
|
6c35e840f5 | ||
|
|
da984ce243 | ||
|
|
f5a35a1afe |
62
AGENTS.md
Normal file
62
AGENTS.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# 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
|
||||
```
|
||||
10
bin/omarchy-battery-present
Executable file
10
bin/omarchy-battery-present
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
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
|
||||
@@ -3,14 +3,15 @@
|
||||
# Set the branch for Omarchy's git repository.
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "Usage: omarchy-branch-set [master|dev]"
|
||||
echo "Usage: omarchy-branch-set [master|rc|dev]"
|
||||
exit 1
|
||||
else
|
||||
branch="$1"
|
||||
fi
|
||||
|
||||
case "$branch" in
|
||||
"master") git -C $OMARCHY_PATH switch master ;;
|
||||
"dev") git -C $OMARCHY_PATH switch dev ;;
|
||||
*) echo "Unknown branch: $branch"; exit 1; ;;
|
||||
esac
|
||||
if [[ "$branch" != "master" && "$branch" != "rc" && "$branch" != "dev" ]]; then
|
||||
echo "Error: Invalid branch '$branch'. Must be one of: master, rc, dev"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git -C $OMARCHY_PATH switch $branch
|
||||
|
||||
21
bin/omarchy-brightness-display
Executable file
21
bin/omarchy-brightness-display
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/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 '%')"
|
||||
12
bin/omarchy-brightness-display-apple
Executable file
12
bin/omarchy-brightness-display-apple
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/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
|
||||
40
bin/omarchy-brightness-keyboard
Executable file
40
bin/omarchy-brightness-keyboard
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/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"
|
||||
@@ -14,7 +14,7 @@
|
||||
# and people with a lot of experience managing Linux systems.
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "Usage: omarchy-channel-set [stable|edge|dev]"
|
||||
echo "Usage: omarchy-channel-set [stable|rc|edge|dev]"
|
||||
exit 1
|
||||
else
|
||||
channel="$1"
|
||||
@@ -22,6 +22,7 @@ fi
|
||||
|
||||
case "$channel" in
|
||||
"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" ;;
|
||||
"dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;;
|
||||
*) echo "Unknown channel: $channel"; exit 1; ;;
|
||||
|
||||
@@ -1,16 +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}')"
|
||||
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
|
||||
@@ -59,12 +59,17 @@ echo "HOOKS+=(resume)" | sudo tee "$MKINITCPIO_CONF" >/dev/null
|
||||
|
||||
# Configure suspend-then-hibernate
|
||||
echo "Configuring suspend-then-hibernate"
|
||||
sudo mkdir -p /etc/systemd/logind.conf.d /etc/systemd/sleep.conf.d
|
||||
sudo mkdir -p /etc/systemd/logind.conf.d /etc/systemd/sleep.conf.d /usr/lib/systemd/system-sleep
|
||||
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/
|
||||
sudo cp -p "$OMARCHY_PATH/default/systemd/system-sleep/keyboard-backlight" /usr/lib/systemd/system-sleep/
|
||||
|
||||
# Regenerate initramfs
|
||||
echo "Regenerating initramfs..."
|
||||
sudo limine-mkinitcpio
|
||||
|
||||
echo "Hibernation enabled"
|
||||
echo
|
||||
|
||||
if gum confirm "Reboot to enable hiberation?"; then
|
||||
omarchy-cmd-reboot
|
||||
fi
|
||||
|
||||
6
bin/omarchy-hw-asus-rog
Executable file
6
bin/omarchy-hw-asus-rog
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/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
|
||||
17
bin/omarchy-install-geforce-now
Executable file
17
bin/omarchy-install-geforce-now
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/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
|
||||
@@ -1,15 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install the Tailscale mesh VPN service, the tsui TUI management app, and a web app for the Tailscale Admin Console.
|
||||
# Install the Tailscale mesh VPN service and a web app for the Tailscale Admin Console.
|
||||
|
||||
curl -fsSL https://tailscale.com/install.sh | sh
|
||||
curl -fsSL https://neuralink.com/tsui/install.sh | bash
|
||||
|
||||
echo -e "\nStarting Tailscale..."
|
||||
sudo tailscale up --accept-routes
|
||||
|
||||
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
|
||||
omarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
|
||||
|
||||
@@ -88,10 +88,11 @@ show_learn_menu() {
|
||||
}
|
||||
|
||||
show_trigger_menu() {
|
||||
case $(menu "Trigger" " Capture\n Share\n Toggle") in
|
||||
case $(menu "Trigger" " Capture\n Share\n Toggle\n Hardware") in
|
||||
*Capture*) show_capture_menu ;;
|
||||
*Share*) show_share_menu ;;
|
||||
*Toggle*) show_toggle_menu ;;
|
||||
*Hardware*) show_hardware_menu ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
@@ -173,6 +174,13 @@ show_toggle_menu() {
|
||||
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() {
|
||||
case $(menu "Style" " Theme\n Font\n Background\n Hyprland\n Screensaver\n About") in
|
||||
*Theme*) show_theme_menu ;;
|
||||
@@ -347,8 +355,9 @@ show_install_ai_menu() {
|
||||
}
|
||||
|
||||
show_install_gaming_menu() {
|
||||
case $(menu "Install" " Steam\n RetroArch [AUR]\n Minecraft\n Xbox Controller [AUR]") in
|
||||
case $(menu "Install" " Steam\n NVIDIA GeForce NOW\n RetroArch [AUR]\n Minecraft\n Xbox Controller [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 ;;
|
||||
@@ -437,7 +446,7 @@ show_remove_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" ;;
|
||||
*JavaScript*) show_remove_javascript_menu ;;
|
||||
*Go*) present_terminal "omarchy-remove-dev-env go" ;;
|
||||
@@ -455,7 +464,7 @@ show_remove_development_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" ;;
|
||||
*Bun*) present_terminal "omarchy-remove-dev-env bun" ;;
|
||||
*Deno*) present_terminal "omarchy-remove-dev-env deno" ;;
|
||||
@@ -464,7 +473,7 @@ show_remove_javascript_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" ;;
|
||||
*Laravel*) present_terminal "omarchy-remove-dev-env laravel" ;;
|
||||
*Symfony*) present_terminal "omarchy-remove-dev-env symfony" ;;
|
||||
@@ -473,7 +482,7 @@ show_remove_php_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" ;;
|
||||
*Phoenix*) present_terminal "omarchy-remove-dev-env phoenix" ;;
|
||||
*) show_remove_development_menu ;;
|
||||
@@ -497,8 +506,9 @@ show_update_menu() {
|
||||
}
|
||||
|
||||
show_update_channel_menu() {
|
||||
case $(menu "Update channel" "🟢 Stable\n🟡 Edge\n🔴 Dev") in
|
||||
case $(menu "Update channel" "🟢 Stable\n🟡 RC\n🟠 Edge\n🔴 Dev") in
|
||||
*Stable*) present_terminal "omarchy-channel-set stable" ;;
|
||||
*RC*) present_terminal "omarchy-channel-set rc" ;;
|
||||
*Edge*) present_terminal "omarchy-channel-set edge" ;;
|
||||
*Dev*) present_terminal "omarchy-channel-set dev" ;;
|
||||
*) show_update_menu ;;
|
||||
@@ -546,6 +556,10 @@ show_update_password_menu() {
|
||||
esac
|
||||
}
|
||||
|
||||
show_about() {
|
||||
omarchy-launch-about
|
||||
}
|
||||
|
||||
show_system_menu() {
|
||||
local options=" Lock\n Screensaver"
|
||||
[ -f ~/.local/state/omarchy/toggles/suspend-on ] && options="$options\n Suspend"
|
||||
@@ -573,6 +587,7 @@ go_to_menu() {
|
||||
*learn*) show_learn_menu ;;
|
||||
*trigger*) show_trigger_menu ;;
|
||||
*share*) show_share_menu ;;
|
||||
*capture*) show_capture_menu ;;
|
||||
*style*) show_style_menu ;;
|
||||
*theme*) show_theme_menu ;;
|
||||
*screenshot*) show_screenshot_menu ;;
|
||||
@@ -582,7 +597,7 @@ go_to_menu() {
|
||||
*install*) show_install_menu ;;
|
||||
*remove*) show_remove_menu ;;
|
||||
*update*) show_update_menu ;;
|
||||
*about*) omarchy-launch-about ;;
|
||||
*about*) show_about ;;
|
||||
*system*) show_system_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -7,17 +7,18 @@
|
||||
sudo cp -f /etc/pacman.conf /etc/pacman.conf.bak
|
||||
sudo cp -f /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
|
||||
|
||||
if [[ $1 == "edge" ]]; then
|
||||
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman-edge.conf /etc/pacman.conf
|
||||
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
|
||||
echo "Setting channel to edge"
|
||||
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"
|
||||
channel="${1:-stable}"
|
||||
|
||||
if [[ "$channel" != "stable" && "$channel" != "rc" && "$channel" != "edge" ]]; then
|
||||
echo "Error: Invalid channel '$channel'. Must be one of: stable, rc, edge"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Setting channel to $channel"
|
||||
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
|
||||
sudo pacman -Syyu --noconfirm
|
||||
|
||||
@@ -5,9 +5,17 @@
|
||||
# Ensure walker is set to autostart
|
||||
mkdir -p ~/.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
|
||||
|
||||
# Refresh configs
|
||||
omarchy-refresh-config walker/config.toml
|
||||
omarchy-refresh-config elephant/calc.toml
|
||||
omarchy-refresh-config elephant/desktopapplications.toml
|
||||
|
||||
# Restart service
|
||||
omarchy-restart-walker
|
||||
|
||||
@@ -58,11 +58,13 @@ EOF
|
||||
add_hyprlock_fingerprint_icon() {
|
||||
print_info "Adding fingerprint icon to hyprlock placeholder text..."
|
||||
sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password <\/span>/' ~/.config/hypr/hyprlock.conf
|
||||
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = true/' ~/.config/hypr/hyprlock.conf
|
||||
}
|
||||
|
||||
remove_hyprlock_fingerprint_icon() {
|
||||
print_info "Removing fingerprint icon from hyprlock placeholder text..."
|
||||
sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf
|
||||
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = false/' ~/.config/hypr/hyprlock.conf
|
||||
}
|
||||
|
||||
remove_pam_config() {
|
||||
|
||||
15
bin/omarchy-swayosd-brightness
Executable file
15
bin/omarchy-swayosd-brightness
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/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}%"
|
||||
@@ -57,6 +57,7 @@ omarchy-theme-set-gnome
|
||||
omarchy-theme-set-browser
|
||||
omarchy-theme-set-vscode
|
||||
omarchy-theme-set-obsidian
|
||||
omarchy-theme-set-asusctl
|
||||
|
||||
# Call hook on theme set
|
||||
omarchy-hook theme-set "$THEME_NAME"
|
||||
|
||||
7
bin/omarchy-theme-set-asusctl
Executable file
7
bin/omarchy-theme-set-asusctl
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/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
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
||||
|
||||
if omarchy-cmd-present chromium || omarchy-cmd-present helium-browser || omarchy-cmd-present brave; then
|
||||
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
||||
if [[ -f $CHROMIUM_THEME ]]; then
|
||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
||||
@@ -13,14 +13,8 @@ if omarchy-cmd-present chromium || omarchy-cmd-present helium-browser || omarchy
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present chromium; then
|
||||
rm -f /etc/chromium/policies/managed/color.json
|
||||
chromium --no-startup-window --set-theme-color="$THEME_RGB_COLOR" >/dev/null
|
||||
|
||||
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
||||
chromium --no-startup-window --set-color-scheme="light" >/dev/null
|
||||
else
|
||||
chromium --no-startup-window --set-color-scheme="dark" >/dev/null
|
||||
fi
|
||||
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
|
||||
|
||||
53
bin/omarchy-toggle-hybrid-gpu
Executable file
53
bin/omarchy-toggle-hybrid-gpu
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/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
|
||||
13
bin/omarchy-update-aur-pkgs
Executable file
13
bin/omarchy-update-aur-pkgs
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/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
|
||||
@@ -7,5 +7,5 @@ if omarchy-cmd-missing fwupdmgr; then
|
||||
omarchy-pkg-add fwupd
|
||||
fi
|
||||
|
||||
fwupdmgr refresh
|
||||
fwupdmgr refresh --force
|
||||
sudo fwupdmgr update
|
||||
|
||||
10
bin/omarchy-update-orphan-pkgs
Executable file
10
bin/omarchy-update-orphan-pkgs
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/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
|
||||
@@ -14,6 +14,8 @@ omarchy-update-keyring
|
||||
omarchy-update-available-reset
|
||||
omarchy-update-system-pkgs
|
||||
omarchy-migrate
|
||||
omarchy-update-aur-pkgs
|
||||
omarchy-update-orphan-pkgs
|
||||
omarchy-hook post-update
|
||||
|
||||
omarchy-update-analyze-logs
|
||||
|
||||
@@ -4,24 +4,3 @@ set -e
|
||||
|
||||
echo -e "\e[32m\nUpdate system packages\e[0m"
|
||||
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
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
if grep -q "https://stable-mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then
|
||||
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
|
||||
mirror="edge"
|
||||
else
|
||||
@@ -12,6 +14,8 @@ if grep -q "https://pkgs.omarchy.org/stable/" /etc/pacman.conf; then
|
||||
pkgs="stable"
|
||||
elif grep -q "https://pkgs.omarchy.org/edge/" /etc/pacman.conf; then
|
||||
pkgs="edge"
|
||||
elif grep -q "https://pkgs.omarchy.org/rc/" /etc/pacman.conf; then
|
||||
pkgs="rc"
|
||||
else
|
||||
pkgs="unknown"
|
||||
fi
|
||||
|
||||
@@ -185,6 +185,8 @@ services:
|
||||
DISK_SIZE: "$SELECTED_DISK"
|
||||
USERNAME: "$USERNAME"
|
||||
PASSWORD: "$PASSWORD"
|
||||
TZ: "$(timedatectl show -p Timezone --value 2>/dev/null || echo UTC)"
|
||||
ARGUMENTS: "-rtc base=localtime,clock=host,driftfix=slew"
|
||||
devices:
|
||||
- /dev/kvm
|
||||
- /dev/net/tun
|
||||
@@ -240,6 +242,11 @@ EOF
|
||||
}
|
||||
|
||||
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..."
|
||||
|
||||
docker-compose -f "$COMPOSE_FILE" down 2>/dev/null || true
|
||||
@@ -254,25 +261,6 @@ remove_windows() {
|
||||
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() {
|
||||
KEEP_ALIVE=false
|
||||
if [ "$1" = "--keep-alive" ] || [ "$1" = "-k" ]; then
|
||||
@@ -309,11 +297,19 @@ launch_windows() {
|
||||
notify-send -u critical "Windows VM" "Failed to start Windows VM"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! wait_for_rdp_ready "$WIN_USER" "$WIN_PASS"; then
|
||||
notify-send -u critical "Windows VM" "Did not come alive in time."
|
||||
exit 1
|
||||
echo "Waiting for Windows VM to start..."
|
||||
WAIT_COUNT=0
|
||||
until docker logs omarchy-windows 2>&1 | grep -qi "windows started successfully"; do
|
||||
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
|
||||
|
||||
# Build the connection info
|
||||
@@ -346,7 +342,7 @@ To stop: omarchy-windows-vm stop"
|
||||
# If scale is less than 130%, don't set any scale (use default 100)
|
||||
|
||||
# Connect with RDP in fullscreen (auto-detects resolution)
|
||||
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /cert:ignore /title:"Windows VM - Omarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE
|
||||
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /clipboard /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
|
||||
if [ "$KEEP_ALIVE" = false ]; then
|
||||
|
||||
1
config/elephant/symbols.toml
Normal file
1
config/elephant/symbols.toml
Normal file
@@ -0,0 +1 @@
|
||||
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT, Insert,"'
|
||||
@@ -1,6 +1,8 @@
|
||||
# Application bindings
|
||||
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 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 ALT, B, Browser (private), exec, omarchy-launch-browser --private
|
||||
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
|
||||
|
||||
@@ -39,5 +39,5 @@ input-field {
|
||||
}
|
||||
|
||||
auth {
|
||||
fingerprint:enabled = true
|
||||
fingerprint:enabled = false
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
input {
|
||||
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
|
||||
# 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
|
||||
|
||||
# Change speed of keyboard repeat
|
||||
|
||||
@@ -12,3 +12,9 @@
|
||||
# *) back_to show_main_menu ;;
|
||||
# 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'"
|
||||
# }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[server]
|
||||
show_percentage = true
|
||||
max_volume = 100
|
||||
style = "./style.css"
|
||||
style = "~/.config/swayosd/style.css"
|
||||
|
||||
@@ -116,6 +116,7 @@
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"headset": "",
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
|
||||
5
config/wiremix/wiremix.toml
Normal file
5
config/wiremix/wiremix.toml
Normal file
@@ -0,0 +1,5 @@
|
||||
# overwrites default wiremix configuration
|
||||
# defaults: https://github.com/tsowell/wiremix/blob/main/wiremix.toml
|
||||
|
||||
[char_sets.default]
|
||||
default_device = "⮞"
|
||||
@@ -21,9 +21,9 @@ if command -v zoxide &> /dev/null; then
|
||||
}
|
||||
fi
|
||||
|
||||
open() {
|
||||
open() (
|
||||
xdg-open "$@" >/dev/null 2>&1 &
|
||||
}
|
||||
)
|
||||
|
||||
# Directories
|
||||
alias ..='cd ..'
|
||||
|
||||
@@ -58,7 +58,7 @@ img2jpg() {
|
||||
img="$1"
|
||||
shift
|
||||
|
||||
magick "$img" $@ -quality 95 -strip ${img%.*}-optimized.jpg
|
||||
magick "$img" $@ -quality 95 -strip ${img%.*}-converted.jpg
|
||||
}
|
||||
|
||||
# Transcode any image to JPG image that's great for sharing online without being too big
|
||||
@@ -66,7 +66,14 @@ img2jpg-small() {
|
||||
img="$1"
|
||||
shift
|
||||
|
||||
magick "$img" $@ -resize 1080x\> -quality 95 -strip ${img%.*}-optimized.jpg
|
||||
magick "$img" $@ -resize 1080x\> -quality 95 -strip ${img%.*}-small.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
|
||||
|
||||
@@ -3,6 +3,9 @@ if command -v mise &> /dev/null; then
|
||||
fi
|
||||
|
||||
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)"
|
||||
fi
|
||||
|
||||
|
||||
@@ -9,7 +9,9 @@ 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/retroarch.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/steam.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/geforce.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/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/walker.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/webcam-overlay.conf
|
||||
|
||||
@@ -1,2 +1,6 @@
|
||||
windowrule = no_screen_share on, 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
|
||||
@@ -1,13 +1,16 @@
|
||||
# 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 +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
|
||||
windowrule = tile on, match:tag chromium-based-browser
|
||||
|
||||
# Only a subtle opacity change, but not for video sites
|
||||
windowrule = opacity 1 0.97, match:tag chromium-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)
|
||||
windowrule = opacity 1.0 0.97, match:tag chromium-based-browser
|
||||
windowrule = opacity 1.0 0.97, match:tag firefox-based-browser
|
||||
|
||||
5
default/hypr/apps/geforce.conf
Normal file
5
default/hypr/apps/geforce.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
windowrule {
|
||||
name = geforce
|
||||
match:class = GeForceNOW
|
||||
idle_inhibit = fullscreen
|
||||
}
|
||||
@@ -1,22 +1,41 @@
|
||||
# Fix splash screen showing in weird places and prevent annoying focus takeovers
|
||||
windowrule = tag +jetbrains-splash, match:class ^(jetbrains-.*)$, match:title ^(splash)$, match:float 1
|
||||
windowrule = center on, match:tag jetbrains-splash
|
||||
windowrule = no_focus on, match:tag jetbrains-splash
|
||||
windowrule = border_size 0, match:tag jetbrains-splash
|
||||
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 = tag +jetbrains, match:class ^(jetbrains-.*), match:title ^()$, match:float 1
|
||||
windowrule = center on, match:tag jetbrains
|
||||
|
||||
# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.)
|
||||
windowrule = stay_focused on, match:tag jetbrains
|
||||
windowrule = border_size 0, match:tag jetbrains
|
||||
|
||||
# For some reason tag:jetbrains does not work for size rule
|
||||
windowrule = min_size (monitor_w*0.5) (monitor_h*0.5), match:class ^(jetbrains-.*), match:title ^()$, match:float 1
|
||||
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 = no_initial_focus on, match:class ^(jetbrains-.*)$, match:title ^(win.*)$, match:float 1
|
||||
windowrule {
|
||||
name = jetbrains-tooltip
|
||||
match:class = ^(jetbrains-.*)$
|
||||
match:title = ^(win.*)$
|
||||
match:float = 1
|
||||
no_initial_focus = on
|
||||
}
|
||||
|
||||
# Disable mouse focus
|
||||
windowrule = no_follow_mouse on, match:class ^(jetbrains-.*)$
|
||||
windowrule {
|
||||
name = jetbrains-focus
|
||||
no_follow_mouse = on
|
||||
match:class = ^(jetbrains-.*)$
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Picture-in-picture overlays
|
||||
windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture)
|
||||
windowrule = tag -default-opacity, match:tag pip
|
||||
windowrule = float on, match:tag pip
|
||||
windowrule = pin on, match:tag pip
|
||||
windowrule = size 600 338, match:tag pip
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
windowrule = tag -default-opacity, match:class qemu
|
||||
windowrule = opacity 1 1, match:class qemu
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
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 = idle_inhibit fullscreen, match:class com.libretro.RetroArch
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Float Steam
|
||||
windowrule = float on, match:class steam
|
||||
windowrule = center on, match:class steam, match:title Steam
|
||||
windowrule = opacity 1 1, match:class steam
|
||||
windowrule = tag -default-opacity, match:class steam.*
|
||||
windowrule = opacity 1 1, match:class steam.*
|
||||
windowrule = size 1100 700, match:class steam, match:title Steam
|
||||
windowrule = size 460 800, match:class steam, match:title Friends List
|
||||
windowrule = idle_inhibit fullscreen, match:class steam
|
||||
|
||||
@@ -12,6 +12,7 @@ windowrule = fullscreen on, match:class org.omarchy.screensaver
|
||||
windowrule = float on, match:class org.omarchy.screensaver
|
||||
|
||||
# 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)$
|
||||
|
||||
# Popped window rounding
|
||||
|
||||
2
default/hypr/apps/telegram.conf
Normal file
2
default/hypr/apps/telegram.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
# Prevent Telegram from stealing focus on new messages
|
||||
windowrule = focus_on_activate off, match:class org.telegram.desktop
|
||||
@@ -1,2 +1,4 @@
|
||||
# Define terminal tag to style them uniformly
|
||||
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
|
||||
|
||||
@@ -6,14 +6,16 @@ bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume rai
|
||||
bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower
|
||||
bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle
|
||||
bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle
|
||||
bindeld = ,XF86MonBrightnessUp, Brightness up, exec, $osdclient --brightness raise
|
||||
bindeld = ,XF86MonBrightnessDown, Brightness down, exec, $osdclient --brightness lower
|
||||
bindeld = ,XF86MonBrightnessUp, Brightness up, exec, omarchy-brightness-display +5%
|
||||
bindeld = ,XF86MonBrightnessDown, Brightness down, exec, omarchy-brightness-display 5%-
|
||||
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
|
||||
bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1
|
||||
bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1
|
||||
bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, $osdclient --brightness +1
|
||||
bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, $osdclient --brightness -1
|
||||
bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, omarchy-brightness-display +1%
|
||||
bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, omarchy-brightness-display 1%-
|
||||
|
||||
# Requires playerctl
|
||||
bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Menus
|
||||
bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker
|
||||
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, ESCAPE, System menu, exec, omarchy-menu system
|
||||
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
|
||||
@@ -28,9 +29,9 @@ bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle
|
||||
bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight
|
||||
|
||||
# Control Apple Display brightness
|
||||
bindd = CTRL, F1, Apple Display brightness down, exec, omarchy-cmd-apple-display-brightness -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-cmd-apple-display-brightness +60000
|
||||
bindd = CTRL, F1, Apple Display brightness down, exec, omarchy-brightness-display-apple -5000
|
||||
bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-brightness-display-apple +5000
|
||||
bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-brightness-display-apple +60000
|
||||
|
||||
# Captures
|
||||
bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot
|
||||
|
||||
@@ -6,7 +6,7 @@ env = HYPRCURSOR_SIZE,24
|
||||
env = GDK_BACKEND,wayland,x11,*
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = QT_STYLE_OVERRIDE,kvantum
|
||||
env = SDL_VIDEODRIVER,wayland
|
||||
env = SDL_VIDEODRIVER,wayland,x11
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = OZONE_PLATFORM,wayland
|
||||
|
||||
@@ -131,6 +131,11 @@ cursor {
|
||||
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
|
||||
env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan
|
||||
env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
# Hyprland 0.53+ syntax
|
||||
windowrule = suppress_event maximize, match:class .*
|
||||
|
||||
# Just dash of opacity by default
|
||||
windowrule = opacity 0.97 0.9, match:class .*
|
||||
# Tag all windows for default opacity (apps can override with -default-opacity tag)
|
||||
windowrule = tag +default-opacity, match:class .*
|
||||
|
||||
# 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
|
||||
|
||||
# App-specific tweaks
|
||||
# App-specific tweaks (may remove default-opacity tag)
|
||||
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
|
||||
|
||||
@@ -3,7 +3,7 @@ TARGET_OS_NAME="Omarchy"
|
||||
ESP_PATH="/boot"
|
||||
|
||||
KERNEL_CMDLINE[default]="@@CMDLINE@@"
|
||||
KERNEL_CMDLINE[default]+="quiet splash"
|
||||
KERNEL_CMDLINE[default]+=" quiet splash"
|
||||
|
||||
ENABLE_UKI=yes
|
||||
CUSTOM_UKI_NAME="omarchy"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: Omarchy
|
||||
name: omarchy
|
||||
description: >
|
||||
REQUIRED for ANY changes to Linux desktop, window manager, or system config.
|
||||
Use when editing ~/.config/hypr/, ~/.config/waybar/, ~/.config/walker/,
|
||||
|
||||
1
default/pacman/mirrorlist-rc
Normal file
1
default/pacman/mirrorlist-rc
Normal file
@@ -0,0 +1 @@
|
||||
Server = https://rc-mirror.omarchy.org/$repo/os/$arch
|
||||
30
default/pacman/pacman-rc.conf
Normal file
30
default/pacman/pacman-rc.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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
|
||||
18
default/systemd/system-sleep/force-igpu
Normal file
18
default/systemd/system-sleep/force-igpu
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/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
|
||||
18
default/systemd/system-sleep/keyboard-backlight
Executable file
18
default/systemd/system-sleep/keyboard-backlight
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/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
|
||||
@@ -0,0 +1,6 @@
|
||||
[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
|
||||
1
default/themed/asusctl.rgb.tpl
Normal file
1
default/themed/asusctl.rgb.tpl
Normal file
@@ -0,0 +1 @@
|
||||
{{ accent }}
|
||||
3
default/walker/restart.conf
Normal file
3
default/walker/restart.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
[Service]
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
18
default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf
Normal file
18
default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
## 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
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -19,6 +19,7 @@ run_logged $OMARCHY_INSTALL/config/fast-shutdown.sh
|
||||
run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
|
||||
run_logged $OMARCHY_INSTALL/config/input-group.sh
|
||||
run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh
|
||||
run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.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
|
||||
@@ -26,6 +27,7 @@ run_logged $OMARCHY_INSTALL/config/hardware/bluetooth.sh
|
||||
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/legacy-gpu-terminal.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-bcm43xx.sh
|
||||
@@ -33,3 +35,6 @@ 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-realtek-r8168.sh
|
||||
13
install/config/hardware/fix-asus-rog-audio-mixer.sh
Normal file
13
install/config/hardware/fix-asus-rog-audio-mixer.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
# 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
|
||||
15
install/config/hardware/fix-asus-rog-mic.sh
Normal file
15
install/config/hardware/fix-asus-rog-mic.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
# 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
|
||||
11
install/config/hardware/fix-realtek-r8168.sh
Normal file
11
install/config/hardware/fix-realtek-r8168.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
# Install r8168 driver for Realtek RTL8111/8168/8211/8411 ethernet adapters
|
||||
# Common in ASUS TUF Gaming laptops and other modern systems
|
||||
if lspci | grep -i "RTL8111\|RTL8168\|RTL8211\|RTL8411"; then
|
||||
omarchy-pkg-add linux-headers r8168-lts
|
||||
|
||||
# Blacklist problematic r8169 driver
|
||||
echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
|
||||
|
||||
# Regenerate initramfs to ensure r8168 loads on boot
|
||||
sudo mkinitcpio -P
|
||||
fi
|
||||
4
install/config/hardware/fix-yt6801-ethernet-adapter.sh
Normal file
4
install/config/hardware/fix-yt6801-ethernet-adapter.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
# 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
|
||||
17
install/config/hardware/legacy-gpu-terminal.sh
Normal file
17
install/config/hardware/legacy-gpu-terminal.sh
Normal file
@@ -0,0 +1,17 @@
|
||||
# Ghostty requires modern GPU acceleration (OpenGL/Vulkan) which is often unstable
|
||||
# or missing on legacy hardware. Detect legacy GPU drivers and fall back to Alacritty.
|
||||
|
||||
legacy_drivers=("radeon")
|
||||
|
||||
for card in /sys/class/drm/card*; do
|
||||
if [[ -e "$card/device/driver" ]]; then
|
||||
driver=$(basename "$(readlink -f "$card/device/driver")")
|
||||
|
||||
for legacy in "${legacy_drivers[@]}"; do
|
||||
if [[ "$driver" == "$legacy" ]]; then
|
||||
omarchy-install-terminal alacritty
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
@@ -1,6 +1,9 @@
|
||||
omarchy-refresh-applications
|
||||
update-desktop-database ~/.local/share/applications
|
||||
|
||||
# Open directories in file manager
|
||||
xdg-mime default org.gnome.Nautilus.desktop inode/directory
|
||||
|
||||
# Open all images with imv
|
||||
xdg-mime default imv.desktop image/png
|
||||
xdg-mime default imv.desktop image/jpeg
|
||||
|
||||
22
install/config/powerprofilesctl-rules.sh
Normal file
22
install/config/powerprofilesctl-rules.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
if omarchy-battery-present; then
|
||||
mapfile -t profiles < <(omarchy-powerprofiles-list)
|
||||
|
||||
if [[ ${#profiles[@]} -gt 1 ]]; then
|
||||
|
||||
# Default AC profile:
|
||||
# 3 profiles → performance
|
||||
# 2 profiles → balanced
|
||||
ac_profile="${profiles[2]:-${profiles[1]}}"
|
||||
|
||||
# Default Battery profile (balanced)
|
||||
battery_profile="${profiles[1]}"
|
||||
|
||||
cat <<EOF | sudo tee "/etc/udev/rules.d/99-power-profile.rules"
|
||||
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/bin/powerprofilesctl set $battery_profile"
|
||||
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/usr/bin/powerprofilesctl set $ac_profile"
|
||||
EOF
|
||||
|
||||
sudo udevadm control --reload
|
||||
sudo udevadm trigger --subsystem-match=power_supply
|
||||
fi
|
||||
fi
|
||||
@@ -4,6 +4,10 @@
|
||||
mkdir -p ~/.config/autostart/
|
||||
cp $OMARCHY_PATH/default/walker/walker.desktop ~/.config/autostart/
|
||||
|
||||
# And is restarted 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
|
||||
|
||||
# Create pacman hook to restart walker after updates
|
||||
sudo mkdir -p /etc/pacman.d/hooks
|
||||
sudo tee /etc/pacman.d/hooks/walker-restart.hook > /dev/null << EOF
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
if ls /sys/class/power_supply/BAT* &>/dev/null; then
|
||||
# This computer runs on a battery
|
||||
if omarchy-battery-present; then
|
||||
powerprofilesctl set balanced || true
|
||||
|
||||
# Enable battery monitoring timer for low battery notifications
|
||||
systemctl --user enable --now omarchy-battery-monitor.timer
|
||||
else
|
||||
# This computer runs on power outlet
|
||||
powerprofilesctl set performance || true
|
||||
fi
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
1password-cli
|
||||
aether
|
||||
alacritty
|
||||
alsa-utils
|
||||
asdcontrol
|
||||
avahi
|
||||
bash-completion
|
||||
@@ -13,6 +14,7 @@ bluetui
|
||||
bolt
|
||||
brightnessctl
|
||||
btop
|
||||
chromium
|
||||
clang
|
||||
cups
|
||||
cups-browsed
|
||||
@@ -78,6 +80,7 @@ mariadb-libs
|
||||
mise
|
||||
mpv
|
||||
nautilus
|
||||
nautilus-python
|
||||
gnome-disk-utility
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
@@ -87,7 +90,6 @@ nss-mdns
|
||||
nvim
|
||||
obs-studio
|
||||
obsidian
|
||||
omarchy-chromium
|
||||
omarchy-nvim
|
||||
omarchy-walker
|
||||
opencode
|
||||
@@ -145,3 +147,4 @@ xournalpp
|
||||
yaru-icon-theme
|
||||
yay
|
||||
zoxide
|
||||
r8168-lts
|
||||
@@ -2,6 +2,7 @@
|
||||
# Utilized by ISO builder to ensure package availability in the ISO
|
||||
|
||||
autoconf-archive
|
||||
asusctl
|
||||
base
|
||||
base-devel
|
||||
broadcom-wl
|
||||
@@ -44,6 +45,7 @@ snapper
|
||||
webp-pixbuf-loader
|
||||
wget
|
||||
yay-debug
|
||||
yt6801-dkms
|
||||
zram-generator
|
||||
|
||||
# T2 MacBook support packages
|
||||
|
||||
@@ -4,3 +4,4 @@ run_logged $OMARCHY_INSTALL/packaging/nvim.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/icons.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/webapps.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/tuis.sh
|
||||
run_logged $OMARCHY_INSTALL/packaging/asus-rog.sh
|
||||
|
||||
3
install/packaging/asus-rog.sh
Normal file
3
install/packaging/asus-rog.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
if omarchy-hw-asus-rog; then
|
||||
omarchy-pkg-add asusctl
|
||||
fi
|
||||
14
migrations/1768270644.sh
Normal file
14
migrations/1768270644.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
echo "Add icon for headset audio profile in Waybar"
|
||||
|
||||
if ! grep -q '"headset": ""' "$HOME/.config/waybar/config.jsonc"; then
|
||||
sed -i '
|
||||
/"pulseaudio": {/,/^[ ]*}/{
|
||||
/"format-icons": {/,/^[ ]*}/{
|
||||
/"default":/i\
|
||||
\ "headset": "",
|
||||
}
|
||||
}
|
||||
' "$HOME/.config/waybar/config.jsonc"
|
||||
|
||||
omarchy-restart-waybar
|
||||
fi
|
||||
8
migrations/1768916735.sh
Normal file
8
migrations/1768916735.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
echo "Fix microphone gain and audio mixing on Asus ROG laptops"
|
||||
|
||||
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
|
||||
fi
|
||||
4
migrations/1769182209.sh
Normal file
4
migrations/1769182209.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
echo "Enable auto-pasting for the emoji picker"
|
||||
|
||||
omarchy-refresh-config elephant/symbols.toml
|
||||
omarchy-restart-walker
|
||||
3
migrations/1769183359.sh
Normal file
3
migrations/1769183359.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
echo "Add nautilus-python package for 'Open in Ghostty' shortcut in Nautilus"
|
||||
|
||||
omarchy-pkg-add nautilus-python
|
||||
5
migrations/1769510847.sh
Normal file
5
migrations/1769510847.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
echo "Switch back to mainline chromium now that it supports full live themeing"
|
||||
|
||||
omarchy-pkg-drop omarchy-chromium
|
||||
omarchy-pkg-add chromium
|
||||
omarchy-theme-set-browser
|
||||
6
migrations/1769543550.sh
Normal file
6
migrations/1769543550.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
echo "Add SUPER+ALT+SHIFT+F shortcut to open nautilus in cwd"
|
||||
|
||||
# Add the new CWD binding if it doesn't exist
|
||||
if ! grep -q "SUPER ALT SHIFT, F" ~/.config/hypr/bindings.conf; then
|
||||
sed -i '/bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window/a bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"' ~/.config/hypr/bindings.conf
|
||||
fi
|
||||
3
migrations/1769566732.sh
Normal file
3
migrations/1769566732.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
echo "Set power profile based on source switching (AC or Battery)"
|
||||
|
||||
source $OMARCHY_PATH/install/config/powerprofilesctl-rules.sh
|
||||
3
migrations/1769619823.sh
Normal file
3
migrations/1769619823.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
echo "Open directories in file manager using the shell open command"
|
||||
|
||||
xdg-mime default org.gnome.Nautilus.desktop inode/directory
|
||||
6
migrations/1769964367.sh
Normal file
6
migrations/1769964367.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
echo "Improve audio controls icon for default selection"
|
||||
|
||||
if [[ ! -f ~/.config/wiremix/wiremix.toml ]]; then
|
||||
mkdir -p ~/.config/wiremix
|
||||
cp -f $OMARCHY_PATH/config/wiremix/wiremix.toml ~/.config/wiremix/
|
||||
fi
|
||||
6
migrations/1770186458.sh
Normal file
6
migrations/1770186458.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
echo "Fix Realtek RTL8111/8168/8211/8411 ethernet adapter support for ASUS TUF and other laptops"
|
||||
|
||||
# Run the hardware detection script for existing installations
|
||||
if [ -f "$OMARCHY_INSTALL/config/hardware/fix-realtek-r8168.sh" ]; then
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-realtek-r8168.sh
|
||||
fi
|
||||
5
migrations/1770372978.sh
Normal file
5
migrations/1770372978.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
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
|
||||
5
migrations/1770375655.sh
Normal file
5
migrations/1770375655.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
echo "Add Super+Shift+Return binding for browser"
|
||||
|
||||
if [[ -f ~/.config/hypr/bindings.conf ]] && ! grep -q "SUPER SHIFT, RETURN.*Browser" ~/.config/hypr/bindings.conf; then
|
||||
sed -i '/^bindd = SUPER, RETURN, Terminal/a bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser' ~/.config/hypr/bindings.conf
|
||||
fi
|
||||
6
migrations/1770375817.sh
Normal file
6
migrations/1770375817.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
echo "Ensure walker service is restarted if it's killed or crashes"
|
||||
|
||||
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
|
||||
|
||||
2
themes/catppuccin/waybar.css
Normal file
2
themes/catppuccin/waybar.css
Normal file
@@ -0,0 +1,2 @@
|
||||
@define-color foreground #cdd6f4;
|
||||
@define-color background #181824;
|
||||
BIN
themes/miasma/backgrounds/01-miasma.jpg
Normal file
BIN
themes/miasma/backgrounds/01-miasma.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 653 KiB |
BIN
themes/miasma/backgrounds/02-miasma.jpg
Normal file
BIN
themes/miasma/backgrounds/02-miasma.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 983 KiB |
70
themes/miasma/btop.theme
Normal file
70
themes/miasma/btop.theme
Normal file
@@ -0,0 +1,70 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="#222222"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#c2c2b0"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#bb7744"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#c9a554"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#e4c47a"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#000000"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#666666"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#bb7744"
|
||||
|
||||
# Box outline and divider line color
|
||||
theme[cpu_box]="#5f875f"
|
||||
theme[mem_box]="#5f875f"
|
||||
theme[net_box]="#5f875f"
|
||||
theme[proc_box]="#5f875f"
|
||||
theme[div_line]="#666666"
|
||||
|
||||
# Gradient for all meters and graphs
|
||||
theme[temp_start]="#c9a554"
|
||||
theme[temp_mid]="#78824b"
|
||||
theme[temp_end]="#5f875f"
|
||||
|
||||
|
||||
theme[cpu_start]="#c9a554"
|
||||
theme[cpu_mid]="#78824b"
|
||||
theme[cpu_end]="#5f875f"
|
||||
|
||||
|
||||
theme[free_start]="#78824b"
|
||||
theme[free_mid]="#b36d43"
|
||||
theme[free_end]="#b36d43"
|
||||
|
||||
|
||||
theme[cached_start]="#b36d43"
|
||||
theme[cached_mid]="#b36d43"
|
||||
theme[cached_end]="#b36d43"
|
||||
|
||||
|
||||
theme[available_start]="#c9a554"
|
||||
theme[available_mid]="#c9a554"
|
||||
theme[available_end]="#c9a554"
|
||||
|
||||
|
||||
theme[used_start]="#5f875f"
|
||||
theme[used_mid]="#5f875f"
|
||||
theme[used_end]="#5f875f"
|
||||
|
||||
|
||||
theme[download_start]="#b36d43"
|
||||
theme[download_mid]="#c9a554"
|
||||
theme[download_end]="#78824b"
|
||||
|
||||
|
||||
theme[upload_start]="#b36d43"
|
||||
theme[upload_mid]="#c9a554"
|
||||
theme[upload_end]="#78824b"
|
||||
23
themes/miasma/colors.toml
Normal file
23
themes/miasma/colors.toml
Normal file
@@ -0,0 +1,23 @@
|
||||
accent = "#78824b"
|
||||
cursor = "#c7c7c7"
|
||||
foreground = "#c2c2b0"
|
||||
background = "#222222"
|
||||
selection_foreground = "#c2c2b0"
|
||||
selection_background = "#78824b"
|
||||
|
||||
color0 = "#000000"
|
||||
color1 = "#685742"
|
||||
color2 = "#5f875f"
|
||||
color3 = "#b36d43"
|
||||
color4 = "#78824b"
|
||||
color5 = "#bb7744"
|
||||
color6 = "#c9a554"
|
||||
color7 = "#d7c483"
|
||||
color8 = "#666666"
|
||||
color9 = "#685742"
|
||||
color10 = "#5f875f"
|
||||
color11 = "#b36d43"
|
||||
color12 = "#78824b"
|
||||
color13 = "#bb7744"
|
||||
color14 = "#c9a554"
|
||||
color15 = "#d7c483"
|
||||
1
themes/miasma/icons.theme
Normal file
1
themes/miasma/icons.theme
Normal file
@@ -0,0 +1 @@
|
||||
Yaru-wartybrown
|
||||
88
themes/miasma/neovim.lua
Normal file
88
themes/miasma/neovim.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
return {
|
||||
{
|
||||
"xero/miasma.nvim",
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "miasma",
|
||||
},
|
||||
},
|
||||
}
|
||||
-- local function has_miasma_in_user_plugins()
|
||||
-- local plugins_dir = vim.fn.expand("~/.config/nvim/lua/plugins")
|
||||
-- if vim.fn.isdirectory(plugins_dir) ~= 1 then
|
||||
-- return false
|
||||
-- end
|
||||
-- local plugin_files = vim.fn.glob(plugins_dir .. "/**/*.lua", true, true)
|
||||
-- for _, file in ipairs(plugin_files) do
|
||||
-- local ok, lines = pcall(vim.fn.readfile, file)
|
||||
-- if ok then
|
||||
-- for _, line in ipairs(lines) do
|
||||
-- if line:find("xero/miasma.nvim", 1, true) then
|
||||
-- return true
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
-- return false
|
||||
-- end
|
||||
--
|
||||
-- if has_miasma_in_user_plugins() then
|
||||
-- return {
|
||||
-- {
|
||||
-- "xero/miasma.nvim",
|
||||
-- lazy = false,
|
||||
-- priority = 1000,
|
||||
-- config = function()
|
||||
-- vim.cmd("colorscheme miasma")
|
||||
-- end,
|
||||
-- },
|
||||
-- }
|
||||
-- end
|
||||
--
|
||||
-- return {
|
||||
-- {
|
||||
-- "bjarneo/aether.nvim",
|
||||
-- name = "aether",
|
||||
-- priority = 1000,
|
||||
-- opts = {
|
||||
-- disable_italics = false,
|
||||
-- colors = {
|
||||
-- -- Monotone shades (base00-base07)
|
||||
-- base00 = "#222222", -- Default background
|
||||
-- base01 = "#666666", -- Lighter background (status bars)
|
||||
-- base02 = "#e4c47a", -- Selection background
|
||||
-- base03 = "#666666", -- Comments, invisibles
|
||||
-- base04 = "#c2c2b0", -- Dark foreground
|
||||
-- base05 = "#c2c2b0", -- Default foreground
|
||||
-- base06 = "#d7c483", -- Light foreground
|
||||
-- base07 = "#d7c483", -- Light background
|
||||
--
|
||||
-- -- Accent colors (base08-base0F)
|
||||
-- base08 = "#685742", -- Variables, errors, red
|
||||
-- base09 = "#685742", -- Integers, constants, orange
|
||||
-- base0A = "#b36d43", -- Classes, types, yellow
|
||||
-- base0B = "#5f875f", -- Strings, green
|
||||
-- base0C = "#c9a554", -- Support, regex, cyan
|
||||
-- base0D = "#78824b", -- Functions, keywords, blue
|
||||
-- base0E = "#bb7744", -- Keywords, storage, magenta
|
||||
-- base0F = "#b36d43", -- Deprecated, brown/yellow
|
||||
-- },
|
||||
-- },
|
||||
-- config = function(_, opts)
|
||||
-- require("aether").setup(opts)
|
||||
-- vim.cmd.colorscheme("aether")
|
||||
--
|
||||
-- -- Enable hot reload
|
||||
-- require("aether.hotreload").setup()
|
||||
-- end,
|
||||
-- },
|
||||
-- {
|
||||
-- "LazyVim/LazyVim",
|
||||
-- opts = {
|
||||
-- colorscheme = "aether",
|
||||
-- },
|
||||
-- },
|
||||
-- }
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user