commit 5d3d3d6037c0a75aafb90e98dc24575ca720bdb5 Author: Henry Sipp Date: Sat Jun 28 12:27:26 2025 -0500 Initial commit diff --git a/archthemes/catppuccin/alacritty.toml b/archthemes/catppuccin/alacritty.toml new file mode 100644 index 0000000..bfa455a --- /dev/null +++ b/archthemes/catppuccin/alacritty.toml @@ -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" + diff --git a/archthemes/catppuccin/backgrounds.sh b/archthemes/catppuccin/backgrounds.sh new file mode 100644 index 0000000..8f9dc00 --- /dev/null +++ b/archthemes/catppuccin/backgrounds.sh @@ -0,0 +1,2 @@ +mkdir -p "$BACKGROUNDS_DIR/catppuccin" +download_background_image "https://github.com/basecamp/omakub/raw/refs/heads/master/themes/catppuccin/background.png" "catppuccin/1-catppuccin.png" diff --git a/archthemes/catppuccin/btop.theme b/archthemes/catppuccin/btop.theme new file mode 100644 index 0000000..18a4ff6 --- /dev/null +++ b/archthemes/catppuccin/btop.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#24273a" + +# Main text color +theme[main_fg]="#c6d0f5" + +# Title color for boxes +theme[title]="#c6d0f5" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#8caaee" + +# Background color of selected item in processes box +theme[selected_bg]="#51576d" + +# Foreground color of selected item in processes box +theme[selected_fg]="#8caaee" + +# Color of inactive/disabled text +theme[inactive_fg]="#838ba7" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#f2d5cf" + +# Background color of the percentage meters +theme[meter_bg]="#51576d" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#f2d5cf" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#ca9ee6" #Mauve +theme[mem_box]="#a6d189" #Green +theme[net_box]="#ea999c" #Maroon +theme[proc_box]="#8caaee" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#737994" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6d189" +theme[temp_mid]="#e5c890" +theme[temp_end]="#e78284" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#81c8be" +theme[cpu_mid]="#85c1dc" +theme[cpu_end]="#babbf1" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#ca9ee6" +theme[free_mid]="#babbf1" +theme[free_end]="#8caaee" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#85c1dc" +theme[cached_mid]="#8caaee" +theme[cached_end]="#babbf1" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#ef9f76" +theme[available_mid]="#ea999c" +theme[available_end]="#e78284" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6d189" +theme[used_mid]="#81c8be" +theme[used_end]="#99d1db" + +# Download graph colors (Peach -> Red) +theme[download_start]="#ef9f76" +theme[download_mid]="#ea999c" +theme[download_end]="#e78284" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6d189" +theme[upload_mid]="#81c8be" +theme[upload_end]="#99d1db" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#85c1dc" +theme[process_mid]="#babbf1" +theme[process_end]="#ca9ee6" diff --git a/archthemes/catppuccin/hyprland.conf b/archthemes/catppuccin/hyprland.conf new file mode 100644 index 0000000..dd59f04 --- /dev/null +++ b/archthemes/catppuccin/hyprland.conf @@ -0,0 +1,4 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgb(c6d0f5) +} diff --git a/archthemes/catppuccin/hyprlock.conf b/archthemes/catppuccin/hyprlock.conf new file mode 100644 index 0000000..622d7fc --- /dev/null +++ b/archthemes/catppuccin/hyprlock.conf @@ -0,0 +1,42 @@ +# ──────────────────────────────────────────────────────────── +# Hyprlock — Catppuccin theme +# ──────────────────────────────────────────────────────────── + +general { + disable_loading_bar = true + no_fade_in = false +} + +background { + monitor = + color = rgba(24,24,36,1.0) # #181824 solid color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = rgba(24,24,36,0.8) # #181824 with opacity + outer_color = rgba(205,214,244,1.0) # #cdd6f4 + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_size = 32 + font_color = rgba(205,214,244,1.0) + + placeholder_color = rgba(205,214,244,0.6) + placeholder_text = Enter Password + check_color = rgba(68, 157, 171, 1.0) + fail_text = Wrong + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} \ No newline at end of file diff --git a/archthemes/catppuccin/mako.ini b/archthemes/catppuccin/mako.ini new file mode 100644 index 0000000..6693ddb --- /dev/null +++ b/archthemes/catppuccin/mako.ini @@ -0,0 +1,14 @@ +text-color=#cad3f5 +border-color=#c6d0f5 +background-color=#24273a +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 diff --git a/archthemes/catppuccin/neovim.lua b/archthemes/catppuccin/neovim.lua new file mode 100644 index 0000000..dbe34f5 --- /dev/null +++ b/archthemes/catppuccin/neovim.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin", + }, + }, +} diff --git a/archthemes/catppuccin/waybar.css b/archthemes/catppuccin/waybar.css new file mode 100644 index 0000000..20d1a8b --- /dev/null +++ b/archthemes/catppuccin/waybar.css @@ -0,0 +1,5 @@ +* { + color: #cdd6f4; + background-color: #181824; +} + diff --git a/archthemes/catppuccin/wofi.css b/archthemes/catppuccin/wofi.css new file mode 100644 index 0000000..e26765e --- /dev/null +++ b/archthemes/catppuccin/wofi.css @@ -0,0 +1,73 @@ +@define-color selected-text #8caaee; +@define-color text #c6d0f5; +@define-color base #24273a; + +* { + 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); +} diff --git a/archthemes/everforest/alacritty.toml b/archthemes/everforest/alacritty.toml new file mode 100644 index 0000000..faf62fa --- /dev/null +++ b/archthemes/everforest/alacritty.toml @@ -0,0 +1,24 @@ +[colors] +[colors.primary] +background = '#2d353b' +foreground = '#d3c6aa' + +[colors.normal] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.bright] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' diff --git a/archthemes/everforest/backgrounds.sh b/archthemes/everforest/backgrounds.sh new file mode 100644 index 0000000..ace1914 --- /dev/null +++ b/archthemes/everforest/backgrounds.sh @@ -0,0 +1,2 @@ +mkdir -p "$BACKGROUNDS_DIR/everforest" +download_background_image "https://github.com/basecamp/omakub/raw/refs/heads/master/themes/everforest/background.jpg" "everforest/1-everforest.jpg" diff --git a/archthemes/everforest/btop.theme b/archthemes/everforest/btop.theme new file mode 100644 index 0000000..f6aeadf --- /dev/null +++ b/archthemes/everforest/btop.theme @@ -0,0 +1,92 @@ +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#2d353b" + +# Main text color +theme[main_fg]="#d3c6aa" + +# Title color for boxes +theme[title]="#d3c6aa" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#e67e80" + +# Background color of selected items +theme[selected_bg]="#3d484d" + +# Foreground color of selected items +theme[selected_fg]="#dbbc7f" + +# Color of inactive/disabled text +theme[inactive_fg]="#2d353b" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#d3c6aa" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#a7c080" + +# Cpu box outline color +theme[cpu_box]="#3d484d" + +# Memory/disks box outline color +theme[mem_box]="#3d484d" + +# Net up/down box outline color +theme[net_box]="#3d484d" + +# Processes box outline color +theme[proc_box]="#3d484d" + +# Box divider line and small boxes line color +theme[div_line]="#3d484d" + +# Temperature graph colors +theme[temp_start]="#a7c080" +theme[temp_mid]="#dbbc7f" +theme[temp_end]="#f85552" + +# CPU graph colors +theme[cpu_start]="#a7c080" +theme[cpu_mid]="#dbbc7f" +theme[cpu_end]="#f85552" + +# Mem/Disk free meter +theme[free_start]="#f85552" +theme[free_mid]="#dbbc7f" +theme[free_end]="#a7c080" + +# Mem/Disk cached meter +theme[cached_start]="#7fbbb3" +theme[cached_mid]="#83c092" +theme[cached_end]="#a7c080" + +# Mem/Disk available meter +theme[available_start]="#f85552" +theme[available_mid]="#dbbc7f" +theme[available_end]="#a7c080" + +# Mem/Disk used meter +theme[used_start]="#a7c080" +theme[used_mid]="#dbbc7f" +theme[used_end]="#f85552" + +# Download graph colors +theme[download_start]="#a7c080" +theme[download_mid]="#83c092" +theme[download_end]="#7fbbb3" + +# Upload graph colors +theme[upload_start]="#dbbc7f" +theme[upload_mid]="#e69875" +theme[upload_end]="#e67e80" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#a7c080" +theme[process_mid]="#e67e80" +theme[process_end]="#f85552" + diff --git a/archthemes/everforest/hyprland.conf b/archthemes/everforest/hyprland.conf new file mode 100644 index 0000000..67b51cd --- /dev/null +++ b/archthemes/everforest/hyprland.conf @@ -0,0 +1,4 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgb(d3c6aa) +} diff --git a/archthemes/everforest/hyprlock.conf b/archthemes/everforest/hyprlock.conf new file mode 100644 index 0000000..54bf3c5 --- /dev/null +++ b/archthemes/everforest/hyprlock.conf @@ -0,0 +1,42 @@ +# ──────────────────────────────────────────────────────────── +# Hyprlock — Everforest theme +# ──────────────────────────────────────────────────────────── + +general { + disable_loading_bar = true + no_fade_in = false +} + +background { + monitor = + color = rgba(45,53,59,1.0) # #2d353b solid color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = rgba(45,53,59,0.8) # #2d353b with opacity + outer_color = rgba(211,198,170,1.0) # #d3c6aa + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_size = 32 + font_color = rgba(211,198,170,1.0) + + placeholder_color = rgba(211,198,170,0.6) + placeholder_text = Enter Password + check_color = rgba(131, 192, 146, 1.0) + fail_text = Wrong + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} \ No newline at end of file diff --git a/archthemes/everforest/mako.ini b/archthemes/everforest/mako.ini new file mode 100644 index 0000000..ee68224 --- /dev/null +++ b/archthemes/everforest/mako.ini @@ -0,0 +1,14 @@ +text-color=#d3c6aa +border-color=#d3c6aa +background-color=#2d353b +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 diff --git a/archthemes/everforest/neovim.lua b/archthemes/everforest/neovim.lua new file mode 100644 index 0000000..80551c7 --- /dev/null +++ b/archthemes/everforest/neovim.lua @@ -0,0 +1,10 @@ +return { + { "neanias/everforest-nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "everforest", + background = "soft", + }, + }, +} diff --git a/archthemes/everforest/waybar.css b/archthemes/everforest/waybar.css new file mode 100644 index 0000000..25876f1 --- /dev/null +++ b/archthemes/everforest/waybar.css @@ -0,0 +1,5 @@ +* { + color: #d3c6aa; + background-color: #2d353b; +} + diff --git a/archthemes/everforest/wofi.css b/archthemes/everforest/wofi.css new file mode 100644 index 0000000..f5089fb --- /dev/null +++ b/archthemes/everforest/wofi.css @@ -0,0 +1,73 @@ +@define-color selected-text #dbbc7f; +@define-color text #d3c6aa; +@define-color base #2d353b; + +* { + 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); +} diff --git a/archthemes/gruvbox/alacritty.toml b/archthemes/gruvbox/alacritty.toml new file mode 100644 index 0000000..03f4b61 --- /dev/null +++ b/archthemes/gruvbox/alacritty.toml @@ -0,0 +1,24 @@ +[colors] +[colors.primary] +background = "0x282828" +foreground = "0xd4be98" + +[colors.normal] +black = "0x3c3836" +red = "0xea6962" +green = "0xa9b665" +yellow = "0xd8a657" +blue = "0x7daea3" +magenta = "0xd3869b" +cyan = "0x89b482" +white = "0xd4be98" + +[colors.bright] +black = "0x3c3836" +red = "0xea6962" +green = "0xa9b665" +yellow = "0xd8a657" +blue = "0x7daea3" +magenta = "0xd3869b" +cyan = "0x89b482" +white = "0xd4be98" diff --git a/archthemes/gruvbox/backgrounds.sh b/archthemes/gruvbox/backgrounds.sh new file mode 100644 index 0000000..7fbb0dd --- /dev/null +++ b/archthemes/gruvbox/backgrounds.sh @@ -0,0 +1,2 @@ +mkdir -p "$BACKGROUNDS_DIR/gruvbox" +download_background_image "https://github.com/basecamp/omakub/raw/refs/heads/master/themes/gruvbox/background.jpg" "gruvbox/1-grubox.jpg" diff --git a/archthemes/gruvbox/btop.theme b/archthemes/gruvbox/btop.theme new file mode 100644 index 0000000..0584954 --- /dev/null +++ b/archthemes/gruvbox/btop.theme @@ -0,0 +1,92 @@ +#Bashtop gruvbox (https://github.com/morhetz/gruvbox) theme +#by BachoSeven + +# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" +# example for white: "#FFFFFF", "#ff" or "255 255 255". + +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#282828" + +# Main text color +theme[main_fg]="#a89984" + +# Title color for boxes +theme[title]="#ebdbb2" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#d79921" + +# Background color of selected items +theme[selected_bg]="#282828" + +# Foreground color of selected items +theme[selected_fg]="#fabd2f" + +# Color of inactive/disabled text +theme[inactive_fg]="#282828" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#585858" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#98971a" + +# Cpu box outline color +theme[cpu_box]="#a89984" + +# Memory/disks box outline color +theme[mem_box]="#a89984" + +# Net up/down box outline color +theme[net_box]="#a89984" + +# Processes box outline color +theme[proc_box]="#a89984" + +# Box divider line and small boxes line color +theme[div_line]="#a89984" + +# Temperature graph colors +theme[temp_start]="#458588" +theme[temp_mid]="#d3869b" +theme[temp_end]="#fb4394" + +# CPU graph colors +theme[cpu_start]="#b8bb26" +theme[cpu_mid]="#d79921" +theme[cpu_end]="#fb4934" + +# Mem/Disk free meter +theme[free_start]="#4e5900" +theme[free_mid]="" +theme[free_end]="#98971a" + +# Mem/Disk cached meter +theme[cached_start]="#458588" +theme[cached_mid]="" +theme[cached_end]="#83a598" + +# Mem/Disk available meter +theme[available_start]="#d79921" +theme[available_mid]="" +theme[available_end]="#fabd2f" + +# Mem/Disk used meter +theme[used_start]="#cc241d" +theme[used_mid]="" +theme[used_end]="#fb4934" + +# Download graph colors +theme[download_start]="#3d4070" +theme[download_mid]="#6c71c4" +theme[download_end]="#a3a8f7" + +# Upload graph colors +theme[upload_start]="#701c45" +theme[upload_mid]="#b16286" +theme[upload_end]="#d3869b" diff --git a/archthemes/gruvbox/hyprland.conf b/archthemes/gruvbox/hyprland.conf new file mode 100644 index 0000000..52331e8 --- /dev/null +++ b/archthemes/gruvbox/hyprland.conf @@ -0,0 +1,4 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgb(a89984) +} diff --git a/archthemes/gruvbox/hyprlock.conf b/archthemes/gruvbox/hyprlock.conf new file mode 100644 index 0000000..6fc6793 --- /dev/null +++ b/archthemes/gruvbox/hyprlock.conf @@ -0,0 +1,42 @@ +# ──────────────────────────────────────────────────────────── +# Hyprlock — Gruvbox theme +# ──────────────────────────────────────────────────────────── + +general { + disable_loading_bar = true + no_fade_in = false +} + +background { + monitor = + color = rgba(40,40,40,1.0) # #282828 solid color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = rgba(40,40,40,0.8) # #282828 with opacity + outer_color = rgba(212,190,152,1.0) # #d4be98 + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_size = 32 + font_color = rgba(212,190,152,1.0) + + placeholder_color = rgba(212,190,152,0.6) + placeholder_text = Enter Password + check_color = rgba(214, 153, 92, 1.0) + fail_text = Wrong + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} \ No newline at end of file diff --git a/archthemes/gruvbox/mako.ini b/archthemes/gruvbox/mako.ini new file mode 100644 index 0000000..f5856b0 --- /dev/null +++ b/archthemes/gruvbox/mako.ini @@ -0,0 +1,14 @@ +text-color=#d4be98 +border-color=#a89984 +background-color=#282828 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 diff --git a/archthemes/gruvbox/neovim.lua b/archthemes/gruvbox/neovim.lua new file mode 100644 index 0000000..edaf0d5 --- /dev/null +++ b/archthemes/gruvbox/neovim.lua @@ -0,0 +1,9 @@ +return { + { "ellisonleao/gruvbox.nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + }, + }, +} diff --git a/archthemes/gruvbox/waybar.css b/archthemes/gruvbox/waybar.css new file mode 100644 index 0000000..2cd0727 --- /dev/null +++ b/archthemes/gruvbox/waybar.css @@ -0,0 +1,5 @@ +* { + color: #d4be98; + background-color: #282828; +} + diff --git a/archthemes/gruvbox/wofi.css b/archthemes/gruvbox/wofi.css new file mode 100644 index 0000000..99481cf --- /dev/null +++ b/archthemes/gruvbox/wofi.css @@ -0,0 +1,73 @@ +@define-color selected-text #fabd2f; +@define-color text #ebdbb2; +@define-color base #282828; + +* { + 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); +} diff --git a/archthemes/kanagawa/alacritty.toml b/archthemes/kanagawa/alacritty.toml new file mode 100644 index 0000000..341965c --- /dev/null +++ b/archthemes/kanagawa/alacritty.toml @@ -0,0 +1,36 @@ +[colors] +[colors.primary] +background = '#1f1f28' +foreground = '#dcd7ba' + +[colors.normal] +black = '#090618' +red = '#c34043' +green = '#76946a' +yellow = '#c0a36e' +blue = '#7e9cd8' +magenta = '#957fb8' +cyan = '#6a9589' +white = '#c8c093' + +[colors.bright] +black = '#727169' +red = '#e82424' +green = '#98bb6c' +yellow = '#e6c384' +blue = '#7fb4ca' +magenta = '#938aa9' +cyan = '#7aa89f' +white = '#dcd7ba' + +[colors.selection] +background = '#2d4f67' +foreground = '#c8c093' + +[[colors.indexed_colors]] +index = 16 +color = '#ffa066' + +[[colors.indexed_colors]] +index = 17 +color = '#ff5d62' diff --git a/archthemes/kanagawa/backgrounds.sh b/archthemes/kanagawa/backgrounds.sh new file mode 100644 index 0000000..9ce2920 --- /dev/null +++ b/archthemes/kanagawa/backgrounds.sh @@ -0,0 +1,2 @@ +mkdir -p "$BACKGROUNDS_DIR/kanagawa" +download_background_image "https://github.com/basecamp/omakub/raw/refs/heads/master/themes/kanagawa/background.jpg" "kanagawa/1-kanagawa.jpg" diff --git a/archthemes/kanagawa/btop.theme b/archthemes/kanagawa/btop.theme new file mode 100644 index 0000000..5202748 --- /dev/null +++ b/archthemes/kanagawa/btop.theme @@ -0,0 +1,86 @@ +# Bashtop Kanagawa-wave (https://github.com/rebelot/kanagawa.nvim) theme +# By: philikarus + +# Main bg +theme[main_bg]="#1f1f28" + +# Main text color +theme[main_fg]="#dcd7ba" + +# Title color for boxes +theme[title]="#dcd7ba" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#C34043" + +# Background color of selected item in processes box +theme[selected_bg]="#223249" + +# Foreground color of selected item in processes box +theme[selected_fg]="#dca561" + +# Color of inactive/disabled text +theme[inactive_fg]="#727169" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#7aa89f" + +# Cpu box outline color +theme[cpu_box]="#727169" + +# Memory/disks box outline color +theme[mem_box]="#727169" + +# Net up/down box outline color +theme[net_box]="#727169" + +# Processes box outline color +theme[proc_box]="#727169" + +# Box divider line and small boxes line color +theme[div_line]="#727169" + +# Temperature graph colors +theme[temp_start]="#98BB6C" +theme[temp_mid]="#DCA561" +theme[temp_end]="#E82424" + +# CPU graph colors +theme[cpu_start]="#98BB6C" +theme[cpu_mid]="#DCA561" +theme[cpu_end]="#E82424" + +# Mem/Disk free meter +theme[free_start]="#E82424" +theme[free_mid]="#C34043" +theme[free_end]="#FF5D62" + +# Mem/Disk cached meter +theme[cached_start]="#C0A36E" +theme[cached_mid]="#DCA561" +theme[cached_end]="#FF9E3B" + +# Mem/Disk available meter +theme[available_start]="#938AA9" +theme[available_mid]="#957FBB" +theme[available_end]="#9CABCA" + +# Mem/Disk used meter +theme[used_start]="#658594" +theme[used_mid]="#7E9CDB" +theme[used_end]="#7FB4CA" + +# Download graph colors +theme[download_start]="#7E9CDB" +theme[download_mid]="#938AA9" +theme[download_end]="#957FBB" + +# Upload graph colors +theme[upload_start]="#DCA561" +theme[upload_mid]="#E6C384" +theme[upload_end]="#E82424" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#98BB6C" +theme[process_mid]="#DCA561" +theme[process_end]="#C34043" diff --git a/archthemes/kanagawa/hyprland.conf b/archthemes/kanagawa/hyprland.conf new file mode 100644 index 0000000..49c58d7 --- /dev/null +++ b/archthemes/kanagawa/hyprland.conf @@ -0,0 +1,4 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgb(dcd7ba) +} diff --git a/archthemes/kanagawa/hyprlock.conf b/archthemes/kanagawa/hyprlock.conf new file mode 100644 index 0000000..f603ab9 --- /dev/null +++ b/archthemes/kanagawa/hyprlock.conf @@ -0,0 +1,42 @@ +# ──────────────────────────────────────────────────────────── +# Hyprlock — Kanagawa theme +# ──────────────────────────────────────────────────────────── + +general { + disable_loading_bar = true + no_fade_in = false +} + +background { + monitor = + color = rgba(31,31,40,1.0) # #1f1f28 solid color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = rgba(31,31,40,0.8) # #1f1f28 with opacity + outer_color = rgba(220,215,186,1.0) # #dcd7ba + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_size = 32 + font_color = rgba(220,215,186,1.0) + + placeholder_color = rgba(220,215,186,0.6) + placeholder_text = Enter Password + check_color = rgba(126, 156, 216, 1.0) + fail_text = Wrong + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} \ No newline at end of file diff --git a/archthemes/kanagawa/mako.ini b/archthemes/kanagawa/mako.ini new file mode 100644 index 0000000..6692aed --- /dev/null +++ b/archthemes/kanagawa/mako.ini @@ -0,0 +1,14 @@ +text-color=#dcd7ba +border-color=#dcd7ba +background-color=#1f1f28 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 diff --git a/archthemes/kanagawa/neovim.lua b/archthemes/kanagawa/neovim.lua new file mode 100644 index 0000000..b31e9e5 --- /dev/null +++ b/archthemes/kanagawa/neovim.lua @@ -0,0 +1,9 @@ +return { + { "rebelot/kanagawa.nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "kanagawa", + }, + }, +} diff --git a/archthemes/kanagawa/waybar.css b/archthemes/kanagawa/waybar.css new file mode 100644 index 0000000..4c5e634 --- /dev/null +++ b/archthemes/kanagawa/waybar.css @@ -0,0 +1,5 @@ +* { + color: #dcd7ba; + background-color: #1f1f28; +} + diff --git a/archthemes/kanagawa/wofi.css b/archthemes/kanagawa/wofi.css new file mode 100644 index 0000000..88d64fa --- /dev/null +++ b/archthemes/kanagawa/wofi.css @@ -0,0 +1,73 @@ +@define-color selected-text #dca561; +@define-color text #dcd7ba; +@define-color base #1f1f28; + +* { + 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); +} diff --git a/archthemes/nord/alacritty.toml b/archthemes/nord/alacritty.toml new file mode 100644 index 0000000..4a08789 --- /dev/null +++ b/archthemes/nord/alacritty.toml @@ -0,0 +1,47 @@ +[colors] +[colors.primary] +background = "#2e3440" +foreground = "#d8dee9" +dim_foreground = "#a5abb6" + +[colors.cursor] +text = "#2e3440" +cursor = "#d8dee9" + +[colors.vi_mode_cursor] +text = "#2e3440" +cursor = "#d8dee9" + +[colors.selection] +text = "CellForeground" +background = "#4c566a" + +[colors.normal] +black = "#3b4252" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#88c0d0" +white = "#e5e9f0" + +[colors.bright] +black = "#4c566a" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#8fbcbb" +white = "#eceff4" + +[colors.dim] +black = "#373e4d" +red = "#94545d" +green = "#809575" +yellow = "#b29e75" +blue = "#68809a" +magenta = "#8c738c" +cyan = "#6d96a5" +white = "#aeb3bb" diff --git a/archthemes/nord/backgrounds.sh b/archthemes/nord/backgrounds.sh new file mode 100644 index 0000000..b78e084 --- /dev/null +++ b/archthemes/nord/backgrounds.sh @@ -0,0 +1,2 @@ +mkdir -p "$BACKGROUNDS_DIR/nord" +download_background_image "https://github.com/basecamp/omakub/raw/refs/heads/master/themes/nord/background.png" "nord/1-nord.png" diff --git a/archthemes/nord/btop.theme b/archthemes/nord/btop.theme new file mode 100644 index 0000000..fbd0af1 --- /dev/null +++ b/archthemes/nord/btop.theme @@ -0,0 +1,89 @@ +#Bashtop theme with nord palette (https://www.nordtheme.com) +#by Justin Zobel + +# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" +# example for white: "#ffffff", "#ff" or "255 255 255". + +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#2E3440" + +# Main text color +theme[main_fg]="#D8DEE9" + +# Title color for boxes +theme[title]="#8FBCBB" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#5E81AC" + +# Background color of selected item in processes box +theme[selected_bg]="#4C566A" + +# Foreground color of selected item in processes box +theme[selected_fg]="#ECEFF4" + +# Color of inactive/disabled text +theme[inactive_fg]="#4C566A" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#5E81AC" + +# Cpu box outline color +theme[cpu_box]="#4C566A" + +# Memory/disks box outline color +theme[mem_box]="#4C566A" + +# Net up/down box outline color +theme[net_box]="#4C566A" + +# Processes box outline color +theme[proc_box]="#4C566A" + +# Box divider line and small boxes line color +theme[div_line]="#4C566A" + +# Temperature graph colors +theme[temp_start]="#81A1C1" +theme[temp_mid]="#88C0D0" +theme[temp_end]="#ECEFF4" + +# CPU graph colors +theme[cpu_start]="#81A1C1" +theme[cpu_mid]="#88C0D0" +theme[cpu_end]="#ECEFF4" + +# Mem/Disk free meter +theme[free_start]="#81A1C1" +theme[free_mid]="#88C0D0" +theme[free_end]="#ECEFF4" + +# Mem/Disk cached meter +theme[cached_start]="#81A1C1" +theme[cached_mid]="#88C0D0" +theme[cached_end]="#ECEFF4" + +# Mem/Disk available meter +theme[available_start]="#81A1C1" +theme[available_mid]="#88C0D0" +theme[available_end]="#ECEFF4" + +# Mem/Disk used meter +theme[used_start]="#81A1C1" +theme[used_mid]="#88C0D0" +theme[used_end]="#ECEFF4" + +# Download graph colors +theme[download_start]="#81A1C1" +theme[download_mid]="#88C0D0" +theme[download_end]="#ECEFF4" + +# Upload graph colors +theme[upload_start]="#81A1C1" +theme[upload_mid]="#88C0D0" +theme[upload_end]="#ECEFF4" diff --git a/archthemes/nord/hyprland.conf b/archthemes/nord/hyprland.conf new file mode 100644 index 0000000..e5fd3b8 --- /dev/null +++ b/archthemes/nord/hyprland.conf @@ -0,0 +1,4 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgb(D8DEE9) +} diff --git a/archthemes/nord/hyprlock.conf b/archthemes/nord/hyprlock.conf new file mode 100644 index 0000000..1917b5d --- /dev/null +++ b/archthemes/nord/hyprlock.conf @@ -0,0 +1,42 @@ +# ──────────────────────────────────────────────────────────── +# Hyprlock — Nord theme +# ──────────────────────────────────────────────────────────── + +general { + disable_loading_bar = true + no_fade_in = false +} + +background { + monitor = + color = rgba(46,52,64,1.0) # #2e3440 solid color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = rgba(46,52,64,0.8) # #2e3440 with opacity + outer_color = rgba(216,222,233,1.0) # #d8dee9 + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_size = 32 + font_color = rgba(216,222,233,1.0) + + placeholder_color = rgba(216,222,233,0.6) + placeholder_text = Enter Password + check_color = rgba(136, 192, 208, 1.0) + fail_text = Wrong + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} \ No newline at end of file diff --git a/archthemes/nord/mako.ini b/archthemes/nord/mako.ini new file mode 100644 index 0000000..8324ac3 --- /dev/null +++ b/archthemes/nord/mako.ini @@ -0,0 +1,14 @@ +text-color=#d8dee9 +border-color=#D8DEE9 +background-color=#2e3440 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 diff --git a/archthemes/nord/neovim.lua b/archthemes/nord/neovim.lua new file mode 100644 index 0000000..27a68b1 --- /dev/null +++ b/archthemes/nord/neovim.lua @@ -0,0 +1,9 @@ +return { + { "EdenEast/nightfox.nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "nordfox", + }, + }, +} diff --git a/archthemes/nord/waybar.css b/archthemes/nord/waybar.css new file mode 100644 index 0000000..dd126b7 --- /dev/null +++ b/archthemes/nord/waybar.css @@ -0,0 +1,5 @@ +* { + color: #d8dee9; + background-color: #2e3440; +} + diff --git a/archthemes/nord/wofi.css b/archthemes/nord/wofi.css new file mode 100644 index 0000000..4f36df2 --- /dev/null +++ b/archthemes/nord/wofi.css @@ -0,0 +1,73 @@ +@define-color selected-text #88C0D0; +@define-color text #D8DEE9; +@define-color base #2E3440; + +* { + 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); +} diff --git a/archthemes/tokyo-night/alacritty.toml b/archthemes/tokyo-night/alacritty.toml new file mode 100644 index 0000000..19c1e22 --- /dev/null +++ b/archthemes/tokyo-night/alacritty.toml @@ -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' diff --git a/archthemes/tokyo-night/backgrounds.sh b/archthemes/tokyo-night/backgrounds.sh new file mode 100644 index 0000000..bccbaa3 --- /dev/null +++ b/archthemes/tokyo-night/backgrounds.sh @@ -0,0 +1,3 @@ +mkdir -p "$BACKGROUNDS_DIR/tokyo-night" +download_background_image "https://images.unsplash.com/photo-1651870364199-fc5f9f46ac85" "tokyo-night/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg" +download_background_image "https://images.unsplash.com/photo-1620207418302-439b387441b0" "tokyo-night/2-Milad-Fakurian-Abstract-Purple-Blue.jpg" diff --git a/archthemes/tokyo-night/btop.theme b/archthemes/tokyo-night/btop.theme new file mode 100644 index 0000000..290a3c7 --- /dev/null +++ b/archthemes/tokyo-night/btop.theme @@ -0,0 +1,82 @@ +# Theme: tokyo-night +# By: Pascal Jaeger + +# Main bg +theme[main_bg]="#1a1b26" + +# Main text color +theme[main_fg]="#cfc9c2" + +# Title color for boxes +theme[title]="#cfc9c2" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#7dcfff" + +# Background color of selected item in processes box +theme[selected_bg]="#414868" + +# Foreground color of selected item in processes box +theme[selected_fg]="#cfc9c2" + +# Color of inactive/disabled text +theme[inactive_fg]="#565f89" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#7dcfff" + +# Cpu box outline color +theme[cpu_box]="#565f89" + +# Memory/disks box outline color +theme[mem_box]="#565f89" + +# Net up/down box outline color +theme[net_box]="#565f89" + +# Processes box outline color +theme[proc_box]="#565f89" + +# Box divider line and small boxes line color +theme[div_line]="#565f89" + +# Temperature graph colors +theme[temp_start]="#9ece6a" +theme[temp_mid]="#e0af68" +theme[temp_end]="#f7768e" + +# CPU graph colors +theme[cpu_start]="#9ece6a" +theme[cpu_mid]="#e0af68" +theme[cpu_end]="#f7768e" + +# Mem/Disk free meter +theme[free_start]="#9ece6a" +theme[free_mid]="#e0af68" +theme[free_end]="#f7768e" + +# Mem/Disk cached meter +theme[cached_start]="#9ece6a" +theme[cached_mid]="#e0af68" +theme[cached_end]="#f7768e" + +# Mem/Disk available meter +theme[available_start]="#9ece6a" +theme[available_mid]="#e0af68" +theme[available_end]="#f7768e" + +# Mem/Disk used meter +theme[used_start]="#9ece6a" +theme[used_mid]="#e0af68" +theme[used_end]="#f7768e" + +# Download graph colors +theme[download_start]="#9ece6a" +theme[download_mid]="#e0af68" +theme[download_end]="#f7768e" + +# Upload graph colors +theme[upload_start]="#9ece6a" +theme[upload_mid]="#e0af68" +theme[upload_end]="#f7768e" + diff --git a/archthemes/tokyo-night/hyprland.conf b/archthemes/tokyo-night/hyprland.conf new file mode 100644 index 0000000..0611c0a --- /dev/null +++ b/archthemes/tokyo-night/hyprland.conf @@ -0,0 +1,5 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg +} + diff --git a/archthemes/tokyo-night/hyprlock.conf b/archthemes/tokyo-night/hyprlock.conf new file mode 100644 index 0000000..e097652 --- /dev/null +++ b/archthemes/tokyo-night/hyprlock.conf @@ -0,0 +1,42 @@ +# ──────────────────────────────────────────────────────────── +# Hyprlock — Tokyo Night theme +# ──────────────────────────────────────────────────────────── + +general { + disable_loading_bar = true + no_fade_in = false +} + +background { + monitor = + color = rgba(26,27,38,1.0) # #1a1b26 solid color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = rgba(26,27,38,0.8) # #1a1b26 with opacity + outer_color = rgba(205,214,244,1.0) # #cdd6f4 + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_size = 32 + font_color = rgba(205,214,244,1.0) + + placeholder_color = rgba(205,214,244,0.6) + placeholder_text = Enter Password + check_color = rgba(68, 157, 171, 1.0) + fail_text = Wrong + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} \ No newline at end of file diff --git a/archthemes/tokyo-night/mako.ini b/archthemes/tokyo-night/mako.ini new file mode 100644 index 0000000..5037071 --- /dev/null +++ b/archthemes/tokyo-night/mako.ini @@ -0,0 +1,14 @@ +text-color=#a9b1d6 +border-color=#33ccff +background-color=#1a1b26 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 diff --git a/archthemes/tokyo-night/neovim.lua b/archthemes/tokyo-night/neovim.lua new file mode 100644 index 0000000..dad2d30 --- /dev/null +++ b/archthemes/tokyo-night/neovim.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "tokyonight", + }, + }, +} diff --git a/archthemes/tokyo-night/waybar.css b/archthemes/tokyo-night/waybar.css new file mode 100644 index 0000000..e19e988 --- /dev/null +++ b/archthemes/tokyo-night/waybar.css @@ -0,0 +1,5 @@ +* { + color: #cdd6f4; + background-color: #1a1b26; +} + diff --git a/archthemes/tokyo-night/wofi.css b/archthemes/tokyo-night/wofi.css new file mode 100644 index 0000000..7b4892a --- /dev/null +++ b/archthemes/tokyo-night/wofi.css @@ -0,0 +1,73 @@ +@define-color selected-text #7dcfff; +@define-color text #cfc9c2; +@define-color base #1a1b26; + +* { + font-family: 'CaskaydiaMono Nerd Font', monospace; + font-size: 18px; +} + +window { + margin: 0px; + padding: 20px; + background-color: @base; + opacity: 0.95; +} + +#inner-box { + margin: 0; + padding: 0; + border: none; + background-color: @base; +} + +#outer-box { + margin: 0; + padding: 20px; + border: none; + background-color: @base; +} + +#scroll { + margin: 0; + padding: 0; + border: none; + background-color: @base; +} + +#input { + 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); +} diff --git a/config.nix b/config.nix new file mode 100644 index 0000000..c827bbb --- /dev/null +++ b/config.nix @@ -0,0 +1,41 @@ +lib: { + omarchyOptions = { + full_name = lib.mkOption { + type = lib.types.str; + description = "Main user's full name"; + }; + email_address = lib.mkOption { + type = lib.types.str; + description = "Main user's email address"; + }; + theme = lib.mkOption { + type = lib.types.enum ["tokyo-night" "kanagawa" "catppuccin"]; + default = "tokyo-night"; + description = "Theme to use for Omarchy configuration"; + }; + primary_font = lib.mkOption { + type = lib.types.str; + default = "Liberation Sans 11"; + }; + vscode_settings = lib.mkOption { + type = lib.types.attrs; + default = {}; + }; + quickAppBindings = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = "A list of single keystroke key bindings to launch common apps."; + default = [ + "SUPER, return, exec, $terminal" + "SUPER, F, exec, $fileManager" + "SUPER, B, exec, $browser" + "SUPER, M, exec, $music" + "SUPER, N, exec, $terminal -e nvim" + "SUPER, T, exec, $terminal -e btop" + "SUPER, D, exec, $terminal -e lazydocker" + "SUPER, G, exec, $messenger" + "SUPER, O, exec, obsidian -disable-gpu" + "SUPER, slash, exec, $passwordManager" + ]; + }; + }; +} diff --git a/config/btop/config b/config/btop/config new file mode 100644 index 0000000..52f45a6 --- /dev/null +++ b/config/btop/config @@ -0,0 +1,245 @@ +#? Config file for btop + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "current" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/config/themes/everforest/wallpapers/1-everforest.jpg b/config/themes/everforest/wallpapers/1-everforest.jpg new file mode 100644 index 0000000..8a5567a Binary files /dev/null and b/config/themes/everforest/wallpapers/1-everforest.jpg differ diff --git a/config/themes/kanagawa/wallpapers/kanagawa-1.png b/config/themes/kanagawa/wallpapers/kanagawa-1.png new file mode 100644 index 0000000..4174bc4 Binary files /dev/null and b/config/themes/kanagawa/wallpapers/kanagawa-1.png differ diff --git a/config/themes/tokyo-night/wallpapers/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg b/config/themes/tokyo-night/wallpapers/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg new file mode 100644 index 0000000..81221de Binary files /dev/null and b/config/themes/tokyo-night/wallpapers/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg differ diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100644 index 0000000..d5b1174 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,39 @@ +* { + border: none; + border-radius: 0; + min-height: 0; + font-family: CaskaydiaMono Nerd Font; + font-size: 14px; +} + +#workspaces { + margin-left: 7px; +} + +#workspaces button { + all: initial; + padding: 2px 6px; + margin-right: 3px; +} + +#custom-dropbox, +#cpu, +#power-profiles-daemon, +#battery, +#network, +#bluetooth, +#wireplumber, +#clock { + min-width: 12px; + margin-right: 13px; +} + +tooltip { + padding: 2px; +} + +tooltip label { + padding: 2px; +} + +@import "./theme.css"; \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..06bcb68 --- /dev/null +++ b/flake.lock @@ -0,0 +1,525 @@ +{ + "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750372185, + "narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "base16-schemes": { + "flake": false, + "locked": { + "lastModified": 1696158499, + "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", + "owner": "tinted-theming", + "repo": "base16-schemes", + "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-schemes", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750973805, + "narHash": "sha256-BZXgag7I0rnL/HMHAsBz3tQrfKAibpY2vovexl2lS+Y=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "080e8b48b0318b38143d5865de9334f46d51fce3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749155331, + "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371717, + "narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1751122874, + "narHash": "sha256-0biNUPDAN2RC+RFEdaJ5z3jt5zAP6wrKNyO1wxhwgjo=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "ab900d8752af11ada256ea6fca54d5404587405c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371812, + "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371198, + "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750703126, + "narHash": "sha256-zJHmLsiW6P8h9HaH5eMKhEh/gvym3k6/Ywr4UHKpJfc=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "d46bd32da554c370f98180a1e465f052b9584805", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371869, + "narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "nix-colors": { + "inputs": { + "base16-schemes": "base16-schemes", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1707825078, + "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", + "owner": "misterio77", + "repo": "nix-colors", + "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", + "type": "github" + }, + "original": { + "owner": "misterio77", + "repo": "nix-colors", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1750365781, + "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1697935651, + "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1751011381, + "narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749636823, + "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "623c56286de5a3193aa38891a6991b28f9bab056", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "hyprland": "hyprland", + "nix-colors": "nix-colors", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750372504, + "narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..76f8a5e --- /dev/null +++ b/flake.nix @@ -0,0 +1,54 @@ +{ + description = "Omarchy - Base configuration flake"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + hyprland.url = "github:hyprwm/Hyprland"; + nix-colors.url = "github:misterio77/nix-colors"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = inputs @ { + self, + nixpkgs, + hyprland, + nix-colors, + home-manager, + }: { + nixosModules = { + default = { + config, + lib, + pkgs, + ... + }: { + imports = [ + (import ./modules/nixos/default.nix inputs) + ]; + options.omarchy = (import ./config.nix lib).omarchyOptions; + config = { + nixpkgs.config.allowUnfree = true; + }; + }; + }; + homeManagerModules = { + default = { + config, + lib, + pkgs, + osConfig ? {}, + ... + }: { + imports = [ + nix-colors.homeManagerModules.default + (import ./modules/home-manager/default.nix inputs) + ]; + options.omarchy = (import ./config.nix lib).omarchyOptions; + config = lib.mkIf (osConfig ? omarchy) { + omarchy = osConfig.omarchy; + }; + }; + }; + }; +} diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix new file mode 100644 index 0000000..e9b81b8 --- /dev/null +++ b/modules/home-manager/alacritty.nix @@ -0,0 +1,211 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; +in { + programs.alacritty = { + enable = true; + settings = { + # Window settings + window = { + padding = { + x = 10; + y = 10; + }; + dynamic_padding = true; + decorations = "none"; + opacity = 0.95; + blur = true; + startup_mode = "Windowed"; + title = "Alacritty"; + dynamic_title = true; + }; + + # Scrolling + scrolling = { + history = 10000; + multiplier = 3; + }; + + # Font configuration + font = { + normal = { + family = cfg.primary_font; + style = "Regular"; + }; + bold = { + family = cfg.primary_font; + style = "Bold"; + }; + italic = { + family = cfg.primary_font; + style = "Italic"; + }; + bold_italic = { + family = cfg.primary_font; + style = "Bold Italic"; + }; + size = 11.0; + }; + + # Colors + colors = { + primary.background = theme.background; + primary.foreground = theme.foreground; + + normal.black = theme.black; + normal.red = theme.red; + normal.green = theme.green; + normal.yellow = theme.yellow; + normal.blue = theme.blue; + normal.magenta = theme.magenta; + normal.cyan = theme.cyan; + normal.white = theme.white; + + bright.black = theme.bright_black; + bright.red = theme.bright_red; + bright.green = theme.bright_green; + bright.yellow = theme.bright_yellow; + bright.blue = theme.bright_blue; + bright.magenta = theme.bright_magenta; + bright.cyan = theme.bright_cyan; + bright.white = theme.bright_white; + + selection.background = theme.primary; + }; + # // ( + # if theme ? orange + # then { + # indexed_colors = + # [ + # { + # index = 16; + # color = theme.orange; + # } + # ] + # ++ ( + # if theme ? rosewater + # then [ + # { + # index = 17; + # color = theme.rosewater; + # } + # ] + # else [] + # ) + # ++ ( + # if theme ? peach + # then [ + # { + # index = 18; + # color = theme.peach; + # } + # ] + # else [] + # ); + # } + # else {} + # ); + + # Bell + bell = { + animation = "EaseOutExpo"; + duration = 0; + color = theme.warning; + }; + + # Mouse + mouse = { + hide_when_typing = true; + bindings = [ + { + mouse = "Middle"; + action = "PasteSelection"; + } + ]; + }; + + # Key bindings + keyboard.bindings = [ + # Copy/Paste + { + key = "C"; + mods = "Control|Shift"; + action = "Copy"; + } + { + key = "V"; + mods = "Control|Shift"; + action = "Paste"; + } + # Search + { + key = "F"; + mods = "Control|Shift"; + action = "SearchForward"; + } + { + key = "B"; + mods = "Control|Shift"; + action = "SearchBackward"; + } + # Font size + { + key = "Plus"; + mods = "Control"; + action = "IncreaseFontSize"; + } + { + key = "Minus"; + mods = "Control"; + action = "DecreaseFontSize"; + } + { + key = "Key0"; + mods = "Control"; + action = "ResetFontSize"; + } + # New window + { + key = "Return"; + mods = "Control|Shift"; + action = "SpawnNewInstance"; + } + ]; + + # Cursor + cursor = { + style = { + shape = "Block"; + blinking = "Off"; + }; + unfocused_hollow = true; + thickness = 0.15; + }; + + # Live config reload + general.live_config_reload = true; + + # Shell + terminal.shell = { + program = "${pkgs.zsh}/bin/zsh"; + args = ["--login"]; + }; + + # Working directory + working_directory = "None"; + + # Debug + debug = { + render_timer = false; + persistent_logging = false; + log_level = "Warn"; + print_events = false; + }; + }; + }; +} diff --git a/modules/home-manager/btop.nix b/modules/home-manager/btop.nix new file mode 100644 index 0000000..5789262 --- /dev/null +++ b/modules/home-manager/btop.nix @@ -0,0 +1,162 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; +in { + home.file = { + ".config/btop/themes/${cfg.theme}.theme" = { + text = '' + # Main bg + theme[main_bg]="${theme.background}" + + # Main text color + theme[main_fg]="${theme.foreground_muted}" + + # Title color for boxes + theme[title]="${theme.foreground_muted}" + + # Highlight color for keyboard shortcuts + theme[hi_fg]="${theme.primary_variant}" + + # Background color of selected item in processes box + theme[selected_bg]="${theme.surface}" + + # Foreground color of selected item in processes box + theme[selected_fg]="${theme.foreground_muted}" + + # Color of inactive/disabled text + theme[inactive_fg]="${theme.inactive}" + + # Misc colors for processes box including mini cpu graphs, details memory graph and details status text + theme[proc_misc]="${theme.primary_variant}" + + # Cpu box outline color + theme[cpu_box]="${theme.inactive}" + + # Memory/disks box outline color + theme[mem_box]="${theme.inactive}" + + # Net up/down box outline color + theme[net_box]="${theme.inactive}" + + # Processes box outline color + theme[proc_box]="${theme.inactive}" + + # Box divider line and small boxes line color + theme[div_line]="${theme.inactive}" + + # Temperature graph colors + theme[temp_start]="${theme.success}" + theme[temp_mid]="${theme.warning}" + theme[temp_end]="${theme.error}" + + # CPU graph colors + theme[cpu_start]="${theme.success}" + theme[cpu_mid]="${theme.warning}" + theme[cpu_end]="${theme.error}" + + # Mem/Disk free meter + theme[free_start]="${theme.success}" + theme[free_mid]="${theme.warning}" + theme[free_end]="${theme.error}" + + # Mem/Disk cached meter + theme[cached_start]="${theme.success}" + theme[cached_mid]="${theme.warning}" + theme[cached_end]="${theme.error}" + + # Mem/Disk available meter + theme[available_start]="${theme.success}" + theme[available_mid]="${theme.warning}" + theme[available_end]="${theme.error}" + + # Mem/Disk used meter + theme[used_start]="${theme.success}" + theme[used_mid]="${theme.warning}" + theme[used_end]="${theme.error}" + + # Download graph colors + theme[download_start]="${theme.success}" + theme[download_mid]="${theme.warning}" + theme[download_end]="${theme.error}" + + # Upload graph colors + theme[upload_start]="${theme.success}" + theme[upload_mid]="${theme.warning}" + theme[upload_end]="${theme.error}" + ''; + }; + }; + + programs.btop = { + enable = true; + settings = { + color_theme = cfg.theme; + theme_background = false; + truecolor = true; + force_tty = false; + vim_keys = true; + rounded_corners = true; + graph_symbol = "braille"; + graph_symbol_cpu = "default"; + graph_symbol_mem = "default"; + graph_symbol_net = "default"; + graph_symbol_proc = "default"; + shown_boxes = "cpu mem net proc"; + update_ms = 2000; + proc_sorting = "cpu lazy"; + proc_reversed = false; + proc_tree = false; + proc_colors = true; + proc_gradient = false; + proc_per_core = false; + proc_mem_bytes = true; + proc_cpu_graphs = true; + proc_info_smaps = false; + proc_left = false; + cpu_graph_upper = "total"; + cpu_graph_lower = "total"; + cpu_invert_lower = true; + cpu_single_graph = false; + cpu_bottom = false; + show_uptime = true; + check_temp = true; + cpu_sensor = "Auto"; + show_coretemp = true; + cpu_core_map = ""; + temp_scale = "celsius"; + base_10_sizes = false; + show_cpu_freq = true; + clock_format = "%X"; + background_update = true; + custom_cpu_name = "; + disks_filter = "; + mem_graphs = true; + mem_below_net = false; + zfs_arc_cached = true; + show_swap = true; + swap_disk = true; + show_disks = true; + only_physical = true; + use_fstab = true; + zfs_hide_datasets = false; + disk_free_priv = false; + show_io_stat = true; + io_mode = false; + io_graph_combined = false; + io_graph_speeds = "; + net_download = 100; + net_upload = 100; + net_auto = true; + net_sync = true; + net_iface = "; + show_battery = true; + selected_battery = "Auto"; + log_level = "WARNING"; + }; + }; +} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix new file mode 100644 index 0000000..fbdab9f --- /dev/null +++ b/modules/home-manager/default.nix @@ -0,0 +1,40 @@ +inputs: { + config, + pkgs, + ... +}: let + packages = import ../packages.nix {inherit pkgs;}; +in { + imports = [ + (import ./hyprland.nix inputs) + (import ./hyprpaper.nix) + # (import ./hyprlock.nix) + (import ./alacritty.nix) + (import ./btop.nix) + (import ./direnv.nix) + (import ./git.nix) + (import ./mako.nix) + (import ./starship.nix) + (import ./vscode.nix) + (import ./waybar.nix) + (import ./wofi.nix) + (import ./zoxide.nix) + (import ./zsh.nix) + ]; + + home.packages = packages.homePackages; + + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + }; +} diff --git a/modules/home-manager/direnv.nix b/modules/home-manager/direnv.nix new file mode 100644 index 0000000..30c5f0d --- /dev/null +++ b/modules/home-manager/direnv.nix @@ -0,0 +1,7 @@ +{...}: { + programs.direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; +} diff --git a/modules/home-manager/git.nix b/modules/home-manager/git.nix new file mode 100644 index 0000000..94522e6 --- /dev/null +++ b/modules/home-manager/git.nix @@ -0,0 +1,9 @@ +{config, ...}: let + cfg = config.omarchy; +in { + programs.git = { + enable = true; + userName = cfg.full_name; + userEmail = cfg.email_address; + }; +} diff --git a/modules/home-manager/hyprland.nix b/modules/home-manager/hyprland.nix new file mode 100644 index 0000000..f67a0f8 --- /dev/null +++ b/modules/home-manager/hyprland.nix @@ -0,0 +1,11 @@ +inputs: { + config, + pkgs, + ... +}: { + imports = [./hyprland/configuration.nix]; + wayland.windowManager.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.hyprland; + }; +} diff --git a/modules/home-manager/hyprland/autostart.nix b/modules/home-manager/hyprland/autostart.nix new file mode 100644 index 0000000..ec1d449 --- /dev/null +++ b/modules/home-manager/hyprland/autostart.nix @@ -0,0 +1,21 @@ +{ + config, + pkgs, + ... +}: { + wayland.windowManager.hyprland.settings = { + exec-once = [ + # "hypridle & mako & waybar & fcitx5" + # "waybar" + # "swaybg -i ~/.config/omarchy/current/background -m fill" + "systemctl --user start hyprpolkitagent" + "wl-clip-persist --clipboard regular & clipse -listen" + + # "dropbox-cli start" # Uncomment to run Dropbox + ]; + + exec = [ + "pkill -SIGUSR2 waybar || waybar" + ]; + }; +} diff --git a/modules/home-manager/hyprland/bindings.nix b/modules/home-manager/hyprland/bindings.nix new file mode 100644 index 0000000..cb86624 --- /dev/null +++ b/modules/home-manager/hyprland/bindings.nix @@ -0,0 +1,123 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; +in { + wayland.windowManager.hyprland.settings = { + bind = + cfg.quickAppBindings + ++ [ + # Start default apps + + "SUPER, space, exec, wofi --show drun --sort-order=alphabetical" + "SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar" + # "SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next" + # "SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-next" + + "SUPER, W, killactive," + + # End active session + "SUPER, ESCAPE, exec, hyprlock" + "SUPER SHIFT, ESCAPE, exit," + "SUPER CTRL, ESCAPE, exec, reboot" + "SUPER SHIFT CTRL, ESCAPE, exec, systemctl poweroff" + + # Control tiling + "SUPER, J, togglesplit, # dwindle" + "SUPER, P, pseudo, # dwindle" + "SUPER, V, togglefloating," + + # Move focus with mainMod + arrow keys + "SUPER, left, movefocus, l" + "SUPER, right, movefocus, r" + "SUPER, up, movefocus, u" + "SUPER, down, movefocus, d" + + # Switch workspaces with mainMod + [0-9] + "SUPER, 1, workspace, 1" + "SUPER, 2, workspace, 2" + "SUPER, 3, workspace, 3" + "SUPER, 4, workspace, 4" + "SUPER, 5, workspace, 5" + "SUPER, 6, workspace, 6" + "SUPER, 7, workspace, 7" + "SUPER, 8, workspace, 8" + "SUPER, 9, workspace, 9" + "SUPER, 0, workspace, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "SUPER SHIFT, 1, movetoworkspace, 1" + "SUPER SHIFT, 2, movetoworkspace, 2" + "SUPER SHIFT, 3, movetoworkspace, 3" + "SUPER SHIFT, 4, movetoworkspace, 4" + "SUPER SHIFT, 5, movetoworkspace, 5" + "SUPER SHIFT, 6, movetoworkspace, 6" + "SUPER SHIFT, 7, movetoworkspace, 7" + "SUPER SHIFT, 8, movetoworkspace, 8" + "SUPER SHIFT, 9, movetoworkspace, 9" + "SUPER SHIFT, 0, movetoworkspace, 10" + + # Swap active window with the one next to it with mainMod + SHIFT + arrow keys + "SUPER SHIFT, left, swapwindow, l" + "SUPER SHIFT, right, swapwindow, r" + "SUPER SHIFT, up, swapwindow, u" + "SUPER SHIFT, down, swapwindow, d" + + # Resize active window + "SUPER, minus, resizeactive, -100 0" + "SUPER, equal, resizeactive, 100 0" + "SUPER SHIFT, minus, resizeactive, 0 -100" + "SUPER SHIFT, equal, resizeactive, 0 100" + + # Scroll through existing workspaces with mainMod + scroll + "SUPER, mouse_down, workspace, e+1" + "SUPER, mouse_up, workspace, e-1" + + # Control Apple Display brightness + "CTRL, F1, exec, ~/.local/share/omarchy/bin/apple-display-brightness -5000" + "CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +5000" + "SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +60000" + + # Super workspace floating layer + "SUPER, S, togglespecialworkspace, magic" + "SUPER SHIFT, S, movetoworkspace, special:magic" + + # Screenshots + ", PRINT, exec, hyprshot -m region" + "SHIFT, PRINT, exec, hyprshot -m window" + "CTRL, PRINT, exec, hyprshot -m output" + + # Color picker + "SUPER, PRINT, exec, hyprpicker -a" + + # Clipse + "CTRL SUPER, V, exec, alacritty --class clipse -e clipse" + ]; + + bindm = [ + # Move/resize windows with mainMod + LMB/RMB and dragging + "SUPER, mouse:272, movewindow" + "SUPER, mouse:273, resizewindow" + ]; + + bindel = [ + # Laptop multimedia keys for volume and LCD brightness + ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" + ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + ",XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+" + ",XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-" + ]; + + bindl = [ + # Requires playerctl + ", XF86AudioNext, exec, playerctl next" + ", XF86AudioPause, exec, playerctl play-pause" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioPrev, exec, playerctl previous" + ]; + }; +} diff --git a/modules/home-manager/hyprland/configuration.nix b/modules/home-manager/hyprland/configuration.nix new file mode 100644 index 0000000..1d478dc --- /dev/null +++ b/modules/home-manager/hyprland/configuration.nix @@ -0,0 +1,44 @@ +{ + config, + pkgs, + ... +}: { + imports = [ + ./autostart.nix + ./bindings.nix + ./envs.nix + ./looknfeel.nix + ./windows.nix + ]; + wayland.windowManager.hyprland.settings = { + # Default applications + "$terminal" = "alacritty"; + "$fileManager" = "nautilus --new-window"; + "$browser" = "chromium --new-window --ozone-platform=wayland"; + "$music" = "spotify"; + "$passwordManager" = "1password"; + "$messenger" = "signal-desktop"; + "$webapp" = "$browser --app"; + + # Environment variables + env = [ + "GDK_SCALE,2" # Change to 1 if on a 1x display + # Uncomment if running NVIDIA GPU: + # "NVD_BACKEND,direct" + # "LIBVA_DRIVER_NAME,nvidia" + # "__GLX_VENDOR_LIBRARY_NAME,nvidia" + ]; + + # Extra bindings + bind = [ + "SUPER, A, exec, $webapp=https://chatgpt.com" + "SUPER SHIFT, A, exec, $webapp=https://grok.com" + "SUPER, C, exec, $webapp=https://app.hey.com/calendar/weeks/" + "SUPER, E, exec, $webapp=https://app.hey.com" + "SUPER, Y, exec, $webapp=https://youtube.com/" + "SUPER SHIFT, G, exec, $webapp=https://web.whatsapp.com/" + "SUPER, X, exec, $webapp=https://x.com/" + "SUPER SHIFT, X, exec, $webapp=https://x.com/compose/post" + ]; + }; +} diff --git a/modules/home-manager/hyprland/envs.nix b/modules/home-manager/hyprland/envs.nix new file mode 100644 index 0000000..c5db6ab --- /dev/null +++ b/modules/home-manager/hyprland/envs.nix @@ -0,0 +1,51 @@ +{ + config, + pkgs, + ... +}: { + wayland.windowManager.hyprland.settings = { + # Environment variables + env = [ + "GDK_SCALE,2" # Change to 1 if on a 1x display + # Uncomment if running NVIDIA GPU: + # "NVD_BACKEND,direct" + # "LIBVA_DRIVER_NAME,nvidia" + # "__GLX_VENDOR_LIBRARY_NAME,nvidia" + + # Cursor size + "XCURSOR_SIZE,24" + "HYPRCURSOR_SIZE,24" + + # Cursor theme + "XCURSOR_THEME,Bibata-Modern-Classic" + "HYPRCURSOR_THEME,Bibata-Modern-Classic" + + # Force all apps to use Wayland + "GDK_BACKEND,wayland" + "QT_QPA_PLATFORM,wayland" + "QT_STYLE_OVERRIDE,kvantum" + "SDL_VIDEODRIVER,wayland" + "MOZ_ENABLE_WAYLAND,1" + "ELECTRON_OZONE_PLATFORM_HINT,wayland" + "OZONE_PLATFORM,wayland" + + # Make Chromium use XCompose and all Wayland + "CHROMIUM_FLAGS,\"--enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4\"" + + # Make .desktop files available for wofi + "XDG_DATA_DIRS,$XDG_DATA_DIRS:$HOME/.nix-profile/share:/nix/var/nix/profiles/default/share" + + # Use XCompose file + "XCOMPOSEFILE,~/.XCompose" + ]; + + xwayland = { + force_zero_scaling = true; + }; + + # Don't show update on first launch + ecosystem = { + no_update_news = true; + }; + }; +} diff --git a/modules/home-manager/hyprland/input.nix b/modules/home-manager/hyprland/input.nix new file mode 100644 index 0000000..62bc1a4 --- /dev/null +++ b/modules/home-manager/hyprland/input.nix @@ -0,0 +1,30 @@ +{ + config, + pkgs, + ... +}: { + wayland.windowManager.hyprland.settings = { + # Environment variables + # https://wiki.hyprland.org/Configuring/Variables/#input + input = { + kb_layout = us; + # kb_variant = + # kb_model = + kb_options = compose:caps; + # kb_rules = + + follow_mouse = 1; + + sensitivity = 0; # -1.0 - 1.0, 0 means no modification. + + touchpad = { + natural_scroll = false; + }; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#gestures + gestures = { + workspace_swipe = false; + }; + }; +} diff --git a/modules/home-manager/hyprland/looknfeel.nix b/modules/home-manager/hyprland/looknfeel.nix new file mode 100644 index 0000000..8235322 --- /dev/null +++ b/modules/home-manager/hyprland/looknfeel.nix @@ -0,0 +1,125 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../../themes.nix; + theme = themes.${cfg.theme}; + + # Convert hex color to rgba format for hyprland + hexToRgba = hex: alpha: let + cleanHex = builtins.substring 1 6 hex; # Remove the # prefix + in "rgba(${cleanHex}${alpha})"; + + # Special handling for tokyo-night gradient + activeBorder = + if cfg.theme == "tokyo-night" + then "${hexToRgba theme.accent "ee"} ${hexToRgba theme.success "ee"} 45deg" + else hexToRgba theme.foreground "ff"; +in { + wayland.windowManager.hyprland.settings = { + # Refer to https://wiki.hyprland.org/Configuring/Variables/ + + # https://wiki.hyprland.org/Configuring/Variables/#general + general = { + gaps_in = 5; + gaps_out = 10; + + border_size = 2; + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + "col.active_border" = activeBorder; + "col.inactive_border" = hexToRgba theme.surface_variant "aa"; + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false; + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false; + + layout = "dwindle"; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#decoration + decoration = { + rounding = 0; + + shadow = { + enabled = true; + range = 2; + render_power = 3; + color = hexToRgba theme.background "ee"; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur = { + enabled = true; + size = 3; + passes = 1; + + vibrancy = 0.1696; + }; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#animations + animations = { + enabled = true; # yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = [ + "easeOutQuint,0.23,1,0.32,1" + "easeInOutCubic,0.65,0.05,0.36,1" + "linear,0,0,1,1" + "almostLinear,0.5,0.5,0.75,1.0" + "quick,0.15,0,0.1,1" + ]; + + animation = [ + "global, 1, 10, default" + "border, 1, 5.39, easeOutQuint" + "windows, 1, 4.79, easeOutQuint" + "windowsIn, 1, 4.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1.49, linear, popin 87%" + "fadeIn, 1, 1.73, almostLinear" + "fadeOut, 1, 1.46, almostLinear" + "fade, 1, 3.03, quick" + "layers, 1, 3.81, easeOutQuint" + "layersIn, 1, 4, easeOutQuint, fade" + "layersOut, 1, 1.5, linear, fade" + "fadeLayersIn, 1, 1.79, almostLinear" + "fadeLayersOut, 1, 1.39, almostLinear" + "workspaces, 0, 0, ease" + ]; + }; + + # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ + # "Smart gaps" / "No gaps when only" + # uncomment all if you wish to use that. + # workspace = w[tv1], gapsout:0, gapsin:0 + # workspace = f[1], gapsout:0, gapsin:0 + # windowrule = bordersize 0, floating:0, onworkspace:w[tv1] + # windowrule = rounding 0, floating:0, onworkspace:w[tv1] + # windowrule = bordersize 0, floating:0, onworkspace:f[1] + # windowrule = rounding 0, floating:0, onworkspace:f[1] + + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + dwindle = { + pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true; # You probably want this + force_split = 2; # Always split on the right + }; + + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + master = { + new_status = "master"; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#misc + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + }; + }; +} diff --git a/modules/home-manager/hyprland/windows.nix b/modules/home-manager/hyprland/windows.nix new file mode 100644 index 0000000..ed6abc6 --- /dev/null +++ b/modules/home-manager/hyprland/windows.nix @@ -0,0 +1,36 @@ +{ + config, + pkgs, + ... +}: { + wayland.windowManager.hyprland.settings = { + windowrule = [ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + "suppressevent maximize, class:.*" + + # Force chromium into a tile to deal with --app bug + "tile, class:^(chromium)$" + + # Just dash of opacity + "opacity 0.97 0.9, class:.*" + "opacity 1 0.97, class:^(chromium|google-chrome|google-chrome-unstable)$" + "opacity 0.97 0.9, initialClass:^(chrome-.*-Default)$ # web apps" + "opacity 1 1, initialClass:^(chrome-youtube.*-Default)$ # Youtube" + "opacity 1 1, class:^(zoom|vlc|org.kde.kdenlive|com.obsproject.Studio)$" + + # Fix some dragging issues with XWayland + "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" + + # Proper background blur for wofi + + # Float in the middle for clipse clipboard manager + "float, class:(clipse)" + "size 622 652, class:(clipse)" + "stayfocused, class:(clipse)" + ]; + + layerrule = [ + "blur,wofi" + ]; + }; +} diff --git a/modules/home-manager/hyprlock.nix b/modules/home-manager/hyprlock.nix new file mode 100644 index 0000000..087aabf --- /dev/null +++ b/modules/home-manager/hyprlock.nix @@ -0,0 +1,28 @@ +{inputs, ...}: { + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; + rgba = inputs.nix-colors.lib.hexToRgba "#3c3836"; +in { + programs.hyprlock = { + enable = true; + settings = { + source = "colors.conf"; + general = { + disable_loading_bar = true; + no_fade_in = false; + }; + auth = { + fingerprint.enabled = true; + }; + background = { + monitor = ""; + color = rgba; # You can now use the rgba value here + }; + }; + }; +} diff --git a/modules/home-manager/hyprpaper.nix b/modules/home-manager/hyprpaper.nix new file mode 100644 index 0000000..b5cf9ee --- /dev/null +++ b/modules/home-manager/hyprpaper.nix @@ -0,0 +1,40 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + wallpapers = { + "tokyo-night" = [ + "1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg" + ]; + "kanagawa" = [ + "kanagawa-1.png" + ]; + "everforest" = [ + "1-everforest.jpg" + ]; + }; + + # Safe access with fallback + selected_wallpaper = builtins.elemAt (wallpapers.${cfg.theme}) 0; + selected_wallpaper_path = "~/Pictures/Wallpapers/${selected_wallpaper}"; +in { + home.file = { + "Pictures/Wallpapers" = { + source = ../../config/themes/${cfg.theme}/wallpapers; + recursive = true; + }; + }; + services.hyprpaper = { + enable = true; + settings = { + preload = [ + selected_wallpaper_path + ]; + wallpaper = [ + "eDP-1,${selected_wallpaper_path}" + ]; + }; + }; +} diff --git a/modules/home-manager/mako.nix b/modules/home-manager/mako.nix new file mode 100644 index 0000000..9188f99 --- /dev/null +++ b/modules/home-manager/mako.nix @@ -0,0 +1,57 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; +in { + services.mako = { + enable = true; + + # All configuration moved to settings + settings = { + # Main appearance settings + background-color = theme.background; + text-color = theme.foreground; + border-color = theme.accent; + progress-color = theme.primary; + + # Dimensions and positioning + width = 420; + height = 110; + padding = "10"; + margin = "10"; + border-size = 2; + border-radius = 8; + + # Font + # font = "Liberation Sans 11"; + + # Positioning + anchor = "top-right"; + layer = "overlay"; + + # Behavior + default-timeout = 5000; + ignore-timeout = false; + max-visible = 5; + sort = "-time"; + + # Icons + # max-icon-size = 32; + # icon-path = "/usr/share/icons/Papirus-Dark"; + + # Grouping + group-by = "app-name"; + + # Actions + actions = true; + + # Format + format = "%s\\n%b"; + markup = true; + }; + }; +} diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix new file mode 100644 index 0000000..bd7d594 --- /dev/null +++ b/modules/home-manager/starship.nix @@ -0,0 +1,3 @@ +{...}: { + programs.starship.enable = true; +} diff --git a/modules/home-manager/vscode.nix b/modules/home-manager/vscode.nix new file mode 100644 index 0000000..67ed231 --- /dev/null +++ b/modules/home-manager/vscode.nix @@ -0,0 +1,48 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; +in { + programs.vscode = { + enable = true; + profiles.default = { + userSettings = + { + "workbench.colorTheme" = theme.vscode_theme; + # "workbench.colorTheme" = "Everforest Dark"; + "vim.useCtrlKeys" = false; + "editor.minimap.enabled" = false; + } + // cfg.vscode_settings; + + extensions = with pkgs.vscode-extensions; + [ + bbenoist.nix + ] + ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "everforest"; + publisher = "sainnhe"; + version = "0.3.0"; + sha256 = "sha256-nZirzVvM160ZTpBLTimL2X35sIGy5j2LQOok7a2Yc7U="; + } + { + name = "tokyo-night"; + publisher = "enkia"; + version = "1.1.2"; + sha256 = "sha256-oW0bkLKimpcjzxTb/yjShagjyVTUFEg198oPbY5J2hM="; + } + { + name = "kanagawa"; + publisher = "qufiwefefwoyn"; + version = "1.5.1"; + sha256 = "sha256-AGGioXcK/fjPaFaWk2jqLxovUNR59gwpotcSpGNbj1c="; + } + ]; + }; + }; +} diff --git a/modules/home-manager/waybar.nix b/modules/home-manager/waybar.nix new file mode 100644 index 0000000..d99f2de --- /dev/null +++ b/modules/home-manager/waybar.nix @@ -0,0 +1,174 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; +in { + home.file = { + ".config/waybar/" = { + source = ../../config/waybar; + recursive = true; + }; + ".config/waybar/theme.css" = { + text = '' + * { + color: ${theme.foreground}; + background-color: ${theme.background}; + } + ''; + }; + }; + + programs.waybar = { + enable = true; + settings = [ + { + layer = "top"; + position = "top"; + spacing = 0; + height = 26; + modules-left = [ + "hyprland/workspaces" + ]; + modules-center = [ + "clock" + ]; + modules-right = [ + # "custom/dropbox" + "bluetooth" + "network" + "wireplumber" + "cpu" + "power-profiles-daemon" + "battery" + ]; + "hyprland/workspaces" = { + on-click = "activate"; + format = "{icon}"; + format-icons = { + default = ""; + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; + active = "󱓻"; + }; + persistent_workspaces = { + "1" = []; + "2" = []; + "3" = []; + "4" = []; + "5" = []; + }; + }; + cpu = { + interval = 5; + format = "󰍛"; + on-click = "alacritty -e btop"; + }; + clock = { + format = "{:%A %H:%M}"; + format-alt = "{:%d %B W%V %Y}"; + tooltip = false; + }; + network = { + format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"]; + format = "{icon}"; + format-wifi = "{icon}"; + format-ethernet = "󰀂"; + format-disconnected = "󰖪"; + tooltip-format-wifi = "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}"; + tooltip-format-ethernet = "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}"; + tooltip-format-disconnected = "Disconnected"; + interval = 3; + nospacing = 1; + on-click = "alacritty -e iwctl"; + }; + battery = { + interval = 5; + format = "{capacity}% {icon}"; + format-discharging = "{icon}"; + format-charging = "{icon}"; + format-plugged = ""; + format-icons = { + charging = [ + "󰢜" + "󰂆" + "󰂇" + "󰂈" + "󰢝" + "󰂉" + "󰢞" + "󰂊" + "󰂋" + "󰂅" + ]; + default = [ + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; + }; + format-full = "Charged "; + tooltip-format-discharging = "{power:>1.0f}W↓ {capacity}%"; + tooltip-format-charging = "{power:>1.0f}W↑ {capacity}%"; + states = { + warning = 20; + critical = 10; + }; + }; + bluetooth = { + format = "󰂯"; + format-disabled = "󰂲"; + format-connected = ""; + tooltip-format = "Devices connected: {num_connections}"; + on-click = "GTK_THEME=Adwaita-dark blueberry"; + }; + wireplumber = { + # Changed from "pulseaudio" + "format" = ""; + format-muted = "󰝟"; + scroll-step = 5; + on-click = "GTK_THEME=Adwaita-dark pavucontrol"; + tooltip-format = "Playing at {volume}%"; + on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; # Updated command + max-volume = 150; # Optional: allow volume over 100% + }; + power-profiles-daemon = { + format = "{icon}"; + tooltip-format = "Power profile: {profile}"; + tooltip = true; + format-icons = { + power-saver = "󰡳"; + balanced = "󰊚"; + performance = "󰡴"; + }; + }; + # "custom/dropbox" = { + # format = ""; + # on-click = "nautilus ~/Dropbox"; + # exec = "dropbox-cli status"; + # return-type = "text"; + # interval = 5; + # tooltip = true; + # tooltip-format = "{}"; + # }; + } + ]; + }; +} diff --git a/modules/home-manager/wofi.nix b/modules/home-manager/wofi.nix new file mode 100644 index 0000000..de25aab --- /dev/null +++ b/modules/home-manager/wofi.nix @@ -0,0 +1,106 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.omarchy; + themes = import ../themes.nix; + theme = themes.${cfg.theme}; +in { + home.file = { + ".config/wofi/style.css" = { + text = '' + * { + font-family: 'CaskaydiaMono Nerd Font', monospace; + font-size: 18px; + } + + window { + margin: 0px; + padding: 20px; + background-color: ${theme.background}; + opacity: 0.95; + } + + #inner-box { + margin: 0; + padding: 0; + border: none; + background-color: ${theme.background}; + } + + #outer-box { + margin: 0; + padding: 20px; + border: none; + background-color: ${theme.background}; + } + + #scroll { + margin: 0; + padding: 0; + border: none; + background-color: ${theme.background}; + } + + #input { + margin: 0; + padding: 10px; + border: none; + background-color: ${theme.background}; + color: @text; + } + + #input:focus { + outline: none; + box-shadow: none; + border: none; + } + + #text { + margin: 5px; + border: none; + color: ${theme.foreground_muted} + } + + #entry { + background-color: ${theme.background}; + } + + #entry:selected { + outline: none; + border: none; + } + + #entry:selected #text { + color: ${theme.primary_variant}; + } + + #entry image { + -gtk-icon-transform: scale(0.7); + } + ''; + }; + }; + + programs.wofi = { + enable = true; + settings = { + width = 600; + height = 350; + location = "center"; + show = "drun"; + prompt = "Search..."; + filter_rate = 100; + allow_markup = true; + no_actions = true; + halign = "fill"; + orientation = "vertical"; + content_halign = "fill"; + insensitive = true; + allow_images = true; + image_size = 40; + gtk_dark = true; + }; + }; +} diff --git a/modules/home-manager/zoxide.nix b/modules/home-manager/zoxide.nix new file mode 100644 index 0000000..f59d5d6 --- /dev/null +++ b/modules/home-manager/zoxide.nix @@ -0,0 +1,6 @@ +{...}: { + programs.zoxide = { + enable = true; + enableZshIntegration = true; + }; +} diff --git a/modules/home-manager/zsh.nix b/modules/home-manager/zsh.nix new file mode 100644 index 0000000..3242459 --- /dev/null +++ b/modules/home-manager/zsh.nix @@ -0,0 +1,22 @@ +{...}: { + programs.zsh = { + enable = true; + autosuggestion.enable = true; + zplug = { + enable = true; + plugins = [ + { + name = "plugins/git"; + tags = [from:oh-my-zsh]; + } + { + name = "fdellwing/zsh-bat"; + tags = [as:command]; + } + ]; + }; + sessionVariables = { + EDITOR = "nvim"; + }; + }; +} diff --git a/modules/nixos/1password.nix b/modules/nixos/1password.nix new file mode 100644 index 0000000..3203acd --- /dev/null +++ b/modules/nixos/1password.nix @@ -0,0 +1,9 @@ +{...}: { + programs = { + _1password.enable = true; + _1password-gui.enable = true; + + # TODO: Dynamically get user names + _1password-gui.polkitPolicyOwners = ["henry"]; + }; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix new file mode 100644 index 0000000..f6dd48b --- /dev/null +++ b/modules/nixos/default.nix @@ -0,0 +1,15 @@ +inputs: { + config, + pkgs, + ... +}: let + packages = import ../packages.nix {inherit pkgs;}; +in { + imports = [ + (import ./hyprland.nix inputs) + (import ./system.nix) + (import ./1password.nix) + ]; + + environment.systemPackages = packages.systemPackages; +} diff --git a/modules/nixos/hyprland.nix b/modules/nixos/hyprland.nix new file mode 100644 index 0000000..0e0cd8e --- /dev/null +++ b/modules/nixos/hyprland.nix @@ -0,0 +1,16 @@ +inputs: { + config, + pkgs, + ... +}: { + programs.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.hyprland; + }; + + xdg.portal = { + enable = true; + extraPortals = [pkgs.xdg-desktop-portal-gtk]; + config.common.default = "*"; + }; +} diff --git a/modules/nixos/system.nix b/modules/nixos/system.nix new file mode 100644 index 0000000..ae90382 --- /dev/null +++ b/modules/nixos/system.nix @@ -0,0 +1,36 @@ +{ + config, + pkgs, + ... +}: { + environment.systemPackages = with pkgs; [ + git + vim + curl + wget + pamixer + playerctl + bibata-cursors + gnome-themes-extra + ]; + + security.rtkit.enable = true; + services.pulseaudio.enable = false; + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + + services.greetd = { + enable = true; + settings.default_session.command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; + }; + + networking.networkmanager.enable = true; +} diff --git a/modules/packages.nix b/modules/packages.nix new file mode 100644 index 0000000..304791d --- /dev/null +++ b/modules/packages.nix @@ -0,0 +1,66 @@ +{pkgs}: { + # Regular packages + systemPackages = with pkgs; [ + # Base system tools + git + vim + libnotify + pavucontrol + brightnessctl + ffmpeg + alacritty + nautilus + hyprshot + hyprpicker + alejandra + + # Shell tools + fzf + zoxide + ripgrep + eza + fd + curl + unzip + wget + gnumake + + # TUIs + lazygit + lazydocker + btop + powertop + fastfetch + + # GUIs + chromium + obsidian + vlc + + # Can't find this in nixpkgs! + # Might have to make it ourselves + # asdcontrol + + # Don't want these right now + # obs-studio + # kdePackages.kdenLive + # pinta + # libreoffice + # signal_desktop + + # Commercial GUIs + typora + dropbox + spotify + # zoom + + # Development tools + github-desktop + gh + podman-tui + podman-compose + ]; + + homePackages = with pkgs; [ + ]; +} diff --git a/modules/themes.nix b/modules/themes.nix new file mode 100644 index 0000000..5abb596 --- /dev/null +++ b/modules/themes.nix @@ -0,0 +1,310 @@ +{ + "tokyo-night" = { + # Base colors + background = "#1a1b26"; + foreground = "#a9b1d6"; + surface = "#414868"; + surface_variant = "#565f89"; + + # Primary colors + primary = "#7aa2f7"; + primary_variant = "#7dcfff"; + secondary = "#bb9af7"; + accent = "#33ccff"; + + # Status colors + success = "#9ece6a"; + warning = "#e0af68"; + error = "#f7768e"; + info = "#7aa2f7"; + + # Terminal colors + black = "#32344a"; + red = "#f7768e"; + green = "#9ece6a"; + yellow = "#e0af68"; + blue = "#7aa2f7"; + magenta = "#ad8ee6"; + cyan = "#449dab"; + white = "#787c99"; + + # Bright terminal colors + bright_black = "#444b6a"; + bright_red = "#ff7a93"; + bright_green = "#b9f27c"; + bright_yellow = "#ff9e64"; + bright_blue = "#7da6ff"; + bright_magenta = "#bb9af7"; + bright_cyan = "#0db9d7"; + bright_white = "#acb0d0"; + + # UI elements + border = "#33ccff"; + selection = "#7aa2f7"; + inactive = "#565f89"; + foreground_muted = "#cfc9c2"; + + # VSCode theme + vscode_theme = "Tokyo Night"; + }; + + "catppuccin-macchiato" = { + # Base colors + background = "#24273a"; + foreground = "#cad3f5"; + surface = "#51576d"; + surface_variant = "#838ba7"; + + # Primary colors + primary = "#8caaee"; + primary_variant = "#8aadf4"; + secondary = "#f5bde6"; + accent = "#c6d0f5"; + + # Status colors + success = "#a6d189"; + warning = "#e5c890"; + error = "#ed8796"; + info = "#8caaee"; + + # Terminal colors + black = "#494d64"; + red = "#ed8796"; + green = "#a6da95"; + yellow = "#eed49f"; + blue = "#8aadf4"; + magenta = "#f5bde6"; + cyan = "#8bd5ca"; + white = "#b8c0e0"; + + # Bright terminal colors + bright_black = "#5b6078"; + bright_red = "#ed8796"; + bright_green = "#a6da95"; + bright_yellow = "#eed49f"; + bright_blue = "#8aadf4"; + bright_magenta = "#f5bde6"; + bright_cyan = "#8bd5ca"; + bright_white = "#a5adcb"; + + # UI elements + border = "#c6d0f5"; + selection = "#f4dbd6"; + inactive = "#838ba7"; + foreground_muted = "#c6d0f5"; + + # Special colors + orange = "#f5a97f"; + rosewater = "#f4dbd6"; + + # VSCode theme + vscode_theme = "Catppuccin Macchiato"; + }; + + "kanagawa" = { + # Base colors + background = "#1f1f28"; + foreground = "#dcd7ba"; + surface = "#2d4f67"; + surface_variant = "#727169"; + + # Primary colors + primary = "#7e9cd8"; + primary_variant = "#7fb4ca"; + secondary = "#957fb8"; + accent = "#938aa9"; + + # Status colors + success = "#76946a"; + warning = "#c0a36e"; + error = "#c34043"; + info = "#7e9cd8"; + + # Terminal colors + black = "#090618"; + red = "#c34043"; + green = "#76946a"; + yellow = "#c0a36e"; + blue = "#7e9cd8"; + magenta = "#957fb8"; + cyan = "#6a9589"; + white = "#c8c093"; + + # Bright terminal colors + bright_black = "#727169"; + bright_red = "#e82424"; + bright_green = "#98bb6c"; + bright_yellow = "#e6c384"; + bright_blue = "#7fb4ca"; + bright_magenta = "#938aa9"; + bright_cyan = "#7aa89f"; + bright_white = "#dcd7ba"; + + # UI elements + border = "#938aa9"; + selection = "#2d4f67"; + inactive = "#727169"; + foreground_muted = "#c8c093"; + + # Special colors + orange = "#ffa066"; + peach = "#ff5d62"; + + # VSCode theme + vscode_theme = "Kanagawa"; + }; + + "everforest" = { + # Base colors + background = "#2d353b"; + foreground = "#d3c6aa"; + surface = "#3d484d"; + surface_variant = "#475258"; + + # Primary colors + primary = "#7fbbb3"; + primary_variant = "#83c092"; + secondary = "#d699b6"; + accent = "#e67e80"; + + # Status colors + success = "#a7c080"; + warning = "#dbbc7f"; + error = "#e67e80"; + info = "#7fbbb3"; + + # Terminal colors + black = "#475258"; + red = "#e67e80"; + green = "#a7c080"; + yellow = "#dbbc7f"; + blue = "#7fbbb3"; + magenta = "#d699b6"; + cyan = "#83c092"; + white = "#d3c6aa"; + + # Bright terminal colors (same as normal for this theme) + bright_black = "#475258"; + bright_red = "#e67e80"; + bright_green = "#a7c080"; + bright_yellow = "#dbbc7f"; + bright_blue = "#7fbbb3"; + bright_magenta = "#d699b6"; + bright_cyan = "#83c092"; + bright_white = "#d3c6aa"; + + # UI elements + border = "#3d484d"; + selection = "#3d484d"; + inactive = "#2d353b"; + foreground_muted = "#d3c6aa"; + + # VSCode theme + vscode_theme = "Everforest Dark"; + }; + + "gruvbox" = { + # Base colors + background = "#282828"; + foreground = "#d4be98"; + surface = "#3c3836"; + surface_variant = "#504945"; + + # Primary colors + primary = "#7daea3"; + primary_variant = "#89b482"; + secondary = "#d3869b"; + accent = "#d8a657"; + + # Status colors + success = "#a9b665"; + warning = "#d8a657"; + error = "#ea6962"; + info = "#7daea3"; + + # Terminal colors + black = "#3c3836"; + red = "#ea6962"; + green = "#a9b665"; + yellow = "#d8a657"; + blue = "#7daea3"; + magenta = "#d3869b"; + cyan = "#89b482"; + white = "#d4be98"; + + # Bright terminal colors (same as normal for this theme) + bright_black = "#3c3836"; + bright_red = "#ea6962"; + bright_green = "#a9b665"; + bright_yellow = "#d8a657"; + bright_blue = "#7daea3"; + bright_magenta = "#d3869b"; + bright_cyan = "#89b482"; + bright_white = "#d4be98"; + + # UI elements + border = "#504945"; + selection = "#504945"; + inactive = "#665c54"; + foreground_muted = "#bdae93"; + + # VSCode theme + vscode_theme = "Gruvbox Dark"; + }; + + "catppuccin-mocha" = { + # Base colors + background = "#1e1e2e"; + foreground = "#cdd6f4"; + surface = "#313244"; + surface_variant = "#6c7086"; + + # Primary colors + primary = "#89b4fa"; + primary_variant = "#74c7ec"; + secondary = "#cba6f7"; + accent = "#b4befe"; + + # Status colors + success = "#a6e3a1"; + warning = "#f9e2af"; + error = "#f38ba8"; + info = "#89b4fa"; + + # Terminal colors + black = "#45475a"; + red = "#f38ba8"; + green = "#a6e3a1"; + yellow = "#f9e2af"; + blue = "#89b4fa"; + magenta = "#cba6f7"; + cyan = "#74c7ec"; + white = "#bac2de"; + + # Bright terminal colors + bright_black = "#585b70"; + bright_red = "#f38ba8"; + bright_green = "#a6e3a1"; + bright_yellow = "#f9e2af"; + bright_blue = "#89b4fa"; + bright_magenta = "#cba6f7"; + bright_cyan = "#74c7ec"; + bright_white = "#a6adc8"; + + # UI elements + border = "#b4befe"; + selection = "#f5e0dc"; + inactive = "#6c7086"; + foreground_muted = "#cdd6f4"; + + # Special colors + orange = "#fab387"; + rosewater = "#f5e0dc"; + + # VSCode theme + vscode_theme = "Catppuccin Mocha"; + }; + + # "nord" = {}; + # Add more themes here +}