Merge remote-tracking branch 'origin/dev' into omarchy-cli
# Conflicts: # bin/omarchy-hyprland-monitor-watch # bin/omarchy-plymouth-reset # bin/omarchy-sudo-passwordless
@@ -12,6 +12,7 @@
|
||||
All commands start with `omarchy-`. Prefixes indicate purpose:
|
||||
|
||||
- `cmd-` - check if commands exist, misc utility commands
|
||||
- `capture-` - screenshots, screen recordings, and other capture tools
|
||||
- `pkg-` - package management helpers
|
||||
- `hw-` - hardware detection (return exit codes for use in conditionals)
|
||||
- `refresh-` - copy default config to user's `~/.config/`
|
||||
|
||||
|
After Width: | Height: | Size: 63 KiB |
@@ -3,9 +3,9 @@
|
||||
# omarchy:summary=Toggle microphone mute. Dell XPS and ThinkPad systems get special handling for the hardware LED.
|
||||
|
||||
if omarchy-hw-match "XPS"; then
|
||||
omarchy-cmd-mic-mute-xps
|
||||
omarchy-audio-input-mute-xps
|
||||
elif omarchy-hw-match "ThinkPad"; then
|
||||
omarchy-cmd-mic-mute-thinkpad
|
||||
omarchy-audio-input-mute-thinkpad
|
||||
else
|
||||
omarchy-swayosd-client --input-volume mute-toggle
|
||||
fi
|
||||
@@ -16,7 +16,6 @@ fi
|
||||
|
||||
brightnessctl --device="platform::micmute" set "$led_value" >/dev/null 2>&1 || true
|
||||
|
||||
swayosd-client \
|
||||
--monitor "$(omarchy-hyprland-monitor-focused)" \
|
||||
omarchy-swayosd-client \
|
||||
--custom-message "$osd_message" \
|
||||
--custom-icon "$osd_icon"
|
||||
@@ -14,6 +14,31 @@ for candidate in amdgpu_bl* intel_backlight acpi_video*; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Current brightness percentage
|
||||
current=$(brightnessctl -d "$device" -m | cut -d',' -f4 | tr -d '%')
|
||||
|
||||
# Apply non-uniform step size: 1% steps if at or below 5%, otherwise set an
|
||||
# absolute target percentage to avoid raw backlight rounding causing uneven OSD steps.
|
||||
if [[ $step == "+5%" ]]; then
|
||||
if (( current < 5 )); then
|
||||
(( target = current + 1 ))
|
||||
else
|
||||
(( target = current + 5 ))
|
||||
fi
|
||||
|
||||
(( target > 100 )) && target=100
|
||||
step="$target%"
|
||||
elif [[ $step == "5%-" ]]; then
|
||||
if (( current <= 5 )); then
|
||||
(( target = current - 1 ))
|
||||
else
|
||||
(( target = current - 5 ))
|
||||
fi
|
||||
|
||||
(( target < 1 )) && target=1
|
||||
step="$target%"
|
||||
fi
|
||||
|
||||
# Set the actual brightness of the display device.
|
||||
brightnessctl -d "$device" set "$step" >/dev/null
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
encrypted_drives=$(blkid -t TYPE=crypto_LUKS -o device)
|
||||
|
||||
if [[ -n $encrypted_drives ]]; then
|
||||
if (( $(wc -l <<<encrypted_drives) == 1 )); then
|
||||
if (( $(wc -l <<<"$encrypted_drives") == 1 )); then
|
||||
drive_to_change="$encrypted_drives"
|
||||
else
|
||||
drive_to_change="$(omarchy-drive-select "$encrypted_drives")"
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
device=$(hyprctl devices -j | jq -r '[.touch[]?.name, .tablets[]?.name] | first // empty')
|
||||
[[ -n $device ]] && echo "$device"
|
||||
@@ -4,6 +4,11 @@
|
||||
# omarchy:args=<on|off|toggle|recover>
|
||||
|
||||
TOGGLE="internal-monitor-disable"
|
||||
TOGGLE_FLAG="$HOME/.local/state/omarchy/toggles/hypr/$TOGGLE.conf"
|
||||
MIRROR_TOGGLE="internal-monitor-mirror"
|
||||
|
||||
# Get internal monitor name dynamically
|
||||
INTERNAL=$(hyprctl monitors -j | jq -r '.[] | select(.name | contains("eDP")).name' | head -n 1)
|
||||
|
||||
enable() {
|
||||
if omarchy-hyprland-toggle-enabled "$TOGGLE"; then
|
||||
@@ -12,14 +17,15 @@ enable() {
|
||||
}
|
||||
|
||||
disable() {
|
||||
if omarchy-hw-external-monitors; then
|
||||
if omarchy-hyprland-toggle-disabled "$TOGGLE"; then
|
||||
omarchy-hyprland-toggle --enabled-notification " Laptop display disabled" "$TOGGLE"
|
||||
fi
|
||||
else
|
||||
if ! omarchy-hw-external-monitors; then
|
||||
notify-send -u low " Can't disable the only active display"
|
||||
exit 1
|
||||
fi
|
||||
if omarchy-hyprland-toggle-disabled "$TOGGLE" && omarchy-hyprland-toggle-disabled "$MIRROR_TOGGLE"; then
|
||||
echo "monitor=$INTERNAL,disable" >"$TOGGLE_FLAG"
|
||||
notify-send -u low " Laptop display disabled"
|
||||
hyprctl reload
|
||||
fi
|
||||
}
|
||||
|
||||
recover() {
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
TOGGLE="internal-monitor-mirror"
|
||||
TOGGLE_FLAG="$HOME/.local/state/omarchy/toggles/hypr/$TOGGLE.conf"
|
||||
DISABLE_TOGGLE="internal-monitor-disable"
|
||||
|
||||
# Get names dynamically
|
||||
INTERNAL=$(hyprctl monitors -j | jq -r '.[] | select(.name | contains("eDP")).name' | head -n 1)
|
||||
# Get the first available external monitor
|
||||
EXTERNAL=$(hyprctl monitors -j | jq -r '.[] | select(.name | contains("eDP") | not).name' | head -n 1)
|
||||
|
||||
enable() {
|
||||
if [[ -z "$EXTERNAL" ]]; then
|
||||
notify-send -u low " No external monitors found for mirror"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$INTERNAL" ]]; then
|
||||
notify-send -u low " No laptop monitor found to mirror"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if omarchy-hyprland-toggle-enabled "$DISABLE_TOGGLE"; then
|
||||
omarchy-hyprland-toggle "$DISABLE_TOGGLE"
|
||||
fi
|
||||
|
||||
if omarchy-hyprland-toggle-disabled "$TOGGLE"; then
|
||||
echo "monitor=$EXTERNAL, preferred, auto, 1, mirror, $INTERNAL" > "$TOGGLE_FLAG"
|
||||
notify-send -u low " Mirroring enabled ($EXTERNAL)"
|
||||
hyprctl reload
|
||||
fi
|
||||
}
|
||||
|
||||
disable() {
|
||||
if omarchy-hyprland-toggle-enabled "$TOGGLE"; then
|
||||
omarchy-hyprland-toggle --disabled-notification " Extended mode restored" "$TOGGLE"
|
||||
fi
|
||||
}
|
||||
|
||||
recover() {
|
||||
if ! omarchy-hw-external-monitors && omarchy-hyprland-toggle-enabled "$TOGGLE"; then
|
||||
omarchy-hyprland-toggle "$TOGGLE"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
on) enable ;;
|
||||
off) disable ;;
|
||||
toggle) if omarchy-hyprland-toggle-enabled "$TOGGLE"; then disable; else enable; fi ;;
|
||||
recover) recover ;;
|
||||
*)
|
||||
echo "Usage: $(basename "$0") {on|off|toggle|recover}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Watch Hyprland monitor events and recover the internal display when needed
|
||||
# omarchy:summary=Watch Hyprland monitor events and recover monitor toggles when a monitor is removed
|
||||
|
||||
SOCKET="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
|
||||
|
||||
@@ -8,6 +8,7 @@ socat -U - "UNIX-CONNECT:$SOCKET" | while read -r event; do
|
||||
case "$event" in
|
||||
monitorremoved\>\>*|monitorremovedv2\>\>*)
|
||||
omarchy-hyprland-monitor-internal recover
|
||||
omarchy-hyprland-monitor-internal-mirror recover
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -28,21 +28,21 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
||||
hyprctl dispatch exec -- \
|
||||
alacritty --class=org.omarchy.screensaver \
|
||||
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
|
||||
-e omarchy-cmd-screensaver
|
||||
-e omarchy-screensaver
|
||||
;;
|
||||
*ghostty*)
|
||||
hyprctl dispatch exec -- \
|
||||
ghostty --class=org.omarchy.screensaver \
|
||||
--config-file=~/.local/share/omarchy/default/ghostty/screensaver \
|
||||
--font-size=18 \
|
||||
-e omarchy-cmd-screensaver
|
||||
-e omarchy-screensaver
|
||||
;;
|
||||
*kitty*)
|
||||
hyprctl dispatch exec -- \
|
||||
kitty --class=org.omarchy.screensaver \
|
||||
--override font_size=18 \
|
||||
--override window_padding_width=0 \
|
||||
-e omarchy-cmd-screensaver
|
||||
-e omarchy-screensaver
|
||||
;;
|
||||
*)
|
||||
notify-send -u low "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty"
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
# omarchy:summary=Launch the Omarchy Menu or takes a parameter to jump straight to a submenu.
|
||||
|
||||
export PATH="$HOME/.local/share/omarchy/bin:$PATH"
|
||||
|
||||
# Set to true when going directly to a submenu, so we can exit directly
|
||||
BACK_TO_EXIT=false
|
||||
|
||||
@@ -106,7 +104,7 @@ show_trigger_menu() {
|
||||
|
||||
show_capture_menu() {
|
||||
case $(menu "Capture" " Screenshot\n Screenrecord\n Color") in
|
||||
*Screenshot*) omarchy-cmd-screenshot ;;
|
||||
*Screenshot*) omarchy-capture-screenshot ;;
|
||||
*Screenrecord*) show_screenrecord_menu ;;
|
||||
*Color*) pkill hyprpicker || hyprpicker -a ;;
|
||||
*) back_to show_trigger_menu ;;
|
||||
@@ -141,18 +139,18 @@ show_webcam_select_menu() {
|
||||
}
|
||||
|
||||
show_screenrecord_menu() {
|
||||
omarchy-cmd-screenrecord --stop-recording && exit 0
|
||||
omarchy-capture-screenrecording --stop-recording && exit 0
|
||||
|
||||
case $(menu "Screenrecord" " With no audio\n With desktop audio\n With desktop + microphone audio\n With desktop + microphone audio + webcam") in
|
||||
*"With no audio") omarchy-cmd-screenrecord ;;
|
||||
*"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;;
|
||||
*"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;;
|
||||
*"With no audio") omarchy-capture-screenrecording ;;
|
||||
*"With desktop audio") omarchy-capture-screenrecording --with-desktop-audio ;;
|
||||
*"With desktop + microphone audio") omarchy-capture-screenrecording --with-desktop-audio --with-microphone-audio ;;
|
||||
*"With desktop + microphone audio + webcam")
|
||||
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-capture-screenrecording --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device"
|
||||
;;
|
||||
*) back_to show_capture_menu ;;
|
||||
esac
|
||||
@@ -160,15 +158,15 @@ show_screenrecord_menu() {
|
||||
|
||||
show_share_menu() {
|
||||
case $(menu "Share" " Clipboard\n File \n Folder") in
|
||||
*Clipboard*) omarchy-cmd-share clipboard ;;
|
||||
*File*) terminal bash -c "omarchy-cmd-share file" ;;
|
||||
*Folder*) terminal bash -c "omarchy-cmd-share folder" ;;
|
||||
*Clipboard*) omarchy-menu-share clipboard ;;
|
||||
*File*) terminal bash -c "omarchy-menu-share file" ;;
|
||||
*Folder*) terminal bash -c "omarchy-menu-share folder" ;;
|
||||
*) back_to show_trigger_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_toggle_menu() {
|
||||
local options=" Screensaver\n Nightlight\n Idle Lock\n Top Bar\n Workspace Layout\n Window Gaps\n 1-Window Ratio\n Monitor Scaling\n Direct Boot"
|
||||
local options=" Screensaver\n Nightlight\n Idle Lock\n Top Bar\n Workspace Layout\n Window Gaps\n 1-Window Ratio\n Monitor Scaling\n Direct Boot\n Passwordless Sudo"
|
||||
|
||||
case $(menu "Toggle" "$options") in
|
||||
*Screensaver*) omarchy-toggle-screensaver ;;
|
||||
@@ -180,12 +178,13 @@ show_toggle_menu() {
|
||||
*Gaps*) omarchy-hyprland-window-gaps-toggle ;;
|
||||
*Scaling*) omarchy-hyprland-monitor-scaling-cycle ;;
|
||||
*"Direct Boot"*) present_terminal omarchy-config-direct-boot ;;
|
||||
*"Passwordless Sudo"*) present_terminal omarchy-sudo-passwordless ;;
|
||||
*) back_to show_trigger_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_hardware_menu() {
|
||||
local options=" Laptop Display"
|
||||
local options=" Laptop Display\n Mirror Display"
|
||||
|
||||
if omarchy-hw-hybrid-gpu; then
|
||||
options="$options\n Hybrid GPU"
|
||||
@@ -195,9 +194,15 @@ show_hardware_menu() {
|
||||
options="$options\n Touchpad"
|
||||
fi
|
||||
|
||||
if omarchy-hw-touchscreen; then
|
||||
options="$options\n Touchscreen"
|
||||
fi
|
||||
|
||||
case $(menu "Toggle" "$options") in
|
||||
*Laptop*) omarchy-hyprland-monitor-internal toggle ;;
|
||||
*Mirror*) omarchy-hyprland-monitor-internal-mirror toggle;;
|
||||
*Touchpad*) omarchy-toggle-touchpad ;;
|
||||
*Touchscreen*) omarchy-toggle-touchscreen ;;
|
||||
*"Hybrid GPU"*) present_terminal omarchy-toggle-hybrid-gpu ;;
|
||||
*) back_to show_trigger_menu ;;
|
||||
esac
|
||||
@@ -599,7 +604,7 @@ show_system_menu() {
|
||||
|
||||
case $(menu "System" "$options") in
|
||||
*Screensaver*) omarchy-launch-screensaver force ;;
|
||||
*Lock*) omarchy-lock-screen ;;
|
||||
*Lock*) omarchy-system-lock ;;
|
||||
*Suspend*) systemctl suspend ;;
|
||||
*Hibernate*) systemctl hibernate ;;
|
||||
*Logout*) omarchy-system-logout ;;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# omarchy:examples=omarchy share clipboard | omarchy share file ~/Downloads/example.txt
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "Usage: omarchy-cmd-share [clipboard|file|folder]"
|
||||
echo "Usage: omarchy-menu-share [clipboard|file|folder]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -26,20 +26,40 @@ fi
|
||||
node_bin="\$node_root/bin/node"
|
||||
npx_bin="\$node_root/bin/npx"
|
||||
|
||||
# Resolve the package bin inside npx, then run it with node@latest without leaking node@latest into PATH.
|
||||
# Some wrappers are aliases, e.g. playwright-cli wraps the playwright bin.
|
||||
package_bin_path=\$("\$node_bin" "\$npx_bin" --yes --package "\$package" -- which "\$package" 2>/dev/null)
|
||||
ensure_bin_runtime() {
|
||||
local bin_path=\$1
|
||||
local shebang
|
||||
|
||||
if [[ -n \$package_bin_path ]]; then
|
||||
exec "\$node_bin" "\$package_bin_path" "\$@"
|
||||
fi
|
||||
IFS= read -r shebang < "\$bin_path"
|
||||
|
||||
if [[ \$shebang == "#!"*"/bun"* || \$shebang == "#!"*"/env bun"* ]]; then
|
||||
if omarchy-cmd-missing bun; then
|
||||
echo "Installing bun runtime for \$package..."
|
||||
omarchy-pkg-add bun
|
||||
hash -r
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
exec_package_bin() {
|
||||
local package_bin_path=\$1
|
||||
|
||||
if [[ -n \$package_bin_path ]]; then
|
||||
ensure_bin_runtime "\$package_bin_path"
|
||||
PATH="\$node_root/bin:\$PATH" exec "\$package_bin_path" "\$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Resolve the package bin inside npx, then run it with node@latest available for node shebangs.
|
||||
# Some wrappers are aliases, e.g. playwright-cli wraps the playwright bin.
|
||||
"\$node_bin" "\$npx_bin" --yes --prefer-online --package "\$package" -- true
|
||||
|
||||
package_bin_path=\$("\$node_bin" "\$npx_bin" --yes --package "\$package" -- which "\$package" 2>/dev/null)
|
||||
exec_package_bin "\$package_bin_path" "\$@"
|
||||
|
||||
# Scoped packages like @openai/codex expose an unscoped bin like codex.
|
||||
package_bin_path=\$("\$node_bin" "\$npx_bin" --yes --package "\$package" -- which "\$command" 2>/dev/null)
|
||||
|
||||
if [[ -n \$package_bin_path ]]; then
|
||||
exec "\$node_bin" "\$package_bin_path" "\$@"
|
||||
fi
|
||||
exec_package_bin "\$package_bin_path" "\$@"
|
||||
|
||||
echo "Could not resolve npm bin for \$package / \$command" >&2
|
||||
exit 127
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Restore the default Omarchy Plymouth boot theme
|
||||
# omarchy:summary=Restore the default Omarchy Plymouth boot theme and SDDM login screen
|
||||
# omarchy:requires-sudo=true
|
||||
|
||||
# Restore the Plymouth boot theme to the omarchy default — copies the shipped
|
||||
# assets into /usr/share without recoloring, then rebuilds the initramfs.
|
||||
|
||||
theme_dir="/usr/share/plymouth/themes/omarchy"
|
||||
|
||||
sudo find ~/.local/share/omarchy/default/plymouth -maxdepth 1 -type f -exec cp -t "$theme_dir/" {} +
|
||||
@@ -16,3 +13,5 @@ if omarchy-cmd-present limine-mkinitcpio; then
|
||||
else
|
||||
sudo mkinitcpio -P
|
||||
fi
|
||||
|
||||
omarchy-refresh-sddm
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
# Configure the Plymouth boot theme with a custom background color, text color, and logo.
|
||||
# Stages the change in a temp dir, then commits the staged files to /usr/share and
|
||||
# rebuilds the initramfs.
|
||||
# rebuilds the initramfs. Also syncs the SDDM login screen (the post-logout
|
||||
# screen) with the same colors and logo so boot/login stay visually unified.
|
||||
|
||||
if [[ $# -ne 3 ]]; then
|
||||
echo "Usage: omarchy-plymouth-set <background-hex> <text-hex> <path-to-logo.png>" >&2
|
||||
@@ -60,3 +61,16 @@ if omarchy-cmd-present limine-mkinitcpio; then
|
||||
else
|
||||
sudo mkinitcpio -P
|
||||
fi
|
||||
|
||||
# Sync the SDDM login screen with the same colors and logo.
|
||||
sddm_dir="/usr/share/sddm/themes/omarchy"
|
||||
sddm_template="$HOME/.local/share/omarchy/default/sddm/omarchy/Main.qml"
|
||||
|
||||
sed \
|
||||
-e "s/#000000/#$bg_hex/g" \
|
||||
-e "s/#ffffff/#$text_hex/g" \
|
||||
-e 's|source: "logo.svg"|source: "logo.png"|' \
|
||||
"$sddm_template" | sudo tee "$sddm_dir/Main.qml" >/dev/null
|
||||
|
||||
sudo cp "$logo_path" "$sddm_dir/logo.png"
|
||||
sudo rm -f "$sddm_dir/logo.svg"
|
||||
|
||||
@@ -22,6 +22,8 @@ user_config_file="${HOME}/.config/$config_file"
|
||||
default_config_file="${HOME}/.local/share/omarchy/config/$config_file"
|
||||
backup_config_file="$user_config_file.bak.$(date +%s)"
|
||||
|
||||
mkdir -p "$(dirname "$user_config_file")"
|
||||
|
||||
if [[ -f $user_config_file ]]; then
|
||||
# Create preliminary backup
|
||||
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null
|
||||
|
||||
@@ -18,6 +18,7 @@ if gum confirm "Are you sure you want to remove all preinstalled web apps, TUI w
|
||||
|
||||
omarchy-pkg-drop \
|
||||
aether \
|
||||
cliamp \
|
||||
typora \
|
||||
spotify \
|
||||
libreoffice-fresh \
|
||||
|
||||
@@ -29,6 +29,7 @@ create)
|
||||
|
||||
for config in "${CONFIGS[@]}"; do
|
||||
sudo snapper -c "$config" create -c number -d "$DESC"
|
||||
sudo snapper -c "$config" cleanup number
|
||||
done
|
||||
echo
|
||||
;;
|
||||
|
||||
@@ -9,10 +9,12 @@ TIMER_NAME="omarchy-nopasswd-expire-${USER}"
|
||||
|
||||
MINUTES=${1:-15}
|
||||
if [[ $1 && ! $1 =~ ^[0-9]+$ ]]; then
|
||||
echo "Usage: omarchy-sudo-passwordless-toggle [MINUTES]" >&2
|
||||
echo "Usage: omarchy-sudo-passwordless [MINUTES]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Toggle passwordless sudo..."
|
||||
|
||||
# Safety: if the file exists but the timer doesn't (e.g. after reboot), clean up
|
||||
if sudo test -f "$NOPASSWD_FILE" && ! systemctl is-active "${TIMER_NAME}.timer" &>/dev/null; then
|
||||
sudo rm "$NOPASSWD_FILE"
|
||||
@@ -32,7 +34,7 @@ if sudo test -f "$NOPASSWD_FILE"; then
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
echo "⚠️WARNING: This will allow ANY process running as your user to"
|
||||
echo "⚠️ WARNING: This will allow ANY process running as your user to"
|
||||
echo "execute ANY command as root WITHOUT a password for ${MINUTES} minutes."
|
||||
echo ""
|
||||
echo "This is useful for AI agents that need to run sudo commands,"
|
||||
@@ -51,7 +53,7 @@ else
|
||||
|
||||
echo ""
|
||||
echo "Passwordless sudo has been ENABLED. It will automatically disable in ${MINUTES} minutes."
|
||||
echo "Note: if you restart before then, run omarchy-sudo-passwordless-toggle again to disable it."
|
||||
echo "Note: if you restart before then, run omarchy-sudo-passwordless again to disable it."
|
||||
else
|
||||
echo "Aborted. No changes made."
|
||||
fi
|
||||
@@ -0,0 +1,207 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
THEME_SOURCE="${1:-}"
|
||||
COLORS_OUTPUT="$THEME_SOURCE/colors.toml"
|
||||
ALACRITTY_FILE="$THEME_SOURCE/alacritty.toml"
|
||||
|
||||
if [[ -z $THEME_SOURCE ]]; then
|
||||
echo "Usage: omarchy-theme-colors-from-alacritty <theme-dir>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Skip if colors.toml already exists in source theme
|
||||
if [[ -f $COLORS_OUTPUT ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Skip if no alacritty.toml to extract from
|
||||
if [[ ! -f $ALACRITTY_FILE ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
normalize_hex() {
|
||||
local color="$1"
|
||||
[[ -z $color ]] && return
|
||||
color="${color#0x}"
|
||||
color="${color#\#}"
|
||||
if [[ $color =~ ^[0-9a-fA-F]{6}$ ]]; then
|
||||
printf "#%s\n" "${color,,}"
|
||||
fi
|
||||
}
|
||||
|
||||
extract_color_in_section() {
|
||||
local section="$1"
|
||||
local key="$2"
|
||||
local color_hex=""
|
||||
color_hex=$(awk -v section="$section" -v key="$key" '
|
||||
function trim(value) {
|
||||
gsub(/^[ \t]+|[ \t]+$/, "", value)
|
||||
return value
|
||||
}
|
||||
|
||||
function strip_comment(value, i, ch, out, in_single, in_double, prev) {
|
||||
out = ""
|
||||
in_single = 0
|
||||
in_double = 0
|
||||
prev = ""
|
||||
|
||||
for (i = 1; i <= length(value); i++) {
|
||||
ch = substr(value, i, 1)
|
||||
|
||||
if (ch == "\"" && !in_single && prev != "\\") {
|
||||
in_double = !in_double
|
||||
} else if (ch == "'\''" && !in_double) {
|
||||
in_single = !in_single
|
||||
}
|
||||
|
||||
if (ch == "#" && !in_single && !in_double) {
|
||||
break
|
||||
}
|
||||
|
||||
out = out ch
|
||||
prev = ch
|
||||
}
|
||||
|
||||
gsub(/[ \t]+$/, "", out)
|
||||
return out
|
||||
}
|
||||
|
||||
/^[ \t]*\[/ {
|
||||
in_section = ($0 ~ "^[ \\t]*\\[" section "\\][ \\t]*$")
|
||||
next
|
||||
}
|
||||
|
||||
in_section {
|
||||
line = $0
|
||||
line = strip_comment(line)
|
||||
|
||||
split_pos = index(line, "=")
|
||||
if (split_pos == 0) {
|
||||
next
|
||||
}
|
||||
|
||||
current_key = trim(substr(line, 1, split_pos - 1))
|
||||
current_value = trim(substr(line, split_pos + 1))
|
||||
|
||||
if (current_key == key) {
|
||||
gsub(/["'\''#]/, "", current_value)
|
||||
sub(/^0[xX]/, "", current_value)
|
||||
if (current_value ~ /^[0-9A-Fa-f]{6}$/) {
|
||||
print current_value
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
' "$ALACRITTY_FILE")
|
||||
|
||||
if [[ -n $color_hex && $color_hex =~ ^[0-9a-fA-F]{6}$ ]]; then
|
||||
normalize_hex "$color_hex"
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
names=(black red green yellow blue magenta cyan white)
|
||||
|
||||
# Extract normal colors (color0-7)
|
||||
for i in {0..7}; do
|
||||
name="${names[$i]}"
|
||||
val=$(extract_color_in_section "colors.normal" "$name")
|
||||
if [[ -z $val ]]; then
|
||||
val=$(extract_color_in_section "colors" "normal.$name")
|
||||
fi
|
||||
|
||||
printf -v "color$i" "%s" "$val"
|
||||
done
|
||||
|
||||
# Validate we have all normal colors (required)
|
||||
for c in color0 color1 color2 color3 color4 color5 color6 color7; do
|
||||
if [[ -z ${!c} ]]; then
|
||||
echo "Warning: Cannot extract all normal colors from $ALACRITTY_FILE, skipping generation" >&2
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Extract bright colors (color8-15)
|
||||
for i in {0..7}; do
|
||||
normal="color$i"
|
||||
bright="color$((i + 8))"
|
||||
name="${names[$i]}"
|
||||
|
||||
val=$(extract_color_in_section "colors.bright" "$name")
|
||||
if [[ -z $val ]]; then
|
||||
val=$(extract_color_in_section "colors" "bright.$name")
|
||||
fi
|
||||
|
||||
printf -v "$bright" "%s" "${val:-${!normal}}"
|
||||
done
|
||||
|
||||
# Extract primary colors
|
||||
background=$(extract_color_in_section "colors.primary" "background")
|
||||
foreground=$(extract_color_in_section "colors.primary" "foreground")
|
||||
|
||||
if [[ -z $background ]]; then
|
||||
background=$(extract_color_in_section "colors" "primary.background")
|
||||
fi
|
||||
|
||||
if [[ -z $foreground ]]; then
|
||||
foreground=$(extract_color_in_section "colors" "primary.foreground")
|
||||
fi
|
||||
|
||||
# Extract cursor color (from [colors.cursor] section)
|
||||
cursor=$(extract_color_in_section "colors.cursor" "cursor")
|
||||
|
||||
if [[ -z $cursor ]]; then
|
||||
cursor=$(extract_color_in_section "colors" "cursor.cursor")
|
||||
fi
|
||||
|
||||
# Extract selection colors
|
||||
selection_background=$(extract_color_in_section "colors.selection" "background")
|
||||
|
||||
if [[ -z $selection_background ]]; then
|
||||
selection_background=$(extract_color_in_section "colors" "selection.background")
|
||||
fi
|
||||
|
||||
selection_foreground=$(extract_color_in_section "colors.selection" "text")
|
||||
|
||||
if [[ -z $selection_foreground ]]; then
|
||||
selection_foreground=$(extract_color_in_section "colors" "selection.text")
|
||||
fi
|
||||
|
||||
# Apply defaults
|
||||
background=${background:-$color0}
|
||||
foreground=${foreground:-$color7}
|
||||
cursor=${cursor:-$foreground}
|
||||
selection_background=${selection_background:-$foreground}
|
||||
selection_foreground=${selection_foreground:-$background}
|
||||
accent=$color4
|
||||
|
||||
mkdir -p "$THEME_SOURCE"
|
||||
|
||||
cat > "$COLORS_OUTPUT" <<EOF
|
||||
accent = "$accent"
|
||||
cursor = "$cursor"
|
||||
foreground = "$foreground"
|
||||
background = "$background"
|
||||
selection_foreground = "$selection_foreground"
|
||||
selection_background = "$selection_background"
|
||||
|
||||
color0 = "$color0"
|
||||
color1 = "$color1"
|
||||
color2 = "$color2"
|
||||
color3 = "$color3"
|
||||
color4 = "$color4"
|
||||
color5 = "$color5"
|
||||
color6 = "$color6"
|
||||
color7 = "$color7"
|
||||
color8 = "$color8"
|
||||
color9 = "$color9"
|
||||
color10 = "$color10"
|
||||
color11 = "$color11"
|
||||
color12 = "$color12"
|
||||
color13 = "$color13"
|
||||
color14 = "$color14"
|
||||
color15 = "$color15"
|
||||
EOF
|
||||
@@ -29,6 +29,11 @@ mkdir -p "$NEXT_THEME_PATH"
|
||||
cp -r "$OMARCHY_THEMES_PATH/$THEME_NAME/"* "$NEXT_THEME_PATH/" 2>/dev/null
|
||||
cp -r "$USER_THEMES_PATH/$THEME_NAME/"* "$NEXT_THEME_PATH/" 2>/dev/null
|
||||
|
||||
# Generate colors.toml from alacritty.toml if theme is missing colors.toml
|
||||
if [[ ! -f $NEXT_THEME_PATH/colors.toml && -f $NEXT_THEME_PATH/alacritty.toml ]]; then
|
||||
omarchy-theme-colors-from-alacritty "$NEXT_THEME_PATH"
|
||||
fi
|
||||
|
||||
# Generate dynamic configs
|
||||
omarchy-theme-set-templates
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
||||
|
||||
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
||||
if omarchy-cmd-present chromium || omarchy-cmd-present brave || omarchy-cmd-present brave-origin-beta; then
|
||||
if [[ -f $CHROMIUM_THEME ]]; then
|
||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
||||
@@ -19,8 +19,12 @@ if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
||||
pgrep -x chromium >/dev/null && chromium --refresh-platform-policy --no-startup-window &>/dev/null
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present brave; then
|
||||
# Brave and Brave Origin Beta share /etc/brave/policies, so a single write covers both
|
||||
if omarchy-cmd-present brave || omarchy-cmd-present brave-origin-beta; then
|
||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
||||
pgrep -x brave >/dev/null && brave --refresh-platform-policy --no-startup-window &>/dev/null
|
||||
if pgrep -x brave >/dev/null; then
|
||||
omarchy-cmd-present brave && brave --refresh-platform-policy --no-startup-window &>/dev/null
|
||||
omarchy-cmd-present brave-origin-beta && brave-origin-beta --refresh-platform-policy --no-startup-window &>/dev/null
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
STATE_CONF="$HOME/.local/state/omarchy/toggles/hypr/touchscreen-disabled.conf"
|
||||
|
||||
device="$(omarchy-hw-touchscreen)"
|
||||
|
||||
if [[ -z $device ]]; then
|
||||
echo "No touchscreen device found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
enable() {
|
||||
hyprctl keyword "device[$device]:enabled" true >/dev/null
|
||||
rm -f "$STATE_CONF"
|
||||
omarchy-swayosd-client --custom-icon device-support-touch-symbolic --custom-message "Touchscreen enabled"
|
||||
}
|
||||
|
||||
disable() {
|
||||
hyprctl keyword "device[$device]:enabled" false >/dev/null
|
||||
mkdir -p "$(dirname "$STATE_CONF")"
|
||||
printf 'device {\n name = %s\n enabled = false\n}\n' "$device" > "$STATE_CONF"
|
||||
omarchy-swayosd-client --custom-icon touch-disabled-symbolic --custom-message "Touchscreen disabled"
|
||||
}
|
||||
|
||||
case "${1:-toggle}" in
|
||||
on) enable ;;
|
||||
off) disable ;;
|
||||
toggle) if [[ -f $STATE_CONF ]]; then enable; else disable; fi ;;
|
||||
esac
|
||||
@@ -44,3 +44,5 @@ for APP_NAME in "${APP_NAMES[@]}"; do
|
||||
rm -f "$ICON_DIR/$APP_NAME.png"
|
||||
echo "Removed $APP_NAME"
|
||||
done
|
||||
|
||||
omarchy-restart-walker
|
||||
|
||||
@@ -32,4 +32,6 @@ if command -v update-desktop-database &>/dev/null; then
|
||||
update-desktop-database "$APP_DIR" &>/dev/null || true
|
||||
fi
|
||||
|
||||
omarchy-restart-walker
|
||||
|
||||
echo "Web apps removed successfully."
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
brave-flags.conf
|
||||
@@ -7,10 +7,11 @@ bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new
|
||||
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
|
||||
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
|
||||
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
|
||||
bindd = SUPER SHIFT ALT, M, Music TUI, exec, omarchy-launch-or-focus-tui cliamp
|
||||
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
|
||||
bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker
|
||||
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
|
||||
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
|
||||
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian"
|
||||
bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
|
||||
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
|
||||
|
||||
@@ -34,6 +35,6 @@ bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/c
|
||||
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu
|
||||
|
||||
# Logitech MX Keys
|
||||
# bind = SUPER SHIFT, S, exec, omarchy-cmd-screenshot # Print Screen Button
|
||||
# bind = SUPER SHIFT, S, exec, omarchy-capture-screenshot # Print Screen Button
|
||||
# bind = SUPER, H, exec, voxtype record toggle # Dictation Button
|
||||
# bind = SUPER, PERIOD, exec, omarchy-launch-walker -m symbols # Emoji Button
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
general {
|
||||
lock_cmd = omarchy-lock-screen # lock screen and 1password
|
||||
lock_cmd = omarchy-system-lock # lock screen and 1password
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = sleep 1 && hyprctl dispatch dpms on # delay for PAM readiness, then turn on display.
|
||||
inhibit_sleep = 3 # wait until screen is locked
|
||||
|
||||
@@ -19,8 +19,8 @@ input {
|
||||
# Increase sensitivity for mouse/trackpad (default: 0)
|
||||
# sensitivity = 0.35
|
||||
|
||||
# Turn off mouse acceleration (default: false)
|
||||
# force_no_accel = true
|
||||
# Turn off mouse acceleration (default: adaptive)
|
||||
# accel_profile = flat
|
||||
|
||||
touchpad {
|
||||
# Use natural (inverse) scrolling
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# Obsidian reads this file through the Arch package wrapper.
|
||||
-disable-gpu
|
||||
--enable-wayland-ime
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
# show_system_menu() {
|
||||
# case $(menu "System" " Lock\n Shutdown") in
|
||||
# *Lock*) omarchy-lock-screen ;;
|
||||
# *Lock*) omarchy-system-lock ;;
|
||||
# *Shutdown*) omarchy-system-shutdown ;;
|
||||
# *) back_to show_main_menu ;;
|
||||
# esac
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
"on-scroll-right": ""
|
||||
},
|
||||
"custom/screenrecording-indicator": {
|
||||
"on-click": "omarchy-cmd-screenrecord",
|
||||
"on-click": "omarchy-capture-screenrecording",
|
||||
"exec": "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh",
|
||||
"signal": 8,
|
||||
"return-type": "json"
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
export SUDO_EDITOR="$EDITOR"
|
||||
export BAT_THEME=ansi
|
||||
|
||||
# Color man pages with bat
|
||||
export MANROFFOPT="-c"
|
||||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
# Duplicated from .config/uwsm/env so SSH works too
|
||||
export OMARCHY_PATH=$HOME/.local/share/omarchy
|
||||
export PATH=$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin
|
||||
|
||||
@@ -46,7 +46,7 @@ function GetEntries()
|
||||
|
||||
for _, wallpaper_dir in ipairs(dirs) do
|
||||
local handle = io.popen(
|
||||
"find " .. ShellEscape(wallpaper_dir)
|
||||
"find -L " .. ShellEscape(wallpaper_dir)
|
||||
.. " -maxdepth 1 -type f \\( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp' -o -name '*.webp' \\) 2>/dev/null | sort"
|
||||
)
|
||||
if handle then
|
||||
|
||||
@@ -3,6 +3,7 @@ source = ~/.local/share/omarchy/default/hypr/apps/1password.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/browser.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/localsend.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Disable mouse focus (see https://github.com/basecamp/omarchy/pull/5183#issuecomment-4189299971)
|
||||
windowrule {
|
||||
name = jetbrains-focus
|
||||
no_follow_mouse = on
|
||||
match:class = ^(jetbrains-.*)$
|
||||
}
|
||||
@@ -5,7 +5,7 @@ exec-once = uwsm-app -- fcitx5 --disable notificationitem
|
||||
exec-once = uwsm-app -- swaybg -i ~/.config/omarchy/current/background -m fill
|
||||
exec-once = uwsm-app -- swayosd-server
|
||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = omarchy-cmd-first-run
|
||||
exec-once = omarchy-first-run
|
||||
exec-once = omarchy-powerprofiles-init
|
||||
exec-once = uwsm-app -- omarchy-hyprland-monitor-watch
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ bindd = SUPER, N, Neovim, exec, $terminal -e nvim
|
||||
bindd = SUPER, T, Top, exec, $terminal -e btop
|
||||
bindd = SUPER, D, Lazy Docker, exec, $terminal -e lazydocker
|
||||
bindd = SUPER, G, Messenger, exec, $messenger
|
||||
bindd = SUPER, O, Obsidian, exec, obsidian -disable-gpu
|
||||
bindd = SUPER, O, Obsidian, exec, obsidian
|
||||
bindd = SUPER, SLASH, Password manager, exec, $passwordManager
|
||||
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
bindeld = ,XF86AudioRaiseVolume, Volume up, exec, omarchy-swayosd-client --output-volume raise
|
||||
bindeld = ,XF86AudioLowerVolume, Volume down, exec, omarchy-swayosd-client --output-volume lower
|
||||
bindeld = ,XF86AudioMute, Mute, exec, omarchy-swayosd-client --output-volume mute-toggle
|
||||
bindeld = ,XF86AudioMicMute, Mute microphone, exec, omarchy-cmd-mic-mute
|
||||
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 = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up
|
||||
@@ -25,4 +25,4 @@ bindld = , XF86AudioPlay, Play, exec, omarchy-swayosd-client --playerctl play-pa
|
||||
bindld = , XF86AudioPrev, Previous track, exec, omarchy-swayosd-client --playerctl previous
|
||||
|
||||
# Switch audio output with Super + Mute
|
||||
bindld = SUPER, XF86AudioMute, Switch audio output, exec, omarchy-cmd-audio-switch
|
||||
bindld = SUPER, XF86AudioMute, Switch audio output, exec, omarchy-audio-output-switch
|
||||
|
||||
@@ -30,6 +30,7 @@ bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore
|
||||
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-hyprland-monitor-internal off
|
||||
bindl = , switch:off:Lid Switch, exec, omarchy-hyprland-monitor-internal on
|
||||
|
||||
@@ -39,7 +40,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
|
||||
|
||||
# Captures
|
||||
bindd = , PRINT, Screenshot, exec, omarchy-cmd-screenshot
|
||||
bindd = , PRINT, Screenshot, exec, omarchy-capture-screenshot
|
||||
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
|
||||
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
|
||||
|
||||
@@ -64,4 +65,4 @@ bindd = SUPER CTRL, Z, Zoom in, exec, hyprctl keyword cursor:zoom_factor $(hyprc
|
||||
bindd = SUPER CTRL ALT, Z, Reset zoom, exec, hyprctl keyword cursor:zoom_factor 1
|
||||
|
||||
# Lock system
|
||||
bindd = SUPER CTRL, L, Lock system, exec, omarchy-lock-screen
|
||||
bindd = SUPER CTRL, L, Lock system, exec, omarchy-system-lock
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
# Disable the internal laptop monitor
|
||||
monitor=eDP-1,disable
|
||||
@@ -3,7 +3,7 @@ TARGET_OS_NAME="Omarchy"
|
||||
ESP_PATH="/boot"
|
||||
|
||||
KERNEL_CMDLINE[default]+="@@CMDLINE@@"
|
||||
KERNEL_CMDLINE[default]+=" quiet splash"
|
||||
KERNEL_CMDLINE[default]+=" quiet splash loglevel=0 systemd.show_status=false rd.udev.log_level=0 vt.global_cursor_default=0"
|
||||
|
||||
ENABLE_UKI=yes
|
||||
CUSTOM_UKI_NAME="omarchy"
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
#timeout: 3
|
||||
default_entry: 2
|
||||
interface_branding: Omarchy Bootloader
|
||||
interface_branding_color: 2
|
||||
interface_branding_colour: 9ece6a
|
||||
interface_help_colour: 9ece6a
|
||||
interface_help_colour_bright: 9ece6a
|
||||
hash_mismatch_panic: no
|
||||
|
||||
term_background: 1a1b26
|
||||
|
||||
@@ -108,7 +108,7 @@ cat $(which omarchy-theme-set)
|
||||
| `omarchy-theme-*` | Theme management | `omarchy-theme-set <name>` |
|
||||
| `omarchy-install-*` | Install optional software | `omarchy-install-docker-dbs` |
|
||||
| `omarchy-launch-*` | Launch apps | `omarchy-launch-browser` |
|
||||
| `omarchy-cmd-*` | System commands | `omarchy-cmd-screenshot` |
|
||||
| `omarchy-capture-*` | Screenshots and recordings | `omarchy-capture-screenshot` |
|
||||
| `omarchy-pkg-*` | Package management | `omarchy-pkg-install <pkg>` |
|
||||
| `omarchy-setup-*` | Initial setup tasks | `omarchy-setup-fingerprint` |
|
||||
| `omarchy-update-*` | System updates | `omarchy-update` |
|
||||
@@ -308,7 +308,7 @@ omarchy-font-set <name> # Change font
|
||||
omarchy-update # Full system update
|
||||
omarchy-version # Show Omarchy version
|
||||
omarchy-debug --no-sudo --print # Debug info (ALWAYS use these flags)
|
||||
omarchy-lock-screen # Lock screen
|
||||
omarchy-system-lock # Lock screen
|
||||
omarchy-system-shutdown # Shutdown
|
||||
omarchy-system-reboot # Reboot
|
||||
```
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Name=Omarchy (Hyprland uwsm)
|
||||
Comment=Omarchy Hyprland session managed by uwsm
|
||||
Exec=uwsm start -g -1 -e -D Hyprland hyprland.desktop
|
||||
TryExec=uwsm
|
||||
Type=Application
|
||||
@@ -44,6 +44,7 @@ run_logged $OMARCHY_INSTALL/config/hardware/intel/lpmd.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/thermald.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/ipu7-camera.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/ptl-kernel.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/fred.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/intel/fix-wifi7-eht.sh
|
||||
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-haptic-touchpad.sh
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# - BCM4360 (2013–2015 MacBooks)
|
||||
# - BCM4331 (2012, early 2013 MacBooks)
|
||||
|
||||
pci_info=$(lspci -nnv)
|
||||
pci_info=$(lspci -nn)
|
||||
|
||||
if (echo "$pci_info" | grep -q "14e4:43a0" || echo "$pci_info" | grep -q "14e4:4331"); then
|
||||
echo "BCM4360 / BCM4331 detected"
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Enable Flexible Return and Event Delivery on Intel Panther Lake.
|
||||
|
||||
DROP_IN="/etc/limine-entry-tool.d/intel-panther-lake-fred.conf"
|
||||
DEFAULT_LIMINE="/etc/default/limine"
|
||||
|
||||
if omarchy-hw-intel-ptl; then
|
||||
if [[ ! -f $DROP_IN ]] || ! grep -q 'fred=on' "$DROP_IN"; then
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
cat <<EOF | sudo tee "$DROP_IN" >/dev/null
|
||||
# Intel Panther Lake FRED support
|
||||
KERNEL_CMDLINE[default]+=" fred=on"
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [[ -f $DEFAULT_LIMINE ]] && ! grep -q 'fred=on' "$DEFAULT_LIMINE"; then
|
||||
sudo tee -a "$DEFAULT_LIMINE" < "$DROP_IN" >/dev/null
|
||||
fi
|
||||
fi
|
||||
@@ -1,8 +1,8 @@
|
||||
# Install Panther Lake kernel for Intel Panther Lake systems
|
||||
# Install Panther Lake kernel for Dell XPS Panther Lake systems
|
||||
# The linux-ptl kernel includes audio driver patches not yet in mainline.
|
||||
|
||||
if omarchy-hw-intel-ptl; then
|
||||
echo "Detected Intel Panther Lake, installing PTL kernel..."
|
||||
if omarchy-hw-match "XPS" && omarchy-hw-intel-ptl; then
|
||||
echo "Detected Dell XPS Panther Lake, installing PTL kernel..."
|
||||
|
||||
omarchy-pkg-add linux-ptl linux-ptl-headers
|
||||
for pkg in linux linux-headers; do
|
||||
@@ -10,8 +10,8 @@ if omarchy-hw-intel-ptl; then
|
||||
done
|
||||
|
||||
sudo mkdir -p /etc/limine-entry-tool.d
|
||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/intel-panther-lake.conf >/dev/null
|
||||
# Only show Panther Lake kernel in boot menu
|
||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/dell-xps-panther-lake.conf >/dev/null
|
||||
# Only show Panther Lake kernel in boot menu on Dell XPS Panther Lake
|
||||
BOOT_ORDER="linux-ptl*, *fallback, Snapshots"
|
||||
EOF
|
||||
fi
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,6 +5,14 @@ sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr
|
||||
# Setup user theme folder
|
||||
mkdir -p ~/.config/omarchy/themes
|
||||
|
||||
# Add managed policy directories for Chromium and Brave for theme changes.
|
||||
# Must exist before the first omarchy-theme-set, which writes color.json into them.
|
||||
sudo mkdir -p /etc/chromium/policies/managed
|
||||
sudo chmod a+rw /etc/chromium/policies/managed
|
||||
|
||||
sudo mkdir -p /etc/brave/policies/managed
|
||||
sudo chmod a+rw /etc/brave/policies/managed
|
||||
|
||||
# Set initial theme
|
||||
omarchy-theme-set "Tokyo Night"
|
||||
rm -rf ~/.config/chromium/SingletonLock # otherwise archiso will own the chromium singleton
|
||||
@@ -16,12 +24,5 @@ ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current
|
||||
mkdir -p ~/.config/mako
|
||||
ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config
|
||||
|
||||
# Add managed policy directories for Chromium and Brave for theme changes
|
||||
sudo mkdir -p /etc/chromium/policies/managed
|
||||
sudo chmod a+rw /etc/chromium/policies/managed
|
||||
|
||||
sudo mkdir -p /etc/brave/policies/managed
|
||||
sudo chmod a+rw /etc/brave/policies/managed
|
||||
|
||||
# Default Chromium to follow system appearance ("device") instead of dark
|
||||
echo '{"browser":{"theme":{"color_scheme":0,"color_scheme2":0}}}' | sudo tee /usr/lib/chromium/initial_preferences >/dev/null
|
||||
|
||||
@@ -8,6 +8,7 @@ sudo ufw allow 53317/tcp
|
||||
|
||||
# Allow Docker containers to use DNS on host
|
||||
sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns'
|
||||
sudo ufw allow in proto udp from 192.168.0.0/16 to 172.17.0.1 port 53 comment 'allow-docker-dns'
|
||||
|
||||
# Turn on the firewall
|
||||
sudo ufw --force enable
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
if command -v limine &>/dev/null; then
|
||||
sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook
|
||||
|
||||
sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf <<EOF >/dev/null
|
||||
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
|
||||
EOF
|
||||
@@ -29,6 +27,10 @@ EOF
|
||||
|
||||
CMDLINE=$(grep "^[[:space:]]*cmdline:" "$limine_config" | head -1 | sed 's/^[[:space:]]*cmdline:[[:space:]]*//')
|
||||
|
||||
# Write /etc/default/limine *before* installing limine-mkinitcpio-hook, whose
|
||||
# post-transaction deploy hook runs limine-install and reads this file. Without
|
||||
# it, ESP_PATH falls back to bootctl, which in a chroot prints a warning that
|
||||
# gets captured as the path and trips a spurious "invalid ESP" error.
|
||||
sudo cp $OMARCHY_PATH/default/limine/default.conf /etc/default/limine
|
||||
sudo sed -i "s|@@CMDLINE@@|$CMDLINE|g" /etc/default/limine
|
||||
|
||||
@@ -42,7 +44,8 @@ EOF
|
||||
sudo sed -i '/^ENABLE_UKI=/d; /^ENABLE_LIMINE_FALLBACK=/d' /etc/default/limine
|
||||
fi
|
||||
|
||||
# Remove the original config file if it's not /boot/limine.conf
|
||||
# Remove the original config file if it's not /boot/limine.conf, so the deploy
|
||||
# hook doesn't see conflicting configs on the same ESP.
|
||||
if [[ $limine_config != "/boot/limine.conf" ]] && [[ -f $limine_config ]]; then
|
||||
sudo rm "$limine_config"
|
||||
fi
|
||||
@@ -50,6 +53,8 @@ EOF
|
||||
# We overwrite the whole thing knowing the limine-update will add the entries for us
|
||||
sudo cp $OMARCHY_PATH/default/limine/limine.conf /boot/limine.conf
|
||||
|
||||
sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook
|
||||
|
||||
# Only snapshot root — /home is user data; rolling it back loses user work
|
||||
if ! sudo snapper list-configs 2>/dev/null | grep -q "root"; then
|
||||
sudo snapper -c root create-config /
|
||||
|
||||
@@ -2,16 +2,21 @@
|
||||
omarchy-refresh-sddm
|
||||
|
||||
# Setup SDDM login service
|
||||
sudo mkdir -p /usr/local/share/wayland-sessions
|
||||
sudo cp "$OMARCHY_PATH/default/wayland-sessions/omarchy.desktop" /usr/local/share/wayland-sessions/omarchy.desktop
|
||||
|
||||
sudo mkdir -p /etc/sddm.conf.d
|
||||
if [[ ! -f /etc/sddm.conf.d/autologin.conf ]]; then
|
||||
cat <<EOF | sudo tee /etc/sddm.conf.d/autologin.conf
|
||||
[Autologin]
|
||||
User=$USER
|
||||
Session=hyprland-uwsm
|
||||
Session=omarchy
|
||||
|
||||
[Theme]
|
||||
Current=omarchy
|
||||
EOF
|
||||
else
|
||||
sudo sed -i 's/^Session=hyprland-uwsm$/Session=omarchy/' /etc/sddm.conf.d/autologin.conf
|
||||
fi
|
||||
|
||||
# Prevent password-based SDDM logins from creating an encrypted login keyring
|
||||
|
||||
@@ -17,6 +17,7 @@ btop
|
||||
chromium
|
||||
clang
|
||||
claude-code
|
||||
cliamp
|
||||
cups
|
||||
cups-browsed
|
||||
cups-filters
|
||||
@@ -24,8 +25,10 @@ cups-pdf
|
||||
docker
|
||||
docker-buildx
|
||||
docker-compose
|
||||
dosfstools
|
||||
dotnet-runtime-9.0
|
||||
dust
|
||||
elephant-all
|
||||
evince
|
||||
exfatprogs
|
||||
expac
|
||||
@@ -91,7 +94,6 @@ nvim
|
||||
obs-studio
|
||||
obsidian
|
||||
omarchy-nvim
|
||||
omarchy-walker
|
||||
pamixer
|
||||
pinta
|
||||
playerctl
|
||||
@@ -131,6 +133,7 @@ ufw-docker
|
||||
unzip
|
||||
usage
|
||||
uwsm
|
||||
walker
|
||||
waybar
|
||||
whois
|
||||
wireless-regdb
|
||||
|
||||
@@ -7,18 +7,13 @@ base
|
||||
base-devel
|
||||
broadcom-wl
|
||||
btrfs-progs
|
||||
dart
|
||||
dkms
|
||||
egl-wayland
|
||||
git
|
||||
gst-plugin-pipewire
|
||||
gtk4-layer-shell
|
||||
htop
|
||||
intltool
|
||||
iwd
|
||||
jdk-openjdk
|
||||
libpulse
|
||||
libsass
|
||||
intel-ipu7-camera
|
||||
intel-lpmd
|
||||
intel-media-driver
|
||||
@@ -45,11 +40,9 @@ pipewire-alsa
|
||||
pipewire-jack
|
||||
pipewire-pulse
|
||||
qt6-wayland
|
||||
sassc
|
||||
snapper
|
||||
thermald
|
||||
webp-pixbuf-loader
|
||||
wget
|
||||
yay-debug
|
||||
tuxedo-drivers-nocompatcheck-dkms
|
||||
yt6801-dkms
|
||||
|
||||
@@ -4,3 +4,4 @@ omarchy-npx-install @github/copilot copilot
|
||||
omarchy-npx-install opencode-ai opencode
|
||||
omarchy-npx-install playwright playwright-cli
|
||||
omarchy-npx-install @mariozechner/pi-coding-agent pi
|
||||
omarchy-npx-install @kitlangton/ghui ghui
|
||||
|
||||
@@ -2,3 +2,4 @@ ICON_DIR="$HOME/.local/share/applications/icons"
|
||||
|
||||
omarchy-tui-install "Disk Usage" "bash -c 'dust -r; read -n 1 -s'" float "$ICON_DIR/Disk Usage.png"
|
||||
omarchy-tui-install "Docker" "lazydocker" tile "$ICON_DIR/Docker.png"
|
||||
omarchy-tui-install "Cliamp" "cliamp" tile "$ICON_DIR/Cliamp.png"
|
||||
|
||||
@@ -11,7 +11,7 @@ fi
|
||||
echo "Copy hooks examples"
|
||||
cp -r $OMARCHY_PATH/config/omarchy/* $HOME/.config/omarchy/
|
||||
|
||||
echo "Add packages for updated omarchy-cmd-screenshot"
|
||||
echo "Add packages for updated omarchy-capture-screenshot"
|
||||
omarchy-pkg-add grim slurp
|
||||
|
||||
echo "Add nfs support by default to Nautilus"
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
echo "Move Obsidian flags from Hyprland binding to Obsidian user flags"
|
||||
|
||||
OBSIDIAN_FLAGS_FILE="$HOME/.config/obsidian/user-flags.conf"
|
||||
OBSIDIAN_DEFAULT_FLAGS_FILE="$OMARCHY_PATH/config/obsidian/user-flags.conf"
|
||||
|
||||
mkdir -p "$(dirname "$OBSIDIAN_FLAGS_FILE")"
|
||||
|
||||
if [[ ! -f $OBSIDIAN_FLAGS_FILE ]]; then
|
||||
cp "$OBSIDIAN_DEFAULT_FLAGS_FILE" "$OBSIDIAN_FLAGS_FILE"
|
||||
else
|
||||
missing_flags=$(grep -vE '^(#|$)' "$OBSIDIAN_DEFAULT_FLAGS_FILE" | grep -vxFf "$OBSIDIAN_FLAGS_FILE" || true)
|
||||
|
||||
if [[ -n $missing_flags ]]; then
|
||||
{
|
||||
echo
|
||||
echo "# Added by Omarchy migration 1776434586: Obsidian launch flags moved from Hyprland binding."
|
||||
printf "%s\n" "$missing_flags"
|
||||
} >>"$OBSIDIAN_FLAGS_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f ~/.config/hypr/bindings.conf ]]; then
|
||||
sed -i '/Obsidian, exec/ {
|
||||
s/ -disable-gpu//g
|
||||
s/ --disable-gpu//g
|
||||
s/ --enable-wayland-ime//g
|
||||
s/"uwsm app -- obsidian/"uwsm-app -- obsidian/g
|
||||
}' ~/.config/hypr/bindings.conf
|
||||
fi
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
echo "Install dosfstools for FAT filesystem utilities like fsck.fat and mkfs.fat"
|
||||
|
||||
omarchy-pkg-add dosfstools
|
||||
@@ -0,0 +1,5 @@
|
||||
echo "Allow Docker DNS from Docker's 192.168 address pool"
|
||||
|
||||
if omarchy-cmd-present ufw && sudo ufw status | grep -q "Status: active"; then
|
||||
sudo ufw allow in proto udp from 192.168.0.0/16 to 172.17.0.1 port 53 comment 'allow-docker-dns'
|
||||
fi
|
||||
@@ -0,0 +1,8 @@
|
||||
echo "Use Omarchy UWSM session without graphical.target startup wait"
|
||||
|
||||
sudo mkdir -p /usr/local/share/wayland-sessions
|
||||
sudo cp "$OMARCHY_PATH/default/wayland-sessions/omarchy.desktop" /usr/local/share/wayland-sessions/omarchy.desktop
|
||||
|
||||
if [[ -f /etc/sddm.conf.d/autologin.conf ]]; then
|
||||
sudo sed -i 's/^Session=hyprland-uwsm$/Session=omarchy/' /etc/sddm.conf.d/autologin.conf
|
||||
fi
|
||||
@@ -0,0 +1,9 @@
|
||||
echo "Hide shutdown console messages behind Plymouth"
|
||||
|
||||
if [[ -f /etc/default/limine ]]; then
|
||||
sudo sed -i 's/ quiet splash/ quiet splash loglevel=0 systemd.show_status=false rd.udev.log_level=0 vt.global_cursor_default=0/' /etc/default/limine
|
||||
|
||||
if omarchy-cmd-present limine-mkinitcpio; then
|
||||
sudo limine-mkinitcpio
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,8 @@
|
||||
echo "Update Waybar screen recording command"
|
||||
|
||||
WAYBAR_CONFIG="$HOME/.config/waybar/config.jsonc"
|
||||
|
||||
if [[ -f $WAYBAR_CONFIG ]] && grep -q 'omarchy-cmd-screenrecord' "$WAYBAR_CONFIG"; then
|
||||
sed -i 's/omarchy-cmd-screenrecord/omarchy-capture-screenrecording/g' "$WAYBAR_CONFIG"
|
||||
omarchy-restart-waybar
|
||||
fi
|
||||
@@ -0,0 +1,6 @@
|
||||
echo "Rename lock screen command in Hypridle config"
|
||||
|
||||
if grep -q 'omarchy-lock-screen' ~/.config/hypr/hypridle.conf; then
|
||||
sed -i 's/omarchy-lock-screen/omarchy-system-lock/g' ~/.config/hypr/hypridle.conf
|
||||
omarchy-restart-hypridle
|
||||
fi
|
||||
@@ -0,0 +1,36 @@
|
||||
echo "Replace deprecated sainnhe.everforest VSCode extension with reesew.everforest-theme"
|
||||
|
||||
# Background:
|
||||
# The original "sainnhe.everforest" extension is no longer maintained — its
|
||||
# upstream repo (https://github.com/sainnhe/everforest-vscode) was archived
|
||||
# by the author, so it receives no updates or fixes.
|
||||
# "reesew.everforest-theme" is a maintained fork of that same extension,
|
||||
# published from https://github.com/reese/everforest-vscode, and is the
|
||||
# replacement we now ship in themes/everforest/vscode.json.
|
||||
|
||||
|
||||
# For each VS Code variant, uninstall the old extension and re-apply theme if the
|
||||
# current Omarchy theme is everforest (which will install the new extension automatically).
|
||||
|
||||
uninstall_old_extension() {
|
||||
local editor_cmd="$1"
|
||||
|
||||
omarchy-cmd-present "$editor_cmd" || return 0
|
||||
|
||||
if "$editor_cmd" --list-extensions | grep -Fxq "sainnhe.everforest"; then
|
||||
"$editor_cmd" --uninstall-extension sainnhe.everforest >/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
uninstall_old_extension "code"
|
||||
uninstall_old_extension "code-insiders"
|
||||
uninstall_old_extension "codium"
|
||||
uninstall_old_extension "cursor"
|
||||
|
||||
# If the user is currently on the everforest theme, refresh it so the updated
|
||||
# vscode.json (with reesew.everforest-theme) is copied into ~/.config/omarchy/current/theme,
|
||||
# then omarchy-theme-set-vscode (called by the refresh) installs the new extension.
|
||||
THEME_NAME_PATH="$HOME/.config/omarchy/current/theme.name"
|
||||
if [[ -f $THEME_NAME_PATH ]] && [[ "$(cat "$THEME_NAME_PATH")" == "everforest" ]]; then
|
||||
omarchy-theme-refresh
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
echo "Replace coterie of individual Elephant packages with the single elephant-all package"
|
||||
|
||||
if omarchy-pkg-present omarchy-walker; then
|
||||
omarchy-pkg-drop omarchy-walker
|
||||
omarchy-pkg-add walker elephant-all
|
||||
omarchy-refresh-walker
|
||||
fi
|
||||
@@ -0,0 +1,9 @@
|
||||
echo "Enable FRED on Intel Panther Lake systems"
|
||||
|
||||
DEFAULT_LIMINE="/etc/default/limine"
|
||||
|
||||
if omarchy-hw-intel-ptl && [[ -f $DEFAULT_LIMINE ]] && ! grep -q 'fred=on' "$DEFAULT_LIMINE"; then
|
||||
source "$OMARCHY_PATH/install/config/hardware/intel/fred.sh"
|
||||
|
||||
sudo limine-update
|
||||
fi
|
||||
@@ -0,0 +1,5 @@
|
||||
echo "Update interface_branding_color for limine 12 (palette index -> RRGGBB)"
|
||||
|
||||
if [[ -f /boot/limine.conf ]]; then
|
||||
sudo sed -i 's/^interface_branding_color: 2$/interface_branding_color: 9ece6a/' /boot/limine.conf
|
||||
fi
|
||||
@@ -0,0 +1,16 @@
|
||||
echo "Restore stock kernel on non-XPS Panther Lake systems"
|
||||
|
||||
if omarchy-hw-intel-ptl && ! omarchy-hw-match "XPS"; then
|
||||
omarchy-pkg-add linux linux-headers
|
||||
|
||||
for pkg in linux-ptl linux-ptl-headers; do
|
||||
sudo pacman -Rdd --noconfirm "$pkg" 2>/dev/null || true
|
||||
done
|
||||
|
||||
sudo rm -f /etc/limine-entry-tool.d/intel-panther-lake.conf
|
||||
sudo rm -f /etc/limine-entry-tool.d/dell-xps-panther-lake.conf
|
||||
|
||||
if omarchy-cmd-present limine-update; then
|
||||
sudo limine-update
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,8 @@
|
||||
echo "Rename screen recording command"
|
||||
|
||||
WAYBAR_CONFIG="$HOME/.config/waybar/config.jsonc"
|
||||
|
||||
if [[ -f $WAYBAR_CONFIG ]] && grep -q 'omarchy-capture-screencording' "$WAYBAR_CONFIG"; then
|
||||
sed -i 's/omarchy-capture-screencording/omarchy-capture-screenrecording/g' "$WAYBAR_CONFIG"
|
||||
omarchy-restart-waybar
|
||||
fi
|
||||
@@ -0,0 +1,5 @@
|
||||
echo "Symlink Brave Origin Beta flags to brave-flags.conf so both browsers share configuration"
|
||||
|
||||
if [[ ! -e ~/.config/brave-origin-beta-flags.conf ]]; then
|
||||
ln -s brave-flags.conf ~/.config/brave-origin-beta-flags.conf
|
||||
fi
|
||||
@@ -0,0 +1,13 @@
|
||||
echo "Add cliamp music TUI player (Super+Shift+Alt+M)"
|
||||
|
||||
if omarchy-pkg-missing cliamp; then
|
||||
omarchy-pkg-add cliamp
|
||||
|
||||
cp ~/.local/share/omarchy/applications/icons/Cliamp.png ~/.local/share/applications/icons/Cliamp.png
|
||||
gtk-update-icon-cache ~/.local/share/icons/hicolor &>/dev/null
|
||||
omarchy-tui-install "Cliamp" "cliamp" tile "$HOME/.local/share/applications/icons/Cliamp.png"
|
||||
|
||||
if [[ -f ~/.config/hypr/bindings.conf ]] && ! grep -q "cliamp" ~/.config/hypr/bindings.conf; then
|
||||
sed -i '/^bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify/a bindd = SUPER SHIFT ALT, M, Music TUI, exec, omarchy-launch-or-focus-tui cliamp' ~/.config/hypr/bindings.conf
|
||||
fi
|
||||
fi
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"name": "Everforest Dark",
|
||||
"extension": "sainnhe.everforest"
|
||||
"extension": "reesew.everforest-theme"
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 1.3 MiB |