mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
38 Commits
remove-sta
...
v2.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3affd55a90 | ||
|
|
a7322fe7ae | ||
|
|
5e3d8e5f22 | ||
|
|
128e090165 | ||
|
|
13f2cd9641 | ||
|
|
334aa214ba | ||
|
|
27c4b74e90 | ||
|
|
44c9be7958 | ||
|
|
23c9229fdd | ||
|
|
f22755df4f | ||
|
|
ee9ae96414 | ||
|
|
d5a340f6b7 | ||
|
|
0e88962e4f | ||
|
|
7e2d266a9a | ||
|
|
7bf65360f9 | ||
|
|
1c486a037b | ||
|
|
ea21d0a7b7 | ||
|
|
51830d5ce1 | ||
|
|
f0a12463a6 | ||
|
|
a8965dd271 | ||
|
|
c2fee1b7fa | ||
|
|
acc1e2f757 | ||
|
|
51f877ca1f | ||
|
|
8167633824 | ||
|
|
922acfd706 | ||
|
|
b136cc5653 | ||
|
|
52d1ac215d | ||
|
|
838d0ca27b | ||
|
|
f4ea58bdd0 | ||
|
|
6c656766f8 | ||
|
|
06e3cb4e71 | ||
|
|
1506b98fe1 | ||
|
|
2a8155cc68 | ||
|
|
35b7f44c7e | ||
|
|
4b70705252 | ||
|
|
0eda27a3bc | ||
|
|
c48f370924 | ||
|
|
dcfbd7a2e5 |
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | sort -u
|
fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting|omarchy' | sort -u
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "Installing all dependencies..."
|
# FIXME: Should not use AUR dependencies when we can avoid it
|
||||||
sudo pacman -S --noconfirm --needed \
|
echo "Installing all dependencies [from AUR]..."
|
||||||
|
yay -S --noconfirm --needed \
|
||||||
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
|
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
|
||||||
|
|
||||||
echo "Starting Dropbox..."
|
echo "Starting Dropbox..."
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@
|
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi*) ;;
|
|||||||
*) browser="chromium.desktop" ;;
|
*) browser="chromium.desktop" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"
|
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"
|
||||||
|
|||||||
@@ -219,8 +219,8 @@ show_install_editor_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_install_ai_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
|
case $(menu "Install" " Claude Code [AUR]\n Gemini\n LM Studio [AUR]\n Ollama\n Crush [AUR]\n opencode [AUR]") in
|
||||||
*Claude*) install "Claude Code" "claude-code" ;;
|
*Claude*) aur_install "Claude Code" "claude-code" ;;
|
||||||
*Gemini*) install "Gemini" "gemini-cli" ;;
|
*Gemini*) install "Gemini" "gemini-cli" ;;
|
||||||
*Studio*) aur_install "LM Studio" "lmstudio" ;;
|
*Studio*) aur_install "LM Studio" "lmstudio" ;;
|
||||||
*Ollama*) install "Ollama" "ollama" ;;
|
*Ollama*) install "Ollama" "ollama" ;;
|
||||||
@@ -315,7 +315,7 @@ show_remove_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_update_menu() {
|
show_update_menu() {
|
||||||
case $(menu "Update" " Omarchy\n Config\n Themes\n Process\n Timezone") in
|
case $(menu "Update" " Omarchy\n Config\n Themes\n Process\n Timezone") in
|
||||||
*Omarchy*) present_terminal omarchy-update ;;
|
*Omarchy*) present_terminal omarchy-update ;;
|
||||||
*Config*) show_update_config_menu ;;
|
*Config*) show_update_config_menu ;;
|
||||||
*Themes*) present_terminal omarchy-theme-update ;;
|
*Themes*) present_terminal omarchy-theme-update ;;
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ fzf_args=(
|
|||||||
--color 'pointer:green,marker:green'
|
--color 'pointer:green,marker:green'
|
||||||
)
|
)
|
||||||
|
|
||||||
yay -Sy
|
|
||||||
pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
|
pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
|
||||||
|
|
||||||
if [[ -n "$pkg_names" ]]; then
|
if [[ -n "$pkg_names" ]]; then
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
ICON_DIR="$HOME/.local/share/applications/icons"
|
ICON_DIR="$HOME/.local/share/applications/icons"
|
||||||
DESKTOP_DIR="$HOME/.local/share/applications/"
|
DESKTOP_DIR="$HOME/.local/share/applications/"
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
# Find all web apps
|
# Find all TUIs
|
||||||
while IFS= read -r -d '' file; do
|
while IFS= read -r -d '' file; do
|
||||||
if grep -q '^Exec=.*alacritty.*-e' "$file"; then
|
if grep -q '^Exec=.*alacritty.*-e' "$file"; then
|
||||||
TUIS+=("$(basename "${file%.desktop}")")
|
TUIS+=("$(basename "${file%.desktop}")")
|
||||||
@@ -14,23 +14,28 @@ if [ "$#" -ne 1 ]; then
|
|||||||
if ((${#TUIS[@]})); then
|
if ((${#TUIS[@]})); then
|
||||||
IFS=$'\n' SORTED_TUIS=($(sort <<<"${TUIS[*]}"))
|
IFS=$'\n' SORTED_TUIS=($(sort <<<"${TUIS[*]}"))
|
||||||
unset IFS
|
unset IFS
|
||||||
APP_NAME=$(gum choose --header "Select TUI to remove..." "${SORTED_TUIS[@]}")
|
APP_NAMES_STRING=$(gum choose --no-limit --header "Select TUI to remove..." --selected-prefix="✗ " "${SORTED_TUIS[@]}")
|
||||||
|
# Convert newline-separated string to array
|
||||||
|
APP_NAMES=()
|
||||||
|
while IFS= read -r line; do
|
||||||
|
[[ -n "$line" ]] && APP_NAMES+=("$line")
|
||||||
|
done <<< "$APP_NAMES_STRING"
|
||||||
else
|
else
|
||||||
echo "No TUIs to remove."
|
echo "No TUIs to remove."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
APP_NAME="$1"
|
# Use array to preserve spaces in app names
|
||||||
|
APP_NAMES=("$@")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$APP_NAME" ]]; then
|
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then
|
||||||
echo "You must provide TUI name."
|
echo "You must provide TUI names."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm "$DESKTOP_DIR/$APP_NAME.desktop"
|
for APP_NAME in "${APP_NAMES[@]}"; do
|
||||||
rm "$ICON_DIR/$APP_NAME.png"
|
rm -f "$DESKTOP_DIR/$APP_NAME.desktop"
|
||||||
|
rm -f "$ICON_DIR/$APP_NAME.png"
|
||||||
if [ "$#" -ne 1 ]; then
|
echo "Removed $APP_NAME"
|
||||||
echo -e "Removed $APP_NAME\n"
|
done
|
||||||
fi
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
ICON_DIR="$HOME/.local/share/applications/icons"
|
ICON_DIR="$HOME/.local/share/applications/icons"
|
||||||
DESKTOP_DIR="$HOME/.local/share/applications/"
|
DESKTOP_DIR="$HOME/.local/share/applications/"
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
# Find all web apps
|
# Find all web apps
|
||||||
while IFS= read -r -d '' file; do
|
while IFS= read -r -d '' file; do
|
||||||
if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then
|
if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then
|
||||||
@@ -14,23 +14,28 @@ if [ "$#" -ne 1 ]; then
|
|||||||
if ((${#WEB_APPS[@]})); then
|
if ((${#WEB_APPS[@]})); then
|
||||||
IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}"))
|
IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}"))
|
||||||
unset IFS
|
unset IFS
|
||||||
APP_NAME=$(gum choose --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}")
|
APP_NAMES_STRING=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " "${SORTED_WEB_APPS[@]}")
|
||||||
|
# Convert newline-separated string to array
|
||||||
|
APP_NAMES=()
|
||||||
|
while IFS= read -r line; do
|
||||||
|
[[ -n "$line" ]] && APP_NAMES+=("$line")
|
||||||
|
done <<< "$APP_NAMES_STRING"
|
||||||
else
|
else
|
||||||
echo "No web apps to remove."
|
echo "No web apps to remove."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
APP_NAME="$1"
|
# Use array to preserve spaces in app names
|
||||||
|
APP_NAMES=("$@")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$APP_NAME" ]]; then
|
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then
|
||||||
echo "You must provide web app name."
|
echo "You must provide web app names."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm "$DESKTOP_DIR/$APP_NAME.desktop"
|
for APP_NAME in "${APP_NAMES[@]}"; do
|
||||||
rm "$ICON_DIR/$APP_NAME.png"
|
rm -f "$DESKTOP_DIR/$APP_NAME.desktop"
|
||||||
|
rm -f "$ICON_DIR/$APP_NAME.png"
|
||||||
if [ "$#" -ne 1 ]; then
|
echo "Removed $APP_NAME"
|
||||||
echo -e "Removed $APP_NAME\n"
|
done
|
||||||
fi
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"spacing": 0,
|
"spacing": 0,
|
||||||
"height": 26,
|
"height": 26,
|
||||||
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
|
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
|
||||||
"modules-center": ["group/status-cluster", "clock", "custom/update"],
|
"modules-center": ["clock", "custom/update"],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
"group/tray-expander",
|
"group/tray-expander",
|
||||||
"bluetooth",
|
"bluetooth",
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
"interval": 3,
|
"interval": 3,
|
||||||
"nospacing": 1,
|
"spacing": 1,
|
||||||
"on-click": "alacritty --class=Impala -e impala"
|
"on-click": "alacritty --class=Impala -e impala"
|
||||||
},
|
},
|
||||||
"battery": {
|
"battery": {
|
||||||
|
|||||||
@@ -58,24 +58,6 @@ tooltip {
|
|||||||
margin-left: 8.75px;
|
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 {
|
.hidden {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# App-specific tweaks
|
# App-specific tweaks
|
||||||
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
|
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
|
||||||
source = ~/.local/share/omarchy/default/hypr/apps/chromium.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/hyprshot.conf
|
||||||
source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf
|
source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf
|
||||||
source = ~/.local/share/omarchy/default/hypr/apps/steam.conf
|
source = ~/.local/share/omarchy/default/hypr/apps/steam.conf
|
||||||
|
|||||||
13
default/hypr/apps/browser.conf
Normal file
13
default/hypr/apps/browser.conf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Browser types
|
||||||
|
windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable)
|
||||||
|
windowrule = tag +firefox-based-browser, class:(Firefox|zen|librewolf)
|
||||||
|
|
||||||
|
# Force chromium-based browsers into a tile to deal with --app bug
|
||||||
|
windowrule = tile, tag:chromium-based-browser
|
||||||
|
|
||||||
|
# Only a subtle opacity change, but not for video sites
|
||||||
|
windowrule = opacity 1 0.97, tag:chromium-based-browser
|
||||||
|
windowrule = opacity 1 0.97, tag:firefox-based-browser
|
||||||
|
|
||||||
|
# Some video sites should never have opacity applied to them
|
||||||
|
windowrule = opacity 1.0 1.0, initialTitle:(youtube\.com_/|app\.zoom\.us_/wc/home)
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Force chromium into a tile to deal with --app bug
|
|
||||||
windowrule = tile, class:^(Chromium)$
|
|
||||||
|
|
||||||
# Only slight opacity when unfocused
|
|
||||||
windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable|Brave-browser|brave-browser)$
|
|
||||||
windowrule = opacity 1 1, initialTitle:(youtube.com_/|app.zoom.us_/wc/home)
|
|
||||||
@@ -39,8 +39,8 @@ bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9
|
|||||||
bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10
|
bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10
|
||||||
|
|
||||||
# Tab between workspaces
|
# Tab between workspaces
|
||||||
bind = SUPER, TAB, workspace, e+1
|
bindd = SUPER, TAB, Next workspace, workspace, e+1
|
||||||
bind = SUPER SHIFT, TAB, workspace, e-1
|
bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1
|
||||||
|
|
||||||
# Swap active window with the one next to it with SUPER + SHIFT + arrow keys
|
# Swap active window with the one next to it with SUPER + SHIFT + arrow keys
|
||||||
bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l
|
bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Menus
|
# Menus
|
||||||
bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…"
|
bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…"
|
||||||
bindd = SUPER CTRL, E, Show clipboard, exec, walker -m Emojis
|
bindd = SUPER CTRL, E, Emoji picker, exec, walker -m Emojis
|
||||||
bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
|
bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
|
||||||
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system
|
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system
|
||||||
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
|
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
|
||||||
|
|||||||
@@ -85,7 +85,8 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
|
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
|
||||||
if [ -n "$EFI" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy; then
|
if [ -n "$EFI" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy &&
|
||||||
|
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends"; then
|
||||||
sudo efibootmgr --create \
|
sudo efibootmgr --create \
|
||||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||||
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
||||||
|
|||||||
@@ -40,6 +40,6 @@ fi
|
|||||||
|
|
||||||
# Allow repository index updates without sudo
|
# Allow repository index updates without sudo
|
||||||
sudo tee /etc/sudoers.d/repositories >/dev/null <<EOF
|
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
|
EOF
|
||||||
sudo chmod 440 /etc/sudoers.d/repositories
|
sudo chmod 440 /etc/sudoers.d/repositories
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Allow pacman -Sy without sudo to easier installs"
|
echo "Allow pacman -Sy without sudo to easier installs"
|
||||||
|
|
||||||
sudo tee /etc/sudoers.d/repositories >/dev/null <<EOF
|
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
|
EOF
|
||||||
sudo chmod 440 /etc/sudoers.d/repositories
|
sudo chmod 440 /etc/sudoers.d/repositories
|
||||||
|
|||||||
5
migrations/1756203383.sh
Normal file
5
migrations/1756203383.sh
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
echo "Remove old About, Activity, Audio Settings apps that are in Omarchy Menu or hotkey"
|
||||||
|
|
||||||
|
rm -f ~/.local/share/applications/About.desktop
|
||||||
|
rm -f ~/.local/share/applications/Activity.desktop
|
||||||
|
rm -f ~/.local/share/applications/wiremix.desktop
|
||||||
Reference in New Issue
Block a user