mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-02 04:37:49 +02:00
Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b0ab9782d6 | ||
|
|
f02305ecd8 | ||
|
|
4a12b41893 | ||
|
|
c9ff10b4fd | ||
|
|
0f8eb3a6e6 | ||
|
|
f2c1339641 | ||
|
|
a2e83a784e | ||
|
|
0d4a076a10 | ||
|
|
ee6fbda428 | ||
|
|
d84d2fe11d | ||
|
|
bc512b437f | ||
|
|
4375782b7a |
@@ -1,21 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Toggle microphone mute. Drives the hardware mic-mute LED on laptops that expose one.
|
||||
# omarchy:summary=Toggle microphone mute. Dell XPS and ThinkPad systems get special handling for the hardware LED.
|
||||
|
||||
wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle >/dev/null
|
||||
|
||||
if pactl get-source-mute @DEFAULT_SOURCE@ | rg -q 'yes'; then
|
||||
led=on
|
||||
osd_message='Microphone muted'
|
||||
osd_icon='microphone-sensitivity-muted-symbolic'
|
||||
if omarchy-hw-match "XPS"; then
|
||||
omarchy-audio-input-mute-xps
|
||||
elif omarchy-hw-match "ThinkPad"; then
|
||||
omarchy-audio-input-mute-thinkpad
|
||||
else
|
||||
led=off
|
||||
osd_message='Microphone on'
|
||||
osd_icon='audio-input-microphone-symbolic'
|
||||
omarchy-swayosd-client --input-volume mute-toggle
|
||||
fi
|
||||
|
||||
omarchy-brightness-keyboard-mute "$led"
|
||||
|
||||
omarchy-swayosd-client \
|
||||
--custom-message "$osd_message" \
|
||||
--custom-icon "$osd_icon"
|
||||
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Toggle microphone mute on ThinkPad systems. Uses wpctl for reliable toggling
|
||||
|
||||
wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle >/dev/null
|
||||
|
||||
if pactl get-source-mute @DEFAULT_SOURCE@ | grep -q 'yes'; then
|
||||
osd_message='Microphone muted'
|
||||
osd_icon='microphone-sensitivity-muted-symbolic'
|
||||
led_value=1
|
||||
else
|
||||
osd_message='Microphone on'
|
||||
osd_icon='audio-input-microphone-symbolic'
|
||||
led_value=0
|
||||
fi
|
||||
|
||||
brightnessctl --device="platform::micmute" set "$led_value" >/dev/null 2>&1 || true
|
||||
|
||||
omarchy-swayosd-client \
|
||||
--custom-message "$osd_message" \
|
||||
--custom-icon "$osd_icon"
|
||||
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Toggle microphone mute on Dell XPS systems. Uses wpctl for reliable toggling
|
||||
|
||||
wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle >/dev/null
|
||||
|
||||
if pactl get-source-mute @DEFAULT_SOURCE@ | rg -q 'yes'; then
|
||||
alsa_value='off,off'
|
||||
osd_message='Microphone muted'
|
||||
osd_icon='microphone-sensitivity-muted-symbolic'
|
||||
else
|
||||
alsa_value='on,on'
|
||||
osd_message='Microphone on'
|
||||
osd_icon='audio-input-microphone-symbolic'
|
||||
fi
|
||||
|
||||
if [[ -e /sys/class/leds/platform::micmute/brightness ]]; then
|
||||
default_source=$(pactl get-default-source)
|
||||
alsa_card=$(pactl -f json list sources | jq -r --arg source "$default_source" '
|
||||
.[] | select(.name == $source) |
|
||||
.properties["alsa.card"] // .properties["api.alsa.card"] // .properties["api.alsa.pcm.card"] // empty
|
||||
' | head -1)
|
||||
|
||||
if [[ -n $alsa_card ]]; then
|
||||
cards=("$alsa_card")
|
||||
else
|
||||
mapfile -t cards < <(compgen -G '/proc/asound/card*' | rg -o 'card[0-9]+' | sed 's/card//' | sort -u)
|
||||
fi
|
||||
|
||||
for card in "${cards[@]}"; do
|
||||
while IFS= read -r control; do
|
||||
if [[ $control != *"Jack Microphone"* ]]; then
|
||||
amixer -c "$card" cset "$control" "$alsa_value" >/dev/null 2>&1 || true
|
||||
break 2
|
||||
fi
|
||||
done < <(amixer -c "$card" controls 2>/dev/null | rg -o "name='[^']*Microphone Capture Switch'")
|
||||
done
|
||||
fi
|
||||
|
||||
omarchy-swayosd-client \
|
||||
--custom-message "$osd_message" \
|
||||
--custom-icon "$osd_icon"
|
||||
@@ -5,11 +5,6 @@
|
||||
|
||||
step="${1:-+5%}"
|
||||
|
||||
if omarchy-hyprland-monitor-focused-apple; then
|
||||
omarchy-brightness-display-apple "$step"
|
||||
exit
|
||||
fi
|
||||
|
||||
# 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
|
||||
|
||||
@@ -1,32 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Adjust the brightness on Apple Studio Displays and Apple XDR Displays using asdcontrol.
|
||||
# omarchy:requires-sudo=true
|
||||
|
||||
if (( $# == 0 )); then
|
||||
echo "Adjust Apple Display brightness by passing +5%, 5%-, or 100%"
|
||||
echo "Adjust Apple Display Brightness by passing +5000 or -5000 (or any range from 0-60000)"
|
||||
else
|
||||
step="$1"
|
||||
if [[ $step =~ ^([0-9]+)%-$ ]]; then
|
||||
step="-${BASH_REMATCH[1]}%"
|
||||
fi
|
||||
|
||||
devices=()
|
||||
for path in /dev/usb/hiddev* /dev/hiddev*; do
|
||||
[[ -e $path ]] && devices+=("$path")
|
||||
done
|
||||
|
||||
if (( ${#devices[@]} == 0 )); then
|
||||
echo "No Apple Display HID device found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
device="$(sudo asdcontrol --detect "${devices[@]}" | grep -E '^/dev/(usb/)?hiddev' | cut -d: -f1 | head -n1)"
|
||||
if [[ -z $device ]]; then
|
||||
echo "No Apple Display HID device found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo asdcontrol "$device" -- "$step" >/dev/null
|
||||
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
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Set the mic-mute indicator LED on laptops that expose a platform::micmute LED node.
|
||||
# omarchy:args=<on|off>
|
||||
|
||||
if [[ -e /sys/class/leds/platform::micmute/brightness ]]; then
|
||||
case "$1" in
|
||||
on) value=1 ;;
|
||||
off) value=0 ;;
|
||||
*) echo "Usage: $(basename "$0") <on|off>" >&2; exit 1 ;;
|
||||
esac
|
||||
|
||||
brightnessctl --device="platform::micmute" set "$value" >/dev/null 2>&1 || true
|
||||
fi
|
||||
@@ -2,26 +2,13 @@
|
||||
|
||||
# omarchy:summary=Set up hibernation with swap and boot resume configuration
|
||||
# omarchy:requires-sudo=true
|
||||
# omarchy:args=[--force] [--no-rebuild]
|
||||
|
||||
FORCE=false
|
||||
NO_REBUILD=false
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--force) FORCE=true ;;
|
||||
--no-rebuild) NO_REBUILD=true ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ ! -f /sys/power/image_size ]]; then
|
||||
echo -e "Hibernation is not supported on your system" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# When --no-rebuild is set, the caller is responsible for the UKI rebuild
|
||||
# (e.g. running before limine-mkinitcpio-hook is installed during initial
|
||||
# install), so we only require limine-mkinitcpio when we'd invoke it ourselves.
|
||||
if ! $NO_REBUILD && ! command -v limine-mkinitcpio &>/dev/null; then
|
||||
if ! command -v limine-mkinitcpio &>/dev/null; then
|
||||
echo "Skipping hibernation setup (requires Limine bootloader)"
|
||||
exit 0
|
||||
fi
|
||||
@@ -39,14 +26,15 @@ if [[ -f $MKINITCPIO_CONF ]] && grep -q "^HOOKS+=(resume)$" "$MKINITCPIO_CONF";
|
||||
echo "Fixing empty resume_offset ($RESUME_OFFSET)"
|
||||
sudo sed -i "s/resume_offset=\"$/resume_offset=$RESUME_OFFSET\"/" "$RESUME_DROP_IN"
|
||||
sudo sed -i "s/resume_offset=\"$/resume_offset=$RESUME_OFFSET\"/" /etc/default/limine
|
||||
$NO_REBUILD || sudo limine-mkinitcpio
|
||||
sudo limine-mkinitcpio
|
||||
sudo limine-update
|
||||
fi
|
||||
fi
|
||||
echo "Hibernation is already set up"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! $FORCE; then
|
||||
if [[ $1 != "--force" ]]; then
|
||||
MEM_TOTAL_HUMAN=$(free --human | awk '/Mem/ {print $2}')
|
||||
if ! gum confirm "Use $MEM_TOTAL_HUMAN on boot drive to make hibernation available?"; then
|
||||
exit 0
|
||||
@@ -117,16 +105,13 @@ if grep -q "\[s2idle\]" /sys/power/mem_sleep 2>/dev/null; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! $NO_REBUILD; then
|
||||
# limine-mkinitcpio rebuilds initramfs/UKI for all kernels and updates the
|
||||
# /boot/limine.conf entries via limine-entry-tool. The limine bootloader
|
||||
# binary on the ESP doesn't change here, so we don't need limine-update
|
||||
# (which would also re-deploy the binary and rebuild a second time).
|
||||
echo "Regenerating initramfs..."
|
||||
sudo limine-mkinitcpio
|
||||
echo
|
||||
fi
|
||||
# Regenerate initramfs and boot entry
|
||||
echo "Regenerating initramfs..."
|
||||
sudo limine-mkinitcpio
|
||||
sudo limine-update
|
||||
|
||||
if ! $FORCE && ! $NO_REBUILD && gum confirm "Reboot to enable hibernation?"; then
|
||||
echo
|
||||
|
||||
if [[ $1 != "--force" ]] && gum confirm "Reboot to enable hibernation?"; then
|
||||
omarchy-system-reboot
|
||||
fi
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Return success if the focused Hyprland monitor is an Apple display.
|
||||
|
||||
hyprctl monitors -j | jq -e '.[] | select(.focused == true) | select(.make == "Apple Computer Inc" and (.model | test("StudioDisplay|ProDisplayXDR")))' >/dev/null
|
||||
@@ -33,15 +33,4 @@ fi
|
||||
NEW_SCALE=${SCALES[$NEW_IDX]}
|
||||
|
||||
hyprctl keyword monitor "$ACTIVE_MONITOR,${WIDTH}x${HEIGHT}@${REFRESH_RATE},auto,$NEW_SCALE"
|
||||
|
||||
# Persist to monitors.conf if the user has a single generic catch-all line
|
||||
# (ignoring disabled monitors), so the scale survives reboots.
|
||||
MONITOR_CONF="$HOME/.config/hypr/monitors.conf"
|
||||
if [[ -f $MONITOR_CONF ]]; then
|
||||
mapfile -t ACTIVE_LINES < <(grep -E '^[[:space:]]*monitor=' "$MONITOR_CONF" | grep -vE 'disable[[:space:]]*$')
|
||||
if [[ ${#ACTIVE_LINES[@]} -eq 1 ]] && [[ "${ACTIVE_LINES[0]}" =~ ^monitor=,preferred,auto, ]]; then
|
||||
sed -i -E "s|^(monitor=,preferred,auto,).*|\\1${NEW_SCALE}|" "$MONITOR_CONF"
|
||||
fi
|
||||
fi
|
||||
|
||||
notify-send -u low " Display scaling set to ${NEW_SCALE}x"
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install Helix and configure it to use the current Omarchy theme.
|
||||
|
||||
echo "Installing Helix..."
|
||||
omarchy-pkg-add helix
|
||||
|
||||
mkdir -p ~/.config/helix/themes
|
||||
|
||||
# Symlink the rendered Omarchy theme so Helix tracks the active theme
|
||||
ln -sf ~/.config/omarchy/current/theme/helix.toml ~/.config/helix/themes/omarchy.toml
|
||||
|
||||
# Only seed a config.toml if the user does not already have one
|
||||
if [[ ! -f ~/.config/helix/config.toml ]]; then
|
||||
cat >~/.config/helix/config.toml <<'EOF'
|
||||
theme = "omarchy"
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Ensure the symlink target exists for users whose current theme predates this template
|
||||
if [[ ! -e ~/.config/omarchy/current/theme/helix.toml ]]; then
|
||||
omarchy-theme-refresh
|
||||
fi
|
||||
|
||||
# Arch-based distros ship Helix as 'helix' rather than the upstream 'hx'.
|
||||
if ! grep -q '^alias hx="helix"' ~/.bashrc 2>/dev/null; then
|
||||
echo 'alias hx="helix"' >>~/.bashrc
|
||||
fi
|
||||
+1
-1
@@ -352,7 +352,7 @@ show_install_editor_menu() {
|
||||
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
|
||||
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
|
||||
*Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
||||
*Helix*) present_terminal omarchy-install-helix ;;
|
||||
*Helix*) install "Helix" "helix" ;;
|
||||
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
|
||||
@@ -43,7 +43,6 @@ ensure_bin_runtime() {
|
||||
|
||||
exec_package_bin() {
|
||||
local package_bin_path=\$1
|
||||
shift
|
||||
|
||||
if [[ -n \$package_bin_path ]]; then
|
||||
ensure_bin_runtime "\$package_bin_path"
|
||||
|
||||
@@ -1,31 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Set the power profile to the requested level, falling back to balanced
|
||||
# omarchy:args=[autodetect|ac|battery]
|
||||
|
||||
action="${1-}"
|
||||
|
||||
# Auto-detect when called with no argument: treat any Mains or USB
|
||||
# power-supply device reporting online=1 as "on AC". This handles
|
||||
# USB-C only laptops where the legacy AC device may not fire udev
|
||||
# events, and also avoids false negatives from per-port USB-C devices
|
||||
# that are present-but-empty (online=0) while another port supplies power.
|
||||
if [[ -z $action || $action == "autodetect" ]]; then
|
||||
action=battery
|
||||
for ps in /sys/class/power_supply/*; do
|
||||
[[ -r $ps/online && -r $ps/type ]] || continue
|
||||
type=$(cat "$ps/type")
|
||||
[[ $type == "Mains" || $type == "USB" ]] || continue
|
||||
if [[ $(cat "$ps/online") == "1" ]]; then
|
||||
action=ac
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# omarchy:args=<ac|battery>
|
||||
|
||||
mapfile -t profiles < <(powerprofilesctl list | awk '/^\s*[* ]\s*[a-zA-Z0-9\-]+:$/ { gsub(/^[*[:space:]]+|:$/,""); print }')
|
||||
|
||||
case "$action" in
|
||||
case "$1" in
|
||||
ac)
|
||||
# Prefer performance, fall back to balanced
|
||||
if [[ " ${profiles[*]} " == *" performance "* ]]; then
|
||||
@@ -37,4 +17,4 @@ case "$action" in
|
||||
battery)
|
||||
powerprofilesctl set balanced
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Reload Helix configuration (used by the Omarchy theme switching).
|
||||
|
||||
if pgrep -x helix >/dev/null; then
|
||||
pkill -USR1 helix
|
||||
fi
|
||||
@@ -25,7 +25,8 @@ tty=$(tty 2>/dev/null)
|
||||
while true; do
|
||||
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
||||
--frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\
|
||||
--random-effect --no-eol --no-restore-cursor &
|
||||
--random-effect --exclude-effects dev_worm \
|
||||
--no-eol --no-restore-cursor &
|
||||
|
||||
while pgrep -t "${tty#/dev/}" -x tte >/dev/null; do
|
||||
if read -n1 -t 1 || ! screensaver_in_focus; then
|
||||
|
||||
@@ -57,7 +57,6 @@ omarchy-restart-hyprctl
|
||||
omarchy-restart-btop
|
||||
omarchy-restart-opencode
|
||||
omarchy-restart-mako
|
||||
omarchy-restart-helix
|
||||
|
||||
# Change app-specific themes
|
||||
omarchy-theme-set-gnome
|
||||
|
||||
@@ -14,8 +14,8 @@ set_theme() {
|
||||
theme_name=$(jq -r '.name' "$VS_CODE_THEME")
|
||||
extension=$(jq -r '.extension' "$VS_CODE_THEME")
|
||||
|
||||
if [[ -n $extension ]] && ! "$editor_cmd" --list-extensions 2>/dev/null | grep -Fxq "$extension"; then
|
||||
"$editor_cmd" --install-extension "$extension" >/dev/null 2>&1
|
||||
if [[ -n $extension ]] && ! "$editor_cmd" --list-extensions | grep -Fxq "$extension"; then
|
||||
"$editor_cmd" --install-extension "$extension" >/dev/null
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$settings_path")"
|
||||
|
||||
@@ -5,8 +5,6 @@ bindeld = ,XF86AudioMute, Mute, exec, omarchy-swayosd-client --output-volume mut
|
||||
bindeld = ,XF86AudioMicMute, Mute microphone, exec, omarchy-audio-input-mute
|
||||
bindeld = ,XF86MonBrightnessUp, Brightness up, exec, omarchy-brightness-display +5%
|
||||
bindeld = ,XF86MonBrightnessDown, Brightness down, exec, omarchy-brightness-display 5%-
|
||||
bindeld = SHIFT, XF86MonBrightnessUp, Brightness maximum, exec, omarchy-brightness-display 100%
|
||||
bindeld = SHIFT, XF86MonBrightnessDown, Brightness minimum, exec, omarchy-brightness-display 1%
|
||||
bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up
|
||||
bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down
|
||||
bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, omarchy-brightness-keyboard cycle
|
||||
|
||||
@@ -31,9 +31,14 @@ bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle
|
||||
bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight
|
||||
bindd = SUPER CTRL, Delete, Toggle laptop display, exec, omarchy-hyprland-monitor-internal toggle
|
||||
bindd = SUPER CTRL ALT, Delete, Toggle laptop display mirroring, exec, omarchy-hyprland-monitor-internal-mirror toggle
|
||||
bindl = , switch:on:Lid Switch, exec, omarchy-hw-external-monitors && omarchy-hyprland-monitor-internal off
|
||||
bindl = , switch:on:Lid Switch, exec, omarchy-hyprland-monitor-internal off
|
||||
bindl = , switch:off:Lid Switch, exec, omarchy-hyprland-monitor-internal on
|
||||
|
||||
# Control Apple Display brightness
|
||||
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, exec, omarchy-capture-screenshot
|
||||
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
#timeout: 3
|
||||
default_entry: 2
|
||||
interface_branding: Omarchy Bootloader
|
||||
interface_branding_color: 9ece6a
|
||||
interface_help_color: 9ece6a
|
||||
interface_help_color_bright: 9ece6a
|
||||
interface_branding_colour: 9ece6a
|
||||
interface_help_colour: 9ece6a
|
||||
interface_help_colour_bright: 9ece6a
|
||||
hash_mismatch_panic: no
|
||||
|
||||
term_background: 1a1b26
|
||||
|
||||
@@ -143,8 +143,6 @@ Run `omarchy --help` for the full list. The most common groups:
|
||||
**Key behaviors:**
|
||||
- Hyprland auto-reloads on config save (no restart needed for most changes)
|
||||
- Use `hyprctl reload` to force reload
|
||||
- After ANY Hyprland config change, validate with `hyprctl reload` followed by `hyprctl configerrors`
|
||||
- If `hyprctl configerrors` reports errors, address them and rerun validation until clean or until a real blocker is identified
|
||||
- Use `omarchy refresh hyprland` to reset to defaults
|
||||
|
||||
### Waybar (Status Bar)
|
||||
@@ -196,7 +194,7 @@ cp ~/.config/hypr/bindings.conf ~/.config/hypr/bindings.conf.bak.$(date +%s)
|
||||
# 3. Make changes with Edit tool
|
||||
|
||||
# 4. Apply changes
|
||||
# - Hyprland: auto-reloads on save, but MUST validate with `hyprctl reload` and `hyprctl configerrors`
|
||||
# - Hyprland: auto-reloads on save (no restart needed)
|
||||
# - Waybar: MUST restart with `omarchy restart waybar`
|
||||
# - Walker: MUST restart with `omarchy restart walker`
|
||||
# - Terminals: MUST restart with `omarchy restart terminal`
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
# Syntax
|
||||
"keyword" = "color5"
|
||||
"keyword.control" = { fg = "color5", modifiers = ["italic"] }
|
||||
"function" = "color4"
|
||||
"function.builtin" = "color4"
|
||||
"function.macro" = "color5"
|
||||
"type" = "color3"
|
||||
"type.builtin" = "color5"
|
||||
"type.enum.variant" = "color6"
|
||||
"constructor" = "color4"
|
||||
"constant" = "color3"
|
||||
"constant.builtin" = "color3"
|
||||
"constant.numeric" = "color3"
|
||||
"constant.character" = "color6"
|
||||
"constant.character.escape" = "color5"
|
||||
"string" = "color2"
|
||||
"string.regexp" = "color5"
|
||||
"string.special" = "color4"
|
||||
"comment" = { fg = "color8", modifiers = ["italic"] }
|
||||
"variable" = "foreground"
|
||||
"variable.parameter" = { fg = "color5", modifiers = ["italic"] }
|
||||
"variable.builtin" = "color1"
|
||||
"variable.other.member" = "color4"
|
||||
"label" = "color4"
|
||||
"punctuation" = "color8"
|
||||
"punctuation.special" = "color6"
|
||||
"operator" = "color6"
|
||||
"tag" = "color4"
|
||||
"namespace" = { fg = "color3", modifiers = ["italic"] }
|
||||
"special" = "color5"
|
||||
"attribute" = "color3"
|
||||
|
||||
# Markup
|
||||
"markup.heading.1" = "color1"
|
||||
"markup.heading.2" = "color3"
|
||||
"markup.heading.3" = "color3"
|
||||
"markup.heading.4" = "color2"
|
||||
"markup.heading.5" = "color4"
|
||||
"markup.heading.6" = "color5"
|
||||
"markup.list" = "color6"
|
||||
"markup.list.unchecked" = "color8"
|
||||
"markup.list.checked" = "color2"
|
||||
"markup.bold" = { fg = "color1", modifiers = ["bold"] }
|
||||
"markup.italic" = { fg = "color1", modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"] }
|
||||
"markup.link.url" = { fg = "color4", modifiers = ["italic", "underlined"] }
|
||||
"markup.link.text" = "color5"
|
||||
"markup.link.label" = "color4"
|
||||
"markup.raw" = "color2"
|
||||
"markup.quote" = "color5"
|
||||
|
||||
# Diff
|
||||
"diff.plus" = "color2"
|
||||
"diff.minus" = "color1"
|
||||
"diff.delta" = "color4"
|
||||
|
||||
# Leave the editor background transparent so the terminal background shows through
|
||||
"ui.background" = { }
|
||||
|
||||
"ui.linenr" = { fg = "color8" }
|
||||
"ui.linenr.selected" = { fg = "foreground" }
|
||||
|
||||
# Statusline uses an inverted band (background-color text on foreground-color
|
||||
# background) to guarantee contrast across both light and dark Omarchy themes.
|
||||
"ui.statusline" = { fg = "background", bg = "foreground" }
|
||||
"ui.statusline.inactive" = { fg = "background", bg = "color8" }
|
||||
"ui.statusline.normal" = { fg = "background", bg = "color4", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "background", bg = "color2", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "background", bg = "color5", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "foreground", bg = "background" }
|
||||
"ui.window" = { fg = "color8" }
|
||||
"ui.help" = { fg = "foreground", bg = "background" }
|
||||
|
||||
"ui.bufferline" = { fg = "color8", bg = "background" }
|
||||
"ui.bufferline.active" = { fg = "foreground", bg = "background", underline = { color = "color5", style = "line" } }
|
||||
|
||||
"ui.text" = "foreground"
|
||||
"ui.text.focus" = { fg = "foreground", bg = "color0", modifiers = ["bold"] }
|
||||
"ui.text.inactive" = { fg = "color8" }
|
||||
"ui.text.directory" = { fg = "color4" }
|
||||
|
||||
"ui.virtual" = "color8"
|
||||
"ui.virtual.ruler" = { bg = "color0" }
|
||||
"ui.virtual.indent-guide" = "color8"
|
||||
"ui.virtual.inlay-hint" = { fg = "color8" }
|
||||
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
|
||||
"ui.virtual.whitespace" = "color8"
|
||||
|
||||
"ui.selection" = { bg = "color0" }
|
||||
|
||||
"ui.cursor" = { fg = "background", bg = "cursor" }
|
||||
"ui.cursor.primary" = { fg = "background", bg = "cursor" }
|
||||
"ui.cursor.match" = { fg = "color3", modifiers = ["bold"] }
|
||||
"ui.cursor.primary.normal" = { fg = "background", bg = "cursor" }
|
||||
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
|
||||
"ui.cursor.primary.select" = { fg = "background", bg = "color5" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "color0" }
|
||||
|
||||
"ui.highlight" = { bg = "color0", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "foreground", bg = "background" }
|
||||
"ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "color1", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "color3", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "color4", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "color6", style = "curl" } }
|
||||
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
|
||||
|
||||
error = "color1"
|
||||
warning = "color3"
|
||||
info = "color4"
|
||||
hint = "color6"
|
||||
|
||||
[palette]
|
||||
background = "{{ background }}"
|
||||
foreground = "{{ foreground }}"
|
||||
cursor = "{{ cursor }}"
|
||||
selection_background = "{{ selection_background }}"
|
||||
selection_foreground = "{{ selection_foreground }}"
|
||||
color0 = "{{ color0 }}"
|
||||
color1 = "{{ color1 }}"
|
||||
color2 = "{{ color2 }}"
|
||||
color3 = "{{ color3 }}"
|
||||
color4 = "{{ color4 }}"
|
||||
color5 = "{{ color5 }}"
|
||||
color6 = "{{ color6 }}"
|
||||
color7 = "{{ color7 }}"
|
||||
color8 = "{{ color8 }}"
|
||||
@@ -24,6 +24,12 @@ if [[ -n $NVIDIA ]]; then
|
||||
# Configure modprobe for early KMS
|
||||
sudo tee /etc/modprobe.d/nvidia.conf <<EOF >/dev/null
|
||||
options nvidia_drm modeset=1
|
||||
EOF
|
||||
|
||||
# Ensure NVreg_UseKernelSuspendNotifiers is used for hibernation
|
||||
sudo tee -a /etc/modprobe.d/nvidia.conf <<EOF >/dev/null
|
||||
options nvidia NVreg_PreserveVideoMemoryAllocations=0
|
||||
options nvidia NVreg_UseKernelSuspendNotifiers=1
|
||||
EOF
|
||||
|
||||
# Configure mkinitcpio for early loading
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
if omarchy-battery-present; then
|
||||
cat <<EOF | sudo tee "/etc/udev/rules.d/99-power-profile.rules"
|
||||
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-power-profile --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set"
|
||||
SUBSYSTEM=="power_supply", ATTR{type}=="USB", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-power-profile --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set"
|
||||
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-power-profile-battery --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set battery"
|
||||
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-power-profile-ac --property=After=power-profiles-daemon.service $HOME/.local/share/omarchy/bin/omarchy-powerprofiles-set ac"
|
||||
EOF
|
||||
|
||||
sudo systemctl enable power-profiles-daemon
|
||||
|
||||
sudo udevadm control --reload 2>/dev/null
|
||||
sudo udevadm trigger --subsystem-match=power_supply 2>/dev/null
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
run_logged $OMARCHY_INSTALL/login/plymouth.sh
|
||||
run_logged $OMARCHY_INSTALL/login/default-keyring.sh
|
||||
run_logged $OMARCHY_INSTALL/login/sddm.sh
|
||||
run_logged $OMARCHY_INSTALL/login/hibernation.sh
|
||||
run_logged $OMARCHY_INSTALL/login/limine-snapper.sh
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# Run before limine-snapper.sh so the resume hook + cmdline drop-ins are in
|
||||
# place when `pacman -S limine-mkinitcpio-hook` triggers its single full UKI
|
||||
# rebuild. The --no-rebuild flag tells the script to skip its own rebuild —
|
||||
# limine-snapper's pacman install will produce a UKI that already includes
|
||||
# hibernation.
|
||||
omarchy-hibernation-setup --force --no-rebuild
|
||||
@@ -80,17 +80,11 @@ fi
|
||||
|
||||
echo "mkinitcpio hooks re-enabled"
|
||||
|
||||
# Installing limine-mkinitcpio-hook above already triggered a full UKI rebuild
|
||||
# (via 80-limine-efi-deploy.hook + 90-mkinitcpio-install.hook), which writes the
|
||||
# boot entries into /boot/limine.conf. Only fall back to limine-update if those
|
||||
# hooks didn't run for some reason — running it unconditionally rebuilds every
|
||||
# UKI a second time.
|
||||
if ! grep -q "^/+" /boot/limine.conf; then
|
||||
sudo limine-update
|
||||
fi
|
||||
sudo limine-update
|
||||
|
||||
# Verify that limine-update actually added boot entries
|
||||
if ! grep -q "^/+" /boot/limine.conf; then
|
||||
echo "Error: failed to add boot entries to /boot/limine.conf" >&2
|
||||
echo "Error: limine-update failed to add boot entries to /boot/limine.conf" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
run_logged $OMARCHY_INSTALL/post-install/hibernation.sh
|
||||
run_logged $OMARCHY_INSTALL/post-install/pacman.sh
|
||||
source $OMARCHY_INSTALL/post-install/allow-reboot.sh
|
||||
source $OMARCHY_INSTALL/post-install/finished.sh
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Enable hibernation
|
||||
omarchy-hibernation-setup --force
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
echo "Ensure NVreg_UseKernelSuspendNotifiers is used for hibernation"
|
||||
|
||||
if [[ -f /etc/modprobe.d/nvidia.conf ]] && ! grep -q "NVreg_PreserveVideoMemoryAllocations" /etc/modprobe.d/nvidia.conf; then
|
||||
sudo tee -a /etc/modprobe.d/nvidia.conf <<EOF >/dev/null
|
||||
options nvidia NVreg_PreserveVideoMemoryAllocations=0
|
||||
options nvidia NVreg_UseKernelSuspendNotifiers=1
|
||||
EOF
|
||||
sudo limine-update
|
||||
fi
|
||||
@@ -1,3 +0,0 @@
|
||||
echo "Fix power profile auto-switching on USB-C only machines and ensure power-profiles-daemon is enabled"
|
||||
|
||||
source "$OMARCHY_PATH/install/config/powerprofilesctl-rules.sh"
|
||||
@@ -1,6 +1,7 @@
|
||||
echo "Replace coterie of individual Elephant packages with the single elephant-all package"
|
||||
|
||||
if omarchy-pkg-present omarchy-walker; then
|
||||
yes | sudo pacman -S --needed elephant-all
|
||||
sudo pacman -R --noconfirm omarchy-walker
|
||||
omarchy-pkg-drop omarchy-walker
|
||||
omarchy-pkg-add walker elephant-all
|
||||
omarchy-refresh-walker
|
||||
fi
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
echo "Update interface_ colors for limine 12 (palette index -> RRGGBB)"
|
||||
echo "Update interface_branding_color for limine 12 (palette index -> RRGGBB)"
|
||||
|
||||
if [[ -f /boot/limine.conf ]]; then
|
||||
sudo sed -i -E 's/^interface_branding_colou?r: 2$/interface_branding_color: 9ece6a/' /boot/limine.conf
|
||||
sudo sed -i 's/^interface_branding_colour: /interface_branding_color: /' /boot/limine.conf
|
||||
|
||||
sudo sed -i -E '/^interface_help_colou?r(_bright)?:/d' /boot/limine.conf
|
||||
sudo sed -i '/^interface_branding_color:/a interface_help_color_bright: 9ece6a' /boot/limine.conf
|
||||
sudo sed -i '/^interface_branding_color:/a interface_help_color: 9ece6a' /boot/limine.conf
|
||||
sudo sed -i 's/^interface_branding_color: 2$/interface_branding_color: 9ece6a/' /boot/limine.conf
|
||||
fi
|
||||
|
||||
Regular → Executable
@@ -5,7 +5,7 @@ background = "#060B1E"
|
||||
selection_foreground = "#060B1E"
|
||||
selection_background = "#ffcead"
|
||||
|
||||
color0 = "#3C486D"
|
||||
color0 = "#060B1E"
|
||||
color1 = "#ED5B5A"
|
||||
color2 = "#92a593"
|
||||
color3 = "#E9BB4F"
|
||||
|
||||
@@ -5,14 +5,14 @@ background = "#FFFCF0"
|
||||
selection_foreground = "#100F0F"
|
||||
selection_background = "#CECDC3"
|
||||
|
||||
color0 = "#DAD8CE"
|
||||
color0 = "#100F0F"
|
||||
color1 = "#D14D41"
|
||||
color2 = "#879A39"
|
||||
color3 = "#D0A215"
|
||||
color4 = "#205EA6"
|
||||
color5 = "#CE5D97"
|
||||
color6 = "#3AA99F"
|
||||
color7 = "#B7B5AC"
|
||||
color7 = "#FFFCF0"
|
||||
color8 = "#100F0F"
|
||||
color9 = "#D14D41"
|
||||
color10 = "#879A39"
|
||||
@@ -20,4 +20,4 @@ color11 = "#D0A215"
|
||||
color12 = "#4385BE"
|
||||
color13 = "#CE5D97"
|
||||
color14 = "#3AA99F"
|
||||
color15 = "#CECDC3"
|
||||
color15 = "#FFFCF0"
|
||||
|
||||
@@ -5,7 +5,7 @@ background = "#0B0C16"
|
||||
selection_foreground = "#0B0C16"
|
||||
selection_background = "#ddf7ff"
|
||||
|
||||
color0 = "#3E4058"
|
||||
color0 = "#0B0C16"
|
||||
color1 = "#50f872"
|
||||
color2 = "#4fe88f"
|
||||
color3 = "#50f7d4"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 246 KiB |
@@ -11,7 +11,7 @@ selection_foreground = "#000000"
|
||||
selection_background = "#ffffff"
|
||||
|
||||
# Normal colors (ANSI 0-7)
|
||||
color0 = "#404040"
|
||||
color0 = "#000000"
|
||||
color1 = "#a4a4a4"
|
||||
color2 = "#b6b6b6"
|
||||
color3 = "#cecece"
|
||||
|
||||
@@ -11,7 +11,7 @@ selection_foreground = "#ffffff"
|
||||
selection_background = "#1a1a1a"
|
||||
|
||||
# Normal colors (ANSI 0-7)
|
||||
color0 = "#c0c0c0"
|
||||
color0 = "#ffffff"
|
||||
color1 = "#2a2a2a"
|
||||
color2 = "#3a3a3a"
|
||||
color3 = "#4a4a4a"
|
||||
|
||||
Reference in New Issue
Block a user