mirror of
https://github.com/basecamp/omarchy.git
synced 2025-07-28 04:39:25 +00:00
Compare commits
60 Commits
44d2dc21ab
...
v1.4.1
Author | SHA1 | Date | |
---|---|---|---|
4b13434cda | |||
3dfa4c3216 | |||
b95eae0e10 | |||
7098260e69 | |||
419951a892 | |||
df19472350 | |||
781a7888cb | |||
4ea0e65950 | |||
63d9710e62 | |||
2a9ebc8ff9 | |||
5e4167a0db | |||
149feae288 | |||
f464c6b8d0 | |||
e7e5ff96eb | |||
10109bbadc | |||
89bda8468e | |||
4d22b627be | |||
17c01629ec | |||
3557ce8d3b | |||
e60c37b194 | |||
d305935382 | |||
018603be6d | |||
c312cd8b06 | |||
f9403977b8 | |||
2d1e6d0e69 | |||
49b191b2af | |||
6de7be7e18 | |||
c99f4c9c02 | |||
ab3904df9a | |||
73d0197b3c | |||
b8d64f1737 | |||
ecf42918fb | |||
11406ecc79 | |||
a649779d81 | |||
f114e5c441 | |||
5daa30a629 | |||
e5e981507f | |||
b0d4c2dae4 | |||
e674744714 | |||
ba69caaa6d | |||
b3338c84b6 | |||
bfc8d73300 | |||
45d6aac29c | |||
7aae9015a5 | |||
3edc8bb470 | |||
005e284d59 | |||
46e8fa46ed | |||
5a48f120ec | |||
5501d94896 | |||
1dd64a814a | |||
ad6c1f0df1 | |||
72e863f6be | |||
8758b5d4dc | |||
5672d04cb3 | |||
d4910dd855 | |||
244758fabb | |||
46010f8e15 | |||
5739fa741c | |||
9157a85da2 | |||
691a881b6f |
2
applications/hidden/uuctl.desktop
Normal file
2
applications/hidden/uuctl.desktop
Normal file
@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
10
applications/omarchy.desktop
Normal file
10
applications/omarchy.desktop
Normal file
@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Omarchy
|
||||
Comment=Omarchy TUI
|
||||
Exec=alacritty --class=Omarchy --title=Omarchy -e bash -c '$HOME/.local/share/omarchy/bin/omarchy'
|
||||
Icon=Arch
|
||||
Terminal=false
|
||||
Categories=System;Utility;
|
||||
StartupNotify=false
|
137
bin/omarchy
Executable file
137
bin/omarchy
Executable file
@ -0,0 +1,137 @@
|
||||
#!/bin/bash
|
||||
|
||||
OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null)
|
||||
PATH="$PATH:$HOME/.local/share/omarchy/bin"
|
||||
|
||||
show_ascii_art() {
|
||||
clear
|
||||
cat <<'EOF'
|
||||
▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
|
||||
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
|
||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███
|
||||
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███
|
||||
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███
|
||||
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
|
||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
||||
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
|
||||
███ ███
|
||||
EOF
|
||||
echo " $OMARCHY_VERSION"
|
||||
}
|
||||
|
||||
main_menu() {
|
||||
show_ascii_art
|
||||
|
||||
local options=("Theme" "Setup" "Update" "Manual" "Exit")
|
||||
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "") || exit 0
|
||||
case "$choice" in
|
||||
Theme) theme_menu ;;
|
||||
Update) update_menu ;;
|
||||
Setup) setup_menu ;;
|
||||
Manual) open_manual ;;
|
||||
Exit) clear && exit 0 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
update_menu() {
|
||||
show_ascii_art
|
||||
local menu=("Omarchy" "Waybar" "Wofi" "Plymouth" "Desktop apps" "Back")
|
||||
local commands=(
|
||||
"omarchy-update"
|
||||
"omarchy-refresh-waybar"
|
||||
"omarchy-refresh-wofi"
|
||||
"omarchy-refresh-plymouth"
|
||||
"omarchy-refresh-applications"
|
||||
"main_menu"
|
||||
)
|
||||
local choice
|
||||
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Update") || main_menu
|
||||
for i in "${!menu[@]}"; do
|
||||
if [[ "${menu[$i]}" == "$choice" ]]; then
|
||||
if [[ "$choice" == "Back" ]]; then
|
||||
main_menu
|
||||
else
|
||||
eval "${commands[$i]}"
|
||||
ack_command
|
||||
main_menu
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
theme_menu() {
|
||||
show_ascii_art
|
||||
local menu=("Install" "Remove" "Back")
|
||||
local commands=(
|
||||
"install_theme_prompt"
|
||||
"remove_theme_prompt"
|
||||
"main_menu"
|
||||
)
|
||||
local choice
|
||||
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Theme") || main_menu
|
||||
for i in "${!menu[@]}"; do
|
||||
if [[ "${menu[$i]}" == "$choice" ]]; then
|
||||
if [[ "$choice" == "Back" ]]; then
|
||||
main_menu
|
||||
else
|
||||
eval "${commands[$i]}"
|
||||
ack_command
|
||||
main_menu
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
install_theme_prompt() {
|
||||
local url
|
||||
url=$(gum input --placeholder="Git repo URL for theme" --header="")
|
||||
if [[ -n "$url" ]]; then
|
||||
omarchy-theme-install "$url"
|
||||
fi
|
||||
theme_menu
|
||||
}
|
||||
|
||||
remove_theme_prompt() {
|
||||
local theme
|
||||
theme=$(gum input --placeholder="Theme name" --header="")
|
||||
if [[ -n "$theme" ]]; then
|
||||
omarchy-theme-remove "$theme"
|
||||
fi
|
||||
theme_menu
|
||||
}
|
||||
|
||||
setup_menu() {
|
||||
show_ascii_art
|
||||
local menu=("Fingerprint sensor" "Back")
|
||||
local commands=(
|
||||
"omarchy-fingerprint-setup"
|
||||
"main_menu"
|
||||
)
|
||||
local choice
|
||||
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Setup") || main_menu
|
||||
for i in "${!menu[@]}"; do
|
||||
if [[ "${menu[$i]}" == "$choice" ]]; then
|
||||
if [[ "$choice" == "Back" ]]; then
|
||||
main_menu
|
||||
else
|
||||
eval "${commands[$i]}"
|
||||
ack_command
|
||||
main_menu
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
open_manual() {
|
||||
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
|
||||
clear
|
||||
}
|
||||
|
||||
ack_command() {
|
||||
gum spin --spinner "globe" --title "Done!" -- sleep 1
|
||||
}
|
||||
|
||||
main_menu
|
@ -2,7 +2,7 @@
|
||||
|
||||
yay -S --noconfirm --needed fprintd usbutils
|
||||
|
||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics'; then
|
||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then
|
||||
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
|
||||
else
|
||||
# Add fingerprint authentication as an option for sudo
|
||||
|
@ -10,7 +10,7 @@ show_power_menu() {
|
||||
\u200D Relaunch
|
||||
\u2060 Restart
|
||||
\u2063 Shutdown"
|
||||
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.local/share/omarchy/default/wofi/select.css)
|
||||
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.config/wofi/select.css)
|
||||
|
||||
case "$selection" in
|
||||
*Lock*) hyprlock ;;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if gum confirm "Refresh Plymouth theme? This will replace your current startup screen with Omarchy defaults."; then
|
||||
if [[ "$1" == "-y" ]] || gum confirm "Refresh Plymouth theme? This will replace your current startup screen with Omarchy defaults."; then
|
||||
sudo cp ~/.local/share/omarchy/default/plymouth/* /usr/share/plymouth/themes/omarchy/
|
||||
sudo plymouth-set-default-theme -R omarchy
|
||||
fi
|
||||
|
@ -1,11 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if gum confirm "Refresh Waybar config? This will replace your current Waybar settings with Omarchy defaults."; then
|
||||
if gum confirm "Refresh Waybar config? This will replace your current settings with Omarchy defaults."; then
|
||||
# Overwrite local waybar settings with the latest in Omarchy
|
||||
cp -f ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
|
||||
|
||||
# Restart waybar
|
||||
pkill waybar &>/dev/null
|
||||
setsid waybar &>/dev/null &
|
||||
pkill -SIGUSR2 waybar
|
||||
fi
|
||||
|
8
bin/omarchy-refresh-wofi
Executable file
8
bin/omarchy-refresh-wofi
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$1" == "-y" ]] || gum confirm "Refresh Wofi config? This will replace your current settings with Omarchy defaults."; then
|
||||
# Overwrite local waybar settings with the latest in Omarchy
|
||||
cp -f ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/wofi/select.css ~/.config/wofi/ 2>/dev/null
|
||||
fi
|
@ -56,4 +56,4 @@ grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
|
||||
printf "%-35s → %s\n", key_combo, action;
|
||||
}
|
||||
}' |
|
||||
flock --nonblock /tmp/.wofi.lock -c "wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical --style=\"$HOME/.local/share/omarchy/default/wofi/search.css\""
|
||||
wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical
|
||||
|
36
bin/omarchy-theme-install
Executable file
36
bin/omarchy-theme-install
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy-theme-install: Install a new theme from a git repo for Omarchy
|
||||
# Usage: omarchy-theme-install <git-repo-url>
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: omarchy-theme-install <git-repo-url>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_URL="$1"
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
THEME_BACKGROUND_PATH="$THEME_PATH/backgrounds"
|
||||
BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds"
|
||||
BACKGROUNDS_THEME_PATH="$BACKGROUNDS_PATH/$THEME_NAME"
|
||||
|
||||
# Remove existing theme if present
|
||||
if [ -d "$THEME_PATH" ]; then
|
||||
rm -rf "$THEME_PATH"
|
||||
fi
|
||||
|
||||
# Clone the repo directly to ~/.config/omarchy/themes
|
||||
if ! git clone "$REPO_URL" "$THEME_PATH"; then
|
||||
echo "Error: Failed to clone theme repo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Link backgrounds if present
|
||||
if [ -d $THEME_BACKGROUND_PATH ]; then
|
||||
ln -snf $THEME_BACKGROUND_PATH $BACKGROUNDS_THEME_PATH
|
||||
fi
|
||||
|
||||
# Apply the new theme with omarchy-theme-set
|
||||
omarchy-theme-set $THEME_NAME
|
37
bin/omarchy-theme-menu
Executable file
37
bin/omarchy-theme-menu
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes/"
|
||||
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
||||
CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")")
|
||||
|
||||
# Build themes list with pretty display names
|
||||
mapfile -t themes < <(
|
||||
find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | while read -r path; do
|
||||
filename=$(basename "$path")
|
||||
display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')
|
||||
|
||||
if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then
|
||||
echo "<i>$display_name</i>"
|
||||
else
|
||||
echo "$display_name"
|
||||
fi
|
||||
done | sort
|
||||
)
|
||||
|
||||
# Show Wofi menu (with markup support)
|
||||
selection=$(printf '%s\n' "${themes[@]}" | wofi \
|
||||
--show dmenu \
|
||||
--allow-markup \
|
||||
--width 150 \
|
||||
--height 300 \
|
||||
-O alphabetical \
|
||||
--style ~/.config/wofi/select.css 2>/dev/null)
|
||||
|
||||
# Remove any Pango markup before converting back to filename
|
||||
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')
|
||||
|
||||
# Convert to lowercase and dash-separated: "Tokyo Night" -> "tokyo-night"
|
||||
selected_theme=$(echo "$clean_selection" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
|
||||
|
||||
# Apply the selected theme
|
||||
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" "$selected_theme"
|
@ -30,22 +30,5 @@ NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
||||
NEW_THEME=${THEMES[$NEXT_INDEX]}
|
||||
NEW_THEME_NAME=$(basename "$NEW_THEME")
|
||||
|
||||
# Set current theme
|
||||
ln -nsf "$HOME/.config/omarchy/backgrounds/$NEW_THEME_NAME" "$HOME/.config/omarchy/current/backgrounds"
|
||||
ln -nsf "$NEW_THEME" "$HOME/.config/omarchy/current/theme"
|
||||
|
||||
# Touch alacritty config to pickup the changed theme
|
||||
touch "$HOME/.config/alacritty/alacritty.toml"
|
||||
|
||||
# Restart for new theme
|
||||
pkill -SIGUSR2 waybar
|
||||
makoctl reload
|
||||
hyprctl reload
|
||||
|
||||
# Set new background
|
||||
ln -nsf $(find "$HOME/.config/omarchy/current/backgrounds/" -type f | head -n 1) "$HOME/.config/omarchy/current/background"
|
||||
pkill -x swaybg
|
||||
setsid swaybg -i "$HOME/.config/omarchy/current/background" -m fill &
|
||||
|
||||
# Notify of the new theme
|
||||
omarchy-theme-set $NEW_THEME_NAME
|
||||
notify-send "Theme changed to $NEW_THEME_NAME" -t 2000
|
||||
|
33
bin/omarchy-theme-remove
Executable file
33
bin/omarchy-theme-remove
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy-theme-remove: Remove a theme from Omarchy by name
|
||||
# Usage: omarchy-theme-remove <theme-name>
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: omarchy-theme-remove <theme-name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
THEME_NAME="$1"
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||
BACKGROUND_DIR="$HOME/.config/omarchy/backgrounds"
|
||||
CURRENT_DIR="$HOME/.config/omarchy/current"
|
||||
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
BACKGROUND_PATH="$BACKGROUND_DIR/$THEME_NAME"
|
||||
|
||||
# Check if theme exists before attempting removal
|
||||
if [ ! -d "$THEME_PATH" ]; then
|
||||
echo "Error: Theme '$THEME_NAME' not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use readlink -f to resolve symlinks and get the absolute path
|
||||
if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then
|
||||
"$HOME/.local/share/omarchy/bin/omarchy-theme-next"
|
||||
fi
|
||||
|
||||
# Now remove the theme directory and backgrounds for THEME_NAME
|
||||
rm -rf "$THEME_PATH"
|
||||
rm -rf "$BACKGROUND_PATH"
|
||||
|
42
bin/omarchy-theme-set
Executable file
42
bin/omarchy-theme-set
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy-theme-set: Set a theme, specified by its name.
|
||||
# Usage: omarchy-theme-set <theme-name>
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: omarchy-theme-set <theme-name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes/"
|
||||
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
||||
|
||||
THEME_NAME="$1"
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
BACKGROUND_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME"
|
||||
|
||||
# Check if the theme entered exists
|
||||
if [[ ! -d "$THEME_PATH" ]]; then
|
||||
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Update theme symlinks
|
||||
ln -nsf "$BACKGROUND_PATH" "$HOME/.config/omarchy/current/backgrounds"
|
||||
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
|
||||
|
||||
# Trigger alacritty config reload
|
||||
touch "$HOME/.config/alacritty/alacritty.toml"
|
||||
|
||||
# Restart components to apply new theme
|
||||
pkill -SIGUSR2 waybar
|
||||
makoctl reload
|
||||
hyprctl reload
|
||||
|
||||
# Set new background
|
||||
first_bg=$(find "$HOME/.config/omarchy/current/backgrounds/" -type f | head -n 1)
|
||||
if [[ -n "$first_bg" ]]; then
|
||||
ln -nsf "$first_bg" "$HOME/.config/omarchy/current/background"
|
||||
pkill -x swaybg
|
||||
setsid swaybg -i "$HOME/.config/omarchy/current/background" -m fill >/dev/null &
|
||||
fi
|
58
config/fontconfig/fonts.conf
Normal file
58
config/fontconfig/fonts.conf
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<match target="pattern">
|
||||
<test name="family" qual="any">
|
||||
<string>sans-serif</string>
|
||||
</test>
|
||||
<edit name="family" mode="assign" binding="strong">
|
||||
<string>Liberation Sans</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<match target="pattern">
|
||||
<test name="family" qual="any">
|
||||
<string>serif</string>
|
||||
</test>
|
||||
<edit name="family" mode="assign" binding="strong">
|
||||
<string>Liberation Serif</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<match target="pattern">
|
||||
<test name="family" qual="any">
|
||||
<string>monospace</string>
|
||||
</test>
|
||||
<edit name="family" mode="assign" binding="strong">
|
||||
<string>CaskaydiaMono Nerd Font</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<alias>
|
||||
<family>system-ui</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>ui-monospace</family>
|
||||
<default>
|
||||
<family>monospace</family>
|
||||
</default>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>-apple-system</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>BlinkMacSystemFont</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
</fontconfig>
|
@ -1,5 +1,9 @@
|
||||
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# You're encouraged to tailor your Hyprland config in this file by adding or overwriting any settings.
|
||||
# But don't change anything that lives in ~/.local/share/omarchy, if you can help it!
|
||||
# Those files are overwritten when Omarchy is updated.
|
||||
|
||||
# Change your personal monitor setup in here to keep the main config portable
|
||||
source = ~/.config/hypr/monitors.conf
|
||||
|
||||
|
@ -12,11 +12,11 @@
|
||||
],
|
||||
"modules-right": [
|
||||
"group/tray-expander",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"cpu",
|
||||
"battery"
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"cpu",
|
||||
"battery"
|
||||
],
|
||||
"hyprland/workspaces": {
|
||||
"on-click": "activate",
|
||||
@ -124,66 +124,4 @@
|
||||
"icon-size": 12,
|
||||
"spacing": 12
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "",
|
||||
"on-click": "alacritty -e btop"
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%A %H:%M}",
|
||||
"format-alt": "{:%d %B W%V %Y}",
|
||||
"tooltip": false
|
||||
},
|
||||
"network": {
|
||||
"format-icons": ["","","","",""],
|
||||
"format" : "{icon}",
|
||||
"format-wifi" : "{icon}",
|
||||
"format-ethernet" : "",
|
||||
"format-disconnected" : "",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"interval": 3,
|
||||
"nospacing": 1,
|
||||
"on-click": "alacritty --class=Impala -e impala"
|
||||
},
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-discharging": "{icon}",
|
||||
"format-charging": "{icon}",
|
||||
"format-plugged": "",
|
||||
"format-icons": {
|
||||
"charging": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
],
|
||||
"default": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
]
|
||||
},
|
||||
"format-full": "",
|
||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
||||
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
|
||||
"interval": 5,
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
}
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"tooltip-format": "Devices connected: {num_connections}",
|
||||
"on-click": "GTK_THEME=Adwaita-dark blueberry"
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "",
|
||||
"format-muted": "",
|
||||
"scroll-step": 5,
|
||||
"on-click": "GTK_THEME=Adwaita-dark pavucontrol",
|
||||
"tooltip-format": "Playing at {volume}%",
|
||||
"on-click-right": "pamixer -t",
|
||||
"ignored-sinks": ["Easy Effects Sink"]
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,9 @@
|
||||
@import "../omarchy/current/theme/waybar.css";
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
color: @foreground;
|
||||
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
@ -6,17 +11,20 @@
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin-left: 7px;
|
||||
.modules-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
all: initial;
|
||||
padding: 2px 6px;
|
||||
margin-right: 3px;
|
||||
padding: 0 6px;
|
||||
margin: 0 1.5px;
|
||||
}
|
||||
|
||||
#custom-dropbox,
|
||||
#tray,
|
||||
#cpu,
|
||||
#battery,
|
||||
@ -26,7 +34,7 @@
|
||||
#clock,
|
||||
#custom-power-menu {
|
||||
min-width: 12px;
|
||||
margin-right: 13px;
|
||||
margin: 0 7.5px;
|
||||
}
|
||||
|
||||
#custom-expand-icon {
|
||||
@ -36,9 +44,3 @@
|
||||
tooltip {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
@import "../omarchy/current/theme/waybar.css";
|
||||
|
@ -1,65 +0,0 @@
|
||||
@define-color selected-text #7dcfff;
|
||||
@define-color text #cfc9c2;
|
||||
@define-color base #1a1b26;
|
||||
|
||||
* {
|
||||
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
window {
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: @base;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#input {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
margin-top: -200px;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#entry {
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
outline: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#entry:selected #text {
|
||||
color: @selected-text;
|
||||
}
|
||||
|
||||
#entry image {
|
||||
-gtk-icon-transform: scale(0.7);
|
||||
}
|
@ -1,8 +1,11 @@
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
||||
@import ".local/share/omarchy/default/wofi/search.css";
|
||||
/* Use by power menu, theme selector, and other menus without visible search bar */
|
||||
|
||||
@import ".config/wofi/style.css";
|
||||
|
||||
#input {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
margin-top: -200px;
|
||||
}
|
||||
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
@ -1,4 +1,4 @@
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
||||
/* Colors are defined by theme file and can be referenced via @base, @text, @selected-text, and @border */
|
||||
|
||||
* {
|
||||
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
||||
@ -70,3 +70,5 @@ window {
|
||||
#entry image {
|
||||
-gtk-icon-transform: scale(0.7);
|
||||
}
|
||||
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
7
default/gpg/dirmngr.conf
Normal file
7
default/gpg/dirmngr.conf
Normal file
@ -0,0 +1,7 @@
|
||||
keyserver hkps://keyserver.ubuntu.com
|
||||
keyserver hkps://pgp.surfnet.nl
|
||||
keyserver hkps://keys.mailvelope.com
|
||||
keyserver hkps://keyring.debian.org
|
||||
keyserver hkps://pgp.mit.edu
|
||||
|
||||
connect-quick-timeout 4
|
@ -1,11 +1,11 @@
|
||||
# Launching
|
||||
bind = SUPER, space, exec, pkill wofi || wofi --show drun --sort-order=alphabetical --style="$HOME/.local/share/omarchy/default/wofi/search.css"
|
||||
bind = SUPER, K, exec, ~/.local/share/omarchy/bin/omarchy-show-keybindings
|
||||
bind = SUPER, space, exec, pkill wofi || wofi --show drun -O alphabetical
|
||||
bind = SUPER, K, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-show-keybindings
|
||||
|
||||
# Aesthetics
|
||||
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
|
||||
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next
|
||||
bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-next
|
||||
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next
|
||||
bind = SUPER SHIFT CTRL, SPACE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-theme-menu
|
||||
|
||||
# Notifications
|
||||
bind = SUPER, comma, exec, makoctl dismiss
|
||||
@ -13,15 +13,15 @@ bind = SUPER SHIFT, comma, exec, makoctl dismiss --all
|
||||
bind = SUPER CTRL, comma, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
|
||||
|
||||
# Power menu controls lock, suspend, relaunch, restart, shutdown
|
||||
bind = SUPER, ESCAPE, exec, ~/.local/share/omarchy/bin/omarchy-power-menu
|
||||
bind = SUPER, ESCAPE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-power-menu
|
||||
|
||||
# Toggle idling
|
||||
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
|
||||
|
||||
# Control Apple Display brightness
|
||||
bind = CTRL, F1, exec, ~/.local/share/omarchy/bin/apple-display-brightness -5000
|
||||
bind = CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +5000
|
||||
bind = SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +60000
|
||||
bind = CTRL, F1, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness -5000
|
||||
bind = CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness +5000
|
||||
bind = SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness +60000
|
||||
|
||||
# Screenshots
|
||||
bind = , PRINT, exec, hyprshot -m region
|
||||
|
@ -15,9 +15,6 @@ xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
# Make .desktop files available for wofi
|
||||
env = XDG_DATA_DIRS,/usr/share:/usr/local/share:~/.local/share
|
||||
|
||||
# Use XCompose file
|
||||
env = XCOMPOSEFILE,~/.XCompose
|
||||
|
||||
|
@ -4,14 +4,15 @@ windowrule = suppressevent maximize, class:.*
|
||||
# Force chromium into a tile to deal with --app bug
|
||||
windowrule = tile, class:^(Chromium)$
|
||||
|
||||
# Float and center sound, bluetooth, and wifi settings, as well as nautilus previews
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
|
||||
# Float and center settings and previews
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
|
||||
windowrule = size 800 600, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
|
||||
windowrule = center, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
|
||||
windowrule = size 645 350, class:Omarchy
|
||||
windowrule = center, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
|
||||
|
||||
# Float and center file pickers
|
||||
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|Save)
|
||||
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|Save)
|
||||
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
||||
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
||||
|
||||
# Float Steam, fullscreen RetroArch
|
||||
windowrule = float, class:^(steam)$
|
||||
|
@ -8,4 +8,7 @@ if ! command -v yay &>/dev/null; then
|
||||
cd -
|
||||
rm -rf yay-bin
|
||||
cd ~
|
||||
|
||||
# Add fun and color to the pacman installer
|
||||
sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf
|
||||
fi
|
||||
|
@ -4,6 +4,13 @@ cp -R ~/.local/share/omarchy/config/* ~/.config/
|
||||
# Ensure application directory exists for update-desktop-database
|
||||
mkdir -p ~/.local/share/applications
|
||||
|
||||
# Setup GPG configuration with multiple keyservers for better reliability
|
||||
sudo mkdir -p /etc/gnupg
|
||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||
sudo chmod 644 /etc/gnupg/dirmngr.conf
|
||||
sudo gpgconf --kill dirmngr || true
|
||||
sudo gpgconf --launch dirmngr || true
|
||||
|
||||
# Use default bashrc from Omarchy
|
||||
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
|
||||
|
||||
|
@ -4,3 +4,13 @@ if ! command -v iwd &>/dev/null; then
|
||||
yay -S --noconfirm --needed iwd
|
||||
sudo systemctl enable --now iwd.service
|
||||
fi
|
||||
|
||||
# Fix systemd-networkd-wait-online timeout for multiple interfaces
|
||||
# Wait for any interface to be online rather than all interfaces
|
||||
# https://wiki.archlinux.org/title/Systemd-networkd#Multiple_interfaces_that_are_not_connected_all_the_time
|
||||
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
|
||||
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
|
||||
EOF
|
||||
|
@ -18,7 +18,6 @@ ln -snf ~/.config/omarchy/backgrounds/tokyo-night ~/.config/omarchy/current/back
|
||||
ln -snf ~/.config/omarchy/current/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background
|
||||
|
||||
# Set specific app links for current theme
|
||||
ln -snf ~/.config/omarchy/current/theme/wofi.css ~/.config/wofi/style.css
|
||||
ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
|
||||
mkdir -p ~/.config/btop/themes
|
||||
ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current.theme
|
||||
|
@ -1,11 +1,15 @@
|
||||
if [ -z "$OMARCHY_BARE" ]; then
|
||||
yay -S --noconfirm --needed \
|
||||
gnome-calculator \
|
||||
signal-desktop spotify dropbox-cli zoom \
|
||||
obsidian-bin typora libreoffice obs-studio kdenlive \
|
||||
1password-beta 1password-cli gnome-keyring \
|
||||
gnome-calculator gnome-keyring signal-desktop \
|
||||
obsidian-bin libreoffice obs-studio kdenlive \
|
||||
pinta xournalpp localsend-bin
|
||||
|
||||
yay -S --noconfirm --needed typora ||
|
||||
echo -e "\e[31mFailed to install Typora. Continuing without!\e[0m"
|
||||
|
||||
yay -S --noconfirm --needed spotify dropbox-cli 1password-beta 1password-cli ||
|
||||
echo -e "\e[31mFailed to install Spotify, Dropbox, and/or 1password because of a keyserver problem. Continuing without!\e[0m"
|
||||
fi
|
||||
|
||||
# Copy over Omarchy applications
|
||||
source ~/.local/share/omarchy/bin/omarchy-sync-applications || true
|
||||
source ~/.local/share/omarchy/bin/omarchy-refresh-applications || true
|
||||
|
@ -1,4 +0,0 @@
|
||||
echo "Fix XCompose use in Typora"
|
||||
if command -v typora &>/dev/null; then
|
||||
cp ~/.local/share/omarchy/applications/xtras/typora.desktop ~/.local/share/applications/
|
||||
fi
|
5
migrations/1752251002.sh
Normal file
5
migrations/1752251002.sh
Normal file
@ -0,0 +1,5 @@
|
||||
echo "Migrate to the modular, variable-based implementation of waybar style.css"
|
||||
if [ -L ~/.config/waybar/style.css ]; then
|
||||
rm ~/.config/waybar/style.css
|
||||
cp ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/style.css
|
||||
fi
|
@ -13,6 +13,6 @@ if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then
|
||||
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
|
||||
fi
|
||||
|
||||
omarchy-refresh-plymouth
|
||||
omarchy-refresh-plymouth -y
|
||||
|
||||
source ~/.local/share/omarchy/install/login.sh
|
||||
|
7
migrations/1752365998.sh
Normal file
7
migrations/1752365998.sh
Normal file
@ -0,0 +1,7 @@
|
||||
echo "Add override to only require one network interface to be online"
|
||||
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
|
||||
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
|
||||
EOF
|
7
migrations/1752535084.sh
Normal file
7
migrations/1752535084.sh
Normal file
@ -0,0 +1,7 @@
|
||||
echo "Set a default fontconfig"
|
||||
|
||||
if [[ ! -f "$HOME/.config/fontconfig/fonts.conf" ]]; then
|
||||
mkdir -p ~/.config/fontconfig
|
||||
cp ~/.local/share/omarchy/config/fontconfig/fonts.conf ~/.config/fontconfig/
|
||||
fc-cache -fv
|
||||
fi
|
6
migrations/1752535341.sh
Normal file
6
migrations/1752535341.sh
Normal file
@ -0,0 +1,6 @@
|
||||
echo "Setting up GPG configuration with multiple keyservers for better reliability"
|
||||
sudo mkdir -p /etc/gnupg
|
||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||
sudo chmod 644 /etc/gnupg/dirmngr.conf
|
||||
sudo gpgconf --kill dirmngr || true
|
||||
sudo gpgconf --launch dirmngr || true
|
3
migrations/1752543801.sh
Normal file
3
migrations/1752543801.sh
Normal file
@ -0,0 +1,3 @@
|
||||
echo "Add color and animation to pacman installs"
|
||||
grep -q '^Color' /etc/pacman.conf || sudo sed -i '/^\[options\]/a Color' /etc/pacman.conf
|
||||
grep -q '^ILoveCandy' /etc/pacman.conf || sudo sed -i '/^\[options\]/a ILoveCandy' /etc/pacman.conf
|
6
migrations/1752551006.sh
Normal file
6
migrations/1752551006.sh
Normal file
@ -0,0 +1,6 @@
|
||||
echo "Make wofi stylesheet user editable"
|
||||
if [[ -L "$HOME/.config/wofi/style.css" ]]; then
|
||||
rm "$HOME/.config/wofi/style.css"
|
||||
cp ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/
|
||||
cp ~/.local/share/omarchy/config/wofi/search.css ~/.config/wofi/
|
||||
fi
|
2
migrations/1752625896.sh
Normal file
2
migrations/1752625896.sh
Normal file
@ -0,0 +1,2 @@
|
||||
echo "Copy desktop file for new Omarchy TUI"
|
||||
cp ~/.local/share/omarchy/applications/omarchy.desktop ~/.local/share/applications/
|
2
migrations/1752673060.sh
Normal file
2
migrations/1752673060.sh
Normal file
@ -0,0 +1,2 @@
|
||||
echo "Make all wofi stylesheets user editable"
|
||||
omarchy-refresh-wofi -y
|
2
migrations/1752676402.sh
Normal file
2
migrations/1752676402.sh
Normal file
@ -0,0 +1,2 @@
|
||||
echo "Use latest Omarchy Waybar configuration"
|
||||
omarchy-refresh-waybar
|
@ -1,5 +1,2 @@
|
||||
* {
|
||||
color: #cdd6f4;
|
||||
background-color: #181824;
|
||||
}
|
||||
|
||||
@define-color foreground #cdd6f4;
|
||||
@define-color background #181824;
|
||||
|
@ -1,5 +1,2 @@
|
||||
* {
|
||||
color: #d3c6aa;
|
||||
background-color: #2d353b;
|
||||
}
|
||||
|
||||
@define-color foreground #d3c6aa;
|
||||
@define-color background #2d353b;
|
||||
|
@ -1,5 +1,2 @@
|
||||
* {
|
||||
color: #d4be98;
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
@define-color foreground #d4be98;
|
||||
@define-color background #282828;
|
||||
|
@ -1,5 +1,2 @@
|
||||
* {
|
||||
color: #dcd7ba;
|
||||
background-color: #1f1f28;
|
||||
}
|
||||
|
||||
@define-color foreground #dcd7ba;
|
||||
@define-color background #1f1f28;
|
||||
|
@ -1,4 +1,2 @@
|
||||
* {
|
||||
color: #8a8a8d;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
@define-color foreground #8a8a8d;
|
||||
@define-color background #1e1e1e;
|
||||
|
@ -1,5 +1,2 @@
|
||||
* {
|
||||
color: #d8dee9;
|
||||
background-color: #2e3440;
|
||||
}
|
||||
|
||||
@define-color foreground #d8dee9;
|
||||
@define-color background #2e3440;
|
||||
|
@ -1,5 +1,2 @@
|
||||
* {
|
||||
color: #cdd6f4;
|
||||
background-color: #1a1b26;
|
||||
}
|
||||
|
||||
@define-color foreground #cdd6f4;
|
||||
@define-color background #1a1b26;
|
||||
|
Reference in New Issue
Block a user