Compare commits

...

18 Commits

Author SHA1 Message Date
David Heinemeier Hansson
34b22a23f6 Revert "Fix correct suspend-then-hibernate options"
This reverts commit f0d5c35271.
2026-02-04 21:56:34 +01:00
David Heinemeier Hansson
f0d5c35271 Fix correct suspend-then-hibernate options
So we don't try to hibernate when sleeping while on power
2026-02-04 21:54:26 +01:00
David Heinemeier Hansson
63fc96a541 Timeout isn't actually nice in reality 2026-02-04 21:43:41 +01:00
Nathan Nutter
4ba39ba73c Prevent premature exit of omarchy-update-firmware (#4503)
This adds the `--force` option to `fwupdmgr refresh` so that this script will not exit, due to `set -e`, when `fwupdmgr refresh` exits non-zero due to the metadata being up-to-date, i.e.,

```
Metadata is up to date; use --force to refresh again.
```

Another option would be to use `|| true` but that might hide a legitimate error.

This was motivated when I cancelled a run of this script and then later invoked it again, via Update > Firmware, and it would not run `sudo fwupdmgr update` because `fwupdmgr refresh` was exiting non-zero with the above metadata up-to-date "error".
2026-02-04 21:41:14 +01:00
Lewis
1a14938382 Update style path in swayosd config (#4502) 2026-02-04 21:35:44 +01:00
Pierre Olivier Martel
9581cce1af Fix Windows VM timezone and add a confirmation prompt before removing the VM (#4489)
* Add confirmation prompt before removing Windows VM

* Fix Windows VM timezone defaults to UTC
2026-02-04 10:46:15 +01:00
Jamoladdin
cf72c02ea5 Fix Realtek RTL8111/8168 ethernet adapter support for ASUS TUF Gaming laptops (#4497) 2026-02-04 10:18:56 +01:00
Pierre Olivier Martel
4b3e21445b Don't apply power profile source switching if only one profile is available (#4485) 2026-02-03 16:18:24 +01:00
David Heinemeier Hansson
8878478103 Prevent broken AUR updates from interrupted git sessions
Co-authored-by: @scale03
Closes #3995, #3917
2026-02-02 21:16:23 +01:00
David Heinemeier Hansson
74ff475693 Didn't end up being all that useful 2026-02-02 20:45:01 +01:00
David Heinemeier Hansson
22f64160f5 Fix branch setter 2026-02-02 17:04:36 +01:00
David Heinemeier Hansson
ea76f8196c Add Motorcomm YT6801 ethernet adapter driver for Slimbook + Tuxedo ethernet adapters 2026-02-02 17:03:53 +01:00
James Robey
49a2941e2b Sanitize prompt before starship init (#4269)
Add prompt sanitization to clear stale terminal line state after abnormal exits, preventing prompt artifacts.
2026-02-01 17:49:59 +01:00
David Heinemeier Hansson
6a5b64b4bc Add the new wiremix icon if there isn't already a wiremix config 2026-02-01 17:47:57 +01:00
l1ghty
c484b66bcb wiremix: less confusing audio default device character (#4404) 2026-02-01 17:46:07 +01:00
David Heinemeier Hansson
87da28a965 Fix the video PWAs 2026-02-01 17:39:26 +01:00
David Heinemeier Hansson
23b74c6212 Fix opacity issues by using a tag to apply the default opacity that can be removed
Fixes #4168
2026-02-01 16:30:27 +01:00
David Heinemeier Hansson
69dbee75cd Match existing term 2026-01-31 21:59:32 +01:00
26 changed files with 80 additions and 31 deletions

View File

@@ -9,8 +9,8 @@ else
branch="$1"
fi
if [[ "$branch" != "master" && "$branch" != "rc" && "$branch" != "edge" ]]; then
echo "Error: Invalid branch '$branch'. Must be one of: master, rc, edge"
if [[ "$branch" != "master" && "$branch" != "rc" && "$branch" != "dev" ]]; then
echo "Error: Invalid branch '$branch'. Must be one of: master, rc, dev"
exit 1
fi

View File

@@ -1,15 +1,10 @@
#!/bin/bash
# Install the Tailscale mesh VPN service, the tsui TUI management app, and a web app for the Tailscale Admin Console.
# Install the Tailscale mesh VPN service and a web app for the Tailscale Admin Console.
curl -fsSL https://tailscale.com/install.sh | sh
curl -fsSL https://neuralink.com/tsui/install.sh | bash
echo -e "\nStarting Tailscale..."
sudo tailscale up --accept-routes
echo -e "\nAdd tsui to sudoers..."
echo "$USER ALL=(ALL) NOPASSWD: $(which tsui)" | sudo tee /etc/sudoers.d/tsui
omarchy-tui-install "Tailscale" "sudo tsui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
omarchy-webapp-install "Tailscale Admin Console" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
omarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png

View File

@@ -506,9 +506,9 @@ show_update_menu() {
}
show_update_channel_menu() {
case $(menu "Update channel" "🟢 Stable\n🟡 Release Candidate\n🟠 Edge\n🔴 Dev") in
case $(menu "Update channel" "🟢 Stable\n🟡 RC\n🟠 Edge\n🔴 Dev") in
*Stable*) present_terminal "omarchy-channel-set stable" ;;
*Candidate*) present_terminal "omarchy-channel-set rc" ;;
*RC*) present_terminal "omarchy-channel-set rc" ;;
*Edge*) present_terminal "omarchy-channel-set edge" ;;
*Dev*) present_terminal "omarchy-channel-set dev" ;;
*) show_update_menu ;;

View File

@@ -1,4 +1,4 @@
#!/bin/bash
echo
gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -t 7 -n 1 -s'
gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -n 1 -s'

View File

@@ -4,7 +4,7 @@
if pacman -Qem >/dev/null; then
if omarchy-pkg-aur-accessible; then
echo -e "\e[32m\nUpdate AUR packages\e[0m"
yay -Sua --noconfirm --ignore gcc14,gcc14-libs
yay -Sua --noconfirm --cleanafter --ignore gcc14,gcc14-libs
echo
else
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"

View File

@@ -7,5 +7,5 @@ if omarchy-cmd-missing fwupdmgr; then
omarchy-pkg-add fwupd
fi
fwupdmgr refresh
fwupdmgr refresh --force
sudo fwupdmgr update

View File

@@ -185,6 +185,8 @@ services:
DISK_SIZE: "$SELECTED_DISK"
USERNAME: "$USERNAME"
PASSWORD: "$PASSWORD"
TZ: "$(timedatectl show -p Timezone --value 2>/dev/null || echo UTC)"
ARGUMENTS: "-rtc base=localtime,clock=host,driftfix=slew"
devices:
- /dev/kvm
- /dev/net/tun
@@ -240,6 +242,11 @@ EOF
}
remove_windows() {
if ! gum confirm --default=false "Remove Windows VM and delete all associated data?"; then
echo "Removal cancelled by user"
exit 1
fi
echo "Removing Windows VM..."
docker-compose -f "$COMPOSE_FILE" down 2>/dev/null || true

View File

@@ -1,4 +1,4 @@
[server]
show_percentage = true
max_volume = 100
style = "./style.css"
style = "~/.config/swayosd/style.css"

View File

@@ -0,0 +1,5 @@
# overwrites default wiremix configuration
# defaults: https://github.com/tsowell/wiremix/blob/main/wiremix.toml
[char_sets.default]
default_device = "⮞"

View File

@@ -3,6 +3,9 @@ if command -v mise &> /dev/null; then
fi
if command -v starship &> /dev/null; then
# clear stale readline state before rendering prompt (prevents artifacts in prompt after abnormal exits like SIGQUIT)
__sanitize_prompt() { printf '\r\033[K'; }
PROMPT_COMMAND="__sanitize_prompt${PROMPT_COMMAND:+;$PROMPT_COMMAND}"
eval "$(starship init bash)"
fi

View File

@@ -1,13 +1,16 @@
# Browser types
windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)
windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf)
windowrule = tag -default-opacity, match:tag chromium-based-browser
windowrule = tag -default-opacity, match:tag firefox-based-browser
# Video apps: remove chromium browser tag so they don't get opacity applied
windowrule = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
windowrule = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
# Force chromium-based browsers into a tile to deal with --app bug
windowrule = tile on, match:tag chromium-based-browser
# Only a subtle opacity change, but not for video sites
windowrule = opacity 1 0.97, match:tag chromium-based-browser
windowrule = opacity 1 0.97, match:tag firefox-based-browser
# Some video sites should never have opacity applied to them
windowrule = opacity 1.0 1.0, match:initial_title ((?i)(?:[a-z0-9-]+\.)*youtube\.com_/|app\.zoom\.us_/wc/home)
windowrule = opacity 1.0 0.97, match:tag chromium-based-browser
windowrule = opacity 1.0 0.97, match:tag firefox-based-browser

