Add different themes

This commit is contained in:
David Heinemeier Hansson
2025-06-18 21:17:59 +02:00
parent 0269ee55d9
commit e09c0477aa
20 changed files with 362 additions and 113 deletions

27
bin/omarchy-theme-next Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
THEMES_DIR="$HOME/.config/omarchy/themes/"
NEXT_THEME_FILE="$HOME/.cache/next_theme_index"
THEMES=($(find "$THEMES_DIR" -mindepth 1 | sort))
TOTAL=${#THEMES[@]}
if [[ ! -f "$NEXT_THEME_FILE" ]]; then
INDEX=0
else
INDEX=$(<"$NEXT_THEME_FILE")
fi
# Save next index (wrap around)
echo "$(((INDEX + 1) % TOTAL))" >"$NEXT_THEME_FILE"
# Set new theme
NEW_THEME=${THEMES[$INDEX]}
ln -nsf $NEW_THEME ~/.config/omarchy/current-theme
# Install theme backgrounds
source ~/.config/omarchy/current-theme/backgrounds.sh
# Restart apps for new theme
pkill -SIGRTMIN+10 waybar
swaybg-next

View File

@ -2,7 +2,7 @@
# Cycles through the background images available # Cycles through the background images available
BACKGROUNDS_DIR="$HOME/.local/share/backgrounds" BACKGROUNDS_DIR="$HOME/.config/omarchy/current-backgrounds/"
NEXT_BACKGROUND_FILE="$HOME/.cache/next_background_index" NEXT_BACKGROUND_FILE="$HOME/.cache/next_background_index"
BACKGROUNDS=($(find "$BACKGROUNDS_DIR" -type f | sort)) BACKGROUNDS=($(find "$BACKGROUNDS_DIR" -type f | sort))

View File

@ -1,3 +1,5 @@
general.import = [ "~/.config/omarchy/current-theme/alacritty.toml" ]
[env] [env]
TERM = "xterm-256color" TERM = "xterm-256color"
@ -17,34 +19,3 @@ opacity = 0.98
bindings = [ bindings = [
{ key = "F11", action = "ToggleFullscreen" } { key = "F11", action = "ToggleFullscreen" }
] ]
[colors]
[colors.primary]
background = '#1a1b26'
foreground = '#a9b1d6'
# Normal colors
[colors.normal]
black = '#32344a'
red = '#f7768e'
green = '#9ece6a'
yellow = '#e0af68'
blue = '#7aa2f7'
magenta = '#ad8ee6'
cyan = '#449dab'
white = '#787c99'
# Bright colors
[colors.bright]
black = '#444b6a'
red = '#ff7a93'
green = '#b9f27c'
yellow = '#ff9e64'
blue = '#7da6ff'
magenta = '#bb9af7'
cyan = '#0db9d7'
white = '#acb0d0'
[colors.selection]
background = '#7aa2f7'

View File

@ -26,3 +26,5 @@
.body { .body {
color: #a6adc8; color: #a6adc8;
} }
@import "../omarchy/current-theme/swaync.css";

View File

@ -4,8 +4,6 @@
min-height: 0; min-height: 0;
font-family: CaskaydiaMono Nerd Font; font-family: CaskaydiaMono Nerd Font;
font-size: 12px; font-size: 12px;
color: #cdd6f4;
background-color: #1a1b26;
} }
#workspaces { #workspaces {
@ -29,7 +27,6 @@
margin-right: 13px; margin-right: 13px;
} }
tooltip { tooltip {
padding: 2px; padding: 2px;
} }
@ -37,3 +34,5 @@ tooltip {
tooltip label { tooltip label {
padding: 2px; padding: 2px;
} }
@import "../omarchy/current-theme/waybar.css";

View File

@ -1,73 +0,0 @@
@define-color mauve #cba6f7;
@define-color text #cdd6f4;
@define-color base #1e1e2e;
* {
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 {
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: @mauve;
}
#entry image {
-gtk-icon-transform: scale(0.7);
}

1
config/wofi/style.css Symbolic link
View File

@ -0,0 +1 @@
/home/dhh/.config/omarchy/current-theme/wofi.css

View File

@ -1,4 +0,0 @@
mkdir -p ~/.local/share/backgrounds
gum spin --title "Downloading background image..." -- curl -sL -o ~/.local/share/backgrounds/1-Milad-Fakurian-Abstract-Purple-Blue.jpg https://images.unsplash.com/photo-1620207418302-439b387441b0
gum spin --title "Downloading background image..." -- curl -sL -o ~/.local/share/backgrounds/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg https://images.unsplash.com/photo-1651870364199-fc5f9f46ac85
gum spin --title "Downloading background image..." -- curl -sL -o ~/.local/share/backgrounds/3-Jr-Korpa-Abstract-Purple-Blue.jpg https://images.unsplash.com/flagged/photo-1567400358593-9e6382752ea2

View File

@ -4,3 +4,16 @@ sudo pacman -S --noconfirm kvantum-qt5
# Prefer dark mode everything # Prefer dark mode everything
sudo pacman -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme sudo pacman -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme
gsettings set org.gnome.desktop.interface color-scheme 'prefer-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
# Set initial theme
ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current-theme
source ~/.local/share/omarchy/themes/tokyo-night/backgrounds.sh
ln -snf ~/.config/omarchy/backgrounds/tokyo-night ~/.config/omarchy/current-backgrounds
# 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

View File

@ -0,0 +1,76 @@
[colors.primary]
background = "#24273a"
foreground = "#cad3f5"
dim_foreground = "#8087a2"
bright_foreground = "#cad3f5"
[colors.cursor]
text = "#24273a"
cursor = "#f4dbd6"
[colors.vi_mode_cursor]
text = "#24273a"
cursor = "#b7bdf8"
[colors.search.matches]
foreground = "#24273a"
background = "#a5adcb"
[colors.search.focused_match]
foreground = "#24273a"
background = "#a6da95"
[colors.footer_bar]
foreground = "#24273a"
background = "#a5adcb"
[colors.hints.start]
foreground = "#24273a"
background = "#eed49f"
[colors.hints.end]
foreground = "#24273a"
background = "#a5adcb"
[colors.selection]
text = "#24273a"
background = "#f4dbd6"
[colors.normal]
black = "#494d64"
red = "#ed8796"
green = "#a6da95"
yellow = "#eed49f"
blue = "#8aadf4"
magenta = "#f5bde6"
cyan = "#8bd5ca"
white = "#b8c0e0"
[colors.bright]
black = "#5b6078"
red = "#ed8796"
green = "#a6da95"
yellow = "#eed49f"
blue = "#8aadf4"
magenta = "#f5bde6"
cyan = "#8bd5ca"
white = "#a5adcb"
[colors.dim]
black = "#494d64"
red = "#ed8796"
green = "#a6da95"
yellow = "#eed49f"
blue = "#8aadf4"
magenta = "#f5bde6"
cyan = "#8bd5ca"
white = "#b8c0e0"
[[colors.indexed_colors]]
index = 16
color = "#f5a97f"
[[colors.indexed_colors]]
index = 17
color = "#f4dbd6"

View File

@ -0,0 +1,8 @@
BACKGROUNDS_DIR=~/.config/omarchy/backgrounds/catppucin
if [[ -z $BACKGROUNDS_DIR ]]; then
mkdir -p $BACKGROUNDS_DIR
gum spin --title "Downloading background image..." -- curl -sL -o $BACKGROUNDS_DIR/1-Milad-Fakurian-Abstract-Purple-Blue.jpg https://images.unsplash.com/photo-1620207418302-439b387441b0
gum spin --title "Downloading background image..." -- curl -sL -o $BACKGROUNDS_DIR/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg https://images.unsplash.com/photo-1651870364199-fc5f9f46ac85
gum spin --title "Downloading background image..." -- curl -sL -o $BACKGROUNDS_DIR/3-Jr-Korpa-Abstract-Purple-Blue.jpg https://images.unsplash.com/flagged/photo-1567400358593-9e6382752ea2
fi

View File

@ -0,0 +1,8 @@
return {
{
"LazyVim/LazyVim",
opts = {
colorscheme = "catppuccin",
},
},
}

View File

@ -0,0 +1,10 @@
.notification {
color: #cdd6f4;
background-color: rgba(26, 27, 38, 0.95);
border: 2px solid #313244;
}
.body {
color: #a6adc8;
}

View File

@ -0,0 +1,5 @@
* {
color: #cdd6f4;
background-color: #1a1b26;
}

View File

@ -0,0 +1,73 @@
@define-color selected-text #cba6f7;
@define-color text #cdd6f4;
@define-color base #1e1e2e;
* {
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 {
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);
}

View File

@ -0,0 +1,29 @@
[colors]
[colors.primary]
background = '#1a1b26'
foreground = '#a9b1d6'
# Normal colors
[colors.normal]
black = '#32344a'
red = '#f7768e'
green = '#9ece6a'
yellow = '#e0af68'
blue = '#7aa2f7'
magenta = '#ad8ee6'
cyan = '#449dab'
white = '#787c99'
# Bright colors
[colors.bright]
black = '#444b6a'
red = '#ff7a93'
green = '#b9f27c'
yellow = '#ff9e64'
blue = '#7da6ff'
magenta = '#bb9af7'
cyan = '#0db9d7'
white = '#acb0d0'
[colors.selection]
background = '#7aa2f7'

View File

@ -0,0 +1,8 @@
BACKGROUNDS_DIR=~/.config/omarchy/backgrounds/tokyo-night
if [[ -z $BACKGROUNDS_DIR ]]; then
mkdir -p $BACKGROUNDS_DIR
gum spin --title "Downloading background image..." -- curl -sL -o $BACKGROUNDS_DIR/1-Milad-Fakurian-Abstract-Purple-Blue.jpg https://images.unsplash.com/photo-1620207418302-439b387441b0
gum spin --title "Downloading background image..." -- curl -sL -o $BACKGROUNDS_DIR/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg https://images.unsplash.com/photo-1651870364199-fc5f9f46ac85
gum spin --title "Downloading background image..." -- curl -sL -o $BACKGROUNDS_DIR/3-Jr-Korpa-Abstract-Purple-Blue.jpg https://images.unsplash.com/flagged/photo-1567400358593-9e6382752ea2
fi

View File

@ -0,0 +1,8 @@
return {
{
"LazyVim/LazyVim",
opts = {
colorscheme = "tokyonight",
},
},
}

View File

@ -0,0 +1,10 @@
.notification {
color: #cdd6f4;
background-color: rgba(26, 27, 38, 0.95);
border: 2px solid #313244;
}
.body {
color: #a6adc8;
}

View File

@ -0,0 +1,5 @@
* {
color: #cdd6f4;
background-color: #1a1b26;
}

View File

@ -0,0 +1,73 @@
@define-color selected-text #cba6f7;
@define-color text #cdd6f4;
@define-color base #1e1e2e;
* {
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 {
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);
}