48 Commits

Author SHA1 Message Date
37f4d4a411 More tweaks to the animations 2025-07-25 15:30:49 -04:00
c4a08c3c25 Try to do another header 2025-07-25 15:27:10 -04:00
0c36142f8a Default to expand but allow others 2025-07-25 15:26:38 -04:00
65a5bbad82 Setup presentation tooling and functions as a separate step 2025-07-25 15:25:39 -04:00
165c940df2 A bit more effects 2025-07-25 15:21:36 -04:00
824ba78000 Let's try just showing the logo at identification time 2025-07-25 15:14:05 -04:00
6d3df204bc Use terminal text effects for extra rizz 2025-07-25 15:05:41 -04:00
1c14b8eba2 Have to check for the right command 2025-07-25 14:30:18 -04:00
e01c1bb139 It's all setup 2025-07-25 14:29:08 -04:00
466fe6caba Merge pull request #321 from saullrb/dev
Add Chaotic-AUR setup
2025-07-25 14:28:25 -04:00
10f71885b2 No longer needed 2025-07-25 13:43:32 -04:00
19c0d2887e Reorder 2025-07-25 13:04:53 -04:00
f2b58c2b8e Add dedicated omarchy-setup-steam script 2025-07-25 13:02:55 -04:00
46d135025e Center steam window to prevent it from being off screen 2025-07-25 13:02:55 -04:00
79df336854 Merge pull request #333 from tahayvr/matteblack-plugin
matteblack.nvim is now a neovim colorscheme
2025-07-25 12:40:56 -04:00
a76c7ee33b add matteblack plugin for neovim 2025-07-24 17:45:31 -07:00
674c5bfdda Use Arch icon for this instead too for now 2025-07-24 18:11:03 -04:00
6cd8955409 Merge pull request #322 from benhoman/screen-cmd-output-dir
allow override of screenshot/screenrecord output
2025-07-24 18:07:38 -04:00
db63219398 A few more color corrections 2025-07-24 18:05:08 -04:00
42d80f2ce7 Consistent colors 2025-07-24 18:03:00 -04:00
4578d4e418 Cleanup files from needless comments 2025-07-24 18:02:00 -04:00
7242a57c18 Fix more swayosd colors 2025-07-24 18:00:00 -04:00
2d9ed8720b Match color to mako 2025-07-24 17:39:06 -04:00
205bcd7be8 Hyprland fullscreen may conflict with the app-specific fullscreen, so need a separate key
This is the case with Typora which will retain its ugly menu bar when
Hyprland does the fullscreening, but be beautifully bare when its doing
its own fullscreening. The best would be if we could make F11 work such
that the app got a shot at fullscreening first, then if it wasn't
capable, we let Hyprland do it. But not sure there's a way to do that?
2025-07-24 16:13:36 -04:00
70da2ecbe8 allow override of screenshot/screenrecord output 2025-07-24 11:39:12 -04:00
66b0fa0227 add chaotic aur
add chaotic aur repo

add noconfirm

only add chaotic aur for x86-64 arch
2025-07-24 07:55:56 -03:00
d2fffc40ea Add migration to prevent Waybar stacking 2025-07-23 16:26:13 -04:00
8884cc7a5c Prevent stacking of waybars after unlock by SIGUSR2'ing it
Bit crude, but better than a full kill.
Closes #196
2025-07-23 16:22:14 -04:00
a4e7f41798 Merge pull request #305 from basecamp/dev
Omarchy v1.6.1
2025-07-23 14:56:04 -04:00
8908ce91f8 Trailing slash 2025-07-23 14:55:00 -04:00
5458b46584 Merge pull request #304 from basecamp/increase-pamlockout-limit
Increase pamlimit lockout
2025-07-23 14:39:22 -04:00
9b7908d17b Ensure we restart swayosd after setting up theming 2025-07-23 13:03:47 -04:00
a12cd97922 Increase pamlimit lockout 2025-07-23 12:59:32 -04:00
9231148cd7 Increase pamlimit lockout 2025-07-23 12:36:57 -04:00
c4c9cdc0f6 Only load inputrc for interactive terminals
Fixes claude-code warnings and is more proper anyway.
Closes #282
2025-07-23 12:03:53 -04:00
98f848d4a0 Fix the vibe coding hallucinations from swayosd theming 2025-07-23 11:53:04 -04:00
c36d76bb1c Merge pull request #288 from aifrim/swayosd-cfg
full swayosd integration
2025-07-23 11:46:15 -04:00
71ccf9a367 Merge pull request #294 from precision/dev
Update media bindings to only display OSD on the focused display
2025-07-23 11:42:33 -04:00
e1f2cc4d3d Merge pull request #297 from spdawson/feat/add-mariadb-to-docker-databases
Add MariaDB to Docker databases
2025-07-23 11:42:02 -04:00
08f187b4ea Include satty in the list of windows that get a minimum size
Fixes #299
Co-authored-by: @mtk3d
2025-07-23 11:39:39 -04:00
35e1d1233e Merge pull request #302 from ludo237/master
fix: walker css url
2025-07-23 11:38:10 -04:00
8f569921b3 Merge pull request #295 from abenz1267/dev
force package database refresh after adding multilib repo
2025-07-23 11:37:51 -04:00
3933cd7c89 fix: walker css url
there is an extra `/` that should not be ehre
2025-07-23 15:15:53 +02:00
ceb44d7aa1 feat: Add MariaDB to Docker databases 2025-07-23 10:36:36 +01:00
fd56404407 force package database refresh after adding multilib repo 2025-07-23 09:43:51 +02:00
d2763225c3 Update the media bindings to only display on the currently focused
monitor.

