Initial omarchy setup scripts

This commit is contained in:
Milan Martin Jäckel 2026-06-26 18:38:59 +02:00
commit 47d33a59a9
93 changed files with 3647 additions and 0 deletions

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
*.log
*.cache
.cache/
.DS_Store
Thumbs.db
*.backup
*.backup.*
node_modules/
__pycache__/

27
README.md Normal file
View File

@ -0,0 +1,27 @@
# Milan's Omarchy Config
## Install
```bash
git clone https://git.ta52.dk/milan/omarchy-config.git
cd omarchy-config
chmod +x install.sh
./install.sh
```
## Update repository
After changing your setup:
```bash
./backup.sh
git add .
git commit -m "Update"
git push
```

13
aur-packages.txt Normal file
View File

@ -0,0 +1,13 @@
asciiquarium-transparent-git
balena-etcher
bibata-cursor-theme-bin
cutechess
hyprmod-git
kdeconnect-git
lmms-git
lunacy-bin
penguins-eggs
stockfish
teams-for-linux
virtualbox-bin
zen-browser-bin

40
backup.sh Normal file
View File

@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -euo pipefail
echo "Updating package lists..."
pacman -Qqe > packages.txt
pacman -Qqem > aur-packages.txt
pacman -Qe > installed-packages-full.txt
echo "Updating configs..."
rm -rf configs
mkdir configs
cp -r ~/.config/omarchy configs/
cp -r ~/.config/hypr configs/
cp -r ~/.config/waybar configs/
cp -r ~/.config/walker configs/
cp -r ~/.config/ghostty configs/
cp -r ~/.config/kitty configs/
cp -r ~/.config/mako configs/
cp -r ~/.config/nvim configs/
cp -r ~/.config/fastfetch configs/
cp ~/.config/starship.toml configs/
cp ~/.config/mimeapps.list configs/
echo "Updating services..."
systemctl --user list-unit-files --state=enabled > system/user-services.txt
sudo systemctl list-unit-files --state=enabled > system/system-services.txt
echo
echo "Done!"
echo
echo "Review changes:"
echo "git diff"

View File

@ -0,0 +1,156 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "file",
"source": "~/.config/omarchy/branding/about.txt",
"color": { "1": "green" },
"padding": {
"top": 2,
"right": 6,
"left": 2
}
},
"modules": [
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
},
{
"type": "host",
"key": " PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├",
"showPeCoreCount": true,
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├",
"detectionMethod": "pci",
"keyColor": "green"
},
{
"type": "display",
"key": "│ ├󱄄",
"keyColor": "green"
},
{
"type": "disk",
"key": "│ ├󰋊",
"keyColor": "green"
},
{
"type": "memory",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "swap",
"key": "└ └󰓡 ",
"keyColor": "green"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
},
{
"type": "command",
"key": "\ue900 OS",
"keyColor": "blue",
"text": "version=$(omarchy-version); echo \"Omarchy $version\""
},
{
"type": "command",
"key": "│ ├󰘬",
"keyColor": "blue",
"text": "branch=$(omarchy-version-branch); echo \"$branch\""
},
{
"type": "command",
"key": "│ ├󰔫",
"keyColor": "blue",
"text": "channel=$(omarchy-version-channel); echo \"$channel\""
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wm",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "de",
"key": " DE",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "command",
"key": "│ ├󰸌",
"keyColor": "blue",
"text": "theme=$(omarchy-theme-current); echo -e \"$theme \\e[38m●\\e[37m●\\e[36m●\\e[35m●\\e[34m●\\e[33m●\\e[32m●\\e[31m●\""
},
{
"type": "terminalfont",
"key": "└ └",
"keyColor": "blue"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌────────────────Age / Uptime / Update───────────────┐"
},
{
"type": "command",
"key": "󱦟 OS Age",
"keyColor": "magenta",
"text": "echo $(( ($(date +%s) - $(stat -c %W /)) / 86400 )) days"
},
{
"type": "uptime",
"key": "󱫐 Uptime",
"keyColor": "magenta"
},
{
"type": "command",
"key": " Update",
"keyColor": "magenta",
"text": "updated=$(omarchy-version-pkgs); echo \"$updated\""
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break"
]
}

37
configs/ghostty/config Normal file
View File

@ -0,0 +1,37 @@
# Dynamic theme colors
config-file = ?"~/.config/omarchy/current/theme/ghostty.conf"
# Font
font-family = "JetBrainsMonoNL Nerd Font"
font-style = Regular
font-size = 9
# Window
window-theme = ghostty
window-padding-x = 14
window-padding-y = 14
confirm-close-surface=false
resize-overlay = never
gtk-toolbar-style = flat
# Cursor styling
cursor-style = "block"
cursor-style-blink = false
# Cursor styling + SSH session terminfo
# (all shell integration options must be passed together)
shell-integration-features = no-cursor,ssh-env
# Keyboard bindings
keybind = shift+insert=paste_from_clipboard
keybind = control+insert=copy_to_clipboard
keybind = super+control+shift+alt+arrow_down=resize_split:down,100
keybind = super+control+shift+alt+arrow_up=resize_split:up,100
keybind = super+control+shift+alt+arrow_left=resize_split:left,100
keybind = super+control+shift+alt+arrow_right=resize_split:right,100
# Slowdown mouse scrolling
mouse-scroll-multiplier = 0.95
# Fix general slowness on hyprland (https://github.com/ghostty-org/ghostty/discussions/3224)
async-backend = epoll

View File

@ -0,0 +1,2 @@
# Extra autostart processes
# exec-once = uwsm-app -- my-service

View File

@ -0,0 +1,42 @@
# Application bindings
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" bash -c "tmux attach || tmux new -s Work"
bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser
bindd = SUPER, E, File manager, exec, uwsm-app -- nautilus --new-window
bindd = SUPER ALT SHIFT, E, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"
bindd = SUPER, B, Browser, exec, uwsm-app -- firefox
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
bindd = SUPER SHIFT ALT, M, Music TUI, exec, omarchy-launch-or-focus-tui cliamp
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian"
bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
bindd = SUPER SHIFT ALT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
#bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/"
bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
bindd = SHIFT, SPACE, Omarchy menu, exec, omarchy-launch-walker
# Add extra bindings
# bind = SUPER SHIFT, R, exec, alacritty -e ssh your-server
#
# Overwrite existing bindings, like putting Omarchy Menu on Super + Space
# unbind = SUPER, SPACE
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu
# Logitech MX Keys
# bind = SUPER SHIFT, S, exec, omarchy-capture-screenshot # Print Screen Button
# bind = SUPER, H, exec, voxtype record toggle # Dictation Button
# bind = SUPER, PERIOD, exec, omarchy-launch-walker -m symbols # Emoji Button

8
configs/hypr/envs.conf Normal file
View File

@ -0,0 +1,8 @@
env = XCURSOR_THEME,Moga-Candy-Black
env = XCURSOR_SIZE,18
# NVIDIA (Turing+ with GSP firmware)
env = NVD_BACKEND,direct
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia

View File

@ -0,0 +1,19 @@
general {
lock_cmd = omarchy-system-lock # lock screen and 1password
before_sleep_cmd = OMARCHY_LOCK_ONLY=true omarchy-system-lock # lock before suspend without scheduling display off.
after_sleep_cmd = sleep 1 && omarchy-system-wake # delay for PAM readiness, then turn on display.
inhibit_sleep = 3 # wait until screen is locked
}
# Start screensaver after 2.5 minutes
listener {
timeout = 150
on-timeout = pidof hyprlock || omarchy-launch-screensaver
}
# Lock system after 5 minutes (screensaver resets idle timer, so have to just do half + 2s margin)
listener {
timeout = 152
on-timeout = omarchy-system-lock
on-resume = omarchy-system-wake
}

View File

@ -0,0 +1,28 @@
general {
lock_cmd = omarchy-system-lock # lock screen and 1password
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = sleep 1 && hyprctl dispatch dpms on # delay for PAM readiness, then turn on display.
inhibit_sleep = 3 # wait until screen is locked
}
listener {
timeout = 150 # 2.5min
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
}
listener {
timeout = 151 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 330 # 5.5min
on-timeout = brightnessctl -sd '*::kbd_backlight' set 0 # save state and turn off keyboard backlight
on-resume = brightnessctl -rd '*::kbd_backlight' # restore keyboard backlight
}
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
}

View File

@ -0,0 +1,14 @@
# Generated by HyprMod
decoration:inactive_opacity = 0.90
decoration:rounding = 4
general:border_size = 1
general:col.active_border = 0xff99c1f1 45deg
general:gaps_out = 3
general:gaps_in = 1
gestures:workspace_swipe_touch = true
input:natural_scroll = true
input:touchpad:natural_scroll = true
# Animations
animation = workspaces, 1, 1.0, default

View File