View File

@@ -1,5 +1,6 @@
# Picture-in-picture overlays
windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture)
windowrule = tag -default-opacity, match:tag pip
windowrule = float on, match:tag pip
windowrule = pin on, match:tag pip
windowrule = size 600 338, match:tag pip

View File

@@ -1 +1,2 @@
windowrule = tag -default-opacity, match:class qemu
windowrule = opacity 1 1, match:class qemu

View File

@@ -1,3 +1,4 @@
windowrule = fullscreen on, match:class com.libretro.RetroArch
windowrule = tag -default-opacity, match:class com.libretro.RetroArch
windowrule = opacity 1 1, match:class com.libretro.RetroArch
windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch

View File

@@ -1,6 +1,7 @@
# Float Steam
windowrule = float on, match:class steam
windowrule = center on, match:class steam, match:title Steam
windowrule = tag -default-opacity, match:class steam.*
windowrule = opacity 1 1, match:class steam.*
windowrule = size 1100 700, match:class steam, match:title Steam
windowrule = size 460 800, match:class steam, match:title Friends List

View File

@@ -12,6 +12,7 @@ windowrule = fullscreen on, match:class org.omarchy.screensaver
windowrule = float on, match:class org.omarchy.screensaver
# No transparency on media windows
windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
# Popped window rounding