sway-osd can also do playerctl
2025-07-22 23:28:17 -04:00
2b2103fb66 Put Sunset Lake first for Tokyo Night 2025-07-22 22:19:29 -04:00
1ebf88bac0 full swayosd integration 2025-07-23 01:51:04 +03:00
57 changed files with 270 additions and 284 deletions

View File

@ -4,7 +4,8 @@ OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/de
PATH="$PATH:$HOME/.local/share/omarchy/bin" PATH="$PATH:$HOME/.local/share/omarchy/bin"
show_ascii_art() { show_ascii_art() {
source ~/.local/share/omarchy/ansi.sh clear
tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 expand
echo " $OMARCHY_VERSION" echo " $OMARCHY_VERSION"
} }
@ -24,12 +25,13 @@ main_menu() {
update_menu() { update_menu() {
show_ascii_art show_ascii_art
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "Desktop apps" "Back") local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "SwayOSD" "Desktop apps" "Back")
local commands=( local commands=(
"omarchy-update" "omarchy-update"
"omarchy-refresh-waybar" "omarchy-refresh-waybar"
"omarchy-refresh-walker" "omarchy-refresh-walker"
"omarchy-refresh-plymouth" "omarchy-refresh-plymouth"
"omarchy-refresh-swayosd"
"omarchy-refresh-applications" "omarchy-refresh-applications"
"main_menu" "main_menu"
) )
@ -94,9 +96,10 @@ remove_theme_prompt() {
setup_menu() { setup_menu() {
show_ascii_art 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=( local commands=(
"omarchy-setup-dropbox" "omarchy-setup-dropbox"
"omarchy-setup-steam"
"setup_docker_dbs" "setup_docker_dbs"
"omarchy-setup-fingerprint" "omarchy-setup-fingerprint"
"omarchy-setup-fido2" "omarchy-setup-fido2"
@ -119,15 +122,16 @@ setup_menu() {
} }
setup_docker_dbs() { setup_docker_dbs() {
options=("MySQL" "Redis" "PostgreSQL") options=("MariaDB" "MySQL" "Redis" "PostgreSQL")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
if [[ -n "$choices" ]]; then if [[ -n "$choices" ]]; then
for db in $choices; do for db in $choices; do
case $db in case $db in
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 ;; 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 ;; 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 esac
done done
fi fi

View File

@ -2,8 +2,10 @@
# Set recorder based on GPU # Set recorder based on GPU
OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-$HOME/Videos}"
screenrecording() { 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 notify-send "Screen recording starting..." -t 1000
sleep 1 sleep 1

View File

@ -1,8 +1,10 @@
#!/bin/bash #!/bin/bash
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-$HOME/Pictures}"
hyprshot -m ${1:-region} --raw | hyprshot -m ${1:-region} --raw |
satty --filename - \ 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 \ --early-exit \
--actions-on-enter save-to-clipboard \ --actions-on-enter save-to-clipboard \
--save-after-copy \ --save-after-copy \

13
bin/omarchy-refresh-swayosd Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
cp -f ~/.config/swayosd/config.toml ~/.config/swayosd/config.toml.bak 2>/dev/null
cp -f ~/.local/share/omarchy/config/swayosd/config.toml ~/.config/swayosd/ 3>/dev/null
if cmp -s ~/.config/swayosd/config.toml.bak ~/.config/swayosd/config.toml; then
rm ~/.config/swayosd//config.toml.bak
else
echo -e "\e[31mExisting .config/swayosd/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &

9
bin/omarchy-setup-steam Executable file
View File

@ -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 &

View File

@ -12,9 +12,6 @@ REPO_URL="$1"
THEMES_DIR="$HOME/.config/omarchy/themes" THEMES_DIR="$HOME/.config/omarchy/themes"
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//') THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
THEME_PATH="$THEMES_DIR/$THEME_NAME" 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 # Remove existing theme if present
if [ -d "$THEME_PATH" ]; then if [ -d "$THEME_PATH" ]; then
@ -27,10 +24,5 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then
exit 1 exit 1
fi 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 # Apply the new theme with omarchy-theme-set
omarchy-theme-set $THEME_NAME omarchy-theme-set $THEME_NAME

View File

@ -35,11 +35,11 @@ fi
# Trigger alacritty config reload # Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml" touch "$HOME/.config/alacritty/alacritty.toml"
# Trigger btop config reload
pkill -SIGUSR2 btop
# Restart components to apply new theme # Restart components to apply new theme
pkill -SIGUSR2 btop
pkill -SIGUSR2 waybar pkill -SIGUSR2 waybar
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &
makoctl reload makoctl reload
hyprctl reload hyprctl reload

12
boot.sh
View File

@ -1,17 +1,5 @@
#!/bin/bash #!/bin/bash
ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
███ ███ '
echo -e "\n$ansi_art\n"
sudo pacman -Sy --noconfirm --needed git sudo pacman -Sy --noconfirm --needed git
echo -e "\nCloning Omarchy..." echo -e "\nCloning Omarchy..."

View File

@ -2,6 +2,7 @@ general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend. 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. 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 { listener {

View File

@ -0,0 +1,4 @@
[server]
show_percentage = true
max_volume = 150
style = "./style.css"

28
config/swayosd/style.css Normal file
View File

@ -0,0 +1,28 @@
@import "../omarchy/current/theme/swayosd.css";
window {
border-radius: 0;
opacity: 0.97;
border: 2px solid @border-color;
background-color: @background-color;
}
label {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 11pt;
color: @label;
}
image {
color: @image;
}
progressbar {
border-radius: 0;
}
progress {
background-color: @progress;
}

View File

@ -4,4 +4,4 @@ source ~/.local/share/omarchy/default/bash/functions
source ~/.local/share/omarchy/default/bash/prompt source ~/.local/share/omarchy/default/bash/prompt
source ~/.local/share/omarchy/default/bash/init source ~/.local/share/omarchy/default/bash/init
source ~/.local/share/omarchy/default/bash/envs source ~/.local/share/omarchy/default/bash/envs
bind -f ~/.local/share/omarchy/default/bash/inputrc [[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc

View File

@ -1,13 +1,16 @@
# Only display the OSD on the currently focused monitor
$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
# Laptop multimedia keys for volume and LCD brightness (with OSD) # Laptop multimedia keys for volume and LCD brightness (with OSD)
bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise bindel = ,XF86AudioRaiseVolume, exec, $osdclient --output-volume raise
bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower bindel = ,XF86AudioLowerVolume, exec, $osdclient --output-volume lower
bindel = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle bindel = ,XF86AudioMute, exec, $osdclient --output-volume mute-toggle
bindel = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle bindel = ,XF86AudioMicMute, exec, $osdclient --input-volume mute-toggle
bindel = ,XF86MonBrightnessUp, exec, swayosd-client --brightness raise bindel = ,XF86MonBrightnessUp, exec, $osdclient --brightness raise
bindel = ,XF86MonBrightnessDown, exec, swayosd-client --brightness lower bindel = ,XF86MonBrightnessDown, exec, $osdclient --brightness lower
# Requires playerctl # Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next bindl = , XF86AudioNext, exec, $osdclient --playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause bindl = , XF86AudioPause, exec, $osdclient --playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, $osdclient --playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous bindl = , XF86AudioPrev, exec, $osdclient --playerctl previous

View File

@ -5,7 +5,7 @@ bind = SUPER, W, killactive,
bind = SUPER, J, togglesplit, # dwindle bind = SUPER, J, togglesplit, # dwindle
bind = SUPER, P, pseudo, # dwindle bind = SUPER, P, pseudo, # dwindle
bind = SUPER, V, togglefloating, bind = SUPER, V, togglefloating,
bind = , F11, fullscreen, 0 bind = SHIFT, F11, fullscreen, 0
# Move focus with mainMod + arrow keys # Move focus with mainMod + arrow keys
bind = SUPER, left, movefocus, l bind = SUPER, left, movefocus, l

View File

@ -6,7 +6,7 @@ windowrule = tile, class:^(Chromium)$
# Float and center settings and previews # Float and center settings and previews
windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer)$ windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$
windowrule = size 645 450, class:Omarchy windowrule = size 645 450, class:Omarchy
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
@ -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) windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
# Float Steam, fullscreen RetroArch # Float Steam, fullscreen RetroArch
windowrule = float, class:^(steam)$ windowrule = float, class:steam
windowrule = center, class:steam
windowrule = fullscreen, class:^(com.libretro.RetroArch)$ windowrule = fullscreen, class:^(com.libretro.RetroArch)$
# Just dash of opacity # Just dash of opacity

View File

@ -1,2 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css"); @import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css"); @import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -1,2 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css"); @import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css"); @import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -1,2 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css"); @import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css"); @import url("file://~/.config/omarchy/current/theme/walker.css");

37
install/1-aur.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/bash
# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages
if [[ "$(uname -m)" == "x86_64" ]]; then
# Import Chaotic-AUR key
sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key 3056513887B78AEB
# Install Chaotic-AUR keyring and mirrorlist
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'
# 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
# Install yay
sudo pacman -S --needed --noconfirm yay
else
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 ~
fi
fi
# Add fun and color to the pacman installer
sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf

View File

@ -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

15
install/2-presentation.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# Need gum to query for input
yay -S --noconfirm --needed gum python-terminaltexteffects
show_logo() {
clear
tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand}
echo -e ""
}
show_subtext() {
echo "$1" | tte --frame-rate ${3:-640} ${2:-wipe}
echo -e ""
}

View File

@ -1,10 +1,7 @@
#!/bin/bash #!/bin/bash
# Need gum to query for input show_logo beams 240
yay -S --noconfirm --needed gum show_subtext "Let's install Omarchy!"
# 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_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ")
export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ")

View File

@ -1,5 +1,8 @@
#!/bin/bash #!/bin/bash
show_logo
show_subtext "Let's install basic terminal tools..."
yay -S --noconfirm --needed \ yay -S --noconfirm --needed \
wget curl unzip inetutils impala \ wget curl unzip inetutils impala \
fd eza fzf ripgrep zoxide bat jq \ fd eza fzf ripgrep zoxide bat jq \

View File

@ -3,6 +3,9 @@
# Copy over Omarchy configs # Copy over Omarchy configs
cp -R ~/.local/share/omarchy/config/* ~/.config/ cp -R ~/.local/share/omarchy/config/* ~/.config/
# Use default bashrc from Omarchy
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
# 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
@ -13,8 +16,9 @@ sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true sudo gpgconf --launch dirmngr || true
# Use default bashrc from Omarchy # Increase lockout limit to 10 and decrease timeout to 2 minutes
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
# Set common git aliases # Set common git aliases
git config --global alias.co checkout git config --global alias.co checkout

View File

@ -35,6 +35,9 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
fi fi
# force package database refresh
sudo pacman -Syy
# Install packages # Install packages
PACKAGES_TO_INSTALL=( PACKAGES_TO_INSTALL=(
"${KERNEL_HEADERS}" "${KERNEL_HEADERS}"

View File

@ -15,7 +15,7 @@ for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes
# Set initial theme # Set initial theme
mkdir -p ~/.config/omarchy/current mkdir -p ~/.config/omarchy/current
ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme
ln -snf ~/.config/omarchy/current/theme/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background ln -snf ~/.config/omarchy/current/theme/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png ~/.config/omarchy/current/background
# Set specific app links for current theme # Set specific app links for current theme
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

View File

@ -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 "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 "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 "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 fi

View File

@ -1,6 +1,4 @@
#!/bin/bash ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ ███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███
@ -8,7 +6,4 @@ ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
███ ███ ' ███ ███
clear
echo -e "\n$ansi_art\n"

View File

@ -1,6 +1,6 @@
echo "Install swayOSD to show volume status" 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 yay -S --noconfirm --needed swayosd
setsid uwsm app -- swayosd-server &>/dev/null & setsid uwsm app -- swayosd-server &>/dev/null &
fi fi

9
migrations/1753224615.sh Executable file
View File

@ -0,0 +1,9 @@
echo "Adding SwayOSD theming"
if [[ ! -d ~/.config/swayosd ]]; then
mkdir -p ~/.config/swayosd
cp -r ~/.local/share/omarchy/config/swayosd/* ~/.config/swayosd/
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &
fi

6
migrations/1753286633.sh Normal file
View File

@ -0,0 +1,6 @@
echo "Increase lockout limit to 10, decrease timeout to 2 minutes"
if ! grep -q 'deny=10' /etc/pam.d/system-auth; then
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
fi

8
migrations/1753302134.sh Normal file
View File

@ -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

17
migrations/1753352057.sh Executable file
View File

@ -0,0 +1,17 @@
echo "Add Chaotic-AUR to get compiled binaries"
if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then
# Import Chaotic-AUR key
sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key 3056513887B78AEB
# Install Chaotic-AUR keyring and mirrorlist
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'
# 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
fi

4
migrations/1753468218.sh Normal file
View File

@ -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

View File

@ -1,8 +1,4 @@
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
$latte_blue = rgb(1e66f5)
general { general {
col.active_border = $latte_blue col.active_border = rgb(1e66f5)
} }

View File

@ -1,5 +1,5 @@
text-color=#4c4f69 text-color=#4c4f69
border-color=#dce0e8 border-color=#1e66f5
background-color=#eff1f5 background-color=#eff1f5
width=420 width=420
height=110 height=110

View File

@ -0,0 +1,5 @@
@define-color background-color #eff1f5;
@define-color border-color #1e66f5;
@define-color label #4c4f69;
@define-color image #4c4f69;
@define-color progress #4c4f69;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(c6d0f5) col.active_border = rgb(c6d0f5)
} }

View File

@ -0,0 +1,5 @@
@define-color background-color #24273a;
@define-color border-color #c6d0f5;
@define-color label #cad3f5;
@define-color image #cad3f5;
@define-color progress #cad3f5;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(d3c6aa) col.active_border = rgb(d3c6aa)
} }

View File

@ -0,0 +1,6 @@
@define-color background-color #2d353b;
@define-color border-color #d3c6aa;
@define-color label #d3c6aa;
@define-color image #d3c6aa;
@define-color progress #d3c6aa;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(a89984) col.active_border = rgb(a89984)
} }

View File

@ -0,0 +1,6 @@
@define-color background-color #282828;
@define-color border-color #a89984;
@define-color label #ebdbb2;
@define-color image #ebdbb2;
@define-color progress #ebdbb2;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(dcd7ba) col.active_border = rgb(dcd7ba)
} }

View File

@ -0,0 +1,6 @@
@define-color background-color #1f1f28;
@define-color border-color #dcd7ba;
@define-color label #dcd7ba;
@define-color image #dcd7ba;
@define-color progress #dcd7ba;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(8A8A8D) col.active_border = rgb(8A8A8D)
} }

View File

@ -1,192 +1,9 @@
return { return {
"EdenEast/nightfox.nvim", { "tahayvr/matteblack.nvim", lazy = false, priority = 1000 },
lazy = false, {
priority = 1000, "LazyVim/LazyVim",
dependencies = { opts = {
"folke/snacks.nvim", colorscheme = "matteblack",
"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,
} }

View File

@ -0,0 +1,6 @@
@define-color background-color #121212;
@define-color border-color #8A8A8D;
@define-color label #8A8A8D;
@define-color image #8A8A8D;
@define-color progress #8A8A8D;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(D8DEE9) col.active_border = rgb(D8DEE9)
} }

6
themes/nord/swayosd.css Normal file
View File

@ -0,0 +1,6 @@
@define-color background-color #2E3440;
@define-color border-color #D8DEE9;
@define-color label #D8DEE9;
@define-color image #D8DEE9;
@define-color progress #D8DEE9;

View File

@ -1,4 +1,3 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(575279) col.active_border = rgb(575279)
} }

View File

@ -0,0 +1,6 @@
@define-color background-color #faf4ed;
@define-color border-color #575279;
@define-color label #575279;
@define-color image #575279;
@define-color progress #575279;

View File

@ -1,5 +1,4 @@
general { general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
} }

View File

@ -0,0 +1,6 @@
@define-color background-color #1a1b26;
@define-color border-color #33ccff;
@define-color label #a9b1d6;
@define-color image #a9b1d6;
@define-color progress #a9b1d6;