@ -0,0 +1,32 @@
# Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/
# Use defaults Omarchy defaults (but don't edit these directly!)
source = ~/.local/share/omarchy/default/hypr/autostart.conf
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
source = ~/.local/share/omarchy/default/hypr/bindings/clipboard.conf
source = ~/.local/share/omarchy/default/hypr/bindings/tiling-v2.conf
source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf
source = ~/.local/share/omarchy/default/hypr/envs.conf
source = ~/.local/share/omarchy/default/hypr/looknfeel.conf
source = ~/.local/share/omarchy/default/hypr/input.conf
source = ~/.local/share/omarchy/default/hypr/windows.conf
source = ~/.config/omarchy/current/theme/hyprland.conf
# Change your own setup in these files (and overwrite any settings from defaults!)
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/looknfeel.conf
source = ~/.config/hypr/autostart.conf
# Toggle config flags dynamically
source = ~/.local/state/omarchy/toggles/hypr/*.conf
# Add any other personal Hyprland configuration below
# windowrule = workspace 5, match:class qemu
# HyprMod managed settings
source = /home/milan/.config/hypr/hyprland-gui.conf
env = XCURSOR_THEME,Bibata-Modern-Classic
env = XCURSOR_SIZE,18

View File

@ -0,0 +1,43 @@
source = ~/.config/omarchy/current/theme/hyprlock.conf
general {
ignore_empty_input = true
}
background {
monitor =
color = $color
path = ~/.config/omarchy/current/background
blur_passes = 3
}
animations {
enabled = false
}
input-field {
monitor =
size = 650, 100
position = 0, 0
halign = center
valign = center
inner_color = $inner_color
outer_color = $outer_color
outline_thickness = 4
font_family = JetBrainsMonoNL Nerd Font
font_color = $font_color
placeholder_text = Enter Password
check_color = $check_color
fail_text = <i>$FAIL ($ATTEMPTS)</i>
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
auth {
fingerprint:enabled = false
}

View File

@ -0,0 +1,14 @@
# Makes hyprsunset do nothing to the screen by default
# Without this, the default applies some tint to the monitor
profile {
time = 07:00
identity = true
}
# To enable auto switch to nightlight, set in your .config/hypr/autostart:
# exec-once = uwsm app -- hyprsunset
# and use the following:
# profile {
# time = 20:00
# temperature = 4000
# }

60
configs/hypr/input.conf Normal file
View File

@ -0,0 +1,60 @@
# Control your input devices
# See https://wiki.hypr.land/Configuring/Basics/Variables/#input
input {
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
# kb_layout = us,dk,eu
# Use a specific keyboard variant if needed (e.g. intl for international keyboards)
# kb_variant = intl
kb_layout = dk
kb_options = compose:caps # ,grp:alts_toggle
# Change speed of keyboard repeat
repeat_rate = 40
repeat_delay = 250
# Start with numlock on by default
numlock_by_default = true
# Increase sensitivity for mouse/trackpad (default: 0)
# sensitivity = 0.35
# Turn off mouse acceleration (default: adaptive)
# accel_profile = flat
touchpad {
# Use natural (inverse) scrolling
# natural_scroll = true
# Use two-finger clicks for right-click instead of lower-right corner
clickfinger_behavior = true
# Control the speed of your scrolling
scroll_factor = 0.4
# Enable the touchpad while typing
# disable_while_typing = false
# Left-click-and-drag with three fingers
# drag_3fg = 1
}
}
# Scroll nicely in the terminal
windowrule = match:class (Alacritty|kitty|foot), scroll_touchpad 1.5
windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2
# Natural scroll for mouse only
device {
name = logitech-lenovo-usb-optical-mouse
natural_scroll = false
}
# 4-finger swipe: left → next workspace, right → previous workspace
gesture = 4, left, dispatcher, workspace, e+1
gesture = 4, right, dispatcher, workspace, e-1
# 3-finger swipe: left → next window, right → previous window
gesture = 3, left, dispatcher, cyclenext
gesture = 3, right, dispatcher, cyclenext, prev

View File

@ -0,0 +1,42 @@
# Change the default Omarchy look'n'feel
# https://wiki.hypr.land/Configuring/Basics/Variables/#general
general {
# No gaps between windows or borders
# gaps_in = 0
# gaps_out = 0
# border_size = 0
# Change to niri-like side-scrolling layout
# layout = scrolling
}
# https://wiki.hypr.land/Configuring/Basics/Variables/#decoration
decoration {
# Use round window corners
# rounding = 8
# Dim unfocused windows (0.0 = no dim, 1.0 = fully dimmed)
# dim_inactive = true
# dim_strength = 0.15
}
# https://wiki.hypr.land/Configuring/Basics/Variables/#animations
animations {
# Disable all animations
# enabled = no
}
# https://wiki.hypr.land/Configuring/Basics/Variables/#layout
layout {
# Avoid overly wide single-window layouts on wide screens
# single_window_aspect_ratio = 1 1
}
# Fix default config compatibility with Hyprland 0.55+
# The default looknfeel.conf uses -1 for locked border colors,
# which newer Hyprland rejects (needs proper color values)
group {
col.border_locked_active = $inactiveBorderColor
col.border_locked_inactive = $inactiveBorderColor
}

View File

@ -0,0 +1,26 @@
# See https://wiki.hypr.land/Configuring/Basics/Monitors/
# List current monitors and resolutions possible: hyprctl monitors
# Format: monitor = [port], resolution, position, scale
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
#env = GDK_SCALE,1
#monitor=,preferred,auto,auto
# Good compromise for 27" or 32" 4K monitors (but fractional!)
# env = GDK_SCALE,1.75
# monitor=,preferred,auto,1.6
# Straight 1x setup for low-resolution displays like 1080p or 1440p
# Or for ultrawide monitors like 34" 3440x1440 or 49" 5120x1440
env = GDK_SCALE,1
monitor=,preferred,auto,1.25
# Portrait/rotated secondary monitor (transform: 1 = 90°, 3 = 270°)
# monitor = DP-2, preferred, auto, 1, transform, 1
# Example for Framework 13 w/ 6K XDR Apple display
# monitor = DP-5, 6016x3384@60, auto, 2
# monitor = eDP-1, 2880x1920@120, auto, 2
# Disable the second ghost monitor on an Apple 6K XDR over Thunderbolt
# monitor=DP-2,disable

4
configs/hypr/xdph.conf Normal file
View File

@ -0,0 +1,4 @@
screencopy {
allow_token_by_default = true
custom_picker_binary = hyprland-preview-share-picker
}

30
configs/kitty/kitty.conf Normal file
View File

@ -0,0 +1,30 @@
include ~/.config/omarchy/current/theme/kitty.conf
# Font
font_family JetBrainsMonoNL Nerd Font
bold_italic_font auto
font_size 9.0
# Window
window_padding_width 14
hide_window_decorations yes
confirm_os_window_close 0
# Keybindings
map ctrl+insert copy_to_clipboard
map shift+insert paste_from_clipboard
# Allow remote access
allow_remote_control yes
# Aesthetics
cursor_shape block
cursor_blink_interval 0
shell_integration no-cursor
enable_audio_bell no
# Minimal Tab bar styling
tab_bar_edge bottom
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template {title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}

1
configs/mako/config Symbolic link
View File

@ -0,0 +1 @@
/home/milan/.config/omarchy/current/theme/mako.ini

66
configs/mimeapps.list Normal file
View File

@ -0,0 +1,66 @@
[Default Applications]
text/plain=nvim.desktop
text/english=nvim.desktop
text/x-makefile=nvim.desktop
text/x-c++hdr=nvim.desktop
text/x-c++src=nvim.desktop
text/x-chdr=nvim.desktop
text/x-csrc=nvim.desktop
text/x-java=nvim.desktop
text/x-moc=nvim.desktop
text/x-pascal=nvim.desktop
text/x-tcl=nvim.desktop
text/x-tex=nvim.desktop
application/x-shellscript=nvim.desktop
text/x-c=nvim.desktop
text/x-c++=nvim.desktop
application/xml=nvim.desktop
text/xml=nvim.desktop
inode/directory=org.gnome.Nautilus.desktop
image/png=imv.desktop
image/jpeg=imv.desktop
image/gif=imv.desktop
image/webp=imv.desktop
image/bmp=imv.desktop
image/tiff=imv.desktop
application/pdf=org.gnome.Evince.desktop
text/html=firefox.desktop
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop
x-scheme-handler/about=firefox.desktop
x-scheme-handler/unknown=firefox.desktop
video/mp4=mpv.desktop
video/x-msvideo=mpv.desktop
video/x-matroska=mpv.desktop
video/x-flv=mpv.desktop
video/x-ms-wmv=mpv.desktop
video/mpeg=mpv.desktop
video/ogg=mpv.desktop
video/webm=mpv.desktop
video/quicktime=mpv.desktop
video/3gpp=mpv.desktop
video/3gpp2=mpv.desktop
video/x-ms-asf=mpv.desktop
video/x-ogm+ogg=mpv.desktop
video/x-theora+ogg=mpv.desktop
application/ogg=mpv.desktop
x-scheme-handler/mailto=HEY.desktop
x-scheme-handler/chrome=zen.desktop
application/x-extension-htm=zen.desktop
application/x-extension-html=zen.desktop
application/x-extension-shtml=zen.desktop
application/xhtml+xml=zen.desktop
application/x-extension-xhtml=zen.desktop
application/x-extension-xht=zen.desktop
[Added Associations]
x-scheme-handler/http=zen.desktop;
x-scheme-handler/https=zen.desktop;
x-scheme-handler/chrome=zen.desktop;
text/html=zen.desktop;
application/x-extension-htm=zen.desktop;
application/x-extension-html=zen.desktop;
application/x-extension-shtml=zen.desktop;
application/xhtml+xml=zen.desktop;
application/x-extension-xhtml=zen.desktop;
application/x-extension-xht=zen.desktop;

8
configs/nvim/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data

View File

@ -0,0 +1,15 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}

201
configs/nvim/LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

4
configs/nvim/README.md Normal file
View File

@ -0,0 +1,4 @@
# 💤 LazyVim
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.

2
configs/nvim/init.lua Normal file
View File

@ -0,0 +1,2 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

View File

@ -0,0 +1,53 @@
{
"LazyVim": { "branch": "main", "commit": "83d90f339defdb109a6ede333865a66ffc7ef6aa" },
"aether.nvim": { "branch": "v3", "commit": "50643b773cf509080bcc7da361a81392d0edc9db" },
"bamboo.nvim": { "branch": "master", "commit": "1309bc88bffcf1bedc3e84e7fa9004de93da774a" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" },
"conform.nvim": { "branch": "master", "commit": "dca1a190aa85f9065979ef35802fb77131911106" },
"ethereal.nvim": { "branch": "main", "commit": "a0ec73332e537228981b6a4f465cef82bb3e1d36" },
"everforest": { "branch": "master", "commit": "aeef62ee97872d2557d25904d160ec93a4a355f8" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"flexoki-neovim": { "branch": "main", "commit": "c3e2251e813d29d885a7cbbe9808a7af234d845d" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "6d808f99bd63303646794406e270bd553ad7792e" },
"grug-far.nvim": { "branch": "main", "commit": "21604255d0e8f9968322f61f2b6c09e5efe1285a" },
"gruvbox.nvim": { "branch": "main", "commit": "154eb5ff5b96d0641307113fa385eaf0d36d9796" },
"hackerman.nvim": { "branch": "main", "commit": "8134000fa4de5036d1af519774c3e373887226e3" },
"kanagawa.nvim": { "branch": "master", "commit": "8ad3b4cdcc804b332c32db8f9743667e1bb82b99" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
"lualine.nvim": { "branch": "master", "commit": "a905eeebc4e63fdc48b5135d3bf8aea5618fb21c" },
"lumon.nvim": { "branch": "master", "commit": "f8ce95213e57b379089da23abc36a1fc39936b63" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "0a3b42c3e503df87aef6d6513e13148381495c3a" },
"mason.nvim": { "branch": "main", "commit": "12ddd182d9efbdc848b540f16484a583d52da0fb" },
"matteblack.nvim": { "branch": "main", "commit": "a8a039f5d6189b28d76fa0221e64965efec7e996" },
"miasma.nvim": { "branch": "main", "commit": "466456f08d1a114c983c0d24e8fc01339e3b0a27" },
"mini.ai": { "branch": "main", "commit": "43eb2074843950a3a25aae56a5f41362ec043bfa" },
"mini.icons": { "branch": "main", "commit": "bac6317300e205335df425296570d84322730067" },
"mini.pairs": { "branch": "main", "commit": "42387c7fe68fc0b6e95eaf37f1bb76e7bffaa0d9" },
"monokai-pro.nvim": { "branch": "master", "commit": "d8884d4473667c48bd17a68d08383d38839136a3" },
"neo-tree.nvim": { "branch": "main", "commit": "4d0828d95adaf4250c1373d2cd9318d3509712b7" },
"nightfox.nvim": { "branch": "main", "commit": "26b61b1f856ec37cae3cb64f5690adb955f246a1" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nord.nvim": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-lint": { "branch": "master", "commit": "eab58b48eb11d7745c11c505e0f3057165902461" },
"nvim-lspconfig": { "branch": "master", "commit": "e146efacbafed3789ac568abcc5a981c5decaa58" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"retro-82.nvim": { "branch": "master", "commit": "8f81d59140b0a1a07e14b095f113b7883401eb35" },
"rose-pine": { "branch": "main", "commit": "9504524e5ed0e326534698f637f9d038ba4cd0ee" },
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
"vantablack.nvim": { "branch": "main", "commit": "8a05ea96343914f1001e937b4fa7d9d44b51d221" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
"white.nvim": { "branch": "main", "commit": "e3c3c3cc4b943b521032299e4f9b0d84a02e06d1" }
}

10
configs/nvim/lazyvim.json Normal file
View File

@ -0,0 +1,10 @@
{
"extras": [
"lazyvim.plugins.extras.editor.neo-tree"
],
"install_version": 8,
"news": {
"NEWS.md": "10960"
},
"version": 8
}

View File

@ -0,0 +1,8 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")

View File

@ -0,0 +1,3 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here

View File

@ -0,0 +1,53 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

View File

@ -0,0 +1,4 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
vim.opt.relativenumber = false

View File

@ -0,0 +1,101 @@
return {
-- Load all theme plugins but don't apply them
-- This ensures all colorschemes are available for hot-reloading
{
"ribru17/bamboo.nvim",
lazy = true,
priority = 1000,
},
{
"bjarneo/aether.nvim",
lazy = true,
priority = 1000,
},
{
"bjarneo/ethereal.nvim",
lazy = true,
priority = 1000,
},
{
"bjarneo/hackerman.nvim",
lazy = true,
priority = 1000,
},
{
"bjarneo/vantablack.nvim",
lazy = true,
priority = 1000,
},
{
"bjarneo/white.nvim",
lazy = true,
priority = 1000,
},
{
"catppuccin/nvim",
name = "catppuccin",
lazy = true,
priority = 1000,
},
{
"sainnhe/everforest",
lazy = true,
priority = 1000,
},
{
"kepano/flexoki-neovim",
lazy = true,
priority = 1000,
},
{
"ellisonleao/gruvbox.nvim",
lazy = true,
priority = 1000,
},
{
"rebelot/kanagawa.nvim",
lazy = true,
priority = 1000,
},
{
"tahayvr/matteblack.nvim",
lazy = true,
priority = 1000,
},
{
"loctvl842/monokai-pro.nvim",
lazy = true,
priority = 1000,
},
{
"shaunsingh/nord.nvim",
lazy = true,
priority = 1000,
},
{
"rose-pine/neovim",
name = "rose-pine",
lazy = true,
priority = 1000,
},
{
"folke/tokyonight.nvim",
lazy = true,
priority = 1000,
},
{
"OldJobobo/miasma.nvim",
lazy = true,
priority = 1000,
},
{
"OldJobobo/retro-82.nvim",
lazy = true,
priority = 1000,
},
{
"omacom-io/lumon.nvim",
lazy = true,
priority = 1000,
},
}

View File

@ -0,0 +1,9 @@
return {
"LazyVim/LazyVim",
opts = {
news = {
lazyvim = false,
neovim = false,
},
},
}

View File

@ -0,0 +1,197 @@
-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},
-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},
-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").lsp.on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},
-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return "😄"
end,
})
end,
},
-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},
-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
}

View File

@ -0,0 +1,91 @@
return {
{
name = "theme-hotreload",
dir = vim.fn.stdpath("config"),
lazy = false,
priority = 1000,
config = function()
local transparency_file = vim.fn.stdpath("config") .. "/plugin/after/transparency.lua"
vim.api.nvim_create_autocmd("User", {
pattern = "LazyReload",
callback = function()
-- Unload the theme module
package.loaded["plugins.theme"] = nil
vim.schedule(function()
local ok, theme_spec = pcall(require, "plugins.theme")
if not ok then
return
end
-- Find the theme plugin and unload it
local theme_plugin_name = nil
for _, spec in ipairs(theme_spec) do
if spec[1] and spec[1] ~= "LazyVim/LazyVim" then
theme_plugin_name = spec.name or spec[1]
break
end
end
-- Clear all highlight groups before applying new theme
vim.cmd("highlight clear")
if vim.fn.exists("syntax_on") then
vim.cmd("syntax reset")
end
-- Reset background to default so colorscheme can set it properly (light themes will set to light)
vim.o.background = "dark"
-- Unload theme plugin modules to force full reload
if theme_plugin_name then
local plugin = require("lazy.core.config").plugins[theme_plugin_name]
if plugin then
-- Unload all lua modules from the plugin directory
local plugin_dir = plugin.dir .. "/lua"
require("lazy.core.util").walkmods(plugin_dir, function(modname)
package.loaded[modname] = nil
package.preload[modname] = nil
end)
end
end
-- Find and apply the new colorscheme
for _, spec in ipairs(theme_spec) do
if spec[1] == "LazyVim/LazyVim" and spec.opts and spec.opts.colorscheme then
local colorscheme = spec.opts.colorscheme
-- Load the colorscheme plugin
require("lazy.core.loader").colorscheme(colorscheme)
vim.defer_fn(function()
-- Apply the colorscheme (it will set background itself)
pcall(vim.cmd.colorscheme, colorscheme)
-- Force redraw to update all UI elements
vim.cmd("redraw!")
-- Reload transparency settings
if vim.fn.filereadable(transparency_file) == 1 then
vim.defer_fn(function()
vim.cmd.source(transparency_file)
-- Trigger UI updates for various plugins
vim.api.nvim_exec_autocmds("ColorScheme", { modeline = false })
vim.api.nvim_exec_autocmds("VimEnter", { modeline = false })
-- Final redraw
vim.cmd("redraw!")
end, 5)
end
end, 5)
break
end
end
end)
end,
})
end,
},
}

View File

@ -0,0 +1,8 @@
return {
"folke/snacks.nvim",
opts = {
scroll = {
enabled = false, -- Disable scrolling animations
},
},
}

View File

@ -0,0 +1 @@
/home/milan/.config/omarchy/current/theme/neovim.lua

View File

@ -0,0 +1,59 @@
-- Make highlight groups transparent while preserving their other attributes
local function make_transparent(name)
local ok, hl = pcall(vim.api.nvim_get_hl, 0, { name = name, link = false })
if ok then
hl.bg = nil
vim.api.nvim_set_hl(0, name, hl)
end
end
local groups = {
-- transparent background
"Normal",
"NormalFloat",
"FloatBorder",
"Pmenu",
"Terminal",
"EndOfBuffer",
"FoldColumn",
"Folded",
"SignColumn",
"LineNr",
"CursorLineNr",
"NormalNC",
"WhichKeyFloat",
"TelescopeBorder",
"TelescopeNormal",
"TelescopePromptBorder",
"TelescopePromptTitle",
-- neotree
"NeoTreeNormal",
"NeoTreeNormalNC",
"NeoTreeVertSplit",
"NeoTreeWinSeparator",
"NeoTreeEndOfBuffer",
-- nvim-tree
"NvimTreeNormal",
"NvimTreeVertSplit",
"NvimTreeEndOfBuffer",
-- notify
"NotifyINFOBody",
"NotifyERRORBody",
"NotifyWARNBody",
"NotifyTRACEBody",
"NotifyDEBUGBody",
"NotifyINFOTitle",
"NotifyERRORTitle",
"NotifyWARNTitle",
"NotifyTRACETitle",
"NotifyDEBUGTitle",
"NotifyINFOBorder",
"NotifyERRORBorder",
"NotifyWARNBorder",
"NotifyTRACEBorder",
"NotifyDEBUGBorder",
}
for _, name in ipairs(groups) do
make_transparent(name)
end

3
configs/nvim/stylua.toml Normal file
View File

@ -0,0 +1,3 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120

View File

@ -0,0 +1,26 @@
██████████████████████████████████████████████████████
██████████████████████████████████████████████████████
████ ████ ████
████ ████ ████
████ █████████████████████ ████████ ████
████ █████████████████████ ████████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████████████ ████ ████
████████████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ██████████████████████████████████████ ████
████ ██████████████████████████████████████ ████
████ ████ ████
████ ████ ████
█████████████████████████████ ████████████████████
█████████████████████████████ ████████████████████

View File

@ -0,0 +1,10 @@
▄▄▄
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███
███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
███ █▀

View File

@ -0,0 +1 @@
/home/milan/.config/omarchy/current/theme/backgrounds/2-coffee-beans.jpg

View File

@ -0,0 +1 @@
ristretto

View File

@ -0,0 +1,47 @@
[colors.primary]
background = "#2c2525"
foreground = "#e6d9db"
[colors.cursor]
text = "#2c2525"
cursor = "#c3b7b8"
[colors.vi_mode_cursor]
text = "#2c2525"
cursor = "#c3b7b8"
[colors.search.matches]
foreground = "#2c2525"
background = "#f9cc6c"
[colors.search.focused_match]
foreground = "#2c2525"
background = "#fd6883"
[colors.footer_bar]
foreground = "#2c2525"
background = "#e6d9db"
[colors.selection]
text = "#e6d9db"
background = "#403e41"
[colors.normal]
black = "#72696a"
red = "#fd6883"
green = "#adda78"
yellow = "#f9cc6c"
blue = "#f38d70"
magenta = "#a8a9eb"
cyan = "#85dacc"
white = "#e6d9db"
[colors.bright]
black = "#948a8b"
red = "#ff8297"
green = "#c8e292"
yellow = "#fcd675"
blue = "#f8a788"
magenta = "#bebffd"
cyan = "#9bf1e1"
white = "#f1e5e7"

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,82 @@
#Btop monokai pro ristretto theme
#Reconfigured from monokai theme
# Main background, empty for terminal default, need to be empty if you want transparent background
theme[main_bg]="#2c2421"
# Main text color
theme[main_fg]="#e6d9db"
# Title color for boxes
theme[title]="#e6d9db"
# Highlight color for keyboard shortcuts
theme[hi_fg]="#fd6883"
# Background color of selected item in processes box
theme[selected_bg]="#3d2f2a"
# Foreground color of selected item in processes box
theme[selected_fg]="#e6d9db"
# Color of inactive/disabled text
theme[inactive_fg]="#72696a"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="#adda78"
# Cpu box outline color
theme[cpu_box]="#5b4a45"
# Memory/disks box outline color
theme[mem_box]="#5b4a45"
# Net up/down box outline color
theme[net_box]="#5b4a45"
# Processes box outline color
theme[proc_box]="#5b4a45"
# Box divider line and small boxes line color
theme[div_line]="#72696a"
# Temperature graph colors
theme[temp_start]="#a8a9eb"
theme[temp_mid]="#f38d70"
theme[temp_end]="#fd6a85"
# CPU graph colors
theme[cpu_start]="#adda78"
theme[cpu_mid]="#f9cc6c"
theme[cpu_end]="#fd6883"
# Mem/Disk free meter
theme[free_start]="#5b4a45"
theme[free_mid]="#adda78"
theme[free_end]="#c5e2a3"
# Mem/Disk cached meter
theme[cached_start]="#5b4a45"
theme[cached_mid]="#85dacc"
theme[cached_end]="#b3e8dd"
# Mem/Disk available meter
theme[available_start]="#5b4a45"
theme[available_mid]="#f9cc6c"
theme[available_end]="#fce2a3"
# Mem/Disk used meter
theme[used_start]="#5b4a45"
theme[used_mid]="#fd6a85"
theme[used_end]="#feb5c7"
# Download graph colors
theme[download_start]="#3d2f2a"
theme[download_mid]="#a8a9eb"
theme[download_end]="#c5c6f0"
# Upload graph colors
theme[upload_start]="#3d2f2a"
theme[upload_mid]="#fd6a85"
theme[upload_end]="#feb5c7"

View File

@ -0,0 +1 @@
44,37,37

View File

@ -0,0 +1,23 @@
accent = "#f38d70"
cursor = "#c3b7b8"
foreground = "#e6d9db"
background = "#2c2525"
selection_foreground = "#e6d9db"
selection_background = "#403e41"
color0 = "#72696a"
color1 = "#fd6883"
color2 = "#adda78"
color3 = "#f9cc6c"
color4 = "#f38d70"
color5 = "#a8a9eb"
color6 = "#85dacc"
color7 = "#e6d9db"
color8 = "#948a8b"
color9 = "#ff8297"
color10 = "#c8e292"
color11 = "#fcd675"
color12 = "#f8a788"
color13 = "#bebffd"
color14 = "#9bf1e1"
color15 = "#f1e5e7"

View File

@ -0,0 +1,25 @@
[colors-dark]
foreground=e6d9db
background=2c2525
selection-foreground=e6d9db
selection-background=403e41
cursor=2c2525 c3b7b8
regular0=72696a
regular1=fd6883
regular2=adda78
regular3=f9cc6c
regular4=f38d70
regular5=a8a9eb
regular6=85dacc
regular7=e6d9db
bright0=948a8b
bright1=ff8297
bright2=c8e292
bright3=fcd675
bright4=f8a788
bright5=bebffd
bright6=9bf1e1
bright7=f1e5e7

View File

@ -0,0 +1,22 @@
background = #2c2525
foreground = #e6d9db
cursor-color = #c3b7b8
selection-background = #403e41
selection-foreground = #e6d9db
palette = 0=#72696a
palette = 1=#fd6883
palette = 2=#adda78
palette = 3=#f9cc6c
palette = 4=#f38d70
palette = 5=#a8a9eb
palette = 6=#85dacc
palette = 7=#e6d9db
palette = 8=#948a8b
palette = 9=#ff8297
palette = 10=#c8e292
palette = 11=#fcd675
palette = 12=#f8a788
palette = 13=#bebffd
palette = 14=#9bf1e1
palette = 15=#f1e5e7

View File

@ -0,0 +1,137 @@
# Gum Style (generic) Variables
env = FOREGROUND,##e6d9db
env = BACKGROUND,##2c2525
env = BORDER_FOREGROUND,##f38d70
env = BORDER_BACKGROUND,##2c2525
# Gum Confirm Style Variables
env = GUM_CONFIRM_PROMPT_FOREGROUND,##f38d70
env = GUM_CONFIRM_PROMPT_BACKGROUND,##2c2525
env = GUM_CONFIRM_SELECTED_FOREGROUND,##e6d9db
env = GUM_CONFIRM_SELECTED_BACKGROUND,##403e41
env = GUM_CONFIRM_UNSELECTED_FOREGROUND,##e6d9db
env = GUM_CONFIRM_UNSELECTED_BACKGROUND,##2c2525
# Gum Input Style Variables
env = GUM_INPUT_PROMPT_FOREGROUND,##f38d70
env = GUM_INPUT_PROMPT_BACKGROUND,##2c2525
env = GUM_INPUT_PLACEHOLDER_FOREGROUND,##948a8b
env = GUM_INPUT_PLACEHOLDER_BACKGROUND,##2c2525
env = GUM_INPUT_CURSOR_FOREGROUND,##c3b7b8
env = GUM_INPUT_CURSOR_BACKGROUND,##2c2525
env = GUM_INPUT_HEADER_FOREGROUND,##e6d9db
env = GUM_INPUT_HEADER_BACKGROUND,##2c2525
# Gum Choose Style Variables
env = GUM_CHOOSE_CURSOR_FOREGROUND,##f38d70
env = GUM_CHOOSE_CURSOR_BACKGROUND,##2c2525
env = GUM_CHOOSE_HEADER_FOREGROUND,##e6d9db
env = GUM_CHOOSE_HEADER_BACKGROUND,##2c2525
env = GUM_CHOOSE_ITEM_FOREGROUND,##e6d9db
env = GUM_CHOOSE_ITEM_BACKGROUND,##2c2525
env = GUM_CHOOSE_SELECTED_FOREGROUND,##e6d9db
env = GUM_CHOOSE_SELECTED_BACKGROUND,##403e41
# Gum Filter Style Variables
env = GUM_FILTER_PROMPT_FOREGROUND,##f38d70
env = GUM_FILTER_PROMPT_BACKGROUND,##2c2525
env = GUM_FILTER_TEXT_FOREGROUND,##e6d9db
env = GUM_FILTER_TEXT_BACKGROUND,##2c2525
env = GUM_FILTER_MATCH_FOREGROUND,##f38d70
env = GUM_FILTER_CURSOR_TEXT_FOREGROUND,##c3b7b8
env = GUM_FILTER_CURSOR_TEXT_BACKGROUND,##2c2525
env = GUM_FILTER_SELECTED_FOREGROUND,##e6d9db
env = GUM_FILTER_SELECTED_BACKGROUND,##403e41
env = GUM_FILTER_INDICATOR_FOREGROUND,##f38d70
env = GUM_FILTER_HEADER_FOREGROUND,##e6d9db
env = GUM_FILTER_MATCH_BACKGROUND,##2c2525
env = GUM_FILTER_HEADER_BACKGROUND,##2c2525
env = GUM_FILTER_PLACEHOLDER_FOREGROUND,##948a8b
env = GUM_FILTER_PLACEHOLDER_BACKGROUND,##2c2525
env = GUM_FILTER_INDICATOR_BACKGROUND,##2c2525
env = GUM_FILTER_SELECTED_PREFIX_FOREGROUND,##e6d9db
env = GUM_FILTER_SELECTED_PREFIX_BACKGROUND,##403e41
env = GUM_FILTER_UNSELECTED_PREFIX_FOREGROUND,##948a8b
env = GUM_FILTER_UNSELECTED_PREFIX_BACKGROUND,##2c2525
# Gum Table Style Variables
env = GUM_TABLE_HEADER_FOREGROUND,##e6d9db
env = GUM_TABLE_HEADER_BACKGROUND,##2c2525
env = GUM_TABLE_CELL_FOREGROUND,##e6d9db
env = GUM_TABLE_CELL_BACKGROUND,##2c2525
env = GUM_TABLE_BORDER_FOREGROUND,##948a8b
env = GUM_TABLE_BORDER_BACKGROUND,##2c2525
env = GUM_TABLE_SELECTED_FOREGROUND,##e6d9db
env = GUM_TABLE_SELECTED_BACKGROUND,##403e41
# Gum Spin Style Variables
env = GUM_SPIN_SPINNER_FOREGROUND,##f38d70
env = GUM_SPIN_SPINNER_BACKGROUND,##2c2525
env = GUM_SPIN_TITLE_FOREGROUND,##e6d9db
env = GUM_SPIN_TITLE_BACKGROUND,##2c2525
# Gum File Style Variables
env = GUM_FILE_CURSOR_FOREGROUND,##c3b7b8
env = GUM_FILE_CURSOR_BACKGROUND,##2c2525
env = GUM_FILE_SYMLINK_FOREGROUND,##e6d9db
env = GUM_FILE_SYMLINK_BACKGROUND,##2c2525
env = GUM_FILE_DIRECTORY_FOREGROUND,##e6d9db
env = GUM_FILE_DIRECTORY_BACKGROUND,##2c2525
env = GUM_FILE_FILE_FOREGROUND,##e6d9db
env = GUM_FILE_FILE_BACKGROUND,##2c2525
env = GUM_FILE_PERMISSIONS_FOREGROUND,##948a8b
env = GUM_FILE_PERMISSIONS_BACKGROUND,##2c2525
env = GUM_FILE_SELECTED_FOREGROUND,##e6d9db
env = GUM_FILE_SELECTED_BACKGROUND,##403e41
env = GUM_FILE_FILE_SIZE_FOREGROUND,##948a8b
env = GUM_FILE_FILE_SIZE_BACKGROUND,##2c2525
env = GUM_FILE_HEADER_FOREGROUND,##e6d9db
env = GUM_FILE_HEADER_BACKGROUND,##2c2525
# Gum Pager Style Variables
env = GUM_PAGER_FOREGROUND,##e6d9db
env = GUM_PAGER_BACKGROUND,##2c2525
env = GUM_PAGER_LINE_NUMBER_FOREGROUND,##948a8b
env = GUM_PAGER_LINE_NUMBER_BACKGROUND,##2c2525
env = GUM_PAGER_MATCH_FOREGROUND,##f38d70
env = GUM_PAGER_MATCH_BACKGROUND,##2c2525
env = GUM_PAGER_MATCH_HIGH_FOREGROUND,##f38d70
env = GUM_PAGER_MATCH_HIGH_BACKGROUND,##2c2525
env = GUM_PAGER_HELP_FOREGROUND,##948a8b
env = GUM_PAGER_HELP_BACKGROUND,##2c2525
# Gum Write Style Variables
env = GUM_WRITE_BASE_FOREGROUND,##e6d9db
env = GUM_WRITE_BASE_BACKGROUND,##2c2525
env = GUM_WRITE_CURSOR_LINE_NUMBER_FOREGROUND,##948a8b
env = GUM_WRITE_CURSOR_LINE_NUMBER_BACKGROUND,##2c2525
env = GUM_WRITE_CURSOR_LINE_FOREGROUND,##e6d9db
env = GUM_WRITE_CURSOR_LINE_BACKGROUND,##403e41
env = GUM_WRITE_CURSOR_FOREGROUND,##c3b7b8
env = GUM_WRITE_CURSOR_BACKGROUND,##2c2525
env = GUM_WRITE_END_OF_BUFFER_FOREGROUND,##948a8b
env = GUM_WRITE_END_OF_BUFFER_BACKGROUND,##2c2525
env = GUM_WRITE_LINE_NUMBER_FOREGROUND,##948a8b
env = GUM_WRITE_LINE_NUMBER_BACKGROUND,##2c2525
env = GUM_WRITE_HEADER_FOREGROUND,##e6d9db
env = GUM_WRITE_HEADER_BACKGROUND,##2c2525
env = GUM_WRITE_PLACEHOLDER_FOREGROUND,##948a8b
env = GUM_WRITE_PLACEHOLDER_BACKGROUND,##2c2525
env = GUM_WRITE_PROMPT_FOREGROUND,##e6d9db
env = GUM_WRITE_PROMPT_BACKGROUND,##2c2525
# Gum Log Style Variables
env = GUM_LOG_LEVEL_FOREGROUND,##f38d70
env = GUM_LOG_LEVEL_BACKGROUND,##2c2525
env = GUM_LOG_TIME_FOREGROUND,##948a8b
env = GUM_LOG_TIME_BACKGROUND,##2c2525
env = GUM_LOG_PREFIX_FOREGROUND,##e6d9db
env = GUM_LOG_PREFIX_BACKGROUND,##2c2525
env = GUM_LOG_MESSAGE_FOREGROUND,##e6d9db
env = GUM_LOG_MESSAGE_BACKGROUND,##2c2525
env = GUM_LOG_KEY_FOREGROUND,##e6d9db
env = GUM_LOG_KEY_BACKGROUND,##2c2525
env = GUM_LOG_VALUE_FOREGROUND,##e6d9db
env = GUM_LOG_VALUE_BACKGROUND,##2c2525
env = GUM_LOG_SEPARATOR_FOREGROUND,##948a8b
env = GUM_LOG_SEPARATOR_BACKGROUND,##2c2525

View File

@ -0,0 +1,132 @@
# Syntax
"keyword" = "color5"
"keyword.control" = { fg = "color5", modifiers = ["italic"] }
"function" = "color4"
"function.builtin" = "color4"
"function.macro" = "color5"
"type" = "color3"
"type.builtin" = "color5"
"type.enum.variant" = "color6"
"constructor" = "color4"
"constant" = "color3"
"constant.builtin" = "color3"
"constant.numeric" = "color3"
"constant.character" = "color6"
"constant.character.escape" = "color5"
"string" = "color2"
"string.regexp" = "color5"
"string.special" = "color4"
"comment" = { fg = "color8", modifiers = ["italic"] }
"variable" = "foreground"
"variable.parameter" = { fg = "color5", modifiers = ["italic"] }
"variable.builtin" = "color1"
"variable.other.member" = "color4"
"label" = "color4"
"punctuation" = "color8"
"punctuation.special" = "color6"
"operator" = "color6"
"tag" = "color4"
"namespace" = { fg = "color3", modifiers = ["italic"] }
"special" = "color5"
"attribute" = "color3"
# Markup
"markup.heading.1" = "color1"
"markup.heading.2" = "color3"
"markup.heading.3" = "color3"
"markup.heading.4" = "color2"
"markup.heading.5" = "color4"
"markup.heading.6" = "color5"
"markup.list" = "color6"
"markup.list.unchecked" = "color8"
"markup.list.checked" = "color2"
"markup.bold" = { fg = "color1", modifiers = ["bold"] }
"markup.italic" = { fg = "color1", modifiers = ["italic"] }
"markup.strikethrough" = { modifiers = ["crossed_out"] }
"markup.link.url" = { fg = "color4", modifiers = ["italic", "underlined"] }
"markup.link.text" = "color5"
"markup.link.label" = "color4"
"markup.raw" = "color2"
"markup.quote" = "color5"
# Diff
"diff.plus" = "color2"
"diff.minus" = "color1"
"diff.delta" = "color4"
# Leave the editor background transparent so the terminal background shows through
"ui.background" = { }
"ui.linenr" = { fg = "color8" }
"ui.linenr.selected" = { fg = "foreground" }
# Statusline uses an inverted band (background-color text on foreground-color
# background) to guarantee contrast across both light and dark Omarchy themes.
"ui.statusline" = { fg = "background", bg = "foreground" }
"ui.statusline.inactive" = { fg = "background", bg = "color8" }
"ui.statusline.normal" = { fg = "background", bg = "color4", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "background", bg = "color2", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "background", bg = "color5", modifiers = ["bold"] }
"ui.popup" = { fg = "foreground", bg = "background" }
"ui.window" = { fg = "color8" }
"ui.help" = { fg = "foreground", bg = "background" }
"ui.bufferline" = { fg = "color8", bg = "background" }
"ui.bufferline.active" = { fg = "foreground", bg = "background", underline = { color = "color5", style = "line" } }
"ui.text" = "foreground"
"ui.text.focus" = { fg = "foreground", bg = "color0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "color8" }
"ui.text.directory" = { fg = "color4" }
"ui.virtual" = "color8"
"ui.virtual.ruler" = { bg = "color0" }
"ui.virtual.indent-guide" = "color8"
"ui.virtual.inlay-hint" = { fg = "color8" }
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
"ui.virtual.whitespace" = "color8"
"ui.selection" = { bg = "selection_background", fg = "selection_foreground" }
"ui.cursor" = { fg = "background", bg = "cursor" }
"ui.cursor.primary" = { fg = "background", bg = "cursor" }
"ui.cursor.match" = { fg = "color3", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "background", bg = "cursor" }
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
"ui.cursor.primary.select" = { fg = "background", bg = "color5" }
"ui.cursorline.primary" = { bg = "color0" }
"ui.highlight" = { bg = "color0", modifiers = ["bold"] }
"ui.menu" = { fg = "foreground", bg = "background" }
"ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "color1", style = "curl" } }
"diagnostic.warning" = { underline = { color = "color3", style = "curl" } }
"diagnostic.info" = { underline = { color = "color4", style = "curl" } }
"diagnostic.hint" = { underline = { color = "color6", style = "curl" } }
"diagnostic.unnecessary" = { modifiers = ["dim"] }
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
error = "color1"
warning = "color3"
info = "color4"
hint = "color6"
[palette]
background = "#2c2525"
foreground = "#e6d9db"
cursor = "#c3b7b8"
selection_background = "#403e41"
selection_foreground = "#e6d9db"
color0 = "#72696a"
color1 = "#fd6883"
color2 = "#adda78"
color3 = "#f9cc6c"
color4 = "#f38d70"
color5 = "#a8a9eb"
color6 = "#85dacc"
color7 = "#e6d9db"
color8 = "#948a8b"

View File

@ -0,0 +1,94 @@
@define-color foreground #e6d9db;
@define-color background #2c2525;
@define-color accent #f38d70;
@define-color muted #948a8b;
@define-color card_bg #72696a;
@define-color text_dark #2c2525;
@define-color accent_hover #f8a788;
@define-color selected_tab #f38d70;
@define-color text #e6d9db;
* {
all: unset;
font-family: JetBrains Mono NF;
color: @foreground;
font-weight: bold;
font-size: 16px;
}
.window {
background: alpha(@background, 0.95);
border: solid 2px @accent;
margin: 4px;
padding: 18px;
}
tabs {
padding: 0.5rem 1rem;
}
tabs > tab {
margin-right: 1rem;
}
.tab-label {
color: @text;
transition: all 0.2s ease;
}
tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label {
text-decoration: underline currentColor;
color: @selected_tab;
}
tabs > tab:focus > .tab-label {
color: @foreground;
}
.page {
padding: 1rem;
}
.image-label {
font-size: 12px;
padding: 0.25rem;
}
flowboxchild > .card, button > .card {
transition: all 0.2s ease;
border: solid 2px transparent;
border-color: @background;
border-radius: 5px;
background-color: @card_bg;
padding: 5px;
}
flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card {
border: solid 2px @accent;
}
.image {
border-radius: 5px;
}
.region-button {
padding: 0.5rem 1rem;
border-radius: 5px;
background-color: @accent;
color: @text_dark;
transition: all 0.2s ease;
}
.region-button > label {
color: @text_dark;
}
.region-button:not(:disabled):hover, .region-button:not(:disabled):focus {
background-color: @accent_hover;
color: @text_dark;
}
.region-button:disabled {
background-color: @muted;
color: @background;
}

View File

@ -0,0 +1,9 @@
$activeBorderColor = rgb(f38d70)
general {
col.active_border = $activeBorderColor
}
group {
col.border_active = $activeBorderColor
}

View File

@ -0,0 +1,5 @@
$color = rgba(44,37,37, 1.0)
$inner_color = rgba(44,37,37, 0.8)
$outer_color = rgba(230,217,219, 1.0)
$font_color = rgba(230,217,219, 1.0)
$check_color = rgba(243,141,112, 1.0)

View File

@ -0,0 +1 @@
Yaru-yellow

View File

@ -0,0 +1 @@
#f38d70

View File

@ -0,0 +1,27 @@
foreground #e6d9db
background #2c2525
selection_foreground #e6d9db
selection_background #403e41
cursor #c3b7b8
cursor_text_color #2c2525
active_border_color #f38d70
active_tab_background #f38d70
color0 #72696a
color1 #fd6883
color2 #adda78
color3 #f9cc6c
color4 #f38d70
color5 #a8a9eb
color6 #85dacc
color7 #e6d9db
color8 #948a8b
color9 #ff8297
color10 #c8e292
color11 #fcd675
color12 #f8a788
color13 #bebffd
color14 #9bf1e1
color15 #f1e5e7

View File

@ -0,0 +1,5 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#e6d9db
border-color=#f38d70
background-color=#2c2525

View File

@ -0,0 +1,31 @@
return {
{
"gthelding/monokai-pro.nvim",
config = function()
require("monokai-pro").setup({
filter = "ristretto",
override = function()
return {
NonText = { fg = "#948a8b" },
MiniIconsGrey = { fg = "#948a8b" },
MiniIconsRed = { fg = "#fd6883" },
MiniIconsBlue = { fg = "#85dacc" },
MiniIconsGreen = { fg = "#adda78" },
MiniIconsYellow = { fg = "#f9cc6c" },
MiniIconsOrange = { fg = "#f38d70" },
MiniIconsPurple = { fg = "#a8a9eb" },
MiniIconsAzure = { fg = "#a8a9eb" },
MiniIconsCyan = { fg = "#85dacc" }, -- same value as MiniIconsBlue for consistency
}
end,
})
vim.cmd([[colorscheme monokai-pro]])
end,
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "monokai-pro",
},
},
}

View File

@ -0,0 +1,99 @@
/* Omarchy Theme for Obsidian */
.theme-dark, .theme-light {
/* Core colors */
--background-primary: #2c2525;
--background-primary-alt: #2c2525;
--background-secondary: #2c2525;
--background-secondary-alt: #2c2525;
--text-normal: #e6d9db;
/* Selection colors */
--text-selection: #403e41;
/* Border color */
--background-modifier-border: #948a8b;
/* Semantic heading colors */
--text-title-h1: #fd6883;
--text-title-h2: #adda78;
--text-title-h3: #f9cc6c;
--text-title-h4: #f38d70;
--text-title-h5: #a8a9eb;
--text-title-h6: #a8a9eb;
/* Links and accents */
--text-link: #f38d70;
--text-accent: #f38d70;
--text-accent-hover: #f38d70;
--interactive-accent: #f38d70;
--interactive-accent-hover: #f38d70;
/* Muted text */
--text-muted: color-mix(in srgb, #e6d9db 70%, transparent);
--text-faint: color-mix(in srgb, #e6d9db 55%, transparent);
/* Code */
--code-normal: #85dacc;
/* Errors and success */
--text-error: #fd6883;
--text-error-hover: #fd6883;
--text-success: #adda78;
/* Tags */
--tag-color: #85dacc;
--tag-background: #948a8b;
/* Graph */
--graph-line: #948a8b;
--graph-node: #f38d70;
--graph-node-focused: #f38d70;
--graph-node-tag: #85dacc;
--graph-node-attachment: #adda78;
}
/* Headers */
.cm-header-1, .markdown-rendered h1 { color: var(--text-title-h1); }
.cm-header-2, .markdown-rendered h2 { color: var(--text-title-h2); }
.cm-header-3, .markdown-rendered h3 { color: var(--text-title-h3); }
.cm-header-4, .markdown-rendered h4 { color: var(--text-title-h4); }
.cm-header-5, .markdown-rendered h5 { color: var(--text-title-h5); }
.cm-header-6, .markdown-rendered h6 { color: var(--text-title-h6); }
/* Code blocks */
.markdown-rendered code {
color: #85dacc;
}
/* Syntax highlighting */
.cm-s-obsidian span.cm-keyword { color: #fd6883; }
.cm-s-obsidian span.cm-string { color: #adda78; }
.cm-s-obsidian span.cm-number { color: #f9cc6c; }
.cm-s-obsidian span.cm-comment { color: #948a8b; }
.cm-s-obsidian span.cm-operator { color: #f38d70; }
.cm-s-obsidian span.cm-def { color: #f38d70; }
/* Links */
.markdown-rendered a {
color: var(--text-link);
}
/* Blockquotes */
.markdown-rendered blockquote {
border-left-color: #f38d70;
}
/* Active elements */
.workspace-leaf.mod-active .workspace-leaf-header-title {
color: var(--interactive-accent);
}
.nav-file-title.is-active {
color: var(--interactive-accent);
}
/* Search results */
.search-result-file-title {
color: var(--interactive-accent);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

View File

@ -0,0 +1,5 @@
@define-color background-color #2c2525;
@define-color border-color #e6d9db;
@define-color label #e6d9db;
@define-color image #e6d9db;
@define-color progress #f38d70;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,4 @@
{
"name": "Monokai Pro (Filter Ristretto)",
"extension": "monokai.theme-monokai-pro-vscode"
}

View File

@ -0,0 +1,6 @@
@define-color selected-text #f38d70;
@define-color text #e6d9db;
@define-color base #2c2525;
@define-color border #e6d9db;
@define-color foreground #e6d9db;
@define-color background #2c2525;

View File

@ -0,0 +1,2 @@
@define-color foreground #e6d9db;
@define-color background #2c2525;

View File

@ -0,0 +1,20 @@
# Overwrite parts of the omarchy-menu with user-specific submenus.
# See $OMARCHY_PATH/bin/omarchy-menu for functions that can be overwritten.
#
# WARNING: Overwritten functions will obviously not be updated when Omarchy changes.
#
# Example of minimal system menu:
#
# show_system_menu() {
# case $(menu "System" " Lock\n󰐥 Shutdown") in
# *Lock*) omarchy-system-lock ;;
# *Shutdown*) omarchy-system-shutdown ;;
# *) back_to show_main_menu ;;
# esac
# }
#
# Example of overriding just the about menu action: (Using zsh instead of bash (default))
#
# show_about() {
# exec omarchy-launch-or-focus-tui "zsh -c 'fastfetch; read -k 1'"
# }

View File

@ -0,0 +1,10 @@
#!/bin/bash
# This hook is called with the current battery percentage when the low battery
# notification is sent. To put it into use, remove .sample from the name.
SOUND_FILE="/usr/share/sounds/freedesktop/stereo/dialog-warning.oga"
if omarchy-cmd-present mpv && [[ -f $SOUND_FILE ]]; then
mpv --no-video "$SOUND_FILE" >/dev/null 2>&1
fi

View File

@ -0,0 +1,7 @@
#!/bin/bash
# This hook is called with the snake-cased name of the font that has just been set.
# To put it into use, remove .sample from the name.
# Example: Show the name of the theme that was just set.
# notify-send -u low "New font" "Your new font is $1"

View File

@ -0,0 +1,10 @@
#!/bin/bash
# Show the weather status notification after Omarchy has started.
# To put it into use, remove .sample from this file name.
weather=$(omarchy-weather-status 2>/dev/null) || true
if [[ -n $weather && $weather != "Weather unavailable" ]]; then
notify-send -u low "$weather"
fi

View File

@ -0,0 +1,7 @@
#!/bin/bash
# This hook is called after an Omarchy system update has been performed.
# To put it into use, remove .sample from the name.
# Example: Show notification after the system has been updated.
# notify-send -u low "Update Performed" "Your system is now up to date"

View File

@ -0,0 +1,7 @@
#!/bin/bash
# This hook is called with the snake-cased name of the theme that has just been set.
# To put it into use, remove .sample from the name.
# Example: Show the name of the theme that was just set.
# notify-send -u low "New theme" "Your new theme is $1"

View File

@ -0,0 +1,86 @@
# Omarchy User Template Example: Alacritty
#
# This is a sample template file demonstrating how to create custom themed
# configurations. Templates use placeholder variables that get replaced with
# your current theme's colors when you switch themes.
#
# HOW TO USE:
# 1. Rename this file to: alacritty.toml.tpl (remove the .sample extension)
# 2. Customize it as needed
# 3. Change your theme to apply the template
#
# User templates in ~/.config/omarchy/themed/ take priority over the built-in
# templates in the Omarchy default/themed/ directory. This lets you override
# any built-in template or create templates for applications not included
# by default.
#
# AVAILABLE VARIABLES:
# {{ background }} - Main background color (e.g., "#1a1b26")
# {{ foreground }} - Main foreground/text color
# {{ cursor }} - Cursor color
# {{ accent }} - Theme accent color
# {{ selection_background }} - Selection highlight background
# {{ selection_foreground }} - Selection highlight foreground
#
# {{ color0 }} through {{ color15 }} - Standard 16-color terminal palette
# color0-7: Normal colors (black, red, green, yellow, blue, magenta, cyan, white)
# color8-15: Bright variants
#
# VARIABLE MODIFIERS:
# {{ variable_strip }} - Hex color without the # prefix (e.g., "1a1b26")
# {{ variable_rgb }} - Decimal RGB values (e.g., "26,27,38")
#
# Example using modifiers:
# background = "{{ background }}" -> background = "#1a1b26"
# background = "{{ background_strip }}" -> background = "1a1b26"
# background = "rgb({{ background_rgb }})" -> background = "rgb(26,27,38)"
#
# ---------------------------------------------------------------------------
[colors.primary]
background = "{{ background }}"
foreground = "{{ foreground }}"
[colors.cursor]
text = "{{ background }}"
cursor = "{{ cursor }}"
[colors.vi_mode_cursor]
text = "{{ background }}"
cursor = "{{ cursor }}"
[colors.search.matches]
foreground = "{{ background }}"
background = "{{ color3 }}"
[colors.search.focused_match]
foreground = "{{ background }}"
background = "{{ color1 }}"
[colors.footer_bar]
foreground = "{{ background }}"
background = "{{ foreground }}"
[colors.selection]
text = "{{ selection_foreground }}"
background = "{{ selection_background }}"
[colors.normal]
black = "{{ color0 }}"
red = "{{ color1 }}"
green = "{{ color2 }}"
yellow = "{{ color3 }}"
blue = "{{ color4 }}"
magenta = "{{ color5 }}"
cyan = "{{ color6 }}"
white = "{{ color7 }}"
[colors.bright]
black = "{{ color8 }}"
red = "{{ color9 }}"
green = "{{ color10 }}"
yellow = "{{ color11 }}"
blue = "{{ color12 }}"
magenta = "{{ color13 }}"
cyan = "{{ color14 }}"
white = "{{ color15 }}"

View File

@ -0,0 +1 @@
/home/milan/.config/aether/theme

32
configs/starship.toml Normal file
View File

@ -0,0 +1,32 @@
add_newline = true
command_timeout = 200
format = "[$directory$git_branch$git_status]($style)$character"
[character]
error_symbol = "[✗](bold cyan)"
success_symbol = "[](bold cyan)"
[directory]
truncation_length = 2
truncation_symbol = "…/"
repo_root_style = "bold cyan"
repo_root_format = "[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) "
[git_branch]
format = "[$branch]($style) "
style = "italic cyan"
[git_status]
format = '[$all_status]($style)'
style = "cyan"
ahead = "⇡${count} "
diverged = "⇕⇡${ahead_count}⇣${behind_count} "
behind = "⇣${count} "
conflicted = " "
up_to_date = " "
untracked = "? "
modified = " "
stashed = ""
staged = ""
renamed = ""
deleted = ""

View File

@ -0,0 +1,49 @@
force_keyboard_focus = true # forces keyboard forcus to stay in Walker
selection_wrap = true # wrap list if at bottom or top
theme = "omarchy-default" # theme to use
additional_theme_location = "~/.local/share/omarchy/default/walker/themes/"
hide_action_hints = true # globally hide the action hints
[placeholders]
"default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
[keybinds]
quick_activate = []
[columns]
symbols = 1 # providers to be queried by default
[providers]
max_results = 256 # 256 should be enough for everyone
default = [
"desktopapplications",
"websearch",
]
[[providers.prefixes]]
prefix = "/"
provider = "providerlist"
[[providers.prefixes]]
prefix = "."
provider = "files"
[[providers.prefixes]]
prefix = ":"
provider = "symbols"
[[providers.prefixes]]
prefix = "="
provider = "calc"
[[providers.prefixes]]
prefix = "@"
provider = "websearch"
[[providers.prefixes]]
prefix = "$"
provider = "clipboard"
[[emergencies]]
text = "Restart Walker"
command = "omarchy-restart-walker"

182
configs/waybar/config.jsonc Normal file
View File

@ -0,0 +1,182 @@
{
"reload_style_on_change": true,
"layer": "top",
"position": "top",
"spacing": 0,
"height": 26,
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
"modules-center": ["clock", "custom/weather", "custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
"modules-right": [
"group/tray-expander",
"bluetooth",
"network",
"pulseaudio",
"cpu",
"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",
"10": "0",
"active": "󱓻"
},
"persistent-workspaces": {
"1": [],
"2": [],
"3": [],
"4": [],
"5": []
}
},
"custom/omarchy": {
"format": "<span font='omarchy'>\ue900</span>",
"on-click": "omarchy-menu",
"on-click-right": "xdg-terminal-exec",
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
},
"custom/update": {
"format": "",
"exec": "omarchy-update-available",
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
"tooltip-format": "Omarchy update available",
"signal": 7,
"interval": 21600
},
"cpu": {
"interval": 5,
"format": "󰍛",
"on-click": "omarchy-launch-or-focus-tui btop",
"on-click-right": "alacritty"
},
"clock": {
"format": "{:L%A %H:%M}",
"format-alt": "{:L%d %B W%V %Y}",
"tooltip": false,
"on-click-right": "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select"
},
"custom/weather": {
"exec": "$OMARCHY_PATH/default/waybar/weather.sh",
"return-type": "json",
"interval": 60,
"tooltip": false,
"on-click": "notify-send -u low \"$(omarchy-weather-status)\""
},
"network": {
"format-icons": ["󰤯", "󰤟", "󰤢", "󰤥", "󰤨"],
"format": "{icon}",
"format-wifi": "{icon}",
"format-ethernet": "󰀂",
"format-disconnected": "󰤮",
"tooltip-format-wifi": "{essid} ({frequency} GHz)",
"tooltip-format-ethernet": "Connected",
"tooltip-format-disconnected": "Disconnected",
"interval": 3,
"spacing": 1,
"on-click": "omarchy-launch-wifi"
},
"battery": {
"format": "{icon} {capacity}%",
"format-discharging": "{icon} {capacity}%",
"format-charging": "{icon} {capacity}%",
"format-plugged": "",
"format-icons": {
"charging": ["󰢜", "󰂆", "󰂇", "󰂈", "󰢝", "󰂉", "󰢞", "󰂊", "󰂋", "󰂅"],
"default": ["󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"]
},
"format-full": "󰂅",
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
"interval": 5,
"on-click": "omarchy-menu power",
"on-click-right": "notify-send -u low \"$(omarchy-battery-status)\"",
"states": {
"warning": 20,
"critical": 10
}
},
"bluetooth": {
"format": "",
"format-off": "󰂲",
"format-disabled": "󰂲",
"format-connected": "󰂱",
"format-no-controller": "",
"tooltip-format": "Devices connected: {num_connections}",
"on-click": "omarchy-launch-bluetooth"
},
"pulseaudio": {
"format": "{icon}",
"on-click": "omarchy-launch-audio",
"on-click-right": "pamixer -t",
"tooltip-format": "Playing at {volume}%",
"scroll-step": 5,
"format-muted": "",
"format-icons": {
"headphone": "",
"headset": "",
"default": ["", "", ""]
}
},
"group/tray-expander": {
"orientation": "inherit",
"drawer": {
"transition-duration": 600,
"children-class": "tray-group-item"
},
"modules": ["custom/expand-icon", "tray"]
},
"custom/expand-icon": {
"format": "",
"tooltip": false,
"on-scroll-up": "",
"on-scroll-down": "",
"on-scroll-left": "",
"on-scroll-right": ""
},
"custom/screenrecording-indicator": {
"on-click": "omarchy-capture-screenrecording",
"exec": "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh",
"signal": 8,
"return-type": "json"
},
"custom/idle-indicator": {
"on-click": "omarchy-toggle-idle",
"exec": "$OMARCHY_PATH/default/waybar/indicators/idle.sh",
"signal": 9,
"return-type": "json"
},
"custom/notification-silencing-indicator": {
"on-click": "omarchy-toggle-notification-silencing",
"exec": "$OMARCHY_PATH/default/waybar/indicators/notification-silencing.sh",
"signal": 10,
"return-type": "json"
},
"custom/voxtype": {
"exec": "omarchy-voxtype-status",
"return-type": "json",
"format": "{icon}",
"format-icons": {
"idle": "",
"recording": "󰍬",
"transcribing": "󰔟"
},
"tooltip": true,
"on-click-right": "omarchy-voxtype-config",
"on-click": "omarchy-voxtype-model"
},
"tray": {
"icon-size": 12,
"spacing": 17
}
}

131
configs/waybar/style.css Normal file
View File

@ -0,0 +1,131 @@
@import "../omarchy/current/theme/waybar.css";
* {
background-color: transparent;
color: @foreground;
border: none;
border-radius: 0;
min-height: 0;
font-family: 'JetBrainsMonoNL Nerd Font';
font-size: 12px;
}
window#waybar {
background: transparent;
}
.modules-left,
.modules-center,
.modules-right {
background: rgba(255, 255, 255, 0.1);
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.2);
padding: 0 12px;
margin-top: 4px;
margin-bottom: 4px;
}
.modules-left {
margin-left: 8px;
}
.modules-center {
margin-left: 8px;
margin-right: 8px;
}
.modules-right {
margin-right: 8px;
}
#workspaces button {
all: initial;
padding: 0 6px;
margin: 0 1.5px;
min-width: 9px;
}
#workspaces button.empty {
opacity: 0.5;
}
#cpu,
#battery,
#pulseaudio,
#custom-omarchy,
#custom-update {
min-width: 12px;
margin: 0 5px;
}
#tray {
margin-right: 8px;
}
#bluetooth {
margin-right: 10px;
}
#network {
margin-right: 6px;
}
#custom-expand-icon {
margin-right: 2px;
}
tooltip {
padding: 2px;
}
#custom-update {
font-size: 10px;
}
#clock {
margin-left: 5px;
}
.hidden {
opacity: 0;
}
#custom-screenrecording-indicator,
#custom-idle-indicator,
#custom-notification-silencing-indicator {
min-width: 12px;
margin-left: 5px;
margin-right: 0;
font-size: 10px;
padding-bottom: 1px;
}
#custom-screenrecording-indicator.active {
color: #a55555;
}
#custom-idle-indicator.active,
#custom-notification-silencing-indicator.active {
color: #a55555;
}
#custom-voxtype {
min-width: 12px;
margin: 0 0 0 7.5px;
}
#custom-voxtype.recording {
color: #a55555;
}
#custom-weather {
margin-left: 5px;
margin-right: 5px;
}
#custom-weather.unavailable {
min-width: 0;
margin: 0;
padding: 0;
}

