diff --git a/ansi.sh b/ansi.sh deleted file mode 100644 index 4ce2952..0000000 --- a/ansi.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ -███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ -███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ -███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███ -███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ - ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ - ███ ███ ' - -clear -echo -e "\n$ansi_art\n" diff --git a/bin/omarchy b/bin/omarchy index 936aec2..3de2c62 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -4,7 +4,8 @@ OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/de PATH="$PATH:$HOME/.local/share/omarchy/bin" show_ascii_art() { - source ~/.local/share/omarchy/ansi.sh + clear + tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 expand echo " $OMARCHY_VERSION" } @@ -95,9 +96,10 @@ remove_theme_prompt() { setup_menu() { show_ascii_art - local menu=("Dropbox" "Docker DBs" "Fingerprint sensor" "Fido2 device" "Back") + local menu=("Dropbox" "Steam" "Docker DBs" "Fingerprint sensor" "Fido2 device" "Back") local commands=( "omarchy-setup-dropbox" + "omarchy-setup-steam" "setup_docker_dbs" "omarchy-setup-fingerprint" "omarchy-setup-fido2" @@ -126,10 +128,10 @@ setup_docker_dbs() { if [[ -n "$choices" ]]; then for db in $choices; do case $db in - MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;; MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;; - Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;; PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;; + MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;; + Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;; esac done fi diff --git a/bin/omarchy-cmd-screenrecord b/bin/omarchy-cmd-screenrecord index 20cedfe..84a4600 100755 --- a/bin/omarchy-cmd-screenrecord +++ b/bin/omarchy-cmd-screenrecord @@ -2,8 +2,16 @@ # Set recorder based on GPU +[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs +OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000 + exit 1 +fi + screenrecording() { - filename="$HOME/Videos/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" + filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" notify-send "Screen recording starting..." -t 1000 sleep 1 @@ -17,7 +25,7 @@ screenrecording() { if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then pkill -x wl-screenrec pkill -x wf-recorder - notify-send "Screen recording saved to ~/Videos" -t 2000 + notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000 elif [[ "$1" == "output" ]]; then screenrecording else diff --git a/bin/omarchy-cmd-screenshot b/bin/omarchy-cmd-screenshot index e2878e4..330dde3 100755 --- a/bin/omarchy-cmd-screenshot +++ b/bin/omarchy-cmd-screenshot @@ -1,8 +1,16 @@ #!/bin/bash -hyprshot -m ${1:-region} --raw | +[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs +OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000 + exit 1 +fi + +pkill slurp || hyprshot -m ${1:-region} --raw | satty --filename - \ - --output-filename ~/Pictures/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png \ + --output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \ --early-exit \ --actions-on-enter save-to-clipboard \ --save-after-copy \ diff --git a/bin/omarchy-cmd-tzupdate b/bin/omarchy-cmd-tzupdate new file mode 100755 index 0000000..1c5d0ac --- /dev/null +++ b/bin/omarchy-cmd-tzupdate @@ -0,0 +1,5 @@ +#!/bin/bash + +sudo tzupdate +new_timezone=$(timedatectl show -p Timezone --value) +notify-send "Timezone has been set to $new_timezone" diff --git a/bin/omarchy-refresh-applications b/bin/omarchy-refresh-applications index 6f8c6b1..429cbb8 100755 --- a/bin/omarchy-refresh-applications +++ b/bin/omarchy-refresh-applications @@ -10,7 +10,8 @@ mkdir -p ~/.local/share/applications cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/ -if [ -z "$OMARCHY_BARE" ]; then +# Only copy xtras if user is not in bare mode +if [[ ! -f ~/.local/state/omarchy/bare.mode ]] && [ -z "$OMARCHY_BARE" ]; then cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/ fi diff --git a/bin/omarchy-setup-steam b/bin/omarchy-setup-steam new file mode 100755 index 0000000..ae4051c --- /dev/null +++ b/bin/omarchy-setup-steam @@ -0,0 +1,9 @@ +#!/bin/bash + +echo "Adding multilib repository for 32-bit compatibility" +sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf +sudo pacman -Sy + +echo "Now pick dependencies matching your graphics card" +yay -S steam +gtk-launch steam >/dev/null 2>&1 & diff --git a/bin/omarchy-theme-bg-next b/bin/omarchy-theme-bg-next index 79bf0c1..21cddf9 100755 --- a/bin/omarchy-theme-bg-next +++ b/bin/omarchy-theme-bg-next @@ -11,7 +11,7 @@ TOTAL=${#BACKGROUNDS[@]} if [[ $TOTAL -eq 0 ]]; then notify-send "No background was found for theme" -t 2000 pkill -x swaybg - uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 & + setsid uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 & else # Get current background from symlink if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then @@ -44,5 +44,5 @@ else # Relaunch swaybg pkill -x swaybg - uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & + setsid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & fi diff --git a/bin/omarchy-theme-install b/bin/omarchy-theme-install index 67a7909..93b30ab 100755 --- a/bin/omarchy-theme-install +++ b/bin/omarchy-theme-install @@ -12,9 +12,6 @@ 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 @@ -27,10 +24,5 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then 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 diff --git a/boot.sh b/boot.sh index 3ff9965..65c1cac 100755 --- a/boot.sh +++ b/boot.sh @@ -10,6 +10,7 @@ ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ ███ ███ ' +clear echo -e "\n$ansi_art\n" sudo pacman -Sy --noconfirm --needed git diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf index 8b1449e..e607bda 100644 --- a/config/hypr/hypridle.conf +++ b/config/hypr/hypridle.conf @@ -2,6 +2,7 @@ general { lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. before_sleep_cmd = loginctl lock-session # lock before suspend. after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. + on_unlock_cmd = pkill -SIGUSR2 waybar # prevent stacking of waybar when waking } listener { diff --git a/config/walker/config.toml b/config/walker/config.toml index 86f6c6d..05a823e 100644 --- a/config/walker/config.toml +++ b/config/walker/config.toml @@ -139,6 +139,7 @@ name = "Calculator" icon = "accessories-calculator" placeholder = "Calculator" min_chars = 3 # Min chars to calculate. 3 allows "3+3" +prefix = "=" [builtins.windows] weight = 5 diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 25f4818..dd92bf3 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -50,7 +50,8 @@ "clock": { "format": "{:%A %H:%M}", "format-alt": "{:%d %B W%V %Y}", - "tooltip": false + "tooltip": false, + "on-click-right": "~/.local/share/omarchy/bin/omarchy-cmd-tzupdate" }, "network": { "format-icons": ["󰤯","󰤟","󰤢","󰤥","󰤨"], diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf index 4b9224a..1176e19 100644 --- a/default/hypr/bindings/tiling.conf +++ b/default/hypr/bindings/tiling.conf @@ -5,7 +5,7 @@ bind = SUPER, W, killactive, bind = SUPER, J, togglesplit, # dwindle bind = SUPER, P, pseudo, # dwindle bind = SUPER, V, togglefloating, -bind = , F11, fullscreen, 0 +bind = SHIFT, F11, fullscreen, 0 # Move focus with mainMod + arrow keys bind = SUPER, left, movefocus, l diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index bf9049d..ec62f32 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -15,7 +15,8 @@ windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Fil windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save) # Float Steam, fullscreen RetroArch -windowrule = float, class:^(steam)$ +windowrule = float, class:steam +windowrule = center, class:steam windowrule = fullscreen, class:^(com.libretro.RetroArch)$ # Just dash of opacity diff --git a/install.sh b/install.sh index a329185..13aba50 100755 --- a/install.sh +++ b/install.sh @@ -3,6 +3,8 @@ # Exit immediately if a command exits with a non-zero status set -e +OMARCHY_INSTALL=~/.local/share/omarchy/install + # Give people a chance to retry running the installation catch_errors() { echo -e "\n\e[31mOmarchy installation failed!\e[0m" @@ -12,16 +14,69 @@ catch_errors() { trap catch_errors ERR -# Install everything -for f in ~/.local/share/omarchy/install/*.sh; do - echo -e "\nRunning installer: $f" - source "$f" -done +show_logo() { + clear + tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand} + echo +} -# Ensure locate is up to date now that everything has been installed +show_subtext() { + echo "$1" | tte --frame-rate ${3:-640} ${2:-wipe} + echo +} + +# Install prerequisites +source $OMARCHY_INSTALL/preflight/aur.sh +source $OMARCHY_INSTALL/preflight/presentation.sh + +# Configuration +show_logo beams 240 +show_subtext "Let's install Omarchy! [1/5]" +source $OMARCHY_INSTALL/config/identification.sh +source $OMARCHY_INSTALL/config/config.sh +source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh +source $OMARCHY_INSTALL/config/fix-fkeys.sh +source $OMARCHY_INSTALL/config/network.sh +source $OMARCHY_INSTALL/config/power.sh +source $OMARCHY_INSTALL/config/login.sh +source $OMARCHY_INSTALL/config/nvidia.sh + +# Development +show_logo decrypt 920 +show_subtext "Installing terminal tools [2/5]" +source $OMARCHY_INSTALL/development/terminal.sh +source $OMARCHY_INSTALL/development/development.sh +source $OMARCHY_INSTALL/development/nvim.sh +source $OMARCHY_INSTALL/development/ruby.sh +source $OMARCHY_INSTALL/development/docker.sh +source $OMARCHY_INSTALL/development/firewall.sh + +# Desktop +show_logo slice 60 +show_subtext "Installing desktop tools [3/5]" +source $OMARCHY_INSTALL/desktop/desktop.sh +source $OMARCHY_INSTALL/desktop/hyprlandia.sh +source $OMARCHY_INSTALL/desktop/theme.sh +source $OMARCHY_INSTALL/desktop/bluetooth.sh +source $OMARCHY_INSTALL/desktop/asdcontrol.sh +source $OMARCHY_INSTALL/desktop/fonts.sh +source $OMARCHY_INSTALL/desktop/printer.sh + +# Apps +show_logo expand +show_subtext "Installing default applications [4/5]" +source $OMARCHY_INSTALL/apps/webapps.sh +source $OMARCHY_INSTALL/apps/xtras.sh +source $OMARCHY_INSTALL/apps/mimetypes.sh + +# Updates +show_logo highlight +show_subtext "Updating system packages [5/5]" sudo updatedb - -# Update all built-in packages sudo pacman -Syu --noconfirm -gum confirm "Reboot to apply all settings?" && reboot +# Reboot +show_logo laseretch 920 +show_subtext "You're done! So we'll be rebooting now..." +sleep 2 +reboot diff --git a/install/1-yay.sh b/install/1-yay.sh deleted file mode 100644 index df6a9cd..0000000 --- a/install/1-yay.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -sudo pacman -S --needed --noconfirm base-devel - -if ! command -v yay &>/dev/null; then - cd /tmp - git clone https://aur.archlinux.org/yay-bin.git - cd yay-bin - makepkg -si --noconfirm - 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 diff --git a/install/mimetypes.sh b/install/apps/mimetypes.sh similarity index 100% rename from install/mimetypes.sh rename to install/apps/mimetypes.sh diff --git a/install/webapps.sh b/install/apps/webapps.sh similarity index 86% rename from install/webapps.sh rename to install/apps/webapps.sh index fbaf3a3..6f5c444 100644 --- a/install/webapps.sh +++ b/install/apps/webapps.sh @@ -12,5 +12,5 @@ if [ -z "$OMARCHY_BARE" ]; then web2app "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png web2app "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png web2app "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png - web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://manuals.omamix.org/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NDgsInB1ciI6ImJsb2JfaWQifX0=--c26606490139480f5bcb3cf91b09fc45825007f6/omarchy.jpg?disposition=attachment + web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/arch-linux.png fi diff --git a/install/xtras.sh b/install/apps/xtras.sh similarity index 100% rename from install/xtras.sh rename to install/apps/xtras.sh diff --git a/install/4-config.sh b/install/config/config.sh similarity index 89% rename from install/4-config.sh rename to install/config/config.sh index 91157f6..3b463ce 100644 --- a/install/4-config.sh +++ b/install/config/config.sh @@ -9,6 +9,12 @@ echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc # Ensure application directory exists for update-desktop-database mkdir -p ~/.local/share/applications +# If bare install, allow a way for its exclusions to not get added in updates +if [ -n "$OMARCHY_BARE" ]; then + mkdir -p ~/.local/state/omarchy + touch ~/.local/state/omarchy/bare.mode +fi + # 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/ diff --git a/install/detect-keyboard-layout.sh b/install/config/detect-keyboard-layout.sh similarity index 100% rename from install/detect-keyboard-layout.sh rename to install/config/detect-keyboard-layout.sh diff --git a/install/fix-fkeys.sh b/install/config/fix-fkeys.sh similarity index 77% rename from install/fix-fkeys.sh rename to install/config/fix-fkeys.sh index 54a76cf..1ae71c5 100644 --- a/install/fix-fkeys.sh +++ b/install/config/fix-fkeys.sh @@ -3,6 +3,6 @@ if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf - # Rely on install/plymouth.sh to do the rebuild + # Rely on install/login.sh to do the rebuild # sudo mkinitcpio -P fi diff --git a/install/2-identification.sh b/install/config/identification.sh similarity index 50% rename from install/2-identification.sh rename to install/config/identification.sh index f31b1e8..94e9d7b 100644 --- a/install/2-identification.sh +++ b/install/config/identification.sh @@ -1,10 +1,4 @@ #!/bin/bash -# Need gum to query for input -yay -S --noconfirm --needed gum - -# Configure identification -source ~/.local/share/omarchy/ansi.sh -echo -e "\nEnter identification for git and autocomplete..." export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") diff --git a/install/config/login.sh b/install/config/login.sh new file mode 100644 index 0000000..774fa5e --- /dev/null +++ b/install/config/login.sh @@ -0,0 +1,267 @@ +#!/bin/bash + +# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security +if ! command -v uwsm &>/dev/null || ! command -v plymouth &>/dev/null; then + yay -S --noconfirm --needed uwsm plymouth +fi + +# ============================================================================== +# PLYMOUTH SETUP +# ============================================================================== + +if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then + # Backup original mkinitcpio.conf just in case + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}" + + # Add plymouth to HOOKS array after 'base udev' or 'base systemd' + if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then + sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf + elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then + sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf + else + echo "Couldn't add the Plymouth hook" + fi + + # Regenerate initramfs + sudo mkinitcpio -P +fi + +# Add kernel parameters for Plymouth +if [ -d "/boot/loader/entries" ]; then # systemd-boot + echo "Detected systemd-boot" + + for entry in /boot/loader/entries/*.conf; do + if [ -f "$entry" ]; then + # Skip fallback entries + if [[ "$(basename "$entry")" == *"fallback"* ]]; then + echo "Skipped: $(basename "$entry") (fallback entry)" + continue + fi + + # Skip if splash it already present for some reason + if ! grep -q "splash" "$entry"; then + sudo sed -i '/^options/ s/$/ splash quiet/' "$entry" + else + echo "Skipped: $(basename "$entry") (splash already present)" + fi + fi + done +elif [ -f "/etc/default/grub" ]; then # Grub + echo "Detected grub" + + # Backup GRUB config before modifying + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}" + + # Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT + if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then + # Get current GRUB_CMDLINE_LINUX_DEFAULT value + current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2) + + # Add splash and quiet if not present + new_cmdline="$current_cmdline" + if [[ ! "$current_cmdline" =~ splash ]]; then + new_cmdline="$new_cmdline splash" + fi + if [[ ! "$current_cmdline" =~ quiet ]]; then + new_cmdline="$new_cmdline quiet" + fi + + # Trim any leading/trailing spaces + new_cmdline=$(echo "$new_cmdline" | xargs) + + sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub + + # Regenerate grub config + sudo grub-mkconfig -o /boot/grub/grub.cfg + else + echo "GRUB already configured with splash kernel parameters" + fi +elif [ -d "/etc/cmdline.d" ]; then # UKI + echo "Detected a UKI setup" + # Relying on mkinitcpio to assemble a UKI + # https://wiki.archlinux.org/title/Unified_kernel_image + if ! grep -q splash /etc/cmdline.d/*.conf; then + # Need splash, create the omarchy file + echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf + fi + if ! grep -q quiet /etc/cmdline.d/*.conf; then + # Need quiet, create or append the omarchy file + echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf + fi +elif [ -f "/etc/kernel/cmdline" ]; then # UKI Alternate + # Alternate UKI kernel cmdline location + echo "Detected a UKI setup" + + # Backup kernel cmdline config before modifying + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}" + + current_cmdline=$(cat /etc/kernel/cmdline) + + # Add splash and quiet if not present + new_cmdline="$current_cmdline" + if [[ ! "$current_cmdline" =~ splash ]]; then + new_cmdline="$new_cmdline splash" + fi + if [[ ! "$current_cmdline" =~ quiet ]]; then + new_cmdline="$new_cmdline quiet" + fi + + # Trim any leading/trailing spaces + new_cmdline=$(echo "$new_cmdline" | xargs) + + # Write new file + echo $new_cmdline | sudo tee /etc/kernel/cmdline +else + echo "" + echo " None of systemd-boot, GRUB, or UKI detected. Please manually add these kernel parameters:" + echo " - splash (to see the graphical splash screen)" + echo " - quiet (for silent boot)" + echo "" +fi + +if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then + sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/ + sudo plymouth-set-default-theme -R omarchy +fi + +# ============================================================================== +# SEAMLESS LOGIN +# ============================================================================== + +if [ ! -x /usr/local/bin/seamless-login ]; then + # 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 +#include +#include +#include +#include +#include +#include +#include +#include + +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 \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 +fi + +if [ ! -f /etc/systemd/system/omarchy-seamless-login.service ]; then + cat </dev/null </dev/null; then + yay -S --noconfirm kvantum-qt5 +fi # Prefer dark mode everything -sudo pacman -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme +if ! yay -Q gnome-themes-extra &>/dev/null; then + yay -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme +fi + gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # Setup theme links mkdir -p ~/.config/omarchy/themes -for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes/; done +for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done # Set initial theme mkdir -p ~/.config/omarchy/current diff --git a/install/development.sh b/install/development/development.sh similarity index 100% rename from install/development.sh rename to install/development/development.sh diff --git a/install/docker.sh b/install/development/docker.sh similarity index 100% rename from install/docker.sh rename to install/development/docker.sh diff --git a/install/firewall.sh b/install/development/firewall.sh similarity index 100% rename from install/firewall.sh rename to install/development/firewall.sh diff --git a/install/nvim.sh b/install/development/nvim.sh similarity index 100% rename from install/nvim.sh rename to install/development/nvim.sh diff --git a/install/ruby.sh b/install/development/ruby.sh similarity index 100% rename from install/ruby.sh rename to install/development/ruby.sh diff --git a/install/3-terminal.sh b/install/development/terminal.sh similarity index 100% rename from install/3-terminal.sh rename to install/development/terminal.sh diff --git a/install/login.sh b/install/login.sh deleted file mode 100644 index 5e090b7..0000000 --- a/install/login.sh +++ /dev/null @@ -1,126 +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 -#include -#include -#include -#include -#include -#include -#include -#include - -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 \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 </dev/null; then - yay -S --noconfirm --needed plymouth - - # Skip if plymouth already exists for some reason - # Backup original mkinitcpio.conf just in case - backup_timestamp=$(date +"%Y%m%d%H%M%S") - sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}" - - # Add plymouth to HOOKS array after 'base udev' or 'base systemd' - if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then - sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf - elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then - sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf - else - echo "Couldn't add the Plymouth hook" - fi - - # Regenerate initramfs - sudo mkinitcpio -P - - # Add kernel parameters for Plymouth (systemd-boot only) - if [ -d "/boot/loader/entries" ]; then - echo "Detected systemd-boot" - - for entry in /boot/loader/entries/*.conf; do - if [ -f "$entry" ]; then - # Skip fallback entries - if [[ "$(basename "$entry")" == *"fallback"* ]]; then - echo "Skipped: $(basename "$entry") (fallback entry)" - continue - fi - - # Skip if splash it already present for some reason - if ! grep -q "splash" "$entry"; then - sudo sed -i '/^options/ s/$/ splash quiet/' "$entry" - else - echo "Skipped: $(basename "$entry") (splash already present)" - fi - fi - done - elif [ -f "/etc/default/grub" ]; then - echo "Detected grub" - # Backup GRUB config before modifying - backup_timestamp=$(date +"%Y%m%d%H%M%S") - sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}" - - # Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT - if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then - # Get current GRUB_CMDLINE_LINUX_DEFAULT value - current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2) - - # Add splash and quiet if not present - new_cmdline="$current_cmdline" - if [[ ! "$current_cmdline" =~ splash ]]; then - new_cmdline="$new_cmdline splash" - fi - if [[ ! "$current_cmdline" =~ quiet ]]; then - new_cmdline="$new_cmdline quiet" - fi - - # Trim any leading/trailing spaces - new_cmdline=$(echo "$new_cmdline" | xargs) - - sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub - - # Regenerate grub config - sudo grub-mkconfig -o /boot/grub/grub.cfg - else - echo "GRUB already configured with splash kernel parameters" - fi - elif [ -d "/etc/cmdline.d" ]; then - echo "Detected a UKI setup" - # Relying on mkinitcpio to assemble a UKI - # https://wiki.archlinux.org/title/Unified_kernel_image - if ! grep -q splash /etc/cmdline.d/*.conf; then - # Need splash, create the omarchy file - echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf - fi - if ! grep -q quiet /etc/cmdline.d/*.conf; then - # Need quiet, create or append the omarchy file - echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf - fi - elif [ -f "/etc/kernel/cmdline" ]; then - # Alternate UKI kernel cmdline location - echo "Detected a UKI setup" - - # Backup kernel cmdline config before modifying - backup_timestamp=$(date +"%Y%m%d%H%M%S") - sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}" - - current_cmdline=$(cat /etc/kernel/cmdline) - - # Add splash and quiet if not present - new_cmdline="$current_cmdline" - if [[ ! "$current_cmdline" =~ splash ]]; then - new_cmdline="$new_cmdline splash" - fi - if [[ ! "$current_cmdline" =~ quiet ]]; then - new_cmdline="$new_cmdline quiet" - fi - - # Trim any leading/trailing spaces - new_cmdline=$(echo "$new_cmdline" | xargs) - - # Write new file - echo $new_cmdline | sudo tee /etc/kernel/cmdline - else - echo "" - echo "Neither systemd-boot nor GRUB detected. Please manually add these kernel parameters:" - echo " - splash (to see the graphical splash screen)" - echo " - quiet (for silent boot)" - echo "" - fi - - # Copy and set the Plymouth theme - sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/ - - sudo plymouth-set-default-theme -R omarchy -fi diff --git a/install/preflight/aur.sh b/install/preflight/aur.sh new file mode 100644 index 0000000..525b17c --- /dev/null +++ b/install/preflight/aur.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages +if [[ "$(uname -m)" == "x86_64" ]] && ! command -v yay &>/dev/null; then + # Try installing Chaotic-AUR keyring and mirrorlist + if ! pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1 && + sudo pacman-key --recv-key 3056513887B78AEB && + sudo pacman-key --lsign-key 3056513887B78AEB && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then + + # Add Chaotic-AUR repo to pacman config + if ! grep -q "chaotic-aur" /etc/pacman.conf; then + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + fi + + # Install yay directly from Chaotic-AUR + sudo pacman -Sy --needed --noconfirm yay + else + echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" + fi +fi + +# Manually install yay from AUR if not already available +if ! command -v yay &>/dev/null; then + # Install build tools + sudo pacman -Sy --needed --noconfirm base-devel + cd /tmp + rm -rf yay-bin + git clone https://aur.archlinux.org/yay-bin.git + cd yay-bin + makepkg -si --noconfirm + cd - + rm -rf yay-bin + cd ~ +fi + +# Add fun and color to the pacman installer +if ! grep -q "ILoveCandy" /etc/pacman.conf; then + sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf +fi diff --git a/install/preflight/presentation.sh b/install/preflight/presentation.sh new file mode 100644 index 0000000..98957ae --- /dev/null +++ b/install/preflight/presentation.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +yay -S --noconfirm --needed gum python-terminaltexteffects diff --git a/logo.txt b/logo.txt new file mode 100644 index 0000000..47433aa --- /dev/null +++ b/logo.txt @@ -0,0 +1,10 @@ + ▄▄▄ + ▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███ +███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███ +███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███ +███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ + ▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀ + ███ █▀ diff --git a/migrations/1752081088.sh b/migrations/1752081088.sh index af35ff1..d72201f 100644 --- a/migrations/1752081088.sh +++ b/migrations/1752081088.sh @@ -1,2 +1,2 @@ echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)" -source ~/.local/share/omarchy/install/fix-fkeys.sh +source ~/.local/share/omarchy/install/config/fix-fkeys.sh diff --git a/migrations/1752091783.sh b/migrations/1752091783.sh index 9b1f70d..b66fd72 100644 --- a/migrations/1752091783.sh +++ b/migrations/1752091783.sh @@ -1,2 +1,2 @@ echo "Install Plymouth splash screen" -source "$HOME/.local/share/omarchy/install/plymouth.sh" +source "$HOME/.local/share/omarchy/install/login.sh" diff --git a/migrations/1752292967.sh b/migrations/1752292967.sh index 54e8d4c..ec8643a 100644 --- a/migrations/1752292967.sh +++ b/migrations/1752292967.sh @@ -14,6 +14,5 @@ if ! command -v uwsm &>/dev/null; then sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf" fi - omarchy-refresh-plymouth -y - source ~/.local/share/omarchy/install/login.sh + source ~/.local/share/omarchy/install/config/login.sh fi diff --git a/migrations/1752709610.sh b/migrations/1752709610.sh index e220d58..7d1136f 100644 --- a/migrations/1752709610.sh +++ b/migrations/1752709610.sh @@ -1,2 +1,2 @@ echo "Enable ufw firewall" -source ~/.local/share/omarchy/install/firewall.sh +source ~/.local/share/omarchy/install/development/firewall.sh diff --git a/migrations/1752983008.sh b/migrations/1752983008.sh index 672ca78..a18b072 100644 --- a/migrations/1752983008.sh +++ b/migrations/1752983008.sh @@ -1,5 +1,7 @@ -echo "Add missing installation of Zoom" +if [[ ! -f ~/.local/state/omarchy/bare.mode ]]; then + echo "Add missing installation of Zoom" -if ! command -v zoom &>/dev/null; then - yay -S --noconfirm --needed zoom + if ! command -v zoom &>/dev/null; then + yay -S --noconfirm --needed zoom + fi fi diff --git a/migrations/1753138691.sh b/migrations/1753138691.sh index b37208f..04012e4 100644 --- a/migrations/1753138691.sh +++ b/migrations/1753138691.sh @@ -1,6 +1,6 @@ echo "Install swayOSD to show volume status" -if ! command -v swayosd &>/dev/null; then +if ! command -v swayosd-server &>/dev/null; then yay -S --noconfirm --needed swayosd setsid uwsm app -- swayosd-server &>/dev/null & fi diff --git a/migrations/1753302134.sh b/migrations/1753302134.sh new file mode 100644 index 0000000..022ce56 --- /dev/null +++ b/migrations/1753302134.sh @@ -0,0 +1,8 @@ +echo "Reload Waybar on unlock to prevent stacking" + +if ! grep -q 'on_unlock_cmd *= *pkill -SIGUSR2 waybar' ~/.config/hypr/hypridle.conf; then + sed -i '/^general[[:space:]]*{/,/^}/ { + /on_unlock_cmd *=/d + /^}$/ i\ on_unlock_cmd = pkill -SIGUSR2 waybar # prevent stacking of waybar when waking + }' ~/.config/hypr/hypridle.conf +fi diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh new file mode 100755 index 0000000..653938f --- /dev/null +++ b/migrations/1753352057.sh @@ -0,0 +1,20 @@ +echo "Add Chaotic-AUR to get compiled binaries" + +if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then + # Try installing Chaotic-AUR keyring and mirrorlist + if sudo pacman-key --recv-key 3056513887B78AEB && + sudo pacman-key --lsign-key 3056513887B78AEB && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then + + # Add Chaotic-AUR repo to pacman config + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + + # Refresh pacman package databases + sudo pacman -Sy + + chaotic_ok=1 + else + echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" + fi +fi diff --git a/migrations/1753468218.sh b/migrations/1753468218.sh new file mode 100644 index 0000000..bf2fab8 --- /dev/null +++ b/migrations/1753468218.sh @@ -0,0 +1,4 @@ +echo "Add Terminal Text Effects for rizzing Omarchy" +if ! yay -Qe python-terminaltexteffects &>/dev/null; then + yay -S --noconfirm --needed python-terminaltexteffects +fi diff --git a/migrations/1753495989.sh b/migrations/1753495989.sh new file mode 100644 index 0000000..b54f506 --- /dev/null +++ b/migrations/1753495989.sh @@ -0,0 +1,5 @@ +echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" +if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then + bash ~/.local/share/omarchy/install/config/timezones.sh + omarchy-refresh-waybar +fi diff --git a/migrations/1753558374.sh b/migrations/1753558374.sh new file mode 100644 index 0000000..b961d3e --- /dev/null +++ b/migrations/1753558374.sh @@ -0,0 +1,4 @@ +echo "Update Walker config to include = as the leader key for the calculator" +if ! grep -q 'prefix = "="' ~/.config/walker/config.toml; then + omarchy-refresh-walker +fi diff --git a/omarchy.svg b/omarchy.svg new file mode 100644 index 0000000..fcc164c --- /dev/null +++ b/omarchy.svg @@ -0,0 +1 @@ + diff --git a/themes/catppuccin-latte/hyprland.conf b/themes/catppuccin-latte/hyprland.conf index 3d8d7e9..afc429d 100644 --- a/themes/catppuccin-latte/hyprland.conf +++ b/themes/catppuccin-latte/hyprland.conf @@ -1,8 +1,4 @@ -# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - -$latte_blue = rgb(1e66f5) - general { - col.active_border = $latte_blue + col.active_border = rgb(1e66f5) } diff --git a/themes/catppuccin-latte/mako.ini b/themes/catppuccin-latte/mako.ini index b123ca6..d19a1c3 100644 --- a/themes/catppuccin-latte/mako.ini +++ b/themes/catppuccin-latte/mako.ini @@ -1,5 +1,5 @@ text-color=#4c4f69 -border-color=#dce0e8 +border-color=#1e66f5 background-color=#eff1f5 width=420 height=110 diff --git a/themes/catppuccin-latte/swayosd.css b/themes/catppuccin-latte/swayosd.css index 5b0eaea..c5f23aa 100644 --- a/themes/catppuccin-latte/swayosd.css +++ b/themes/catppuccin-latte/swayosd.css @@ -1,6 +1,5 @@ @define-color background-color #eff1f5; -@define-color border-color #4c4f69; +@define-color border-color #1e66f5; @define-color label #4c4f69; @define-color image #4c4f69; @define-color progress #4c4f69; - diff --git a/themes/catppuccin/hyprland.conf b/themes/catppuccin/hyprland.conf index dd59f04..46ff7e6 100644 --- a/themes/catppuccin/hyprland.conf +++ b/themes/catppuccin/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(c6d0f5) } diff --git a/themes/catppuccin/swayosd.css b/themes/catppuccin/swayosd.css index a25d38a..0ff80d2 100644 --- a/themes/catppuccin/swayosd.css +++ b/themes/catppuccin/swayosd.css @@ -1,6 +1,5 @@ @define-color background-color #24273a; @define-color border-color #c6d0f5; -@define-color label #c6d0f5; -@define-color image #c6d0f5; -@define-color progress #c6d0f5; - +@define-color label #cad3f5; +@define-color image #cad3f5; +@define-color progress #cad3f5; diff --git a/themes/everforest/hyprland.conf b/themes/everforest/hyprland.conf index 67b51cd..e88f030 100644 --- a/themes/everforest/hyprland.conf +++ b/themes/everforest/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(d3c6aa) } diff --git a/themes/gruvbox/hyprland.conf b/themes/gruvbox/hyprland.conf index 52331e8..85dbf14 100644 --- a/themes/gruvbox/hyprland.conf +++ b/themes/gruvbox/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(a89984) } diff --git a/themes/gruvbox/swayosd.css b/themes/gruvbox/swayosd.css index 614748f..16240ae 100644 --- a/themes/gruvbox/swayosd.css +++ b/themes/gruvbox/swayosd.css @@ -1,5 +1,5 @@ @define-color background-color #282828; -@define-color border-color #ebdbb2; +@define-color border-color #a89984; @define-color label #ebdbb2; @define-color image #ebdbb2; @define-color progress #ebdbb2; diff --git a/themes/kanagawa/hyprland.conf b/themes/kanagawa/hyprland.conf index 49c58d7..4972f14 100644 --- a/themes/kanagawa/hyprland.conf +++ b/themes/kanagawa/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(dcd7ba) } diff --git a/themes/matte-black/hyprland.conf b/themes/matte-black/hyprland.conf index 13020af..bb90b38 100644 --- a/themes/matte-black/hyprland.conf +++ b/themes/matte-black/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(8A8A8D) } diff --git a/themes/matte-black/neovim.lua b/themes/matte-black/neovim.lua index 1ecffe3..7b3f72b 100644 --- a/themes/matte-black/neovim.lua +++ b/themes/matte-black/neovim.lua @@ -1,192 +1,9 @@ return { - "EdenEast/nightfox.nvim", - lazy = false, - priority = 1000, - dependencies = { - "folke/snacks.nvim", - "nvim-tree/nvim-web-devicons", - "nvim-lualine/lualine.nvim", - }, - - config = function() - local nightfox = require('nightfox') - local Shade = require('nightfox.lib.shade') - local c = require('nightfox.lib.color') - - local matte_black_palette = { - -- Base "Matte Black" Palette Overrides - bg0 = "#0D0D0D", bg1 = "#121212", bg2 = "#1E1E1E", bg3 = "#2C2C2C", bg4 = "#333333", - fg0 = "#FFFFFF", fg1 = "#EAEAEA", fg2 = "#BEBEBE", fg3 = "#8A8A8D", - sel0 = "#2C2C2C", - sel1 = c.from_hex("#2C2C2C"):blend(c.from_hex("#F59E0B"), 0.2):to_css(), - comment = "#8A8A8D", - 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" }, - CursorLine = { bg = "palette.bg2" }, - Normal = { fg = "palette.fg1" }, - - -- 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, - + { "tahayvr/matteblack.nvim", lazy = false, priority = 1000 }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "matteblack", + }, + }, } \ No newline at end of file diff --git a/themes/matte-black/swayosd.css b/themes/matte-black/swayosd.css index 08c28d7..3f24dbb 100644 --- a/themes/matte-black/swayosd.css +++ b/themes/matte-black/swayosd.css @@ -1,6 +1,6 @@ @define-color background-color #121212; -@define-color border-color #EAEAEA; -@define-color label #EAEAEA; -@define-color image #EAEAEA; -@define-color progress #EAEAEA; +@define-color border-color #8A8A8D; +@define-color label #8A8A8D; +@define-color image #8A8A8D; +@define-color progress #8A8A8D; diff --git a/themes/nord/hyprland.conf b/themes/nord/hyprland.conf index e5fd3b8..bce729f 100644 --- a/themes/nord/hyprland.conf +++ b/themes/nord/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(D8DEE9) } diff --git a/themes/rose-pine/hyprland.conf b/themes/rose-pine/hyprland.conf index c39b9e7..ae0f2b6 100644 --- a/themes/rose-pine/hyprland.conf +++ b/themes/rose-pine/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(575279) } diff --git a/themes/tokyo-night/hyprland.conf b/themes/tokyo-night/hyprland.conf index 0611c0a..f0b824a 100644 --- a/themes/tokyo-night/hyprland.conf +++ b/themes/tokyo-night/hyprland.conf @@ -1,5 +1,4 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg } diff --git a/themes/tokyo-night/swayosd.css b/themes/tokyo-night/swayosd.css index 14c0dcd..1300b6a 100644 --- a/themes/tokyo-night/swayosd.css +++ b/themes/tokyo-night/swayosd.css @@ -1,6 +1,6 @@ @define-color background-color #1a1b26; @define-color border-color #33ccff; -@define-color label #33ccff; -@define-color image #33ccff; -@define-color progress #33ccff; +@define-color label #a9b1d6; +@define-color image #a9b1d6; +@define-color progress #a9b1d6;