mirror of
https://github.com/basecamp/omarchy.git
synced 2025-07-28 12:49:25 +00:00
Compare commits
2 Commits
v1.4.0
...
3226fcf3ad
Author | SHA1 | Date | |
---|---|---|---|
3226fcf3ad | |||
563575124f |
@ -1,2 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Hidden=true
|
|
@ -1,10 +0,0 @@
|
|||||||
[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
|
|
@ -1,10 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Typora
|
|
||||||
GenericName=Markdown Editor
|
|
||||||
Exec=typora --enable-wayland-ime %U
|
|
||||||
Icon=typora
|
|
||||||
Type=Application
|
|
||||||
StartupNotify=true
|
|
||||||
Categories=Office;WordProcessor;
|
|
||||||
MimeType=text/markdown;text/x-markdown;
|
|
||||||
|
|
137
bin/omarchy
137
bin/omarchy
@ -1,137 +0,0 @@
|
|||||||
#!/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() {
|
|
||||||
xdg-open "https://manuals.omamix.org/2/the-omarchy-manual"
|
|
||||||
}
|
|
||||||
|
|
||||||
ack_command() {
|
|
||||||
gum spin --spinner "globe" --title "Done!" -- sleep 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main_menu
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
yay -S --noconfirm --needed fprintd usbutils
|
yay -S --noconfirm --needed fprintd usbutils
|
||||||
|
|
||||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then
|
if ! lsusb | grep -iq fingerprint; then
|
||||||
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
|
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
|
||||||
else
|
else
|
||||||
# Add fingerprint authentication as an option for sudo
|
# Add fingerprint authentication as an option for sudo
|
||||||
|
@ -15,7 +15,7 @@ show_power_menu() {
|
|||||||
case "$selection" in
|
case "$selection" in
|
||||||
*Lock*) hyprlock ;;
|
*Lock*) hyprlock ;;
|
||||||
*Suspend*) systemctl suspend ;;
|
*Suspend*) systemctl suspend ;;
|
||||||
*Relaunch*) uwsm stop ;;
|
*Relaunch*) hyprctl dispatch exit ;;
|
||||||
*Restart*) systemctl reboot ;;
|
*Restart*) systemctl reboot ;;
|
||||||
*Shutdown*) systemctl poweroff ;;
|
*Shutdown*) systemctl poweroff ;;
|
||||||
esac
|
esac
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if gum confirm "Refresh Waybar config? This will replace your current settings with Omarchy defaults."; then
|
if gum confirm "Refresh Waybar config? This will replace your current Waybar settings with Omarchy defaults."; then
|
||||||
# Overwrite local waybar settings with the latest in Omarchy
|
# 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/config ~/.config/waybar/ 2>/dev/null
|
||||||
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
|
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if 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
|
|
||||||
fi
|
|
@ -1,38 +0,0 @@
|
|||||||
#!/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)
|
|
||||||
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
|
|
||||||
|
|
||||||
# Copy backgrounds if present
|
|
||||||
if [ -d $THEME_BACKGROUND_PATH ]; then
|
|
||||||
mkdir -p $BACKGROUNDS_THEME_PATH
|
|
||||||
cp $THEME_BACKGROUND_PATH/* $BACKGROUNDS_THEME_PATH/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Apply the new theme with omarchy-theme-set
|
|
||||||
omarchy-theme-set $THEME_NAME
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
#!/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 ~/.local/share/omarchy/default/wofi/select.css)
|
|
||||||
|
|
||||||
# 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,5 +30,22 @@ NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
|||||||
NEW_THEME=${THEMES[$NEXT_INDEX]}
|
NEW_THEME=${THEMES[$NEXT_INDEX]}
|
||||||
NEW_THEME_NAME=$(basename "$NEW_THEME")
|
NEW_THEME_NAME=$(basename "$NEW_THEME")
|
||||||
|
|
||||||
omarchy-theme-set $NEW_THEME_NAME
|
# 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
|
||||||
notify-send "Theme changed to $NEW_THEME_NAME" -t 2000
|
notify-send "Theme changed to $NEW_THEME_NAME" -t 2000
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
#!/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"
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
#!/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
|
|
@ -1,4 +1,5 @@
|
|||||||
INPUT_METHOD=fcitx
|
INPUT_METHOD=fcitx
|
||||||
|
GTK_IM_MODULE=fcitx
|
||||||
QT_IM_MODULE=fcitx
|
QT_IM_MODULE=fcitx
|
||||||
XMODIFIERS=@im=fcitx
|
XMODIFIERS=@im=fcitx
|
||||||
SDL_IM_MODULE=fcitx
|
SDL_IM_MODULE=fcitx
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
<?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,9 +1,5 @@
|
|||||||
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
|
# 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
|
# Change your personal monitor setup in here to keep the main config portable
|
||||||
source = ~/.config/hypr/monitors.conf
|
source = ~/.config/hypr/monitors.conf
|
||||||
|
|
||||||
@ -48,7 +44,6 @@ bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post"
|
|||||||
# exec-once = dropbox-cli start
|
# exec-once = dropbox-cli start
|
||||||
|
|
||||||
# Extra env variables
|
# Extra env variables
|
||||||
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
|
|
||||||
# env = MY_GLOBAL_ENV,setting
|
# env = MY_GLOBAL_ENV,setting
|
||||||
|
|
||||||
# Control your input devices
|
# Control your input devices
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
# Change to 1 if on a 1x display (then change last "auto" to 1 in monitor=)
|
# Change to 1 if on a 1x display (then change last "auto" to 1 in monitor=)
|
||||||
# Change to something like 1.75 for fractional scaling (can work well with 1.66667 monitor scaling)
|
# Change to something like 1.75 for fractional scaling (can work well with 1.66667 monitor scaling)
|
||||||
# Note: You must relaunch Hyprland after changing any env like this (use Super+Esc, then Relaunch)
|
|
||||||
env = GDK_SCALE,2
|
env = GDK_SCALE,2
|
||||||
|
|
||||||
# Use single default monitor (see all monitors with: hyprctl monitors)
|
# Use single default monitor (see all monitors with: hyprctl monitors)
|
||||||
|
@ -1,189 +1,104 @@
|
|||||||
{
|
{
|
||||||
"reload_style_on_change": true,
|
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"spacing": 0,
|
"spacing": 0,
|
||||||
"height": 26,
|
"height": 26,
|
||||||
"modules-left": [
|
"modules-left": [
|
||||||
"hyprland/workspaces"
|
"hyprland/workspaces"
|
||||||
],
|
],
|
||||||
"modules-center": [
|
"modules-center": [
|
||||||
"clock"
|
"clock"
|
||||||
],
|
],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
"group/tray-expander",
|
"bluetooth",
|
||||||
"bluetooth",
|
"network",
|
||||||
"network",
|
"pulseaudio",
|
||||||
"pulseaudio",
|
"cpu",
|
||||||
"cpu",
|
"battery"
|
||||||
"battery"
|
],
|
||||||
],
|
"hyprland/workspaces": {
|
||||||
"hyprland/workspaces": {
|
"on-click": "activate",
|
||||||
"on-click": "activate",
|
"format": "{icon}",
|
||||||
"format": "{icon}",
|
"format-icons": {
|
||||||
"format-icons": {
|
"default": "",
|
||||||
"default": "",
|
"1": "1",
|
||||||
"1": "1",
|
"2": "2",
|
||||||
"2": "2",
|
"3": "3",
|
||||||
"3": "3",
|
"4": "4",
|
||||||
"4": "4",
|
"5": "5",
|
||||||
"5": "5",
|
"6": "6",
|
||||||
"6": "6",
|
"7": "7",
|
||||||
"7": "7",
|
"8": "8",
|
||||||
"8": "8",
|
"9": "9",
|
||||||
"9": "9",
|
"active": ""
|
||||||
"active": ""
|
},
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"persistent-workspaces": {
|
"cpu": {
|
||||||
"1": [],
|
"interval": 5,
|
||||||
"2": [],
|
"format": "",
|
||||||
"3": [],
|
"on-click": "alacritty -e btop"
|
||||||
"4": [],
|
|
||||||
"5": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"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": "",
|
"clock": {
|
||||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
"format": "{:%A %H:%M}",
|
||||||
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
|
"format-alt": "{:%d %B W%V %Y}",
|
||||||
"interval": 5,
|
"tooltip": false
|
||||||
"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": "{icon}",
|
|
||||||
"on-click": "GTK_THEME=Adwaita-dark pavucontrol",
|
|
||||||
"on-click-right": "pamixer -t",
|
|
||||||
"tooltip-format": "Playing at {volume}%",
|
|
||||||
"scroll-step": 5,
|
|
||||||
"format-muted": "",
|
|
||||||
"format-icons": {
|
|
||||||
"default": ["", "", ""]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"group/tray-expander": {
|
|
||||||
"orientation": "inherit",
|
|
||||||
"drawer": {
|
|
||||||
"transition-duration": 600,
|
|
||||||
"children-class": "tray-group-item"
|
|
||||||
},
|
},
|
||||||
"modules": [
|
"network": {
|
||||||
"custom/expand-icon",
|
"format-icons": ["","","","",""],
|
||||||
"tray"
|
"format" : "{icon}",
|
||||||
]
|
"format-wifi" : "{icon}",
|
||||||
},
|
"format-ethernet" : "",
|
||||||
"custom/expand-icon": {
|
"format-disconnected" : "",
|
||||||
"format": " ",
|
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||||
"tooltip": false
|
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||||
},
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
"tray": {
|
"interval": 3,
|
||||||
"icon-size": 12,
|
"nospacing": 1,
|
||||||
"spacing": 12
|
"on-click": "alacritty --class=Impala -e impala"
|
||||||
}
|
|
||||||
},
|
|
||||||
"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": "",
|
"battery": {
|
||||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
"format": "{capacity}% {icon}",
|
||||||
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
|
"format-discharging": "{icon}",
|
||||||
"interval": 5,
|
"format-charging": "{icon}",
|
||||||
"states": {
|
"format-plugged": "",
|
||||||
"warning": 20,
|
"format-icons": {
|
||||||
"critical": 10
|
"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"]
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"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,9 +1,4 @@
|
|||||||
@import "../omarchy/current/theme/waybar.css";
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
background-color: @background;
|
|
||||||
color: @foreground;
|
|
||||||
|
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
@ -11,21 +6,17 @@
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-left {
|
#workspaces {
|
||||||
margin-left: 8px;
|
margin-left: 7px;
|
||||||
}
|
|
||||||
|
|
||||||
.modules-right {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
all: initial;
|
all: initial;
|
||||||
padding: 0 6px;
|
padding: 2px 6px;
|
||||||
margin: 0 1.5px;
|
margin-right: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray,
|
#custom-dropbox,
|
||||||
#cpu,
|
#cpu,
|
||||||
#battery,
|
#battery,
|
||||||
#network,
|
#network,
|
||||||
@ -34,13 +25,15 @@
|
|||||||
#clock,
|
#clock,
|
||||||
#custom-power-menu {
|
#custom-power-menu {
|
||||||
min-width: 12px;
|
min-width: 12px;
|
||||||
margin: 0 7.5px;
|
margin-right: 13px;
|
||||||
}
|
|
||||||
|
|
||||||
#custom-expand-icon {
|
|
||||||
margin-right: 12px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tooltip {
|
tooltip {
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "../omarchy/current/theme/waybar.css";
|
||||||
|
65
config/wofi/omarchy-power-menu.css
Normal file
65
config/wofi/omarchy-power-menu.css
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
@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,73 +0,0 @@
|
|||||||
/* Colors are defined by theme files and can be referenced via @base, @text, @selected-text, and @border */
|
|
||||||
|
|
||||||
* {
|
|
||||||
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;
|
|
||||||
border: 2px solid @border;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scroll {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
color: @text;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input:focus {
|
|
||||||
outline: none;
|
|
||||||
box-shadow: none;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#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,7 +0,0 @@
|
|||||||
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
|
|
@ -4,8 +4,8 @@ bind = SUPER, K, exec, ~/.local/share/omarchy/bin/omarchy-show-keybindings
|
|||||||
|
|
||||||
# Aesthetics
|
# Aesthetics
|
||||||
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
|
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
|
||||||
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next
|
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next
|
||||||
bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-menu
|
bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-next
|
||||||
|
|
||||||
# Notifications
|
# Notifications
|
||||||
bind = SUPER, comma, exec, makoctl dismiss
|
bind = SUPER, comma, exec, makoctl dismiss
|
||||||
@ -19,9 +19,9 @@ bind = SUPER, ESCAPE, exec, ~/.local/share/omarchy/bin/omarchy-power-menu
|
|||||||
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
|
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
|
||||||
|
|
||||||
# Control Apple Display brightness
|
# Control Apple Display brightness
|
||||||
bind = CTRL, F1, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness -5000
|
bind = CTRL, F1, exec, ~/.local/share/omarchy/bin/apple-display-brightness -5000
|
||||||
bind = CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-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/omarchy-apple-display-brightness +60000
|
bind = SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +60000
|
||||||
|
|
||||||
# Screenshots
|
# Screenshots
|
||||||
bind = , PRINT, exec, hyprshot -m region
|
bind = , PRINT, exec, hyprshot -m region
|
||||||
|
@ -15,6 +15,9 @@ xwayland {
|
|||||||
force_zero_scaling = true
|
force_zero_scaling = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Make .desktop files available for wofi
|
||||||
|
env = XDG_DATA_DIRS,/usr/share:/usr/local/share:~/.local/share
|
||||||
|
|
||||||
# Use XCompose file
|
# Use XCompose file
|
||||||
env = XCOMPOSEFILE,~/.XCompose
|
env = XCOMPOSEFILE,~/.XCompose
|
||||||
|
|
||||||
|
@ -95,5 +95,5 @@ master {
|
|||||||
misc {
|
misc {
|
||||||
disable_hyprland_logo = true
|
disable_hyprland_logo = true
|
||||||
disable_splash_rendering = true
|
disable_splash_rendering = true
|
||||||
focus_on_activate = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,15 +4,14 @@ windowrule = suppressevent maximize, class:.*
|
|||||||
# Force chromium into a tile to deal with --app bug
|
# Force chromium into a tile to deal with --app bug
|
||||||
windowrule = tile, class:^(Chromium)$
|
windowrule = tile, class:^(Chromium)$
|
||||||
|
|
||||||
# Float and center settings and previews
|
# 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|Omarchy)$
|
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
|
||||||
windowrule = size 800 600, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
|
windowrule = size 800 600, 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)$
|
||||||
windowrule = center, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
|
|
||||||
|
|
||||||
# Float and center file pickers
|
# Float and center file pickers
|
||||||
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?)
|
||||||
windowrule = center, 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?)
|
||||||
|
|
||||||
# Float Steam, fullscreen RetroArch
|
# Float Steam, fullscreen RetroArch
|
||||||
windowrule = float, class:^(steam)$
|
windowrule = float, class:^(steam)$
|
||||||
|
@ -20,7 +20,6 @@ global.fake_progress_active = 0; # 0 / 1 boolean
|
|||||||
global.animation_frame = 0;
|
global.animation_frame = 0;
|
||||||
global.fake_progress_start_time = 0; # Track when fake progress started
|
global.fake_progress_start_time = 0; # Track when fake progress started
|
||||||
global.password_shown = 0; # Track if password dialog has been shown
|
global.password_shown = 0; # Track if password dialog has been shown
|
||||||
global.max_progress = 0.0; # Track the maximum progress reached to prevent backwards movement
|
|
||||||
|
|
||||||
fun refresh_callback ()
|
fun refresh_callback ()
|
||||||
{
|
{
|
||||||
@ -56,16 +55,11 @@ Plymouth.SetRefreshFunction (refresh_callback);
|
|||||||
|
|
||||||
fun update_progress_bar(progress)
|
fun update_progress_bar(progress)
|
||||||
{
|
{
|
||||||
# Only update if progress is moving forward
|
width = Math.Int(progress_bar.original_image.GetWidth() * progress);
|
||||||
if (progress > global.max_progress)
|
if (width < 1) width = 1; # Ensure minimum width of 1 pixel
|
||||||
{
|
|
||||||
global.max_progress = progress;
|
|
||||||
width = Math.Int(progress_bar.original_image.GetWidth() * progress);
|
|
||||||
if (width < 1) width = 1; # Ensure minimum width of 1 pixel
|
|
||||||
|
|
||||||
progress_bar.image = progress_bar.original_image.Scale(width, progress_bar.original_image.GetHeight());
|
progress_bar.image = progress_bar.original_image.Scale(width, progress_bar.original_image.GetHeight());
|
||||||
progress_bar.sprite.SetImage(progress_bar.image);
|
progress_bar.sprite.SetImage(progress_bar.image);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun show_progress_bar()
|
fun show_progress_bar()
|
||||||
@ -96,15 +90,11 @@ fun hide_password_dialog()
|
|||||||
|
|
||||||
fun start_fake_progress()
|
fun start_fake_progress()
|
||||||
{
|
{
|
||||||
# Don't reset if we already have progress
|
global.fake_progress = 0.0;
|
||||||
if (global.max_progress == 0.0)
|
global.real_progress = 0.0;
|
||||||
{
|
|
||||||
global.fake_progress = 0.0;
|
|
||||||
global.real_progress = 0.0;
|
|
||||||
update_progress_bar(0.0);
|
|
||||||
}
|
|
||||||
global.fake_progress_active = 1;
|
global.fake_progress_active = 1;
|
||||||
global.animation_frame = 0;
|
global.animation_frame = 0;
|
||||||
|
update_progress_bar(0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
fun stop_fake_progress()
|
fun stop_fake_progress()
|
||||||
@ -159,12 +149,8 @@ fun display_password_callback (prompt, bullets)
|
|||||||
{
|
{
|
||||||
global.password_shown = 1; # Mark that password dialog has been shown
|
global.password_shown = 1; # Mark that password dialog has been shown
|
||||||
|
|
||||||
# Reset progress when password dialog appears
|
|
||||||
stop_fake_progress();
|
stop_fake_progress();
|
||||||
hide_progress_bar();
|
hide_progress_bar();
|
||||||
global.max_progress = 0.0;
|
|
||||||
global.fake_progress = 0.0;
|
|
||||||
global.real_progress = 0.0;
|
|
||||||
show_password_dialog();
|
show_password_dialog();
|
||||||
|
|
||||||
# Clear all bullets first
|
# Clear all bullets first
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
@import ".config/omarchy/current/theme/wofi.css";
|
@import ".config/omarchy/current/theme/wofi.css";
|
||||||
@import ".config/wofi/style.css";
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
||||||
|
@ -8,7 +8,4 @@ if ! command -v yay &>/dev/null; then
|
|||||||
cd -
|
cd -
|
||||||
rm -rf yay-bin
|
rm -rf yay-bin
|
||||||
cd ~
|
cd ~
|
||||||
|
|
||||||
# Add fun and color to the pacman installer
|
|
||||||
sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf
|
|
||||||
fi
|
fi
|
||||||
|
@ -4,16 +4,17 @@ cp -R ~/.local/share/omarchy/config/* ~/.config/
|
|||||||
# Ensure application directory exists for update-desktop-database
|
# Ensure application directory exists for update-desktop-database
|
||||||
mkdir -p ~/.local/share/applications
|
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
|
# Use default bashrc from Omarchy
|
||||||
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
|
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
|
||||||
|
|
||||||
|
# Login directly as user, rely on disk encryption + hyprlock for security
|
||||||
|
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
|
||||||
|
sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf >/dev/null <<EOF
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=-/usr/bin/agetty --autologin $USER --noclear %I \$TERM
|
||||||
|
EOF
|
||||||
|
|
||||||
# Set common git aliases
|
# Set common git aliases
|
||||||
git config --global alias.co checkout
|
git config --global alias.co checkout
|
||||||
git config --global alias.br branch
|
git config --global alias.br branch
|
||||||
|
@ -2,3 +2,6 @@ yay -S --noconfirm --needed \
|
|||||||
hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \
|
hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \
|
||||||
wofi waybar mako swaybg \
|
wofi waybar mako swaybg \
|
||||||
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
|
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
|
||||||
|
|
||||||
|
# Start Hyprland on first session
|
||||||
|
echo "[[ -z \$DISPLAY && \$(tty) == /dev/tty1 ]] && exec Hyprland" >~/.bash_profile
|
||||||
|
115
install/login.sh
115
install/login.sh
@ -1,115 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
|
|
||||||
yay -S --noconfirm --needed uwsm
|
|
||||||
|
|
||||||
# Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop
|
|
||||||
cat <<'CCODE' >/tmp/seamless-login.c
|
|
||||||
/*
|
|
||||||
* Seamless Login - Minimal SDDM-style Plymouth transition
|
|
||||||
* Replicates SDDM's VT management for seamless auto-login
|
|
||||||
*/
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <linux/kd.h>
|
|
||||||
#include <linux/vt.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
int vt_fd;
|
|
||||||
int vt_num = 1; // TTY1
|
|
||||||
char vt_path[32];
|
|
||||||
|
|
||||||
if (argc < 2) {
|
|
||||||
fprintf(stderr, "Usage: %s <session_command>\n", argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Open the VT (simple approach like SDDM)
|
|
||||||
snprintf(vt_path, sizeof(vt_path), "/dev/tty%d", vt_num);
|
|
||||||
vt_fd = open(vt_path, O_RDWR);
|
|
||||||
if (vt_fd < 0) {
|
|
||||||
perror("Failed to open VT");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Activate the VT
|
|
||||||
if (ioctl(vt_fd, VT_ACTIVATE, vt_num) < 0) {
|
|
||||||
perror("VT_ACTIVATE failed");
|
|
||||||
close(vt_fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wait for VT to be active
|
|
||||||
if (ioctl(vt_fd, VT_WAITACTIVE, vt_num) < 0) {
|
|
||||||
perror("VT_WAITACTIVE failed");
|
|
||||||
close(vt_fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Critical: Set graphics mode to prevent console text
|
|
||||||
if (ioctl(vt_fd, KDSETMODE, KD_GRAPHICS) < 0) {
|
|
||||||
perror("KDSETMODE KD_GRAPHICS failed");
|
|
||||||
close(vt_fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear VT and close (like SDDM does)
|
|
||||||
const char *clear_seq = "\33[H\33[2J";
|
|
||||||
if (write(vt_fd, clear_seq, strlen(clear_seq)) < 0) {
|
|
||||||
perror("Failed to clear VT");
|
|
||||||
}
|
|
||||||
|
|
||||||
close(vt_fd);
|
|
||||||
|
|
||||||
// Set working directory to user's home
|
|
||||||
const char *home = getenv("HOME");
|
|
||||||
if (home) chdir(home);
|
|
||||||
|
|
||||||
// Now execute the session command
|
|
||||||
execvp(argv[1], &argv[1]);
|
|
||||||
perror("Failed to exec session");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
CCODE
|
|
||||||
|
|
||||||
gcc -o /tmp/seamless-login /tmp/seamless-login.c
|
|
||||||
sudo mv /tmp/seamless-login /usr/local/bin/seamless-login
|
|
||||||
sudo chmod +x /usr/local/bin/seamless-login
|
|
||||||
rm /tmp/seamless-login.c
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service
|
|
||||||
[Unit]
|
|
||||||
Description=Omarchy Seamless Auto-Login
|
|
||||||
Documentation=https://github.com/basecamp/omarchy
|
|
||||||
Conflicts=getty@tty1.service
|
|
||||||
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
|
|
||||||
PartOf=graphical.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/local/bin/seamless-login uwsm start -- hyprland.desktop
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
User=$USER
|
|
||||||
TTYPath=/dev/tty1
|
|
||||||
TTYReset=yes
|
|
||||||
TTYVHangup=yes
|
|
||||||
TTYVTDisallocate=yes
|
|
||||||
StandardInput=tty
|
|
||||||
StandardOutput=journal
|
|
||||||
StandardError=journal+console
|
|
||||||
PAMName=login
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=graphical.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable omarchy-seamless-login.service
|
|
||||||
|
|
||||||
# Disable getty@tty1 to prevent conflicts
|
|
||||||
sudo systemctl disable getty@tty1.service
|
|
@ -75,12 +75,12 @@ if ! command -v plymouth &>/dev/null; then
|
|||||||
# Relying on mkinitcpio to assemble a UKI
|
# Relying on mkinitcpio to assemble a UKI
|
||||||
# https://wiki.archlinux.org/title/Unified_kernel_image
|
# https://wiki.archlinux.org/title/Unified_kernel_image
|
||||||
if ! grep -q splash /etc/cmdline.d/*.conf; then
|
if ! grep -q splash /etc/cmdline.d/*.conf; then
|
||||||
# Need splash, create the omarchy file
|
# Need splash, create the omarchy file
|
||||||
echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
||||||
fi
|
fi
|
||||||
if ! grep -q quiet /etc/cmdline.d/*.conf; then
|
if ! grep -q quiet /etc/cmdline.d/*.conf; then
|
||||||
# Need quiet, create or append the omarchy file
|
# Need quiet, create or append the omarchy file
|
||||||
echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
||||||
fi
|
fi
|
||||||
elif [ -f "/etc/kernel/cmdline" ]; then
|
elif [ -f "/etc/kernel/cmdline" ]; then
|
||||||
# Alternate UKI kernel cmdline location
|
# Alternate UKI kernel cmdline location
|
||||||
@ -95,10 +95,10 @@ if ! command -v plymouth &>/dev/null; then
|
|||||||
# Add splash and quiet if not present
|
# Add splash and quiet if not present
|
||||||
new_cmdline="$current_cmdline"
|
new_cmdline="$current_cmdline"
|
||||||
if [[ ! "$current_cmdline" =~ splash ]]; then
|
if [[ ! "$current_cmdline" =~ splash ]]; then
|
||||||
new_cmdline="$new_cmdline splash"
|
new_cmdline="$new_cmdline splash"
|
||||||
fi
|
fi
|
||||||
if [[ ! "$current_cmdline" =~ quiet ]]; then
|
if [[ ! "$current_cmdline" =~ quiet ]]; then
|
||||||
new_cmdline="$new_cmdline quiet"
|
new_cmdline="$new_cmdline quiet"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Trim any leading/trailing spaces
|
# Trim any leading/trailing spaces
|
||||||
|
@ -18,6 +18,7 @@ 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
|
ln -snf ~/.config/omarchy/current/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background
|
||||||
|
|
||||||
# Set specific app links for current theme
|
# 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
|
ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
|
||||||
mkdir -p ~/.config/btop/themes
|
mkdir -p ~/.config/btop/themes
|
||||||
ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current.theme
|
ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current.theme
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
if [ -z "$OMARCHY_BARE" ]; then
|
if [ -z "$OMARCHY_BARE" ]; then
|
||||||
yay -S --noconfirm --needed \
|
yay -S --noconfirm --needed \
|
||||||
gnome-calculator gnome-keyring signal-desktop \
|
gnome-calculator \
|
||||||
obsidian-bin libreoffice obs-studio kdenlive \
|
signal-desktop spotify dropbox-cli zoom \
|
||||||
|
obsidian-bin typora libreoffice obs-studio kdenlive \
|
||||||
|
1password-beta 1password-cli gnome-keyring \
|
||||||
pinta xournalpp localsend-bin
|
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
|
fi
|
||||||
|
|
||||||
# Copy over Omarchy applications
|
# Copy over Omarchy applications
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
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
|
|
@ -1,18 +0,0 @@
|
|||||||
echo "Update to use UWSM and seamless login"
|
|
||||||
sudo rm /etc/systemd/system/getty@tty1.service.d/override.conf
|
|
||||||
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
|
|
||||||
|
|
||||||
if [ -f "$HOME/.bash_profile" ]; then
|
|
||||||
# Remove the specific line
|
|
||||||
sed -i '/^\[\[ -z \$DISPLAY && \$(tty) == \/dev\/tty1 \]\] && exec Hyprland$/d' "$HOME/.bash_profile"
|
|
||||||
echo "Cleaned up .bash_profile"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then
|
|
||||||
echo "Removing GTK_IM_MODULE from fcitx config for Wayland..."
|
|
||||||
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
omarchy-refresh-plymouth
|
|
||||||
|
|
||||||
source ~/.local/share/omarchy/install/login.sh
|
|
@ -1,7 +0,0 @@
|
|||||||
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
|
|
@ -1,6 +0,0 @@
|
|||||||
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
|
|
@ -1,3 +0,0 @@
|
|||||||
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
|
|
@ -1,5 +0,0 @@
|
|||||||
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/
|
|
||||||
fi
|
|
@ -1,2 +0,0 @@
|
|||||||
echo "Copy desktop file for new Omarchy TUI"
|
|
||||||
cp ~/.local/share/omarchy/applications/omarchy.desktop ~/.local/share/applications/
|
|
@ -7,7 +7,6 @@ padding=10
|
|||||||
border-size=2
|
border-size=2
|
||||||
font=Liberation Sans 11
|
font=Liberation Sans 11
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
@define-color foreground #cdd6f4;
|
* {
|
||||||
@define-color background #181824;
|
color: #cdd6f4;
|
||||||
|
background-color: #181824;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ padding=10
|
|||||||
border-size=2
|
border-size=2
|
||||||
font=Liberation Sans 11
|
font=Liberation Sans 11
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
@define-color foreground #d3c6aa;
|
* {
|
||||||
@define-color background #2d353b;
|
color: #d3c6aa;
|
||||||
|
background-color: #2d353b;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ padding=10
|
|||||||
border-size=2
|
border-size=2
|
||||||
font=Liberation Sans 11
|
font=Liberation Sans 11
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
@define-color foreground #d4be98;
|
* {
|
||||||
@define-color background #282828;
|
color: #d4be98;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ padding=10
|
|||||||
border-size=2
|
border-size=2
|
||||||
font=Liberation Sans 11
|
font=Liberation Sans 11
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
@define-color foreground #dcd7ba;
|
* {
|
||||||
@define-color background #1f1f28;
|
color: #dcd7ba;
|
||||||
|
background-color: #1f1f28;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# ────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────
|
||||||
# Omarchy Matte Black Theme for Alacritty
|
# Matte Black Theme for Alacritty
|
||||||
# By tahayvr
|
# By noiseRandom
|
||||||
# https://github.com/tahayvr
|
# https://github.com/tahayvr
|
||||||
# ────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
@ -17,37 +17,47 @@ size = 12.0
|
|||||||
[colors]
|
[colors]
|
||||||
[colors.primary]
|
[colors.primary]
|
||||||
background = "#121212"
|
background = "#121212"
|
||||||
foreground = "#bebebe"
|
foreground = "#eaeaea"
|
||||||
dim_foreground = "#8a8a8d"
|
dim_foreground = "#a5abb6"
|
||||||
|
|
||||||
[colors.cursor]
|
[colors.cursor]
|
||||||
text = "#121212"
|
text = "#121212"
|
||||||
cursor = "#eaeaea"
|
cursor = "#eaeaea"
|
||||||
|
|
||||||
[colors.vi_mode_cursor]
|
[colors.vi_mode_cursor]
|
||||||
text = "#121212"
|
text = "#2e3440"
|
||||||
cursor = "#eaeaea"
|
cursor = "#d8dee9"
|
||||||
|
|
||||||
[colors.selection]
|
[colors.selection]
|
||||||
text = "CellForeground"
|
text = "CellForeground"
|
||||||
background = "#333333"
|
background = "#333333" #charcoal
|
||||||
|
|
||||||
[colors.normal]
|
[colors.normal]
|
||||||
black = "#333333"
|
black = "#2c2c2c"
|
||||||
red = "#D35F5F"
|
red = "#bf616a"
|
||||||
green = "#FFC107"
|
green = "#a3be8c"
|
||||||
yellow = "#b91c1c"
|
yellow = "#ebcb8b"
|
||||||
blue = "#e68e0d"
|
blue = "#81a1c1"
|
||||||
magenta = "#D35F5F"
|
magenta = "#b48ead"
|
||||||
cyan = "#bebebe"
|
cyan = "#88c0d0"
|
||||||
white = "#bebebe"
|
white = "#e5e9f0"
|
||||||
|
|
||||||
[colors.bright]
|
[colors.bright]
|
||||||
black = "#8a8a8d"
|
black = "#8a8a8d"
|
||||||
red = "#B91C1C"
|
red = "#bf616a"
|
||||||
green = "#FFC107"
|
green = "#a3be8c"
|
||||||
yellow = "#b90a0a"
|
yellow = "#ebcb8b"
|
||||||
blue = "#f59e0b"
|
blue = "#81a1c1"
|
||||||
magenta = "#B91C1C"
|
magenta = "#b48ead"
|
||||||
cyan = "#eaeaea"
|
cyan = "#8fbcbb"
|
||||||
white = "#ffffff"
|
white = "#eceff4"
|
||||||
|
|
||||||
|
[colors.dim]
|
||||||
|
black = "#373e4d"
|
||||||
|
red = "#94545d"
|
||||||
|
green = "#809575"
|
||||||
|
yellow = "#b29e75"
|
||||||
|
blue = "#68809a"
|
||||||
|
magenta = "#8c738c"
|
||||||
|
cyan = "#6d96a5"
|
||||||
|
white = "#aeb3bb"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# ────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────
|
||||||
# Bashtop theme - Omarchy Matte Black
|
# Bashtop theme with Matte Black palette
|
||||||
# by tahayvr
|
# by noiseRandom
|
||||||
# https://github.com/tahayvr
|
# https://github.com/tahayvr
|
||||||
# ────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
$color = rgba(12,12,12,1.0) # #333333 matte black
|
$color = rgba(46,52,64,1.0) # #2e3440 solid color
|
||||||
|
|
||||||
$inner_color = rgba(138,138,141,0.3) # #8a8a8d with opacity
|
$inner_color = rgba(136,136,136,0.3) #rgb(136, 136, 136) with opacity
|
||||||
$outer_color = rgba(234,234,234,0.5) # #EAEAEA
|
$outer_color = rgba(216,222,233,0.5) # #d8dee9
|
||||||
|
|
||||||
$font_color = rgba(234,234,234,1.0) # #EAEAEA
|
$font_color = rgba(216,222,233,1.0)
|
||||||
|
|
||||||
|
$placeholder_color = rgba(216,222,233,0.6)
|
||||||
|
$check_color = rgba(136, 192, 208, 1.0)
|
||||||
|
|
||||||
$placeholder_color = rgba(234,234,234,0.6) # #EAEAEA with opacity
|
|
||||||
$check_color = rgba(245,158,11,1.0) # #f59e0b amber accent
|
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
text-color=#8a8a8d
|
text-color=#8a8a8d
|
||||||
border-color=#8A8A8D
|
|
||||||
background-color=#1e1e1e
|
background-color=#1e1e1e
|
||||||
|
border-radius=10
|
||||||
width=420
|
width=420
|
||||||
height=110
|
height=110
|
||||||
padding=10
|
padding=10
|
||||||
border-size=2
|
font=CaskaydiaMono Nerd Font
|
||||||
font=Liberation Sans 11
|
border-size=0
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
default-timeout=3000
|
||||||
default-timeout=5000
|
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
[app-name=Spotify]
|
[app-name=Spotify]
|
||||||
invisible=1
|
invisible=1
|
||||||
|
|
||||||
[mode=do-not-disturb]
|
[urgency=high]
|
||||||
invisible=true
|
background-color=#660d0d
|
||||||
|
text-color=#ffffff
|
||||||
[mode=do-not-disturb app-name=notify-send]
|
|
||||||
invisible=false
|
|
@ -1,190 +1,30 @@
|
|||||||
return {
|
return {
|
||||||
"EdenEast/nightfox.nvim",
|
{ "rebelot/kanagawa.nvim"},
|
||||||
lazy = false,
|
{ "EdenEast/nightfox.nvim" },
|
||||||
priority = 1000,
|
{
|
||||||
dependencies = {
|
"LazyVim/LazyVim",
|
||||||
"folke/snacks.nvim",
|
opts = {
|
||||||
"nvim-tree/nvim-web-devicons",
|
colorscheme = "carbonfox",
|
||||||
"nvim-lualine/lualine.nvim",
|
},
|
||||||
},
|
init = function()
|
||||||
|
-- Custom highlight groups for dashboard colors only
|
||||||
config = function()
|
vim.api.nvim_create_autocmd("ColorScheme", {
|
||||||
local nightfox = require('nightfox')
|
pattern = "*",
|
||||||
local Shade = require('nightfox.lib.shade')
|
callback = function()
|
||||||
local c = require('nightfox.lib.color')
|
vim.api.nvim_set_hl(0, "SnacksDashboardHeader", { fg = "#8a8a8d", bold = true })
|
||||||
|
vim.api.nvim_set_hl(0, "SnacksDashboardIcon", { fg = "#8a8a8d" })
|
||||||
local matte_black_palette = {
|
vim.api.nvim_set_hl(0, "SnacksDashboardDir", { fg = "#8a8a8d" })
|
||||||
-- Base "Matte Black" Palette Overrides
|
vim.api.nvim_set_hl(0, "SnacksDashboardFile", { fg = "#8a8a8d" })
|
||||||
bg0 = "#0D0D0D", bg1 = "#121212", bg2 = "#1E1E1E", bg3 = "#2C2C2C", bg4 = "#333333",
|
vim.api.nvim_set_hl(0, "SnacksDashboardFooter", { fg = "#8a8a8d", italic = true })
|
||||||
fg0 = "#FFFFFF", fg1 = "#BEBEBE", fg2 = "#BEBEBE", fg3 = "#8A8A8D",
|
vim.api.nvim_set_hl(0, "SnacksDashboardKey", { fg = "#ffffff", bold = true })
|
||||||
sel0 = "#2C2C2C",
|
vim.api.nvim_set_hl(0, "SnacksDashboardDesc", { fg = "#ffffff" })
|
||||||
sel1 = c.from_hex("#2C2C2C"):blend(c.from_hex("#F59E0B"), 0.2):to_css(),
|
vim.api.nvim_set_hl(0, "SnacksDashboardSpecial", { fg = "#ffffff", bold = true })
|
||||||
comment = "#333333",
|
|
||||||
red = Shade.new("#D35F5F", c.from_hex("#D35F5F"):lighten(8):to_css(), "#B91C1C"),
|
|
||||||
orange = Shade.new("#F59E0B", "#FFC107", c.from_hex("#F59E0B"):lighten(-8):to_css()),
|
|
||||||
yellow = Shade.new("#FFC107", c.from_hex("#FFC107"):lighten(10):to_css(), "#F59E0B"),
|
|
||||||
white = Shade.new("#EAEAEA", "#FFFFFF", "#BEBEBE"),
|
|
||||||
black = Shade.new("#333333", "#8A8A8D", "#1E1E1E"),
|
|
||||||
green = Shade.new("#8A9A7B", "#A5B799", "#6F7C62"),
|
|
||||||
cyan = Shade.new("#88AABB", "#A2C4D3", "#6E8A99"),
|
|
||||||
blue = Shade.new("#8A9FBE", "#A4BBDD", "#7084A1"),
|
|
||||||
magenta = Shade.new("#C1A1C1", "#D9B9D9", "#A989A9"),
|
|
||||||
pink = Shade.new("#D398A7", "#EBC0CB", "#B97E8D"),
|
|
||||||
|
|
||||||
-- Lualine Palette Extensions
|
|
||||||
lualine_normal_bg = "#F59E0B",
|
|
||||||
lualine_insert_bg = "#B91C1C",
|
|
||||||
lualine_visual_bg = "#C1A1C1",
|
|
||||||
lualine_command_bg = "#F59E0B",
|
|
||||||
lualine_inactive_bg = c.from_hex("#121212"):lighten(5):to_css(),
|
|
||||||
|
|
||||||
-- Treesitter Palette Extensions
|
|
||||||
ts_parameter = "#D398A7",
|
|
||||||
ts_property = "#EAEAEA",
|
|
||||||
}
|
|
||||||
|
|
||||||
local final_palettes = {
|
|
||||||
carbonfox = require('nightfox.lib.collect').deep_extend(
|
|
||||||
require('nightfox.palette').load('carbonfox'),
|
|
||||||
matte_black_palette
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
local specs = {
|
|
||||||
carbonfox = {
|
|
||||||
syntax = {
|
|
||||||
keyword = "red", -- "local", "function", "if"
|
|
||||||
conditional = "red",
|
|
||||||
statement = "red",
|
|
||||||
func = "orange",
|
|
||||||
string = "orange.dim",
|
|
||||||
number = "orange",
|
|
||||||
operator = "yellow",
|
|
||||||
variable = "white",
|
|
||||||
ident = "white.dim",
|
|
||||||
const = "white",
|
|
||||||
type = "white",
|
|
||||||
field = "white.dim",
|
|
||||||
comment = "comment",
|
|
||||||
},
|
|
||||||
diag = {
|
|
||||||
error = "red",
|
|
||||||
warn = "red",
|
|
||||||
info = "cyan",
|
|
||||||
hint = "magenta",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local groups = {
|
|
||||||
all = {
|
|
||||||
-- Base Groups
|
|
||||||
Whitespace = { fg = "palette.black.bright" },
|
|
||||||
NonText = { fg = "palette.black.bright" },
|
|
||||||
IncSearch = { bg = "palette.sel1" },
|
|
||||||
|
|
||||||
-- Noice Cmdline Overrides
|
|
||||||
NoiceCmdlinePopupBorder = { fg = "palette.fg3" },
|
|
||||||
NoiceCmdlinePopupTitle = { fg = "palette.fg3", style = "bold" },
|
|
||||||
NoiceCmdlinePopupBorderSearch = { fg = "palette.fg3" },
|
|
||||||
NoiceCmdlinePopupTitleSearch = { fg = "palette.fg3", style = "bold" },
|
|
||||||
NoiceCmdLineIcon = { fg = "palette.red" },
|
|
||||||
|
|
||||||
-- Neo-tree overrides
|
|
||||||
NeoTreeNormal = { bg = "palette.bg0" },
|
|
||||||
NeoTreeNormalNC = { link = "NeoTreeNormal" },
|
|
||||||
NeoTreeDirectoryName = { fg = "palette.fg3" },
|
|
||||||
NeoTreeDirectoryIcon = { fg = "palette.fg3" },
|
|
||||||
NeoTreeRootName = { fg = "palette.orange", style = "bold" },
|
|
||||||
NeoTreeGitAdded = { fg = "palette.green" },
|
|
||||||
NeoTreeGitModified = { fg = "palette.yellow" },
|
|
||||||
NeoTreeGitDeleted = { fg = "palette.red" },
|
|
||||||
NeoTreeGitIgnored = { fg = "palette.comment" },
|
|
||||||
NeoTreeC = { fg = "palette.orange", bg = "palette.sel0" },
|
|
||||||
|
|
||||||
-- Dashboard overrides
|
|
||||||
SnacksDashboardHeader = { fg = "palette.fg3" },
|
|
||||||
SnacksDashboardIcon = { fg = "palette.fg1" },
|
|
||||||
SnacksDashboardDir = { fg = "palette.orange" },
|
|
||||||
SnacksDashboardFile = { fg = "palette.fg3" },
|
|
||||||
SnacksDashboardFooter = { fg = "palette.fg3" },
|
|
||||||
SnacksDashboardKey = { fg = "palette.orange" },
|
|
||||||
SnacksDashboardDesc = { fg = "palette.fg1" },
|
|
||||||
SnacksDashboardSpecial = { fg = "palette.fg1" },
|
|
||||||
|
|
||||||
-- Treesitter overrides
|
|
||||||
["@comment"] = { fg = "palette.comment", style = "italic" },
|
|
||||||
["@keyword"] = { fg = "palette.red", style = "bold" },
|
|
||||||
["@keyword.function"] = { fg = "palette.red", style = "bold" },
|
|
||||||
["@keyword.operator"] = { fg = "palette.red", style = "bold" },
|
|
||||||
["@function"] = { fg = "palette.orange", style = "bold" },
|
|
||||||
["@function.builtin"] = { fg = "palette.orange", style = "bold" },
|
|
||||||
["@function.call"] = { fg = "palette.orange" },
|
|
||||||
["@string"] = { fg = "palette.orange" },
|
|
||||||
["@number"] = { fg = "palette.orange" },
|
|
||||||
["@operator"] = { fg = "palette.yellow" },
|
|
||||||
["@variable"] = { fg = "palette.white" },
|
|
||||||
["@constant"] = { fg = "palette.white" },
|
|
||||||
["@type"] = { fg = "palette.white.dim" },
|
|
||||||
["@variable.parameter"] = { fg = "palette.ts_parameter", style = "italic" },
|
|
||||||
["@property"] = { fg = "palette.ts_property" },
|
|
||||||
["@field"] = { fg = "palette.ts_property" },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nightfox.setup({
|
|
||||||
options = {
|
|
||||||
style = "carbonfox",
|
|
||||||
terminal_colors = true,
|
|
||||||
dim_inactive = true,
|
|
||||||
styles = { comments = "italic", functions = "bold", keywords = "bold" },
|
|
||||||
modules = {
|
|
||||||
neotree = true,
|
|
||||||
treesitter = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
palettes = final_palettes,
|
|
||||||
specs = specs,
|
|
||||||
groups = groups
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.cmd("colorscheme carbonfox")
|
|
||||||
|
|
||||||
-- Lualine overrides
|
|
||||||
local lualine_theme = {
|
|
||||||
normal = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_normal_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
insert = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_insert_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
visual = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_visual_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
command = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_command_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
inactive = {
|
|
||||||
a = { fg = matte_black_palette.fg3, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
b = { fg = matte_black_palette.fg3, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.comment, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
require('lualine').setup({
|
|
||||||
options = {
|
|
||||||
theme = lualine_theme,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
end,
|
|
||||||
|
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.cmd("doautocmd ColorScheme")
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
@ -1,2 +1,4 @@
|
|||||||
@define-color foreground #8a8a8d;
|
* {
|
||||||
@define-color background #1e1e1e;
|
color: #8a8a8d;
|
||||||
|
background-color: #1e1e1e;
|
||||||
|
}
|
||||||
|
@ -7,7 +7,6 @@ padding=10
|
|||||||
border-size=2
|
border-size=2
|
||||||
font=Liberation Sans 11
|
font=Liberation Sans 11
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
@define-color foreground #d8dee9;
|
* {
|
||||||
@define-color background #2e3440;
|
color: #d8dee9;
|
||||||
|
background-color: #2e3440;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ padding=10
|
|||||||
border-size=2
|
border-size=2
|
||||||
font=Liberation Sans 11
|
font=Liberation Sans 11
|
||||||
anchor=top-right
|
anchor=top-right
|
||||||
outer-margin=20
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
max-icon-size=32
|
max-icon-size=32
|
||||||
|
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
@define-color foreground #cdd6f4;
|
* {
|
||||||
@define-color background #1a1b26;
|
color: #cdd6f4;
|
||||||
|
background-color: #1a1b26;
|
||||||
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user