100
install.sh Normal file
View File

@ -0,0 +1,100 @@
#!/usr/bin/env bash
set -euo pipefail
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIGS_DIR="$REPO_DIR/configs"
echo "========================================"
echo " Milan's Omarchy Setup Installer"
echo "========================================"
echo
#
# Update system
#
echo "[1/5] Updating system..."
yay -Syu --noconfirm
#
# Install packages
#
echo
echo "[2/5] Installing packages..."
if [[ -f "$REPO_DIR/packages.txt" ]]; then
yay -S --needed --noconfirm $(<"$REPO_DIR/packages.txt")
fi
if [[ -s "$REPO_DIR/aur-packages.txt" ]]; then
yay -S --needed --noconfirm $(<"$REPO_DIR/aur-packages.txt")
fi
#
# Symlink configs
#
echo
echo "[3/5] Linking configs..."
mkdir -p "$HOME/.config"
for item in "$CONFIGS_DIR"/*; do
name="$(basename "$item")"
target="$HOME/.config/$name"
# Skip if already linked correctly
if [[ -L "$target" ]]; then
if [[ "$(readlink -f "$target")" == "$(readlink -f "$item")" ]]; then
echo "$name already linked"
continue
fi
fi
# Backup existing config
if [[ -e "$target" && ! -L "$target" ]]; then
backup="${target}.backup.$(date +%Y%m%d-%H%M%S)"
echo "Backing up $name -> $(basename "$backup")"
mv "$target" "$backup"
fi
rm -rf "$target"
ln -s "$item" "$target"
echo "Linked $name"
done
#
# Enable user services
#
echo
echo "[4/5] Enabling user services..."
if [[ -f "$REPO_DIR/system/user-services.txt" ]]; then
awk '{print $1}' "$REPO_DIR/system/user-services.txt" |
while read -r service; do
[[ -z "$service" ]] && continue
systemctl --user enable "$service" >/dev/null 2>&1 || true
done
fi
#
# Font cache
#
echo
echo "[5/5] Refreshing font cache..."
fc-cache -fv >/dev/null 2>&1 || true
echo
echo "========================================"
echo " Finished!"
echo "========================================"
echo
echo "You may want to:"
echo " • Log out and back in"
echo " • Run: omarchy-theme (if needed)"
echo " • Restart Waybar/Hyprland if configs changed"
echo

210
installed-packages-full.txt Normal file
View File

@ -0,0 +1,210 @@
1password-beta 8.12.24_24.BETA-24.1
1password-cli 2.34.0-1
aether 4.27.2-1
alacritty 0.17.0-1
alsa-utils 1.2.16-1
asciiquarium-transparent-git r46.3862efe-1
asdcontrol 1:0.6.0-1
balena-etcher 2.1.6-1
base 3-3
base-devel 1-2
bash-completion 2.17.0-3
bat 0.26.1-2
bibata-cursor-theme-bin 2.0.7-1
bitwarden 2026.2.1-1
bitwarden-cli 2026.2.0-1
bluetui 0.8.1-2
bolt 0.9.11-1
brightnessctl 0.5.1-3
btop 1.4.7-1
btrfs-progs 7.0-1
cava 0.10.7-1
chromium 149.0.7827.53-1
clang 22.1.6-1
claude-code 2.1.168-1
cliamp 1.52.0-1
cmatrix 2.0-4
cups 2:2.4.19-1
cups-browsed 2.1.1-1
cups-filters 2.0.1-2
cups-pdf 3.0.3-1
cutechess 1.4.0-1
docker 1:29.5.2-1
docker-buildx 0.34.1-1
docker-compose 5.1.4-1
dosfstools 4.2-5
dotnet-runtime-9.0 9.0.16.sdk117-1
dust 1.2.4-2
efibootmgr 18-4
evince 1:48.4-1
exfatprogs 1.4.1-1
expac 10-12
eza 0.23.4-3
fastfetch 2.64.2-2
fcitx5 5.1.19-1
fcitx5-gtk 5.1.6-1
fcitx5-qt 5.1.13-5
fd 10.4.2-2
ffmpegthumbnailer 2.3.0-1
firefox 151.0.4-1
flatpak 1:1.18.0-1
fontconfig 2:2.18.1-1
freerdp 2:3.26.0-1
fzf 0.72.0-1
git 2.54.0-1
github-cli 2.94.0-1
gnome-calculator 50.0-1
gnome-disk-utility 46.1-2
gnome-keyring 1:50.0-1
gnome-themes-extra 1:3.28-1
godot 4.6.3-1
gpu-screen-recorder 5.13.9-2
grim 1.5.0-2
gst-plugin-pipewire 1:1.6.6-1
gum 0.17.0-1
gvfs-mtp 1.60.0-2
gvfs-nfs 1.60.0-2
gvfs-smb 1.60.0-2
heroic-games-launcher-bin 2.22.0-1
hypridle 0.1.7-9
hyprland 0.55.4-1
hyprland-guiutils 0.2.1-6
hyprland-preview-share-picker 0.2.1-1
hyprlock 0.9.5-4
hyprmod-git r84.43887c6-1
hyprpicker 0.4.7-1
hyprsunset 0.3.3-7
imagemagick 7.1.2.25-1
impala 0.7.4-1
imv 5.0.1-1
inetutils 2.8-1
intel-media-driver 26.1.5-1
intel-ucode 20260512-1
inxi 3.3.40.1-1
iwd 3.12-1
jq 1.8.1-3
kdeconnect-git 26.04.2+r5513+g834af3a9f-1
kdenlive 26.04.2-1
kernel-modules-hook 0.1.7-3
kvantum-qt5 1.1.8-1
lazydocker 0.25.2-1
lazygit 0.62.2-1
less 1:704-1
lib32-nvidia-utils 610.43.02-1
lib32-vulkan-intel 1:26.1.2-1
libpulse 17.0+r98+gb096704c0-1
libqalculate 5.11.0-1
libreoffice-fresh 26.2.4-1
libva-nvidia-driver 0.0.17-1
libyaml 0.2.5-3
limine 12.3.3-1
limine-mkinitcpio-hook 1.36.0-1
limine-snapper-sync 1.29.0-1
linux 7.0.11.arch1-1
linux-firmware 20260519-1
linux-headers 7.0.11.arch1-1
llvm 22.1.6-1
lmms-git 1.3.0.alpha.1.r998.g4cb78c4b6-1
localsend 1.17.0-3
luarocks 3.13.0-5
lunacy-bin 14.1-1
mako 1.11.0-1
man-db 2.13.1-1
mariadb-libs 12.3.2-2
mise 2026.5.15-1
modrinth-app 0.14.6-1
mpv 1:0.41.0-3
nano 9.0-1
nautilus 50.2.2-1
nautilus-python 4.1.0-3
neovim 0.12.3-1
noto-fonts 1:2026.06.01-1
noto-fonts-cjk 20240730-1
noto-fonts-emoji 1:2.051-1
nss-mdns 0.15.1-2
nvidia-open-dkms 610.43.02-2
nvidia-utils 610.43.02-2
obsidian 1.12.7-2
omarchy-keyring 20251027-1
omarchy-nvim 2026.4.23-1
omarchy-walker 1.0.0-2
openbsd-netcat 1.238_1-1
pamixer 1.6-4
penguins-eggs 26.6.2-1
pinta 3.1.2-1
pipewire 1:1.6.6-1
pipewire-alsa 1:1.6.6-1
pipewire-jack 1:1.6.6-1
pipewire-pulse 1:1.6.6-1
playerctl 2.4.1-5
plocate 1.1.24-1
plymouth 26.134.222-2
polkit-gnome 0.105-12
postgresql-libs 18.4-1
power-profiles-daemon 0.30-1
python-gobject 3.56.3-1
python-pip 26.1.2-1
python-pipx 1.14.0-1
python-poetry-core 2.4.1-1
python-pygame 2.6.1-5
python-terminaltexteffects 0.15.0-1
qt5-wayland 5.15.19+kde+r55-1
reflector 2023-5
ripgrep 15.1.0-3
ruby 3.4.8-2
rust 1:1.96.0-1
satty 0.20.1-2
sddm 0.21.0-7
signal-desktop 8.14.0-1
sl 5.05-5
slurp 1.5.0-2
socat 1.8.1.1-1
sof-firmware 2025.12.2-1
spotify 1:1.2.90.451-1
starship 1.25.1-1
steam 1.0.0.85-7
stockfish 1:18-1
sudo 1.9.17.p2-2
sushi 50.0-1
swaybg 1.2.2-1
swayosd 0.3.1-1
system-config-printer 1.5.18-6
tailscale 1.98.4-1
teams-for-linux 2.10.0-2
tesseract 5.5.2-1
tesseract-data-eng 2:4.1.0-5
thermald 2:2.5.11-1
tldr 3.4.4-1
tmux 3.6_b-2
tobi-try 1.8.1-2
tree-sitter-cli 0.26.9-1
ttf-ia-writer 20181225-1
ttf-jetbrains-mono-nerd 3.4.0-2
typora 1.13.6-1
tzupdate 3.1.0-1
ufw 0.36.2-7
ufw-docker 251123-1
unzip 6.0-23
usage 3.2.0-1
uwsm 0.26.4-1
virtualbox-bin 7.2.8-1
visual-studio-code-bin 1.123.0-6
vpl-gpu-rt 26.1.5-1
vulkan-intel 1:26.1.2-1
waybar 0.15.0-2
whois 5.6.6-1
wireless-regdb 2026.05.30-1
wiremix 0.11.0-1
wireplumber 0.5.14-1
wl-clipboard 1:2.3.0-1
woff2-font-awesome 7.2.0-1
xdg-desktop-portal-gtk 1.15.3-1
xdg-desktop-portal-hyprland 1.3.12-2
xdg-terminal-exec 0.14.0-1
xmlstarlet 1.6.1-6
xournalpp 1.3.5-1
yaru-icon-theme 26.04.5.1ubuntu-1
yay 12.5.7-2.1
zen-browser-bin 1.21b-1
zoxide 0.9.9-2
zram-generator 1.2.1-1

210
packages.txt Normal file
View File

@ -0,0 +1,210 @@
1password-beta
1password-cli
aether
alacritty
alsa-utils
asciiquarium-transparent-git
asdcontrol
balena-etcher
base
base-devel
bash-completion
bat
bibata-cursor-theme-bin
bitwarden
bitwarden-cli
bluetui
bolt
brightnessctl
btop
btrfs-progs
cava
chromium
clang
claude-code
cliamp
cmatrix
cups
cups-browsed
cups-filters
cups-pdf
cutechess
docker
docker-buildx
docker-compose
dosfstools
dotnet-runtime-9.0
dust
efibootmgr
evince
exfatprogs
expac
eza
fastfetch
fcitx5
fcitx5-gtk
fcitx5-qt
fd
ffmpegthumbnailer
firefox
flatpak
fontconfig
freerdp
fzf
git
github-cli
gnome-calculator
gnome-disk-utility
gnome-keyring
gnome-themes-extra
godot
gpu-screen-recorder
grim
gst-plugin-pipewire
gum
gvfs-mtp
gvfs-nfs
gvfs-smb
heroic-games-launcher-bin
hypridle
hyprland
hyprland-guiutils
hyprland-preview-share-picker
hyprlock
hyprmod-git
hyprpicker
hyprsunset
imagemagick
impala
imv
inetutils
intel-media-driver
intel-ucode
inxi
iwd
jq
kdeconnect-git
kdenlive
kernel-modules-hook
kvantum-qt5
lazydocker
lazygit
less
lib32-nvidia-utils
lib32-vulkan-intel
libpulse
libqalculate
libreoffice-fresh
libva-nvidia-driver
libyaml
limine
limine-mkinitcpio-hook
limine-snapper-sync
linux
linux-firmware
linux-headers
llvm
lmms-git
localsend
luarocks
lunacy-bin
mako
man-db
mariadb-libs
mise
modrinth-app
mpv
nano
nautilus
nautilus-python
neovim
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
nss-mdns
nvidia-open-dkms
nvidia-utils
obsidian
omarchy-keyring
omarchy-nvim
omarchy-walker
openbsd-netcat
pamixer
penguins-eggs
pinta
pipewire
pipewire-alsa
pipewire-jack
pipewire-pulse
playerctl
plocate
plymouth
polkit-gnome
postgresql-libs
power-profiles-daemon
python-gobject
python-pip
python-pipx
python-poetry-core
python-pygame
python-terminaltexteffects
qt5-wayland
reflector
ripgrep
ruby
rust
satty
sddm
signal-desktop
sl
slurp
socat
sof-firmware
spotify
starship
steam
stockfish
sudo
sushi
swaybg
swayosd
system-config-printer
tailscale
teams-for-linux
tesseract
tesseract-data-eng
thermald
tldr
tmux
tobi-try
tree-sitter-cli
ttf-ia-writer
ttf-jetbrains-mono-nerd
typora
tzupdate
ufw
ufw-docker
unzip
usage
uwsm
virtualbox-bin
visual-studio-code-bin
vpl-gpu-rt
vulkan-intel
waybar
whois
wireless-regdb
wiremix
wireplumber
wl-clipboard
woff2-font-awesome
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
xdg-terminal-exec
xmlstarlet
xournalpp
yaru-icon-theme
yay
zen-browser-bin
zoxide
zram-generator

168
system/makepkg.conf Normal file
View File

@ -0,0 +1,168 @@
#!/hint/bash
# shellcheck disable=2034
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::breezy'
'fossil::fossil'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
#NPROC=2
#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LTOFLAGS="-flto=auto"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults:
# OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#-- autodeps: Automatically add depends/provides
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge debug lto)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=(usr{,/local}{,/share}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#-- Prefix and directories for library autodeps
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -T0 -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'
#########################################################################
# OTHER
#########################################################################
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()
# vim: set ft=sh ts=2 sw=2 et:

30
system/pacman.conf Normal file
View File

@ -0,0 +1,30 @@
# See the pacman.conf(5) manpage for option and repository directives
[options]
Color
ILoveCandy
VerbosePkgLists
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
ParallelDownloads = 5
DownloadUser = alpm
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
# pacman searches repositories in the order defined here
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[omarchy]
SigLevel = Optional TrustAll
Server = https://pkgs.omarchy.org/stable/$arch

View File

@ -0,0 +1,33 @@
UNIT FILE STATE PRESET
cups.path enabled disabled
avahi-daemon.service enabled disabled
bluetooth.service enabled disabled
cups-browsed.service enabled disabled
cups.service enabled disabled
getty@.service enabled enabled
iwd.service enabled disabled
limine-snapper-sync.service enabled disabled
linux-modules-cleanup.service enabled disabled
power-profiles-daemon.service enabled disabled
sddm.service enabled disabled
systemd-network-generator.service enabled enabled
systemd-networkd.service enabled enabled
systemd-resolved.service enabled enabled
systemd-timesyncd.service enabled enabled
tailscaled.service enabled disabled
thermald.service enabled disabled
ufw.service enabled disabled
avahi-daemon.socket enabled disabled
cups.socket enabled disabled
docker.socket enabled disabled
systemd-networkd-resolve-hook.socket enabled disabled
systemd-networkd-varlink-metrics.socket enabled disabled
systemd-networkd-varlink.socket enabled disabled
systemd-networkd.socket enabled disabled
systemd-resolved-monitor.socket enabled disabled
systemd-resolved-varlink.socket enabled disabled
systemd-userdbd.socket enabled enabled
remote-fs.target enabled enabled
snapper-timeline.timer enabled disabled
30 unit files listed.

13
system/user-services.txt Normal file
View File

@ -0,0 +1,13 @@
UNIT FILE STATE PRESET
elephant.service enabled enabled
omarchy-recover-internal-monitor.service enabled enabled
swayosd-server.service enabled enabled
wireplumber.service enabled enabled
xdg-user-dirs.service enabled enabled
gnome-keyring-daemon.socket enabled enabled
p11-kit-server.socket enabled enabled
pipewire-pulse.socket enabled enabled
pipewire.socket enabled enabled
omarchy-battery-monitor.timer enabled enabled
10 unit files listed.