mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
82 Commits
rc
...
6ff13fc071
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ff13fc071 | ||
|
|
a33cf4f287 | ||
|
|
2e2d78088a | ||
|
|
b1af966819 | ||
|
|
e055358721 | ||
|
|
8b6e2466a3 | ||
|
|
560500d8ec | ||
|
|
463417a281 | ||
|
|
bbb57e98c1 | ||
|
|
e38dd063a6 | ||
|
|
a4d6e3ab03 | ||
|
|
fc529b368d | ||
|
|
ce01b6e0d6 | ||
|
|
450d4dd82b | ||
|
|
8895384b0e | ||
|
|
e4b7372666 | ||
|
|
a30448ceec | ||
|
|
4fadf666e6 | ||
|
|
07ede07193 | ||
|
|
527819b750 | ||
|
|
98bfe20839 | ||
|
|
4d48409926 | ||
|
|
ffafe1727e | ||
|
|
f2f306269a | ||
|
|
e4913ca2db | ||
|
|
ff234bba1f | ||
|
|
ecf48a3b4c | ||
|
|
74eea9e716 | ||
|
|
66cb888a2e | ||
|
|
0a5755e51f | ||
|
|
7bd5bf25cd | ||
|
|
0c9b38e507 | ||
|
|
0e2ed5439e | ||
|
|
75a0ee6149 | ||
|
|
2c9c0f883a | ||
|
|
8a58b8153c | ||
|
|
badd1f8495 | ||
|
|
67ee1450f0 | ||
|
|
c289cd0730 | ||
|
|
cbcd0e49be | ||
|
|
ae45f06847 | ||
|
|
1070a87a47 | ||
|
|
9741b29a7c | ||
|
|
ea24b0dc68 | ||
|
|
3bbb57b54d | ||
|
|
ebfb7f16e8 | ||
|
|
347afae8c0 | ||
|
|
ebfcefa553 | ||
|
|
2087d96ad8 | ||
|
|
b638cbc57a | ||
|
|
636a7cefda | ||
|
|
f7e22fcfd8 | ||
|
|
b0e8a4dcea | ||
|
|
f57234b991 | ||
|
|
be7f316371 | ||
|
|
b1553d3b31 | ||
|
|
055e969a56 | ||
|
|
050899e5b3 | ||
|
|
bd8b12b23b | ||
|
|
c268fb6c9b | ||
|
|
248a7a611b | ||
|
|
e487dace43 | ||
|
|
ba14cd36dd | ||
|
|
34b22a23f6 | ||
|
|
f0d5c35271 | ||
|
|
63fc96a541 | ||
|
|
4ba39ba73c | ||
|
|
1a14938382 | ||
|
|
9581cce1af | ||
|
|
cf72c02ea5 | ||
|
|
a8ce084460 | ||
|
|
4b3e21445b | ||
|
|
8878478103 | ||
|
|
74ff475693 | ||
|
|
22f64160f5 | ||
|
|
ea76f8196c | ||
|
|
49a2941e2b | ||
|
|
6a5b64b4bc | ||
|
|
c484b66bcb | ||
|
|
87da28a965 | ||
|
|
23b74c6212 | ||
|
|
69dbee75cd |
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
|
||||||
|
```
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/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
|
for bat in /sys/class/power_supply/BAT*; do
|
||||||
[[ -r "$bat/present" ]] &&
|
[[ -r "$bat/present" ]] &&
|
||||||
[[ "$(cat "$bat/present")" == "1" ]] &&
|
[[ "$(cat "$bat/present")" == "1" ]] &&
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ else
|
|||||||
branch="$1"
|
branch="$1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$branch" != "master" && "$branch" != "rc" && "$branch" != "edge" ]]; then
|
if [[ "$branch" != "master" && "$branch" != "rc" && "$branch" != "dev" ]]; then
|
||||||
echo "Error: Invalid branch '$branch'. Must be one of: master, rc, edge"
|
echo "Error: Invalid branch '$branch'. Must be one of: master, rc, dev"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
# Take a screenshot of the whole screen, a specific window, or a user-drawn region.
|
# Take a screenshot of the whole screen, a specific window, or a user-drawn region.
|
||||||
# Saves to ~/Pictures by default, but that can be changed via OMARCHY_SCREENSHOT_DIR or XDG_PICTURES_DIR ENVs.
|
# Saves to ~/Pictures by default, but that can be changed via OMARCHY_SCREENSHOT_DIR or XDG_PICTURES_DIR ENVs.
|
||||||
|
# Editor defaults to Satty but can be changed via --editor=<name> or OMARCHY_SCREENSHOT_EDITOR env
|
||||||
|
|
||||||
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
|
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
|
||||||
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}"
|
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}"
|
||||||
@@ -13,6 +14,33 @@ fi
|
|||||||
|
|
||||||
pkill slurp && exit 0
|
pkill slurp && exit 0
|
||||||
|
|
||||||
|
SCREENSHOT_EDITOR="${OMARCHY_SCREENSHOT_EDITOR:-satty}"
|
||||||
|
|
||||||
|
# Parse --editor flag from any position
|
||||||
|
ARGS=()
|
||||||
|
for arg in "$@"; do
|
||||||
|
if [[ "$arg" == --editor=* ]]; then
|
||||||
|
SCREENSHOT_EDITOR="${arg#--editor=}"
|
||||||
|
else
|
||||||
|
ARGS+=("$arg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
set -- "${ARGS[@]}"
|
||||||
|
|
||||||
|
open_editor() {
|
||||||
|
local filepath="$1"
|
||||||
|
if [[ "$SCREENSHOT_EDITOR" == "satty" ]]; then
|
||||||
|
satty --filename "$filepath" \
|
||||||
|
--output-filename "$filepath" \
|
||||||
|
--early-exit \
|
||||||
|
--actions-on-enter save-to-clipboard \
|
||||||
|
--save-after-copy \
|
||||||
|
--copy-command 'wl-copy'
|
||||||
|
else
|
||||||
|
$SCREENSHOT_EDITOR "$filepath"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
MODE="${1:-smart}"
|
MODE="${1:-smart}"
|
||||||
PROCESSING="${2:-slurp}"
|
PROCESSING="${2:-slurp}"
|
||||||
|
|
||||||
@@ -46,7 +74,7 @@ case "$MODE" in
|
|||||||
SELECTION=$(echo "$RECTS" | slurp 2>/dev/null)
|
SELECTION=$(echo "$RECTS" | slurp 2>/dev/null)
|
||||||
kill $PID 2>/dev/null
|
kill $PID 2>/dev/null
|
||||||
|
|
||||||
# If the selction area is L * W < 20, we'll assume you were trying to select whichever
|
# If the selection area is L * W < 20, we'll assume you were trying to select whichever
|
||||||
# window or output it was inside of to prevent accidental 2px snapshots
|
# window or output it was inside of to prevent accidental 2px snapshots
|
||||||
if [[ "$SELECTION" =~ ^([0-9]+),([0-9]+)[[:space:]]([0-9]+)x([0-9]+)$ ]]; then
|
if [[ "$SELECTION" =~ ^([0-9]+),([0-9]+)[[:space:]]([0-9]+)x([0-9]+)$ ]]; then
|
||||||
if (( ${BASH_REMATCH[3]} * ${BASH_REMATCH[4]} < 20 )); then
|
if (( ${BASH_REMATCH[3]} * ${BASH_REMATCH[4]} < 20 )); then
|
||||||
@@ -71,16 +99,19 @@ case "$MODE" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
[ -z "$SELECTION" ] && exit 0
|
[[ -z $SELECTION ]] && exit 0
|
||||||
|
|
||||||
|
FILENAME="screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png"
|
||||||
|
FILEPATH="$OUTPUT_DIR/$FILENAME"
|
||||||
|
|
||||||
if [[ $PROCESSING == "slurp" ]]; then
|
if [[ $PROCESSING == "slurp" ]]; then
|
||||||
grim -g "$SELECTION" - |
|
grim -g "$SELECTION" "$FILEPATH" || exit 1
|
||||||
satty --filename - \
|
wl-copy < "$FILEPATH"
|
||||||
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
|
||||||
--early-exit \
|
(
|
||||||
--actions-on-enter save-to-clipboard \
|
ACTION=$(notify-send "Screenshot copied & saved" "Click to edit" -t 10000 -i "$FILEPATH" -A "default=edit")
|
||||||
--save-after-copy \
|
[[ "$ACTION" == "default" ]] && open_editor "$FILEPATH"
|
||||||
--copy-command 'wl-copy'
|
) &
|
||||||
else
|
else
|
||||||
grim -g "$SELECTION" - | wl-copy
|
grim -g "$SELECTION" - | wl-copy
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -17,9 +17,11 @@ if [ -f "$MKINITCPIO_CONF" ] && grep -q "^HOOKS+=(resume)$" "$MKINITCPIO_CONF";
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MEM_TOTAL_HUMAN=$(free --human | awk '/Mem/ {print $2}')
|
if [[ $1 != "--force" ]]; then
|
||||||
if ! gum confirm "Use $MEM_TOTAL_HUMAN on boot drive to make hibernation available?"; then
|
MEM_TOTAL_HUMAN=$(free --human | awk '/Mem/ {print $2}')
|
||||||
exit 0
|
if ! gum confirm "Use $MEM_TOTAL_HUMAN on boot drive to make hibernation available?"; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SWAP_SUBVOLUME="/swap"
|
SWAP_SUBVOLUME="/swap"
|
||||||
@@ -57,18 +59,26 @@ 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
|
||||||
|
|
||||||
# Configure suspend-then-hibernate
|
# Ensure keyboard backlight doesn't prevent sleep
|
||||||
echo "Configuring suspend-then-hibernate"
|
sudo cp -p "$OMARCHY_PATH/default/systemd/system-sleep/keyboard-backlight" /usr/lib/systemd/system-sleep/
|
||||||
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/
|
|
||||||
|
|
||||||
# Regenerate initramfs
|
# Use ACPI alarm for RTC wakeup on s2idle systems (needed for suspend-then-hibernate)
|
||||||
|
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
|
||||||
|
|
||||||
if gum confirm "Reboot to enable hiberation?"; then
|
if [[ $1 != "--force" ]] && gum confirm "Reboot to enable hibernation?"; then
|
||||||
omarchy-cmd-reboot
|
omarchy-cmd-reboot
|
||||||
fi
|
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
|
||||||
@@ -1,15 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/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://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
|
||||||
|
|
||||||
echo -e "\nAdd tsui to sudoers..."
|
omarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Launch the Walker application launcher while ensuring that it's data provider (called elephant) is runnig first.
|
# Launch the Walker application launcher while ensuring that it's data provider (called elephant) is running 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
|
||||||
|
|||||||
@@ -99,21 +99,13 @@ show_trigger_menu() {
|
|||||||
|
|
||||||
show_capture_menu() {
|
show_capture_menu() {
|
||||||
case $(menu "Capture" " Screenshot\n Screenrecord\n Color") in
|
case $(menu "Capture" " Screenshot\n Screenrecord\n Color") in
|
||||||
*Screenshot*) show_screenshot_menu ;;
|
*Screenshot*) omarchy-cmd-screenshot ;;
|
||||||
*Screenrecord*) show_screenrecord_menu ;;
|
*Screenrecord*) show_screenrecord_menu ;;
|
||||||
*Color*) pkill hyprpicker || hyprpicker -a ;;
|
*Color*) pkill hyprpicker || hyprpicker -a ;;
|
||||||
*) show_trigger_menu ;;
|
*) show_trigger_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
show_screenshot_menu() {
|
|
||||||
case $(menu "Screenshot" " Snap with Editing\n Straight to Clipboard") in
|
|
||||||
*Editing*) omarchy-cmd-screenshot smart ;;
|
|
||||||
*Clipboard*) omarchy-cmd-screenshot smart clipboard ;;
|
|
||||||
*) show_capture_menu ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
get_webcam_list() {
|
get_webcam_list() {
|
||||||
v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do
|
v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do
|
||||||
if [[ "$line" != $'\t'* && -n "$line" ]]; then
|
if [[ "$line" != $'\t'* && -n "$line" ]]; then
|
||||||
@@ -148,7 +140,10 @@ show_screenrecord_menu() {
|
|||||||
*"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;;
|
*"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;;
|
||||||
*"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;;
|
*"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;;
|
||||||
*"With desktop + microphone audio + webcam")
|
*"With desktop + microphone audio + webcam")
|
||||||
local device=$(show_webcam_select_menu) || { back_to show_capture_menu; return; }
|
local device=$(show_webcam_select_menu) || {
|
||||||
|
back_to show_capture_menu
|
||||||
|
return
|
||||||
|
}
|
||||||
omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device"
|
omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device"
|
||||||
;;
|
;;
|
||||||
*) back_to show_capture_menu ;;
|
*) back_to show_capture_menu ;;
|
||||||
@@ -431,11 +426,12 @@ show_install_elixir_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_remove_menu() {
|
show_remove_menu() {
|
||||||
case $(menu "Remove" " Package\n Web App\n TUI\n Development\n Dictation\n Theme\n Windows\n Fingerprint\n Fido2") in
|
case $(menu "Remove" " Package\n Web App\n TUI\n Development\n Preinstalls\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" ;;
|
||||||
@@ -490,7 +486,7 @@ show_remove_elixir_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_update_menu() {
|
show_update_menu() {
|
||||||
case $(menu "Update" " Omarchy\n Channel\n Config\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone\n Time") in
|
case $(menu "Update" " Omarchy\n Channel\n Config\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone\n Time") in
|
||||||
*Omarchy*) present_terminal omarchy-update ;;
|
*Omarchy*) present_terminal omarchy-update ;;
|
||||||
*Channel*) show_update_channel_menu ;;
|
*Channel*) show_update_channel_menu ;;
|
||||||
*Config*) show_update_config_menu ;;
|
*Config*) show_update_config_menu ;;
|
||||||
@@ -506,9 +502,9 @@ show_update_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_update_channel_menu() {
|
show_update_channel_menu() {
|
||||||
case $(menu "Update channel" "🟢 Stable\n🟡 Release Candidate\n🟠 Edge\n🔴 Dev") in
|
case $(menu "Update channel" "🟢 Stable\n🟡 RC\n🟠 Edge\n🔴 Dev") in
|
||||||
*Stable*) present_terminal "omarchy-channel-set stable" ;;
|
*Stable*) present_terminal "omarchy-channel-set stable" ;;
|
||||||
*Candidate*) present_terminal "omarchy-channel-set rc" ;;
|
*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 ;;
|
||||||
|
|||||||
6
bin/omarchy-refresh-tmux
Executable file
6
bin/omarchy-refresh-tmux
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Overwrite the user tmux config with the Omarchy default and reload tmux.
|
||||||
|
|
||||||
|
omarchy-refresh-config tmux/tmux.conf
|
||||||
|
tmux source-file ~/.config/tmux/tmux.conf
|
||||||
@@ -5,9 +5,17 @@
|
|||||||
# 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
|
||||||
|
|||||||
25
bin/omarchy-remove-all
Executable file
25
bin/omarchy-remove-all
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/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
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
#!/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
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
#!/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"
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
#!/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 &
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#!/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
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Restart the hypridle service (used for idle detection and auto-lock).
|
||||||
|
|
||||||
omarchy-restart-app hypridle
|
omarchy-restart-app hypridle
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Restart the hyprsunset service (used for blue light filtering/night light).
|
||||||
|
|
||||||
omarchy-restart-app hyprsunset
|
omarchy-restart-app hyprsunset
|
||||||
|
|||||||
@@ -2,4 +2,6 @@
|
|||||||
|
|
||||||
# Reload opencode configuration (used by the Omarchy theme switching).
|
# Reload opencode configuration (used by the Omarchy theme switching).
|
||||||
|
|
||||||
killall -SIGUSR2 opencode
|
if pgrep -x opencode >/dev/null; then
|
||||||
|
killall -SIGUSR2 opencode
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
#!/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
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#!/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
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
#!/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
|
||||||
|
|||||||
@@ -58,11 +58,13 @@ 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() {
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
#!/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 -t 7 -n 1 -s'
|
gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -n 1 -s'
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
#!/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
|
||||||
|
|||||||
@@ -31,4 +31,6 @@ create)
|
|||||||
restore)
|
restore)
|
||||||
sudo limine-snapper-restore
|
sudo limine-snapper-restore
|
||||||
;;
|
;;
|
||||||
|
delete)
|
||||||
|
sudo snapper -c "$config" delete 0
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
#!/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"
|
||||||
|
|
||||||
|
|||||||
9
bin/omarchy-theme-refresh
Executable file
9
bin/omarchy-theme-refresh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/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
|
||||||
@@ -57,6 +57,7 @@ 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"
|
||||||
|
|||||||
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
|
||||||
36
bin/omarchy-tui-remove-all
Executable file
36
bin/omarchy-tui-remove-all
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/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."
|
||||||
@@ -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"' 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";omarchy-snapshot delete' 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 ]
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
if pacman -Qem >/dev/null; then
|
if pacman -Qem >/dev/null; then
|
||||||
if omarchy-pkg-aur-accessible; then
|
if omarchy-pkg-aur-accessible; then
|
||||||
echo -e "\e[32m\nUpdate AUR packages\e[0m"
|
echo -e "\e[32m\nUpdate AUR packages\e[0m"
|
||||||
yay -Sua --noconfirm --ignore gcc14,gcc14-libs
|
yay -Sua --noconfirm --cleanafter --ignore gcc14,gcc14-libs
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
|
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
|
||||||
|
|||||||
@@ -7,5 +7,5 @@ if omarchy-cmd-missing fwupdmgr; then
|
|||||||
omarchy-pkg-add fwupd
|
omarchy-pkg-add fwupd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fwupdmgr refresh
|
fwupdmgr refresh --force
|
||||||
sudo fwupdmgr update
|
sudo fwupdmgr update
|
||||||
|
|||||||
36
bin/omarchy-webapp-remove-all
Executable file
36
bin/omarchy-webapp-remove-all
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/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."
|
||||||
5
bin/omarchy-wifi-powersave
Executable file
5
bin/omarchy-wifi-powersave
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
for iface in /sys/class/net/*/wireless; do
|
||||||
|
iface="$(basename "$(dirname "$iface")")"
|
||||||
|
iw dev "$iface" set power_save "$1" 2>/dev/null
|
||||||
|
done
|
||||||
@@ -185,6 +185,8 @@ 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
|
||||||
@@ -240,6 +242,11 @@ 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
|
||||||
|
|||||||
@@ -32,3 +32,6 @@ 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
|
||||||
|
|||||||
@@ -1,5 +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 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
|
||||||
@@ -24,6 +25,9 @@ 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
|
||||||
|
|||||||
@@ -39,5 +39,5 @@ input-field {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auth {
|
auth {
|
||||||
fingerprint:enabled = true
|
fingerprint:enabled = false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[server]
|
[server]
|
||||||
show_percentage = true
|
show_percentage = true
|
||||||
max_volume = 100
|
max_volume = 100
|
||||||
style = "./style.css"
|
style = "~/.config/swayosd/style.css"
|
||||||
|
|||||||
95
config/tmux/tmux.conf
Normal file
95
config/tmux/tmux.conf
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# Prefix
|
||||||
|
set -g prefix C-Space
|
||||||
|
set -g prefix2 C-b
|
||||||
|
bind C-Space send-prefix
|
||||||
|
|
||||||
|
# Reload config
|
||||||
|
bind q source-file ~/.config/tmux/tmux.conf
|
||||||
|
|
||||||
|
# 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 Controls
|
||||||
|
bind h split-window -h -c "#{pane_current_path}"
|
||||||
|
bind v split-window -v -c "#{pane_current_path}"
|
||||||
|
bind -n C-M-PageUp split-window -h -c "#{pane_current_path}"
|
||||||
|
bind -n C-M-PageDown split-window -v -c "#{pane_current_path}"
|
||||||
|
bind -n C-M-Home split-window -h -c "#{pane_current_path}"
|
||||||
|
bind -n C-M-End kill-pane
|
||||||
|
|
||||||
|
bind -n C-M-Left select-pane -L
|
||||||
|
bind -n C-M-Right select-pane -R
|
||||||
|
bind -n C-M-Up select-pane -U
|
||||||
|
bind -n C-M-Down select-pane -D
|
||||||
|
|
||||||
|
bind -n C-M-S-Left resize-pane -L 5
|
||||||
|
bind -n C-M-S-Down resize-pane -D 5
|
||||||
|
bind -n C-M-S-Up resize-pane -U 5
|
||||||
|
bind -n C-M-S-Right resize-pane -R 5
|
||||||
|
|
||||||
|
# Window navigation
|
||||||
|
bind r command-prompt -I "#W" "rename-window -- '%%'"
|
||||||
|
bind c new-window -c "#{pane_current_path}"
|
||||||
|
bind x kill-window
|
||||||
|
bind -n C-S-Home new-window -c "#{pane_current_path}"
|
||||||
|
bind -n C-S-End kill-window
|
||||||
|
|
||||||
|
bind -n C-S-PageUp next-window
|
||||||
|
bind -n C-S-PageDown previous-window
|
||||||
|
|
||||||
|
bind -n M-1 select-window -t 1
|
||||||
|
bind -n M-2 select-window -t 2
|
||||||
|
bind -n M-3 select-window -t 3
|
||||||
|
bind -n M-4 select-window -t 4
|
||||||
|
bind -n M-5 select-window -t 5
|
||||||
|
bind -n M-6 select-window -t 6
|
||||||
|
bind -n M-7 select-window -t 7
|
||||||
|
bind -n M-8 select-window -t 8
|
||||||
|
bind -n M-9 select-window -t 9
|
||||||
|
|
||||||
|
# Session controls
|
||||||
|
bind R command-prompt -I "#S" "rename-session -- '%%'"
|
||||||
|
bind C new-session
|
||||||
|
bind X kill-session
|
||||||
|
bind -n C-M-S-Home new-session -c "#{pane_current_path}"
|
||||||
|
bind -n C-M-S-End kill-session
|
||||||
|
|
||||||
|
bind -n C-M-S-PageUp switch-client -p
|
||||||
|
bind -n C-M-S-PageDown switch-client -n
|
||||||
|
|
||||||
|
# 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
|
||||||
|
set -g allow-passthrough 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
|
||||||
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 = "⮞"
|
||||||
@@ -7,6 +7,7 @@ if command -v eza &> /dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
|
alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
|
||||||
|
alias eff='$EDITOR $(ff)'
|
||||||
|
|
||||||
if command -v zoxide &> /dev/null; then
|
if command -v zoxide &> /dev/null; then
|
||||||
alias cd="zd"
|
alias cd="zd"
|
||||||
@@ -34,6 +35,7 @@ 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
|
||||||
|
|||||||
@@ -87,3 +87,62 @@ 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"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a tmux layout for dev with editor, ai, and terminal
|
||||||
|
tml() {
|
||||||
|
local current_dir="${PWD}"
|
||||||
|
local editor_pane ai_pane
|
||||||
|
local ai="$1"
|
||||||
|
|
||||||
|
# Get current pane ID (will become editor pane after splits)
|
||||||
|
editor_pane=$(tmux display-message -p '#{pane_id}')
|
||||||
|
|
||||||
|
# Split window vertically - top 90%, bottom 10%
|
||||||
|
tmux split-window -v -p 10 -c "$current_dir"
|
||||||
|
|
||||||
|
# Go back to top pane (editor_pane) and split it horizontally
|
||||||
|
tmux select-pane -t "$editor_pane"
|
||||||
|
tmux split-window -h -p 30 -c "$current_dir"
|
||||||
|
|
||||||
|
# After horizontal split, cursor is in the right pane (new pane)
|
||||||
|
# Get its ID and run ai there
|
||||||
|
ai_pane=$(tmux display-message -p '#{pane_id}')
|
||||||
|
tmux send-keys -t "$ai_pane" "$ai" C-m
|
||||||
|
|
||||||
|
# Run nvim in the left pane
|
||||||
|
tmux send-keys -t "$editor_pane" "$EDITOR ." C-m
|
||||||
|
|
||||||
|
# Select the nvim pane for focus
|
||||||
|
tmux select-pane -t "$editor_pane"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a dev layout using tmux with editor, opencode, and terminal
|
||||||
|
nic() {
|
||||||
|
tml c
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a dev layout using tmux with editor, claude, and terminal
|
||||||
|
nicx() {
|
||||||
|
tml cx
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ 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
|
||||||
|
|
||||||
|
|||||||
@@ -9,3 +9,4 @@ 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"
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
# 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.97, match:tag chromium-based-browser
|
windowrule = opacity 1.0 0.97, match:tag chromium-based-browser
|
||||||
windowrule = opacity 1 0.97, match:tag firefox-based-browser
|
windowrule = opacity 1.0 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)
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# 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
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
windowrule = tag -default-opacity, match:class qemu
|
||||||
windowrule = opacity 1 1, match:class qemu
|
windowrule = opacity 1 1, match:class qemu
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
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
|
||||||
|
|||||||
@@ -1,6 +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
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ 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
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
# 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
|
||||||
|
|||||||
@@ -34,8 +34,7 @@ bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-brightness-display-
|
|||||||
bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-brightness-display-apple +60000
|
bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-brightness-display-apple +60000
|
||||||
|
|
||||||
# Captures
|
# Captures
|
||||||
bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot
|
bindd = , PRINT, Screenshot, exec, omarchy-cmd-screenshot
|
||||||
bindd = SHIFT, PRINT, Screenshot to clipboard, exec, omarchy-cmd-screenshot smart clipboard
|
|
||||||
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
|
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
|
||||||
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
|
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
|
||||||
|
|
||||||
|
|||||||
@@ -140,5 +140,5 @@ binds {
|
|||||||
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,0 # Black
|
env = GUM_CONFIRM_UNSELECTED_FOREGROUND,7 # White
|
||||||
env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey
|
env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
# Hyprland 0.53+ syntax
|
# Hyprland 0.53+ syntax
|
||||||
windowrule = suppress_event maximize, match:class .*
|
windowrule = suppress_event maximize, match:class .*
|
||||||
|
|
||||||
# Just dash of opacity by default
|
# Tag all windows for default opacity (apps can override with -default-opacity tag)
|
||||||
windowrule = opacity 0.97 0.9, match:class .*
|
windowrule = tag +default-opacity, 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
|
# App-specific tweaks (may remove default-opacity tag)
|
||||||
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
|
||||||
|
|||||||
@@ -28,3 +28,7 @@ on-button-left=exec sh -c 'omarchy-notification-dismiss "Update System"; omarchy
|
|||||||
|
|
||||||
[summary~="Learn Keybindings"]
|
[summary~="Learn Keybindings"]
|
||||||
on-button-left=exec sh -c 'omarchy-notification-dismiss "Learn Keybindings"; omarchy-menu-keybindings'
|
on-button-left=exec sh -c 'omarchy-notification-dismiss "Learn Keybindings"; omarchy-menu-keybindings'
|
||||||
|
|
||||||
|
[summary~="Screenshot copied & saved"]
|
||||||
|
max-icon-size=80
|
||||||
|
format=<b>%s</b>\n%b
|
||||||
|
|||||||
2
default/systemd/faster-shutdown.conf
Normal file
2
default/systemd/faster-shutdown.conf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[Manager]
|
||||||
|
DefaultTimeoutStopSec=5s
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
[Sleep]
|
|
||||||
HibernateDelaySec=30min
|
|
||||||
HibernateOnACPower=no
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[Login]
|
|
||||||
HandleLidSwitch=suspend-then-hibernate
|
|
||||||
0
default/systemd/system-sleep/force-igpu
Executable file → Normal file
0
default/systemd/system-sleep/force-igpu
Executable file → Normal file
18
default/systemd/system-sleep/keyboard-backlight
Normal file
18
default/systemd/system-sleep/keyboard-backlight
Normal 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
|
||||||
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
|
||||||
@@ -20,6 +20,8 @@ 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/powerprofilesctl-rules.sh
|
||||||
|
run_logged $OMARCHY_INSTALL/config/wifi-powersave-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
|
||||||
@@ -37,3 +39,5 @@ 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-audio-mixer.sh
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-mic.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
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
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
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
# Fix audio volume on Asus ROG laptops by using a soft mixer.
|
# Fix audio volume on Asus ROG laptops by using a soft mixer.
|
||||||
|
|
||||||
if [[ "$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)" == "ASUSTeK COMPUTER INC." ]] &&
|
if omarchy-hw-asus-rog; then
|
||||||
grep -q "ROG" /sys/class/dmi/id/product_family 2>/dev/null; then
|
|
||||||
|
|
||||||
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
|
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
|
||||||
cp $OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf ~/.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
|
rm -rf ~/.local/state/wireplumber/default-routes
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
# The mic boost is way too high by default, causing clipping.
|
# The mic boost is way too high by default, causing clipping.
|
||||||
# Sets levels and stores ALSA state so it persists across reboots.
|
# Sets levels and stores ALSA state so it persists across reboots.
|
||||||
|
|
||||||
if [[ "$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)" == "ASUSTeK COMPUTER INC." ]] &&
|
if omarchy-hw-asus-rog; then
|
||||||
grep -q "ROG" /sys/class/dmi/id/product_family 2>/dev/null; then
|
|
||||||
|
|
||||||
for card in /proc/asound/card*/codec*; do
|
for card in /proc/asound/card*/codec*; do
|
||||||
if grep -q "ALC285" "$card" 2>/dev/null; then
|
if grep -q "ALC285" "$card" 2>/dev/null; then
|
||||||
cardnum=$(echo "$card" | grep -oP 'card\K\d+')
|
cardnum=$(echo "$card" | grep -oP 'card\K\d+')
|
||||||
|
|||||||
6
install/config/hardware/fix-synaptic-touchpad.sh
Executable file
6
install/config/hardware/fix-synaptic-touchpad.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
# 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
|
||||||
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
|
||||||
@@ -4,12 +4,14 @@ if [ -n "$NVIDIA" ]; then
|
|||||||
# Check which kernel is installed and set appropriate headers package
|
# Check which kernel is installed and set appropriate headers package
|
||||||
KERNEL_HEADERS="$(pacman -Qqs '^linux(-zen|-lts|-hardened)?$' | head -1)-headers"
|
KERNEL_HEADERS="$(pacman -Qqs '^linux(-zen|-lts|-hardened)?$' | head -1)-headers"
|
||||||
|
|
||||||
if echo "$NVIDIA" | grep -qE "RTX [2-9][0-9]|GTX 16"; then
|
# Turing+ (GTX 16xx, RTX 20xx-50xx, Quadro RTX, datacenter A/H/T/L series) have GSP firmware
|
||||||
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
|
if echo "$NVIDIA" | grep -qE "GTX 16[0-9]{2}|RTX [2-5][0-9]{3}|Quadro RTX|RTX A[0-9]{4}|A[1-9][0-9]{2}|H[1-9][0-9]{2}|T4|L[0-9]+"; then
|
||||||
PACKAGES=(nvidia-open-dkms nvidia-utils lib32-nvidia-utils libva-nvidia-driver)
|
PACKAGES=(nvidia-open-dkms nvidia-utils lib32-nvidia-utils libva-nvidia-driver)
|
||||||
elif echo "$NVIDIA" | grep -qE "GTX 9|GTX 10|Quadro P|MX1|MX2|MX3"; then
|
GPU_ARCH="turing_plus"
|
||||||
# Pascal (10xx, Quadro Pxxx, MX150, MX2xx, and MX3xx) and Maxwell (9xx, MX110, and MX130) use legacy branch that can only be installed from AUR
|
# Maxwell (GTX 9xx), Pascal (GT/GTX 10xx, Quadro P, MX series), Volta (Titan V, Tesla V100, Quadro GV100) lack GSP
|
||||||
|
elif echo "$NVIDIA" | grep -qE "GTX (9[0-9]{2}|10[0-9]{2})|GT 10[0-9]{2}|Quadro [PM][0-9]{3,4}|Quadro GV100|MX *[0-9]+|Titan (X|Xp|V)|Tesla V100"; then
|
||||||
PACKAGES=(nvidia-580xx-dkms nvidia-580xx-utils lib32-nvidia-580xx-utils)
|
PACKAGES=(nvidia-580xx-dkms nvidia-580xx-utils lib32-nvidia-580xx-utils)
|
||||||
|
GPU_ARCH="maxwell_pascal_volta"
|
||||||
fi
|
fi
|
||||||
# Bail if no supported GPU
|
# Bail if no supported GPU
|
||||||
if [ -z "${PACKAGES+x}" ]; then
|
if [ -z "${PACKAGES+x}" ]; then
|
||||||
@@ -29,12 +31,23 @@ EOF
|
|||||||
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
|
MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Add NVIDIA environment variables
|
# Add NVIDIA environment variables based on GPU architecture
|
||||||
cat >>$HOME/.config/hypr/envs.conf <<'EOF'
|
if [ "$GPU_ARCH" = "turing_plus" ]; then
|
||||||
|
# Turing+ (RTX 20xx, GTX 16xx, and newer) with GSP firmware support
|
||||||
|
cat >>"$HOME/.config/hypr/envs.conf" <<'EOF'
|
||||||
|
|
||||||
# NVIDIA
|
# NVIDIA (Turing+ with GSP firmware)
|
||||||
env = NVD_BACKEND,direct
|
env = NVD_BACKEND,direct
|
||||||
env = LIBVA_DRIVER_NAME,nvidia
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
EOF
|
EOF
|
||||||
|
elif [ "$GPU_ARCH" = "maxwell_pascal_volta" ]; then
|
||||||
|
# Maxwell/Pascal/Volta (GTX 9xx/10xx, GT 10xx, Quadro P/M/GV, MX series, Titan X/Xp/V) lack GSP firmware
|
||||||
|
cat >>"$HOME/.config/hypr/envs.conf" <<'EOF'
|
||||||
|
|
||||||
|
# NVIDIA (Maxwell/Pascal/Volta without GSP firmware)
|
||||||
|
env = NVD_BACKEND,egl
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
2
install/config/hibernation.sh
Normal file
2
install/config/hibernation.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Enable hibernation
|
||||||
|
omarchy-hibernation-setup --force
|
||||||
12
install/config/powerprofilesctl-rules.sh
Executable file → Normal file
12
install/config/powerprofilesctl-rules.sh
Executable file → Normal file
@@ -1,19 +1,15 @@
|
|||||||
if omarchy-battery-present; then
|
if omarchy-battery-present; then
|
||||||
mapfile -t profiles < <(omarchy-powerprofiles-list)
|
mapfile -t profiles < <(omarchy-powerprofiles-list)
|
||||||
|
|
||||||
if [[ ${#profiles[@]} -gt 0 ]]; then
|
if [[ ${#profiles[@]} -gt 1 ]]; then
|
||||||
|
|
||||||
# Default AC profile:
|
# Default AC profile:
|
||||||
# 3 profiles → performance
|
# 3 profiles → performance
|
||||||
# 2 profiles → balanced
|
# 2 profiles → balanced
|
||||||
# 1 profile → profiles[0]
|
ac_profile="${profiles[2]:-${profiles[1]}}"
|
||||||
ac_profile="${profiles[2]:-${profiles[1]:-${profiles[0]}}}"
|
|
||||||
|
|
||||||
# Default Battery profile:
|
# Default Battery profile (balanced)
|
||||||
# 3 profiles → balanced
|
battery_profile="${profiles[1]}"
|
||||||
# 2 profiles → balanced
|
|
||||||
# 1 profile → profiles[0]
|
|
||||||
battery_profile="${profiles[1]:-${profiles[0]}}"
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee "/etc/udev/rules.d/99-power-profile.rules"
|
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}=="0", RUN+="/usr/bin/powerprofilesctl set $battery_profile"
|
||||||
|
|||||||
@@ -4,6 +4,10 @@
|
|||||||
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 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
|
# Create pacman hook to restart walker after updates
|
||||||
sudo mkdir -p /etc/pacman.d/hooks
|
sudo mkdir -p /etc/pacman.d/hooks
|
||||||
sudo tee /etc/pacman.d/hooks/walker-restart.hook > /dev/null << EOF
|
sudo tee /etc/pacman.d/hooks/walker-restart.hook > /dev/null << EOF
|
||||||
|
|||||||
9
install/config/wifi-powersave-rules.sh
Normal file
9
install/config/wifi-powersave-rules.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
if omarchy-battery-present; then
|
||||||
|
cat <<EOF | sudo tee "/etc/udev/rules.d/99-wifi-powersave.rules"
|
||||||
|
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave on"
|
||||||
|
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave off"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo udevadm control --reload
|
||||||
|
sudo udevadm trigger --subsystem-match=power_supply
|
||||||
|
fi
|
||||||
@@ -120,6 +120,7 @@ swayosd
|
|||||||
system-config-printer
|
system-config-printer
|
||||||
tldr
|
tldr
|
||||||
tree-sitter-cli
|
tree-sitter-cli
|
||||||
|
tmux
|
||||||
tobi-try
|
tobi-try
|
||||||
ttf-cascadia-mono-nerd
|
ttf-cascadia-mono-nerd
|
||||||
ttf-ia-writer
|
ttf-ia-writer
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
# Utilized by ISO builder to ensure package availability in the ISO
|
# Utilized by ISO builder to ensure package availability in the ISO
|
||||||
|
|
||||||
autoconf-archive
|
autoconf-archive
|
||||||
|
asusctl
|
||||||
base
|
base
|
||||||
base-devel
|
base-devel
|
||||||
broadcom-wl
|
broadcom-wl
|
||||||
@@ -44,6 +45,7 @@ snapper
|
|||||||
webp-pixbuf-loader
|
webp-pixbuf-loader
|
||||||
wget
|
wget
|
||||||
yay-debug
|
yay-debug
|
||||||
|
yt6801-dkms
|
||||||
zram-generator
|
zram-generator
|
||||||
|
|
||||||
# T2 MacBook support packages
|
# 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/icons.sh
|
||||||
run_logged $OMARCHY_INSTALL/packaging/webapps.sh
|
run_logged $OMARCHY_INSTALL/packaging/webapps.sh
|
||||||
run_logged $OMARCHY_INSTALL/packaging/tuis.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
|
||||||
0
migrations/1768270644.sh
Executable file → Normal file
0
migrations/1768270644.sh
Executable file → Normal file
@@ -3,7 +3,6 @@ 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-mic.sh"
|
||||||
source "$OMARCHY_PATH/install/config/hardware/fix-asus-rog-audio-mixer.sh"
|
source "$OMARCHY_PATH/install/config/hardware/fix-asus-rog-audio-mixer.sh"
|
||||||
|
|
||||||
if [[ "$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)" == "ASUSTeK COMPUTER INC." ]] &&
|
if omarchy-hw-asus-rog; then
|
||||||
grep -q "ROG" /sys/class/dmi/id/product_family 2>/dev/null; then
|
|
||||||
omarchy-restart-pipewire
|
omarchy-restart-pipewire
|
||||||
fi
|
fi
|
||||||
|
|||||||
0
migrations/1769566732.sh
Executable file → Normal file
0
migrations/1769566732.sh
Executable file → Normal file
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
|
||||||
32
migrations/1770159912.sh
Normal file
32
migrations/1770159912.sh
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
echo "Fix NVIDIA environment variables for Maxwell/Pascal/Volta GPUs"
|
||||||
|
|
||||||
|
# Detect if user has Maxwell/Pascal/Volta GPU (pre-Turing cards without GSP firmware)
|
||||||
|
# Maxwell (GTX 9xx), Pascal (GT/GTX 10xx, Quadro P, MX series), Volta (Titan V, Tesla V100, Quadro GV100)
|
||||||
|
NVIDIA="$(lspci | grep -i 'nvidia')"
|
||||||
|
if echo "$NVIDIA" | grep -qE "GTX (9[0-9]{2}|10[0-9]{2})|GT 10[0-9]{2}|Quadro [PM][0-9]{3,4}|Quadro GV100|MX *[0-9]+|Titan (X|Xp|V)|Tesla V100"; then
|
||||||
|
ENVS_CONF="$HOME/.config/hypr/envs.conf"
|
||||||
|
|
||||||
|
if [ -f "$ENVS_CONF" ]; then
|
||||||
|
# Check if file contains problematic variables
|
||||||
|
if grep -qE "env = (NVD_BACKEND,direct|LIBVA_DRIVER_NAME,nvidia)" "$ENVS_CONF"; then
|
||||||
|
echo "Removing incompatible NVIDIA environment variables for legacy GPU..."
|
||||||
|
|
||||||
|
# Create backup
|
||||||
|
cp "$ENVS_CONF" "$ENVS_CONF.bak.$(date +%s)"
|
||||||
|
|
||||||
|
# Remove all NVIDIA env lines and section headers (we re-add the correct ones below)
|
||||||
|
sed -i '/^env = \(NVD_BACKEND\|LIBVA_DRIVER_NAME\|__GLX_VENDOR_LIBRARY_NAME\),/d; /^# NVIDIA/d' "$ENVS_CONF"
|
||||||
|
|
||||||
|
# Add correct environment variables for legacy GPUs
|
||||||
|
cat >>"$ENVS_CONF" <<'EOF'
|
||||||
|
|
||||||
|
# NVIDIA (Maxwell/Pascal/Volta without GSP firmware)
|
||||||
|
env = NVD_BACKEND,egl
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "NVIDIA environment variables updated. A backup was saved to $ENVS_CONF.bak.*"
|
||||||
|
echo "Please restart Hyprland for changes to take effect."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
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
|
||||||
|
|
||||||
7
migrations/1770393078.sh
Normal file
7
migrations/1770393078.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
echo "Add async-backend = epoll to ghostty config to fix high IO pressure"
|
||||||
|
|
||||||
|
if [[ -f ~/.config/ghostty/config ]] && ! grep -q "^async-backend" ~/.config/ghostty/config; then
|
||||||
|
echo "" >> ~/.config/ghostty/config
|
||||||
|
echo "# Fix general slowness on hyprland (https://github.com/ghostty-org/ghostty/discussions/3224)" >> ~/.config/ghostty/config
|
||||||
|
echo "async-backend = epoll" >> ~/.config/ghostty/config
|
||||||
|
fi
|
||||||
9
migrations/1770638893.sh
Normal file
9
migrations/1770638893.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
echo "Add Tmux as an option with themed styling"
|
||||||
|
|
||||||
|
omarchy-pkg-add tmux
|
||||||
|
|
||||||
|
if [[ ! -f ~/.config/tmux/tmux.conf ]]; then
|
||||||
|
mkdir -p ~/.config/tmux
|
||||||
|
cp $OMARCHY_PATH/config/tmux/tmux.conf ~/.config/tmux/tmux.conf
|
||||||
|
omarchy-theme-refresh
|
||||||
|
fi
|
||||||
3
migrations/1770811646.sh
Normal file
3
migrations/1770811646.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
echo "Disable WiFi power save on AC power"
|
||||||
|
|
||||||
|
source $OMARCHY_PATH/install/config/wifi-powersave-rules.sh
|
||||||
@@ -10,79 +10,3 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
-- 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",
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- }
|
|
||||||
|
|||||||
1
themes/tokyo-night/asusctl.rgb
Normal file
1
themes/tokyo-night/asusctl.rgb
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ff00ff
|
||||||
BIN
themes/vantablack/backgrounds/1-vantablack.jpg
Normal file
BIN
themes/vantablack/backgrounds/1-vantablack.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
BIN
themes/vantablack/backgrounds/2-vantablack.jpg
Normal file
BIN
themes/vantablack/backgrounds/2-vantablack.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 955 KiB |
BIN
themes/vantablack/backgrounds/3-vantablack.jpg
Normal file
BIN
themes/vantablack/backgrounds/3-vantablack.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 444 KiB |
70
themes/vantablack/btop.theme
Normal file
70
themes/vantablack/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]="#0d0d0d"
|
||||||
|
|
||||||
|
# Main text color
|
||||||
|
theme[main_fg]="#ffffff"
|
||||||
|
|
||||||
|
# Title color for boxes
|
||||||
|
theme[title]="#9b9b9b"
|
||||||
|
|
||||||
|
# Highlight color for keyboard shortcuts
|
||||||
|
theme[hi_fg]="#b0b0b0"
|
||||||
|
|
||||||
|
# Background color of selected item in processes box
|
||||||
|
theme[selected_bg]="#fdfdfd"
|
||||||
|
|
||||||
|
# Foreground color of selected item in processes box
|
||||||
|
theme[selected_fg]="#ffffff"
|
||||||
|
|
||||||
|
# Color of inactive/disabled text
|
||||||
|
theme[inactive_fg]="#fdfdfd"
|
||||||
|
|
||||||
|
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||||
|
theme[proc_misc]="#9b9b9b"
|
||||||
|
|
||||||
|
# Box outline and divider line color
|
||||||
|
theme[cpu_box]="#b6b6b6"
|
||||||
|
theme[mem_box]="#b6b6b6"
|
||||||
|
theme[net_box]="#b6b6b6"
|
||||||
|
theme[proc_box]="#b6b6b6"
|
||||||
|
theme[div_line]="#fdfdfd"
|
||||||
|
|
||||||
|
# Gradient for all meters and graphs
|
||||||
|
theme[temp_start]="#b0b0b0"
|
||||||
|
theme[temp_mid]="#8d8d8d"
|
||||||
|
theme[temp_end]="#b6b6b6"
|
||||||
|
|
||||||
|
|
||||||
|
theme[cpu_start]="#b0b0b0"
|
||||||
|
theme[cpu_mid]="#8d8d8d"
|
||||||
|
theme[cpu_end]="#b6b6b6"
|
||||||
|
|
||||||
|
|
||||||
|
theme[free_start]="#8d8d8d"
|
||||||
|
theme[free_mid]="#cecece"
|
||||||
|
theme[free_end]="#cecece"
|
||||||
|
|
||||||
|
|
||||||
|
theme[cached_start]="#cecece"
|
||||||
|
theme[cached_mid]="#cecece"
|
||||||
|
theme[cached_end]="#cecece"
|
||||||
|
|
||||||
|
|
||||||
|
theme[available_start]="#b0b0b0"
|
||||||
|
theme[available_mid]="#b0b0b0"
|
||||||
|
theme[available_end]="#b0b0b0"
|
||||||
|
|
||||||
|
|
||||||
|
theme[used_start]="#b6b6b6"
|
||||||
|
theme[used_mid]="#b6b6b6"
|
||||||
|
theme[used_end]="#b6b6b6"
|
||||||
|
|
||||||
|
|
||||||
|
theme[download_start]="#cecece"
|
||||||
|
theme[download_mid]="#b0b0b0"
|
||||||
|
theme[download_end]="#8d8d8d"
|
||||||
|
|
||||||
|
|
||||||
|
theme[upload_start]="#cecece"
|
||||||
|
theme[upload_mid]="#b0b0b0"
|
||||||
|
theme[upload_end]="#8d8d8d"
|
||||||
31
themes/vantablack/colors.toml
Normal file
31
themes/vantablack/colors.toml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# UI Colors (extended)
|
||||||
|
accent = "#8d8d8d"
|
||||||
|
cursor = "#ffffff"
|
||||||
|
|
||||||
|
# Primary colors
|
||||||
|
foreground = "#ffffff"
|
||||||
|
background = "#0d0d0d"
|
||||||
|
|
||||||
|
# Selection colors
|
||||||
|
selection_foreground = "#0d0d0d"
|
||||||
|
selection_background = "#ffffff"
|
||||||
|
|
||||||
|
# Normal colors (ANSI 0-7)
|
||||||
|
color0 = "#0d0d0d"
|
||||||
|
color1 = "#a4a4a4"
|
||||||
|
color2 = "#b6b6b6"
|
||||||
|
color3 = "#cecece"
|
||||||
|
color4 = "#8d8d8d"
|
||||||
|
color5 = "#9b9b9b"
|
||||||
|
color6 = "#b0b0b0"
|
||||||
|
color7 = "#ececec"
|
||||||
|
|
||||||
|
# Bright colors (ANSI 8-15)
|
||||||
|
color8 = "#fdfdfd"
|
||||||
|
color9 = "#a4a4a4"
|
||||||
|
color10 = "#b6b6b6"
|
||||||
|
color11 = "#cecece"
|
||||||
|
color12 = "#8d8d8d"
|
||||||
|
color13 = "#9b9b9b"
|
||||||
|
color14 = "#b0b0b0"
|
||||||
|
color15 = "#ffffff"
|
||||||
1
themes/vantablack/icons.theme
Normal file
1
themes/vantablack/icons.theme
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Yaru-gray
|
||||||
12
themes/vantablack/neovim.lua
Normal file
12
themes/vantablack/neovim.lua
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"bjarneo/vantablack.nvim",
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "vantablack",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user