Compare commits

..
1 Commits
Author SHA1 Message Date
David Heinemeier Hansson 0dec9dd795 Tokyo Night Day Theme
Maybe it's too close to Catppuccin Latte to be distinct enough.
2026-05-08 17:55:27 +02:00
64 changed files with 403 additions and 217 deletions
-4
View File
@@ -92,10 +92,6 @@ Exceptions are allowed for bootstrap, preflight, migration, and package-helper s
- `default/themed/*.tpl` - templates with `{{ variable }}` placeholders for theme colors
- `themes/*/colors.toml` - theme color definitions (accent, background, foreground, color0-15)
# Visual Changes
When making visual changes, such as Waybar styles or desktop appearance, always take and analyze a screenshot after applying the change to verify the result. Use `omarchy capture screenshot fullscreen save` for fullscreen screenshots.
# Refresh Pattern
To copy a default config to user config with automatic backup:
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

+1
View File
@@ -53,6 +53,7 @@ GROUP_DESCRIPTIONS[npx]="NPX package wrappers"
GROUP_DESCRIPTIONS[pkg]="Package management helpers"
GROUP_DESCRIPTIONS[plymouth]="Plymouth boot theme management"
GROUP_DESCRIPTIONS[powerprofiles]="Power profile management"
GROUP_DESCRIPTIONS[echo]="Colored terminal output helpers"
GROUP_DESCRIPTIONS[refresh]="Reset config to defaults"
GROUP_DESCRIPTIONS[reinstall]="Reinstall and reset workflows"
GROUP_DESCRIPTIONS[reminder]="Desktop notification reminders"
-1
View File
@@ -233,7 +233,6 @@ stop_screenrecording() {
else
finalize_recording
local filename=$(cat "$RECORDING_FILE" 2>/dev/null)
echo "$filename"
local preview="${filename%.mp4}-preview.png"
# Generate a preview thumbnail from the first frame
+11 -19
View File
@@ -2,7 +2,7 @@
# omarchy:summary=Take a screenshot
# omarchy:group=capture
# omarchy:args=[smart|region|windows|fullscreen] [slurp|copy|save] [--editor=<name>]
# omarchy:args=[smart|region|windows|fullscreen] [slurp|copy] [--editor=<name>]
# omarchy:examples=omarchy screenshot | omarchy capture screenshot region
# omarchy:aliases=omarchy screenshot
@@ -126,22 +126,14 @@ esac
FILENAME="screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png"
FILEPATH="$OUTPUT_DIR/$FILENAME"
case "$PROCESSING" in
slurp)
grim -g "$SELECTION" "$FILEPATH" || exit 1
echo "$FILEPATH"
wl-copy <"$FILEPATH"
if [[ $PROCESSING == "slurp" ]]; then
grim -g "$SELECTION" "$FILEPATH" || exit 1
wl-copy <"$FILEPATH"
(
ACTION=$(notify-send "Screenshot saved to clipboard and file" "Edit with Super + Alt + , (or click this)" -t 10000 -i "$FILEPATH" -A "default=edit")
[[ $ACTION == "default" ]] && open_editor "$FILEPATH"
) >/dev/null 2>&1 &
;;
copy)
grim -g "$SELECTION" - | wl-copy
;;
save)
grim -g "$SELECTION" "$FILEPATH" || exit 1
echo "$FILEPATH"
;;
esac
(
ACTION=$(notify-send "Screenshot saved to clipboard and file" "Edit with Super + Alt + , (or click this)" -t 10000 -i "$FILEPATH" -A "default=edit")
[[ $ACTION == "default" ]] && open_editor "$FILEPATH"
) &
else
grim -g "$SELECTION" - | wl-copy
fi
+4 -2
View File
@@ -74,13 +74,15 @@ ACTION=$(gum choose "${OPTIONS[@]}")
case "$ACTION" in
"Upload log")
echo "Uploading debug log to logs.omarchy.org..."
URL=$(curl -sf -F "file=@$LOG_FILE" https://logs.omarchy.org/)
echo "Uploading debug log to 0x0.st..."
URL=$(curl -sF "file=@$LOG_FILE" -Fexpires=24 https://0x0.st)
if (( $? == 0 )) && [[ -n $URL ]]; then
echo "✓ Log uploaded successfully!"
echo "Share this URL:"
echo ""
echo " $URL"
echo ""
echo "This link will expire in 24 hours."
else
echo "Error: Failed to upload log file"
exit 1
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
# omarchy:summary=Print a failure message in red
# omarchy:args=<message>
RED='\033[0;31m'
NC='\033[0m'
echo -e "${RED}$*${NC}"
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
# omarchy:summary=Print an informational message in yellow
# omarchy:args=<message>
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${YELLOW}$*${NC}"
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
# omarchy:summary=Print a success message in green
# omarchy:args=<message>
GREEN='\033[0;32m'
NC='\033[0m'
echo -e "${GREEN}$*${NC}"
+96
View File
@@ -0,0 +1,96 @@
#!/usr/bin/env python3
# omarchy:summary=Run the Synaptics touchpad haptic feedback daemon
"""Haptic feedback daemon for Synaptics touchpads with Manual Trigger.
Monitors touchpad button press events and sends haptic pulses via HID
feature reports. Required because the kernel's HID haptic subsystem only
supports Auto Trigger with waveform enumeration, not the simpler Manual
Trigger protocol used by these Synaptics touchpads.
"""
import fcntl, glob, os, struct, sys
VENDOR = "06CB"
REPORT_ID = 0x37
INTENSITY = 40 # 0-100
# input_event: struct timeval (16 bytes on 64-bit) + type(H) + code(H) + value(i)
EVENT_FORMAT = "llHHi"
EVENT_SIZE = struct.calcsize(EVENT_FORMAT)
EV_KEY = 0x01
BTN_LEFT = 272
BTN_RIGHT = 273
BTN_MIDDLE = 274
# ioctl: HIDIOCSFEATURE(len) = _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len)
def HIDIOCSFEATURE(length):
return 0xC0000000 | (length << 16) | (ord("H") << 8) | 0x06
def find_hidraw():
for path in sorted(glob.glob("/sys/class/hidraw/hidraw*")):
uevent = os.path.join(path, "device", "uevent")
try:
with open(uevent) as f:
content = f.read().upper()
if f"0000{VENDOR}" in content:
return os.path.join("/dev", os.path.basename(path))
except OSError:
continue
return None
def find_touchpad_event():
for path in sorted(glob.glob("/sys/class/input/event*/device/name")):
try:
with open(path) as f:
name = f.read().strip().upper()
if VENDOR in name and "TOUCHPAD" in name:
event = path.split("/")[-3]
return os.path.join("/dev/input", event)
except OSError:
continue
return None
def main():
hidraw = find_hidraw()
if not hidraw:
print("No Synaptics haptic touchpad hidraw device found", file=sys.stderr)
sys.exit(1)
event = find_touchpad_event()
if not event:
print("No Synaptics haptic touchpad input device found", file=sys.stderr)
sys.exit(1)
print(f"Haptic touchpad: hidraw={hidraw} input={event} intensity={INTENSITY}", flush=True)
haptic_report = struct.pack("BB", REPORT_ID, INTENSITY)
ioctl_req = HIDIOCSFEATURE(len(haptic_report))
hidraw_fd = os.open(hidraw, os.O_RDWR)
event_fd = os.open(event, os.O_RDONLY)
try:
while True:
data = os.read(event_fd, EVENT_SIZE)
if len(data) < EVENT_SIZE:
continue
_, _, ev_type, code, value = struct.unpack(EVENT_FORMAT, data)
if ev_type == EV_KEY and code in (BTN_LEFT, BTN_RIGHT, BTN_MIDDLE) and value == 1:
try:
fcntl.ioctl(hidraw_fd, ioctl_req, haptic_report)
except OSError:
pass
except KeyboardInterrupt:
pass
finally:
os.close(event_fd)
os.close(hidraw_fd)
if __name__ == "__main__":
main()
-5
View File
@@ -1,5 +0,0 @@
#!/bin/bash
# omarchy:summary=Match Dell XPS systems with the Synaptics haptic touchpad.
omarchy-hw-match "XPS" && [[ -e /sys/bus/i2c/devices/i2c-VEN_06CB:00 ]]
+1 -4
View File
@@ -21,10 +21,7 @@ omarchy-pkg-add \
libretro-parallel-n64 libretro-picodrive libretro-play libretro-ppsspp \
libretro-sameboy libretro-scummvm libretro-shaders-slang libretro-snes9x \
libretro-yabause \
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
libretro-cap32-git libretro-fbneo-git libretro-uae-git libretro-vice-git \
libretro-database-git \
retroarch-joypad-autoconfig-git
+1 -17
View File
@@ -233,18 +233,13 @@ show_hardware_menu() {
options="$options\n󰟸 Touchpad"
fi
if omarchy-hw-dell-xps-haptic-touchpad && omarchy-cmd-present dell-xps-touchpad-haptics; then
options="$options\n󰌌 Touchpad Haptics"
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 ;;
*Haptics*) show_hardware_touchpad_haptics_menu ;;
*Mirror*) omarchy-hyprland-monitor-internal-mirror toggle;;
*Touchpad*) omarchy-toggle-touchpad ;;
*Touchscreen*) omarchy-toggle-touchscreen ;;
*"Hybrid GPU"*) present_terminal omarchy-toggle-hybrid-gpu ;;
@@ -252,17 +247,6 @@ show_hardware_menu() {
esac
}
show_hardware_touchpad_haptics_menu() {
local current=$(dell-xps-touchpad-haptics get)
local selected=$(menu "Touchpad Haptics" "low\nmid\nhigh" "" "$current")
if [[ -n $selected ]]; then
dell-xps-touchpad-haptics set "$selected"
else
back_to show_hardware_menu
fi
}
show_style_menu() {
case $(menu "Style" "󰸌 Theme\n󰟵 Unlock\n Font\n Background\n Hyprland\n󱄄 Screensaver\n About") in
*Theme*) show_theme_menu ;;
+1 -1
View File
@@ -6,6 +6,6 @@ set -e
# Reinstall the Omarchy configuration directory from the git source.
git clone --depth=1 --branch master "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
git clone --depth=1 "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
mv $OMARCHY_PATH ~/.local/share/omarchy-old
mv ~/.local/share/omarchy-new $OMARCHY_PATH
+1 -4
View File
@@ -21,10 +21,7 @@ omarchy-pkg-drop \
libretro-parallel-n64 libretro-picodrive libretro-play libretro-ppsspp \
libretro-sameboy libretro-scummvm libretro-shaders-slang libretro-snes9x \
libretro-yabause \
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
libretro-cap32-git libretro-fbneo-git libretro-uae-git libretro-vice-git \
retroarch-joypad-autoconfig-git
rm -rf \
+6 -6
View File
@@ -9,27 +9,27 @@ set -e
remove_pam_config() {
# Remove from sudo
if grep -q pam_u2f.so /etc/pam.d/sudo; then
echo "Removing FIDO2 authentication from sudo..."
omarchy-echo-info "Removing FIDO2 authentication from sudo..."
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/sudo
fi
# Remove from polkit
if [[ -f /etc/pam.d/polkit-1 ]] && grep -Fq 'pam_u2f.so' /etc/pam.d/polkit-1; then
echo "Removing FIDO2 authentication from polkit..."
omarchy-echo-info "Removing FIDO2 authentication from polkit..."
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/polkit-1
fi
}
echo -e "\e[32mRemoving FIDO2 device from authentication.\n\e[0m"
omarchy-echo-success "Removing FIDO2 device from authentication.\n"
remove_pam_config
if [[ -d /etc/fido2 ]]; then
echo "Removing FIDO2 configuration..."
omarchy-echo-info "Removing FIDO2 configuration..."
sudo rm -rf /etc/fido2
fi
echo "Removing FIDO2 packages..."
omarchy-echo-info "Removing FIDO2 packages..."
omarchy-pkg-drop libfido2 pam-u2f
echo -e "\e[32mFIDO2 authentication has been completely removed.\e[0m"
omarchy-echo-success "FIDO2 authentication has been completely removed."
+6 -6
View File
@@ -9,29 +9,29 @@ set -e
remove_pam_config() {
# Remove from sudo
if grep -q pam_fprintd.so /etc/pam.d/sudo; then
echo "Removing fingerprint authentication from sudo..."
omarchy-echo-info "Removing fingerprint authentication from sudo..."
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
fi
# Remove from polkit
if [[ -f /etc/pam.d/polkit-1 ]] && grep -Fq 'pam_fprintd.so' /etc/pam.d/polkit-1; then
echo "Removing fingerprint authentication from polkit..."
omarchy-echo-info "Removing fingerprint authentication from polkit..."
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/polkit-1
fi
}
remove_hyprlock_fingerprint_icon() {
echo "Removing fingerprint icon from hyprlock placeholder text..."
omarchy-echo-info "Removing fingerprint icon from hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = false/' ~/.config/hypr/hyprlock.conf
}
echo -e "\e[32mRemoving fingerprint scanner from authentication.\n\e[0m"
omarchy-echo-success "Removing fingerprint scanner from authentication.\n"
remove_pam_config
remove_hyprlock_fingerprint_icon
echo "Removing fingerprint packages..."
omarchy-echo-info "Removing fingerprint packages..."
omarchy-pkg-drop fprintd libfprint-git
echo -e "\e[32mFingerprint authentication has been completely removed.\e[0m"
omarchy-echo-success "Fingerprint authentication has been completely removed."
+5 -5
View File
@@ -2,8 +2,8 @@
# omarchy:summary=Restart the SwayOSD server
systemctl --user daemon-reload
systemctl --user stop swayosd-server.service || true
pkill -x swayosd-server || true
systemctl --user reset-failed swayosd-server.service || true
systemctl --user enable --now swayosd-server.service
if systemctl --user is-enabled --quiet swayosd-server.service; then
systemctl --user restart swayosd-server.service
else
omarchy-restart-app swayosd-server
fi
+1 -2
View File
@@ -3,5 +3,4 @@
# omarchy:summary=Restart Waybar
# omarchy:examples=omarchy restart waybar
pkill -9 -x waybar
setsid uwsm-app -- waybar >/dev/null 2>&1 &
omarchy-restart-app waybar
+16 -16
View File
@@ -9,7 +9,7 @@ set -e
check_fido2_hardware() {
tokens=$(fido2-token -L 2>/dev/null)
if [[ -z $tokens ]]; then
echo -e "\e[31m\nNo FIDO2 device detected. Please plug it in (you may need to unlock it as well).\e[0m"
omarchy-echo-failure "\nNo FIDO2 device detected. Please plug it in (you may need to unlock it as well)."
return 1
fi
return 0
@@ -18,16 +18,16 @@ check_fido2_hardware() {
setup_pam_config() {
# Configure sudo
if ! grep -q pam_u2f.so /etc/pam.d/sudo; then
echo "Configuring sudo for FIDO2 authentication..."
omarchy-echo-info "Configuring sudo for FIDO2 authentication..."
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/sudo
fi
# Configure polkit
if [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_u2f.so' /etc/pam.d/polkit-1; then
echo "Configuring polkit for FIDO2 authentication..."
omarchy-echo-info "Configuring polkit for FIDO2 authentication..."
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/polkit-1
elif [[ ! -f /etc/pam.d/polkit-1 ]]; then
echo "Creating polkit configuration with FIDO2 authentication..."
omarchy-echo-info "Creating polkit configuration with FIDO2 authentication..."
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2
auth required pam_unix.so
@@ -39,10 +39,10 @@ EOF
fi
}
echo -e "\e[32mSetting up FIDO2 device for authentication.\n\e[0m"
omarchy-echo-success "Setting up FIDO2 device for authentication.\n"
# Install required packages
echo "Installing required packages..."
omarchy-echo-info "Installing required packages..."
omarchy-pkg-add libfido2 pam-u2f
if ! check_fido2_hardware; then
@@ -52,30 +52,30 @@ fi
# Create the pamu2fcfg file
if [[ ! -f /etc/fido2/fido2 ]]; then
sudo mkdir -p /etc/fido2
echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m"
echo -e "Touch your FIDO2 key when it lights up...\n"
omarchy-echo-success "\nLet's setup your device by confirming on the device now."
omarchy-echo-info "Touch your FIDO2 key when it lights up...\n"
if pamu2fcfg >/tmp/fido2; then
sudo mv /tmp/fido2 /etc/fido2/fido2
echo -e "\e[32mFIDO2 device registered successfully!\e[0m"
omarchy-echo-success "FIDO2 device registered successfully!"
else
echo -e "\e[31m\nFIDO2 registration failed. Please try again.\e[0m"
omarchy-echo-failure "\nFIDO2 registration failed. Please try again."
exit 1
fi
else
echo "FIDO2 device already registered."
omarchy-echo-info "FIDO2 device already registered."
fi
# Configure PAM
setup_pam_config
# Test with sudo
echo -e "\nTesting FIDO2 authentication with sudo..."
echo -e "Touch your FIDO2 key when prompted.\n"
omarchy-echo-info "\nTesting FIDO2 authentication with sudo..."
omarchy-echo-info "Touch your FIDO2 key when prompted.\n"
if sudo echo "FIDO2 authentication test successful"; then
echo -e "\e[32m\nPerfect! FIDO2 authentication is now configured.\e[0m"
echo "You can use your FIDO2 key for sudo and polkit authentication."
omarchy-echo-success "\nPerfect! FIDO2 authentication is now configured."
omarchy-echo-info "You can use your FIDO2 key for sudo and polkit authentication."
else
echo -e "\e[31m\nVerification failed. You may want to check your configuration.\e[0m"
omarchy-echo-failure "\nVerification failed. You may want to check your configuration."
fi
+20 -20
View File
@@ -12,7 +12,7 @@ check_fingerprint_hardware() {
# Exit if no devices found
if [[ -z $devices ]]; then
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
omarchy-echo-failure "\nNo fingerprint sensor detected."
return 1
fi
return 0
@@ -21,16 +21,16 @@ check_fingerprint_hardware() {
setup_pam_config() {
# Configure sudo
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
echo "Configuring sudo for fingerprint authentication..."
omarchy-echo-info "Configuring sudo for fingerprint authentication..."
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
fi
# Configure polkit
if [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_fprintd.so' /etc/pam.d/polkit-1; then
echo "Configuring polkit for fingerprint authentication..."
omarchy-echo-info "Configuring polkit for fingerprint authentication..."
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/polkit-1
elif [[ ! -f /etc/pam.d/polkit-1 ]]; then
echo "Creating polkit configuration with fingerprint authentication..."
omarchy-echo-info "Creating polkit configuration with fingerprint authentication..."
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_fprintd.so
auth required pam_unix.so
@@ -43,22 +43,22 @@ EOF
}
add_hyprlock_fingerprint_icon() {
echo "Adding fingerprint icon to hyprlock placeholder text..."
omarchy-echo-info "Adding fingerprint icon to hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = true/' ~/.config/hypr/hyprlock.conf
}
echo -e "\e[32mSetting up fingerprint scanner for authentication.\n\e[0m"
omarchy-echo-success "Setting up fingerprint scanner for authentication.\n"
# Install required packages
echo "Installing required packages..."
installed_libfprint=$(pacman -Qq libfprint 2>/dev/null || true)
omarchy-echo-info "Installing required packages..."
# libfprint-git provides+conflicts libfprint; pacman -S --noconfirm
# defaults the conflict prompt to N and aborts. Pre-remove the exact
# libfprint package, but not an installed provider like libfprint-git.
if [[ $installed_libfprint == "libfprint" ]]; then
# defaults the conflict prompt to N and aborts. Pre-remove libfprint
# with -Rdd so the install goes silent. -Rdd (not omarchy-pkg-drop's
# -Rns) is required because fprintd requires libfprint; the dep is
# re-satisfied immediately by libfprint-git's provides=libfprint.
if omarchy-pkg-present libfprint; then
sudo pacman -Rdd --noconfirm libfprint
fi
@@ -75,21 +75,21 @@ setup_pam_config
add_hyprlock_fingerprint_icon
# Enroll first fingerprint
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\e[0m"
echo -e "Keep moving the finger around on sensor until the process completes.\n"
omarchy-echo-success "\nLet's setup your right index finger as the first fingerprint."
omarchy-echo-info "Keep moving the finger around on sensor until the process completes.\n"
if sudo fprintd-enroll "$USER"; then
echo -e "\e[32m\nFingerprint enrolled successfully!\e[0m"
omarchy-echo-success "\nFingerprint enrolled successfully!"
# Verify
echo -e "\nNow let's verify that it's working correctly.\n"
omarchy-echo-info "\nNow let's verify that it's working correctly.\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Fingerprint authentication is now configured.\e[0m"
echo "You can use your fingerprint for sudo, polkit, and lock screen (Super + Escape)."
omarchy-echo-success "\nPerfect! Fingerprint authentication is now configured."
omarchy-echo-info "You can use your fingerprint for sudo, polkit, and lock screen (Super + Escape)."
else
echo -e "\e[31m\nVerification failed. You may want to try enrolling again.\e[0m"
omarchy-echo-failure "\nVerification failed. You may want to try enrolling again."
fi
else
echo -e "\e[31m\nEnrollment failed. Please try again.\e[0m"
omarchy-echo-failure "\nEnrollment failed. Please try again."
exit 1
fi
+2 -4
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Ensure the Omarchy and Arch keyring packages are installed and populated
# omarchy:summary=Ensure the Omarchy keyring package is installed and populated
# omarchy:requires-sudo=true
if omarchy-pkg-missing omarchy-keyring || ! sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 &>/dev/null; then
@@ -16,7 +16,5 @@ if omarchy-pkg-missing omarchy-keyring || ! sudo pacman-key --list-keys 40DFB630
fi
# Ensure we have the latest archlinux-keyring, maintainer keys might have changed
# Always reinstall, as the keyring can be updated without a package version bump.
echo -e "\e[32m\nUpdate Arch signing keys\e[0m"
sudo pacman -Sy --noconfirm archlinux-keyring >/dev/null 2> >(grep -vE '^warning: archlinux-keyring-[^ ]+ is up to date -- reinstalling$' >&2)
echo "Keys are correct"
sudo pacman -Sy --noconfirm archlinux-keyring >/dev/null
+12 -24
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Upload logs to logs.omarchy.org
# omarchy:summary=Upload logs to 0x0.st
# omarchy:args=<log-file>
# omarchy:hidden=true
@@ -28,7 +28,7 @@ else
echo "========================================="
echo "SYSTEM INFORMATION"
echo "========================================="
echo "Hostname: $(uname -n)"
echo "Hostname: $(hostname)"
echo "Kernel: $(uname -r)"
echo "Date: $(date)"
echo ""
@@ -41,33 +41,19 @@ fi
case "$LOG_TYPE" in
install)
# In the live ISO before reboot, the target system is mounted at /mnt so the
# omarchy install log lives at /mnt/var/log/omarchy-install.log. On the
# installed system it's at /var/log/omarchy-install.log. Prefer whichever
# exists, with /mnt taking precedence (only present in the ISO context, and
# there it's the right one).
ARCHINSTALL_LOG="/var/log/archinstall/install.log"
if [[ -s /mnt/var/log/omarchy-install.log ]]; then
OMARCHY_LOG="/mnt/var/log/omarchy-install.log"
else
OMARCHY_LOG="/var/log/omarchy-install.log"
fi
OMARCHY_LOG="/var/log/omarchy-install.log"
# Combine system info with logs
cat "$SYSTEM_INFO" >"$TEMP_LOG"
[[ -s $ARCHINSTALL_LOG ]] && cat "$ARCHINSTALL_LOG" >>"$TEMP_LOG"
if [[ -s $OMARCHY_LOG ]]; then
printf '\n========================================\nOMARCHY INSTALL LOG (%s)\n========================================\n\n' "$OMARCHY_LOG" >>"$TEMP_LOG"
cat "$OMARCHY_LOG" >>"$TEMP_LOG"
else
echo "Warning: omarchy install log not found (looked at /mnt/var/log/ and /var/log/)" >&2
fi
cat $ARCHINSTALL_LOG $OMARCHY_LOG >>"$TEMP_LOG" 2>/dev/null
if [[ ! -s $TEMP_LOG ]]; then
echo "Error: No install logs found"
exit 1
fi
echo "Uploading installation log to logs.omarchy.org..."
echo "Uploading installation log to 0x0.st..."
;;
this-boot)
@@ -80,7 +66,7 @@ this-boot)
exit 1
fi
echo "Uploading current boot logs to logs.omarchy.org..."
echo "Uploading current boot logs to 0x0.st..."
;;
last-boot)
@@ -93,7 +79,7 @@ last-boot)
exit 1
fi
echo "Uploading previous boot logs to logs.omarchy.org..."
echo "Uploading previous boot logs to 0x0.st..."
;;
installed|system-info)
@@ -112,7 +98,7 @@ installed|system-info)
exit 1
fi
echo "Uploading system information to logs.omarchy.org..."
echo "Uploading system information to 0x0.st..."
;;
*)
@@ -127,13 +113,15 @@ esac
echo ""
URL=$(curl -sf -F "file=@$TEMP_LOG" https://logs.omarchy.org/)
URL=$(curl -sF "file=@$TEMP_LOG" -Fexpires=24 https://0x0.st)
if (( $? == 0 )) && [[ -n $URL ]]; then
echo "✓ Log uploaded successfully!"
echo "Share this URL:"
echo ""
echo " $URL"
echo ""
echo "This link will expire in 24 hours."
else
echo "Error: Failed to upload log file"
exit 1
+6 -4
View File
@@ -1,7 +1,5 @@
#!/bin/bash
set -e
# Set install mode to online since boot.sh is used for curl installations
export OMARCHY_ONLINE_INSTALL=true
@@ -40,9 +38,13 @@ sudo pacman -Syu --noconfirm --needed git
OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}"
echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git"
echo -e "\e[32mUsing branch: $OMARCHY_REF\e[0m"
rm -rf ~/.local/share/omarchy/
git clone --branch "$OMARCHY_REF" "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
echo -e "\e[32mUsing branch: $OMARCHY_REF\e[0m"
cd ~/.local/share/omarchy
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
cd -
echo -e "\nInstallation starting..."
source ~/.local/share/omarchy/install.sh
+1 -1
View File
@@ -1,4 +1,4 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation
--enable-features=TouchpadOverscrollHistoryNavigation,VaapiVideoDecodeLinuxGL,VaapiVideoEncoder
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
+1 -1
View File
@@ -1 +1 @@
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT,Insert,activewindow"'
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT, Insert,"'
+1 -1
View File
@@ -69,7 +69,7 @@
"custom/weather": {
"exec": "$OMARCHY_PATH/default/waybar/weather.sh",
"return-type": "json",
"interval": 60,
"interval": 600,
"tooltip": false,
"on-click": "notify-send -u low \"$(omarchy-weather-status)\""
},
+3 -3
View File
@@ -1,5 +1,5 @@
# Copy / Paste
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, activewindow
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, activewindow
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, activewindow
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard
+1 -1
View File
@@ -6,7 +6,7 @@ bindd = SUPER, W, Close window, killactive,
bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all
# Control tiling
bindd = SUPER, J, Toggle window split, layoutmsg, togglesplit
bindd = SUPER, J, Toggle window split, togglesplit, # dwindle
bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating,
bindd = SHIFT, F11, Force full screen, fullscreen, 0
+5 -4
View File
@@ -50,8 +50,8 @@ decoration {
group {
col.border_active = $activeBorderColor
col.border_inactive = $inactiveBorderColor
col.border_locked_active = $activeBorderColor
col.border_locked_inactive = $inactiveBorderColor
col.border_locked_active = -1
col.border_locked_inactive = -1
groupbar {
font_size = 12
@@ -108,8 +108,9 @@ animations {
# See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
dwindle {
preserve_split = true
force_split = 2
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
force_split = 2 # Always split on the right
}
scrolling {
+1 -1
View File
@@ -356,7 +356,7 @@ When user requests system changes:
2. **Is it a config edit?** Edit in `~/.config/`, never `~/.local/share/omarchy/`
3. **Is it a theme customization?** Create a NEW custom theme directory
4. **Is it automation?** Use hooks in `~/.config/omarchy/hooks/`
5. **Is it a package install?** Use `omarchy pkg add <pkgs...>` (or `omarchy pkg aur add <pkgs...>` for AUR-only packages)
5. **Is it a package install?** Use `omarchy install package <pkgs...>` (or `omarchy pkg aur add <pkgs...>` for AUR-only packages)
6. **Unsure if command exists?** Run `omarchy commands` (or `omarchy <group> --help` for one group)
### Reminder Requests
@@ -7,7 +7,7 @@
import { existsSync } from "node:fs";
import { join } from "node:path";
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
const home = process.env.HOME ?? "";
const lightModePath = join(home, ".config/omarchy/current/theme/light.mode");
-1
View File
@@ -96,7 +96,6 @@ Rectangle {
color: "transparent"
selectionColor: "transparent"
selectedTextColor: "transparent"
cursorDelegate: Item {}
focus: true
onTextChanged: root.loginFailed = false
+2
View File
@@ -50,6 +50,8 @@ 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/intel/sof-firmware.sh
run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-haptic-touchpad.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-display-backlight.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-display.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh
+2 -1
View File
@@ -2,4 +2,5 @@
chrootable_systemctl_enable bluetooth.service
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
cp "$OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/bluetooth-a2dp-autoconnect.conf" ~/.config/wireplumber/wireplumber.conf.d/
cp $OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/bluetooth-a2dp-autoconnect.conf \
~/.config/wireplumber/wireplumber.conf.d/
@@ -0,0 +1,36 @@
# Fix Dell XPS haptic touchpad.
# The Synaptics haptic touchpad (vendor 06CB) uses the HID Manual Trigger
# protocol, but the kernel's HID haptic subsystem only supports Auto Trigger.
# This sets up a lightweight daemon that monitors touchpad button events and
# sends haptic pulses via HID feature reports on the hidraw device.
# Also disables I2C runtime PM to prevent the haptic engine losing state
# across suspend/resume.
if omarchy-hw-match "XPS" \
&& ls /sys/bus/i2c/devices/i2c-VEN_06CB:00 2>/dev/null; then
# Keep I2C controller power on to prevent haptic engine losing state
sudo tee /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules << 'EOF'
ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:19.0", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="platform", KERNEL=="i2c_designware.0", ATTR{power/control}="on"
EOF
sudo udevadm control --reload-rules
# Haptic feedback daemon as a systemd service
sudo tee /etc/systemd/system/dell-xps-haptic-touchpad.service << SVC
[Unit]
Description=Dell XPS haptic touchpad feedback
After=systemd-udev-settle.service
[Service]
Type=simple
ExecStart=$OMARCHY_PATH/bin/omarchy-haptic-touchpad
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
SVC
sudo systemctl daemon-reload
sudo systemctl enable dell-xps-haptic-touchpad.service
fi
View File
-3
View File
@@ -61,9 +61,6 @@ vulkan-asahi
# Surface laptop support packages
linux-firmware-marvell
# Dell laptop support packages
dell-xps-touchpad-haptics
# T2 MacBook support packages
apple-bcm-firmware
apple-t2-audio-config
-1
View File
@@ -7,5 +7,4 @@ run_logged $OMARCHY_INSTALL/packaging/tuis.sh
run_logged $OMARCHY_INSTALL/packaging/npx.sh
run_logged $OMARCHY_INSTALL/packaging/asus-rog.sh
run_logged $OMARCHY_INSTALL/packaging/framework16.sh
run_logged $OMARCHY_INSTALL/packaging/dell-xps-touchpad-haptics.sh
run_logged $OMARCHY_INSTALL/packaging/surface.sh
@@ -1,3 +0,0 @@
if omarchy-hw-dell-xps-haptic-touchpad; then
omarchy-pkg-add dell-xps-touchpad-haptics
fi
+1
View File
@@ -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"
+2
View File
@@ -1,3 +1,5 @@
set -e
echo "Enable Bluetooth A2DP auto-connect in WirePlumber"
destination=~/.config/wireplumber/wireplumber.conf.d/bluetooth-a2dp-autoconnect.conf
+4
View File
@@ -3,6 +3,10 @@ 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
-14
View File
@@ -1,14 +0,0 @@
echo "Move Dell XPS touchpad haptics into the packaged service"
if omarchy-hw-dell-xps-haptic-touchpad; then
sudo systemctl disable --now dell-xps-haptic-touchpad.service 2>/dev/null || true
sudo rm -f /etc/systemd/system/dell-xps-haptic-touchpad.service
sudo rm -f /etc/systemd/system/multi-user.target.wants/dell-xps-haptic-touchpad.service
sudo rm -rf /etc/systemd/system/dell-xps-haptic-touchpad.service.d
sudo rm -f /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules
sudo rm -f /etc/omarchy-dell-haptic-touchpad.env
sudo systemctl daemon-reload
sudo udevadm control --reload-rules
source "$OMARCHY_PATH/install/packaging/dell-xps-touchpad-haptics.sh"
fi
Regular → Executable
View File
Regular → Executable
View File
+1 -1
View File
@@ -6,7 +6,7 @@ WAYBAR_STYLE="$HOME/.config/waybar/style.css"
if [[ -f $WAYBAR_CONFIG ]]; then
if ! grep -q '"custom/weather"' "$WAYBAR_CONFIG"; then
sed -i 's/"modules-center": \["clock",/"modules-center": ["clock", "custom\/weather",/' "$WAYBAR_CONFIG"
sed -i '/"network": {/i\ "custom/weather": {\n "exec": "$OMARCHY_PATH/default/waybar/weather.sh",\n "return-type": "json",\n "interval": 60,\n "tooltip": false,\n "on-click": "notify-send -u low \\"$(omarchy-weather-status)\\""\n },' "$WAYBAR_CONFIG"
sed -i '/"network": {/i\ "custom/weather": {\n "exec": "$OMARCHY_PATH/default/waybar/weather.sh",\n "return-type": "json",\n "interval": 600,\n "tooltip": false,\n "on-click": "notify-send -u low \\"$(omarchy-weather-status)\\""\n },' "$WAYBAR_CONFIG"
fi
fi
-20
View File
@@ -1,20 +0,0 @@
echo "Remove VAAPI GL video feature flags from Chromium-based browser configs to prevent crashing on some machines"
remove_chromium_vaapi_features() {
local file=$1
[[ -f $file ]] || return 0
sed -i --follow-symlinks \
-e '/^--enable-features=/ s/VaapiVideoDecodeLinuxGL//g' \
-e '/^--enable-features=/ s/VaapiVideoEncoder//g' \
-e '/^--enable-features=/ s/,,*/,/g' \
-e '/^--enable-features=/ s/=,/=/' \
-e '/^--enable-features=/ s/,$//' \
-e '/^--enable-features=$/d' \
"$file"
}
for flags_file in "$HOME"/.config/{chromium,chrome,google-chrome,google-chrome-beta,google-chrome-unstable,brave,brave-beta,brave-nightly,brave-origin-beta,microsoft-edge-stable,microsoft-edge-beta,microsoft-edge-dev,vivaldi-stable,vivaldi-snapshot,opera,opera-beta,opera-developer}-flags.conf; do
remove_chromium_vaapi_features "$flags_file"
done
-4
View File
@@ -1,4 +0,0 @@
echo "Remove Omarchy cliamp desktop stub and icon (replace by package inclusion)"
rm -f ~/.local/share/applications/Cliamp.desktop
rm -f ~/.local/share/applications/icons/Cliamp.png
-11
View File
@@ -1,11 +0,0 @@
echo "Update elephant symbols paste shortcut for Hyprland 0.55"
symbols_config=~/.config/elephant/symbols.toml
if [[ -f $symbols_config ]]; then
sed -i 's/hyprctl dispatch sendshortcut "SHIFT, Insert,"/hyprctl dispatch sendshortcut "SHIFT,Insert,activewindow"/' "$symbols_config"
else
omarchy-refresh-config elephant/symbols.toml
fi
omarchy-restart-walker
Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

+81
View File
@@ -0,0 +1,81 @@
# Theme: Tokyo Day
# Based on Tokyo Night Light / tokyonight-day
# Main bg
theme[main_bg]="#e1e2e7"
# Main text color
theme[main_fg]="#3760bf"
# Title color for boxes
theme[title]="#3760bf"
# Highlight color for keyboard shortcuts
theme[hi_fg]="#2e7de9"
# Background color of selected item in processes box
theme[selected_bg]="#b7c1e3"
# Foreground color of selected item in processes box
theme[selected_fg]="#3760bf"
# Color of inactive/disabled text
theme[inactive_fg]="#848cb5"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="#2e7de9"
# Cpu box outline color
theme[cpu_box]="#a8aecb"
# Memory/disks box outline color
theme[mem_box]="#a8aecb"
# Net up/down box outline color
theme[net_box]="#a8aecb"
# Processes box outline color
theme[proc_box]="#a8aecb"
# Box divider line and small boxes line color
theme[div_line]="#a8aecb"
# Temperature graph colors
theme[temp_start]="#587539"
theme[temp_mid]="#8c6c3e"
theme[temp_end]="#f52a65"
# CPU graph colors
theme[cpu_start]="#587539"
theme[cpu_mid]="#8c6c3e"
theme[cpu_end]="#f52a65"
# Mem/Disk free meter
theme[free_start]="#587539"
theme[free_mid]="#8c6c3e"
theme[free_end]="#f52a65"
# Mem/Disk cached meter
theme[cached_start]="#587539"
theme[cached_mid]="#8c6c3e"
theme[cached_end]="#f52a65"
# Mem/Disk available meter
theme[available_start]="#587539"
theme[available_mid]="#8c6c3e"
theme[available_end]="#f52a65"
# Mem/Disk used meter
theme[used_start]="#587539"
theme[used_mid]="#8c6c3e"
theme[used_end]="#f52a65"
# Download graph colors
theme[download_start]="#587539"
theme[download_mid]="#8c6c3e"
theme[download_end]="#f52a65"
# Upload graph colors
theme[upload_start]="#587539"
theme[upload_mid]="#8c6c3e"
theme[upload_end]="#f52a65"
+1
View File
@@ -0,0 +1 @@
225,226,231
+23
View File
@@ -0,0 +1,23 @@
accent = "#2e7de9"
cursor = "#3760bf"
foreground = "#3760bf"
background = "#e5e6ec"
selection_foreground = "#3760bf"
selection_background = "#b7c1e3"
color0 = "#a1a6c5"
color1 = "#f52a65"
color2 = "#587539"
color3 = "#8c6c3e"
color4 = "#2e7de9"
color5 = "#9854f1"
color6 = "#007197"
color7 = "#6172b0"
color8 = "#8990b3"
color9 = "#f52a65"
color10 = "#587539"
color11 = "#b15c00"
color12 = "#2e7de9"
color13 = "#9854f1"
color14 = "#007197"
color15 = "#3760bf"
+1
View File
@@ -0,0 +1 @@
Yaru-blue
+1
View File
@@ -0,0 +1 @@
2e7de9
View File
+12
View File
@@ -0,0 +1,12 @@
return {
{
"folke/tokyonight.nvim",
priority = 1000,
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "tokyonight-day",
},
},
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

+4
View File
@@ -0,0 +1,4 @@
{
"name": "Tokyo Night Light",
"extension": "enkia.tokyo-night"
}
+1 -1
View File
@@ -1 +1 @@
3.8.2
3.8.0