Compare commits

...
Author SHA1 Message Date
David Heinemeier HanssonandGitHub acc1e2f757 Merge pull request #1064 from basecamp/dev
Omarchy 2.0
2025-08-25 16:10:15 +02:00
David Heinemeier Hansson 51f877ca1f Left over styles from status indicators 2025-08-25 15:26:35 +02:00
David Heinemeier Hansson 8167633824 Left-over from the status indicators removal 2025-08-25 15:25:29 +02:00
David Heinemeier Hansson 922acfd706 Claude is only on AUR 2025-08-25 14:11:43 +02:00
David Heinemeier Hansson b136cc5653 Remember remember 2025-08-25 14:04:49 +02:00
David Heinemeier Hansson 52d1ac215d No sudo with yay 2025-08-25 14:03:31 +02:00
David Heinemeier Hansson 838d0ca27b Dropbox elements are on AUR
Let's fix that
2025-08-25 14:02:53 +02:00
David Heinemeier Hansson f4ea58bdd0 Doesn't work with yay 2025-08-25 13:55:01 +02:00
David Heinemeier Hansson 6c656766f8 Fix migration too 2025-08-25 13:53:33 +02:00
David Heinemeier Hansson 06e3cb4e71 Also allow yay updates without sudo 2025-08-25 13:52:53 +02:00
David Heinemeier Hansson 1506b98fe1 Fix path 2025-08-25 13:51:24 +02:00
David Heinemeier Hansson 2a8155cc68 Revert "Tweak colors"
This reverts commit 0eda27a3bc.
2025-08-25 13:49:33 +02:00
David Heinemeier Hansson 35b7f44c7e Revert "Another color tweak"
This reverts commit 4b70705252.
2025-08-25 13:49:07 +02:00
David Heinemeier Hansson 4b70705252 Another color tweak 2025-08-25 13:46:41 +02:00
David Heinemeier Hansson 0eda27a3bc Tweak colors 2025-08-25 13:44:27 +02:00
David Heinemeier Hansson c48f370924 Allow multi select to remove webapps
Closes #1052
2025-08-25 13:33:39 +02:00
David Heinemeier HanssonandGitHub dcfbd7a2e5 Suddenly the status indicators were busted on new installations (#1061)
Don't have time to debug this now, so will have to wait until next
release
2025-08-25 13:28:54 +02:00
14 changed files with 20 additions and 160 deletions
+3 -2
View File
@@ -1,7 +1,8 @@
#!/bin/bash
echo "Installing all dependencies..."
sudo pacman -S --noconfirm --needed \
# FIXME: Should not use AUR dependencies when we can avoid it
echo "Installing all dependencies [from AUR]..."
yay -S --noconfirm --needed \
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
echo "Starting Dropbox..."
+2 -2
View File
@@ -219,8 +219,8 @@ show_install_editor_menu() {
}
show_install_ai_menu() {
case $(menu "Install" "󱚤 Claude Code\n󱚤 Gemini\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in
*Claude*) install "Claude Code" "claude-code" ;;
case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in
*Claude*) aur_install "Claude Code" "claude-code" ;;
*Gemini*) install "Gemini" "gemini-cli" ;;
*Studio*) aur_install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" "ollama" ;;
-1
View File
@@ -14,7 +14,6 @@ fzf_args=(
--color 'pointer:green,marker:green'
)
yay -Sy
pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
if [[ -n "$pkg_names" ]]; then
-63
View File
@@ -1,63 +0,0 @@
#!/bin/bash
# Status indicator daemon for waybar
# Calls individual status scripts and caches results
STATE_DIR=~/.local/state/omarchy/status
DAEMON_PID_FILE="$STATE_DIR/daemon.pid"
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
mkdir -p "$STATE_DIR"
# Update all status files by calling individual scripts
update_all_status_files() {
"$SCRIPT_DIR/omarchy-status-dnd" >"$STATE_DIR/dnd"
"$SCRIPT_DIR/omarchy-status-nightlight" >"$STATE_DIR/nightlight"
"$SCRIPT_DIR/omarchy-status-idle" >"$STATE_DIR/idle"
}
# Generate hash for change detection
get_status_hash() {
echo "$($(makoctl mode 2>/dev/null | grep -c 'do-not-disturb')$(hyprctl hyprsunset temperature 2>/dev/null)"
}
# Start background monitoring daemon
start_daemon() {
if [ -f "$DAEMON_PID_FILE" ] && kill -0 $(cat "$DAEMON_PID_FILE") 2>/dev/null; then
return 0
fi
{
last_hash=""
while true; do
current_hash=$(get_status_hash)
if [ "$current_hash" != "$last_hash" ]; then
update_all_status_files
last_hash="$current_hash"
fi
sleep 0.5
done
} &
echo $! >"$DAEMON_PID_FILE"
}
# Main execution
MODULE="$1"
if [ -z "$MODULE" ]; then
echo "Usage: $0 [dnd|nightlight|idle]"
exit 1
fi
start_daemon
# Return cached status for requested module
if [ -f "$STATE_DIR/$MODULE" ]; then
cat "$STATE_DIR/$MODULE"
else
update_all_status_files
cat "$STATE_DIR/$MODULE" 2>/dev/null || echo '{"text": "", "tooltip": "", "class": "hidden"}'
fi
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
# DND status indicator
if makoctl mode 2>/dev/null | grep -q 'do-not-disturb'; then
echo '{"text": "󰂛", "tooltip": "Notifications silenced", "class": "status-dnd"}'
else
echo '{"text": "", "tooltip": "", "class": "hidden"}'
fi
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
# Idle lock status indicator
if command -v hypridle >/dev/null 2>&1 && ! pgrep -x hypridle >/dev/null 2>&1; then
echo '{"text": "󱫖", "tooltip": "Idle lock disabled", "class": "status-idle"}'
else
echo '{"text": "", "tooltip": "", "class": "hidden"}'
fi
-14
View File
@@ -1,14 +0,0 @@
#!/bin/bash
# Nightlight status indicator
if pgrep -x hyprsunset >/dev/null 2>&1; then
temp=$(hyprctl hyprsunset temperature 2>/dev/null | grep -oE '[0-9]+')
if [ -n "$temp" ] && [ "$temp" -lt 6000 ]; then
echo '{"text": "󰔎", "tooltip": "Night light active", "class": "status-nightlight"}'
else
echo '{"text": "", "tooltip": "", "class": "hidden"}'
fi
else
echo '{"text": "", "tooltip": "", "class": "hidden"}'
fi
+10 -11
View File
@@ -3,7 +3,7 @@
ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -ne 1 ]; then
if [ "$#" -eq 0 ]; then
# Find all web apps
while IFS= read -r -d '' file; do
if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then
@@ -14,23 +14,22 @@ if [ "$#" -ne 1 ]; then
if ((${#WEB_APPS[@]})); then
IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}"))
unset IFS
APP_NAME=$(gum choose --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}")
APP_NAMES=$(gum choose --no-limit --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}")
else
echo "No web apps to remove."
exit 1
fi
else
APP_NAME="$1"
APP_NAMES="$*"
fi
if [[ -z "$APP_NAME" ]]; then
echo "You must provide web app name."
if [[ -z "$APP_NAMES" ]]; then
echo "You must provide web app names."
exit 1
fi
rm "$DESKTOP_DIR/$APP_NAME.desktop"
rm "$ICON_DIR/$APP_NAME.png"
if [ "$#" -ne 1 ]; then
echo -e "Removed $APP_NAME\n"
fi
for APP_NAME in $APP_NAMES; do
rm -f "$DESKTOP_DIR/$APP_NAME.desktop"
rm -f "$ICON_DIR/$APP_NAME.png"
echo "Removed $APP_NAME"
done
+1 -27
View File
@@ -5,7 +5,7 @@
"spacing": 0,
"height": 26,
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
"modules-center": ["group/status-cluster", "clock", "custom/update"],
"modules-center": ["clock", "custom/update"],
"modules-right": [
"group/tray-expander",
"bluetooth",
@@ -119,32 +119,6 @@
},
"modules": ["custom/expand-icon", "tray"]
},
"group/status-cluster": {
"orientation": "inherit",
"modules": [
"custom/status-dnd",
"custom/status-nightlight",
"custom/status-idle"
]
},
"custom/status-dnd": {
"exec": "omarchy-status-daemon dnd",
"return-type": "json",
"interval": 1,
"on-click": "makoctl mode -t do-not-disturb"
},
"custom/status-nightlight": {
"exec": "omarchy-status-daemon nightlight",
"return-type": "json",
"interval": 1,
"on-click": "omarchy-toggle-nightlight"
},
"custom/status-idle": {
"exec": "omarchy-status-daemon idle",
"return-type": "json",
"interval": 1,
"on-click": "omarchy-toggle-idle"
},
"custom/expand-icon": {
"format": " ",
"tooltip": false
-18
View File
@@ -58,24 +58,6 @@ tooltip {
margin-left: 8.75px;
}
#group-status-cluster {
margin-right: 8.75px;
}
#custom-status-dnd,
#custom-status-nightlight,
#custom-status-idle {
min-width: 12px;
margin: 0 2px;
font-size: 10px;
}
#custom-status-dnd.status-dnd,
#custom-status-nightlight.status-nightlight,
#custom-status-idle.status-idle {
opacity: 1;
}
.hidden {
opacity: 0;
}
+1 -1
View File
@@ -4,7 +4,7 @@ windowrule = center, tag:floating-window
windowrule = size 800 600, tag:floating-window
windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float)
windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text), title:^(Open.*Files?|Save.*Files?|All Files|Save)
windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors), title:^(Open.*Files?|Save.*Files?|Save.*As|All Files|Save)
# Fullscreen screensaver
windowrule = fullscreen, class:Screensaver
+1 -1
View File
@@ -40,6 +40,6 @@ fi
# Allow repository index updates without sudo
sudo tee /etc/sudoers.d/repositories >/dev/null <<EOF
$USER ALL=(ALL) NOPASSWD: /usr/binpacman -Sy
$USER ALL=(ALL) NOPASSWD: /usr/bin/pacman -Sy
EOF
sudo chmod 440 /etc/sudoers.d/repositories
+1 -1
View File
@@ -1,4 +1,4 @@
echo "Add status indicators for nightlight, dnd, idle lock, and new icon to Waybar"
echo "Add new Omarchy Menu icon to Waybar"
mkdir -p ~/.local/share/fonts
cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/
+1 -1
View File
@@ -1,6 +1,6 @@
echo "Allow pacman -Sy without sudo to easier installs"
sudo tee /etc/sudoers.d/repositories >/dev/null <<EOF
$USER ALL=(ALL) NOPASSWD: /usr/binpacman -Sy
$USER ALL=(ALL) NOPASSWD: /usr/bin/pacman -Sy
EOF
sudo chmod 440 /etc/sudoers.d/repositories