View File

@@ -1,2 +1,4 @@
# Define terminal tag to style them uniformly
windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty)
windowrule = tag -default-opacity, match:tag terminal
windowrule = opacity 0.97 0.9, match:tag terminal

View File

@@ -2,11 +2,14 @@
# Hyprland 0.53+ syntax
windowrule = suppress_event maximize, match:class .*
# Just dash of opacity by default
windowrule = opacity 0.97 0.9, match:class .*
# Tag all windows for default opacity (apps can override with -default-opacity tag)
windowrule = tag +default-opacity, match:class .*
# Fix some dragging issues with XWayland
windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0
# App-specific tweaks
# App-specific tweaks (may remove default-opacity tag)
source = ~/.local/share/omarchy/default/hypr/apps.conf
# Apply default opacity after apps have had a chance to opt out
windowrule = opacity 0.97 0.9, match:tag default-opacity

View File

@@ -37,3 +37,4 @@ run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-surface-keyboard.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-audio-mixer.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-asus-rog-mic.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-realtek-r8168.sh

View File

@@ -0,0 +1,11 @@
# Install r8168 driver for Realtek RTL8111/8168/8211/8411 ethernet adapters
# Common in ASUS TUF Gaming laptops and other modern systems
if lspci | grep -i "RTL8111\|RTL8168\|RTL8211\|RTL8411"; then
omarchy-pkg-add linux-headers r8168-lts
# Blacklist problematic r8169 driver
echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
# Regenerate initramfs to ensure r8168 loads on boot
sudo mkinitcpio -P
fi

View File

@@ -0,0 +1,4 @@
# Install drivers for Motorcomm YT6801 ethernet adapter used by the Slimbook Executive
if lspci | grep -i "YT6801\|Motorcomm.*Ethernet"; then
omarchy-pkg-add linux-headers yt6801-dkms
fi

View File

@@ -1,19 +1,15 @@
if omarchy-battery-present; then
mapfile -t profiles < <(omarchy-powerprofiles-list)
if [[ ${#profiles[@]} -gt 0 ]]; then
if [[ ${#profiles[@]} -gt 1 ]]; then
# Default AC profile:
# 3 profiles → performance
# 2 profiles → balanced
# 1 profile → profiles[0]
ac_profile="${profiles[2]:-${profiles[1]:-${profiles[0]}}}"
ac_profile="${profiles[2]:-${profiles[1]}}"
# Default Battery profile:
# 3 profiles → balanced
# 2 profiles → balanced
# 1 profile → profiles[0]
battery_profile="${profiles[1]:-${profiles[0]}}"
# Default Battery profile (balanced)
battery_profile="${profiles[1]}"
cat <<EOF | sudo tee "/etc/udev/rules.d/99-power-profile.rules"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/bin/powerprofilesctl set $battery_profile"

View File

@@ -147,3 +147,4 @@ xournalpp
yaru-icon-theme
yay
zoxide
r8168-lts

View File

@@ -44,6 +44,7 @@ snapper
webp-pixbuf-loader
wget
yay-debug
yt6801-dkms
zram-generator
# T2 MacBook support packages

6
migrations/1769964367.sh Normal file
View File

@@ -0,0 +1,6 @@
echo "Improve audio controls icon for default selection"
if [[ ! -f ~/.config/wiremix/wiremix.toml ]]; then
mkdir -p ~/.config/wiremix
cp -f $OMARCHY_PATH/config/wiremix/wiremix.toml ~/.config/wiremix/
fi

6
migrations/1770186458.sh Normal file
View File

@@ -0,0 +1,6 @@
echo "Fix Realtek RTL8111/8168/8211/8411 ethernet adapter support for ASUS TUF and other laptops"
# Run the hardware detection script for existing installations
if [ -f "$OMARCHY_INSTALL/config/hardware/fix-realtek-r8168.sh" ]; then
run_logged $OMARCHY_INSTALL/config/hardware/fix-realtek-r8168.sh
fi