diff --git a/SETUP.md b/SETUP.md
new file mode 100644
index 0000000..c5be917
--- /dev/null
+++ b/SETUP.md
@@ -0,0 +1,101 @@
+# Setup after pulling (Arch)
+
+Everything needed to bring the Cursor Dark theme up on a machine that has just
+pulled these changes.
+
+## 1. Packages
+
+```sh
+sudo pacman -S --needed papirus-icon-theme ttf-nerd-fonts-symbols-mono
+```
+
+| Package | Why |
+| --- | --- |
+| `papirus-icon-theme` | rofi, dunst and the GTK configs all reference `Papirus-Dark` |
+| `ttf-nerd-fonts-symbols-mono` | the tmux status bar uses powerline separators (U+E0B0–E0B3), and `kitty.conf` maps that range to `Symbols Nerd Font Mono` |
+
+Not in the repos: **Berkeley Mono** (`kitty.conf`) and **Hack JBM Ligatured**
+(waybar, rofi, hyprlock) are installed by hand.
+
+## 2. Deploy
+
+```sh
+cd ~/.dotfiles
+stow fish kitty tmux nvim hypr waybar rofi dunst gtktheme
+```
+
+> The README suggests `stow *`, which now also picks up `SETUP.md`.
+> Use `stow */` or an explicit list.
+
+## 3. Reload
+
+```sh
+# fish - close every running fish session BEFORE pulling (see notes)
+exec fish
+
+# tmux - plugins now bootstrap themselves, no prefix+I needed
+tmux kill-server && tmux
+
+# nvim - installs vscode.nvim, drops everforest
+nvim --headless "+Lazy! sync" +qa
+
+# desktop
+hyprctl reload
+killall -SIGUSR2 waybar
+killall dunst # respawns via dbus
+```
+
+kitty: `ctrl+shift+F5` to reload, or restart it. rofi has no daemon.
+
+## 4. GTK theme
+
+The configs are set to `Orchis-Dark-Compact` (Material Design, accent `#1A73E8`).
+
+```sh
+sudo pacman -S orchis-theme xdg-desktop-portal-gtk
+```
+
+libadwaita ignores `gtk-theme-name`, so GTK4 apps also need the portal settings
+and Orchis' own GTK4 stylesheet linked in:
+
+```sh
+gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
+gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
+gsettings set org.gnome.desktop.interface gtk-theme 'Orchis-Dark-Compact'
+
+mkdir -p ~/.config/gtk-4.0
+ln -sf /usr/share/themes/Orchis-Dark-Compact/gtk-4.0/gtk.css ~/.config/gtk-4.0/gtk.css
+ln -sf /usr/share/themes/Orchis-Dark-Compact/gtk-4.0/assets ~/.config/gtk-4.0/assets
+```
+
+`nwg-look` can do the symlink step for you — `nwg/.config/nwg-look/config` already
+has `export-gtk4-symlinks: true`. Set the gsettings values above first, then run
+`nwg-look` and hit Apply; it writes `.gtkrc-2.0`, both `settings.ini` files and the
+GTK4 symlinks from those values.
+
+### Window buttons
+
+Both `settings.ini` files set `gtk-decoration-layout=close,minimize,maximize:`
+— everything left of the `:` sits on the **left**, which is macOS placement and
+order. That is client-side decoration, so it is all Hyprland apps use.
+
+Orchis' `--tweaks macos` is **not** useful here: it only replaces `xfwm4` and
+`metacity-1` assets (Xfce / Marco window managers) and touches no GTK CSS, so it
+would change nothing under Hyprland — and it requires building from source,
+giving up the packaged theme. Circular red/yellow/green buttons are not
+available from Orchis for GTK client-side decorations.
+
+## Notes
+
+- **fish universal variables.** The colours live in `fish/.config/fish/fish_variables`,
+ which fish rewrites from memory whenever any universal variable changes. Close
+ running fish sessions before pulling so an old session can't write the previous
+ palette back over it.
+- **`cat` is broken on Arch.** `config.fish` defines `cat` as `batcat …`, which is
+ the Debian binary name. Arch's `bat` package installs `/usr/bin/bat`. Either
+ `sudo pacman -S bat` and rename the call, or add an alias.
+- **nwg-look overwrites GTK config.** It regenerates `.gtkrc-2.0` and the
+ `settings.ini` files. Run it *before* editing these by hand, or re-apply after.
+- **`gtktheme/.gtkrc-2.0` line 4** includes `/home/n0x/.gtkrc-2.0.mine`, a stale
+ path from a previous username. Harmless, but dead.
+- **`~/.tmux/plugins/nord-tmux`** is no longer used or tracked. Safe to delete.
diff --git a/dwm/.dwm/autostart.sh b/archive/dwm/.dwm/autostart.sh
similarity index 100%
rename from dwm/.dwm/autostart.sh
rename to archive/dwm/.dwm/autostart.sh
diff --git a/dunst/.config/dunst/dunstrc b/dunst/.config/dunst/dunstrc
index 3e7232a..5477c47 100644
--- a/dunst/.config/dunst/dunstrc
+++ b/dunst/.config/dunst/dunstrc
@@ -95,7 +95,8 @@
frame_width = 2
# Defines color of the frame around the notification window.
- frame_color = "#A7C080"
+ # Cursor Dark: neutral by default, overridden per urgency below.
+ frame_color = "#2b2b2b"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
@@ -201,7 +202,7 @@
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
- icon_theme = Nordzy-green-dark
+ icon_theme = Papirus-Dark
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
@@ -313,23 +314,27 @@
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
- background = "#2E383C"
- foreground = "#D3C6AA"
+ background = "#181818"
+ foreground = "#9d9d9d"
+ frame_color = "#2b2b2b"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
- background = "#2E383C"
- foreground = "#D3C6AA"
+ background = "#181818"
+ foreground = "#cccccc"
+ frame_color = "#2472c8"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
- background = "#900000"
+ # #5a1d1d is VS Code's error-validation background, so it stays in-family
+ # while still reading as alarming.
+ background = "#5a1d1d"
foreground = "#ffffff"
- frame_color = "#ff0000"
+ frame_color = "#f14c4c"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
diff --git a/fish/.config/fish/fish_variables b/fish/.config/fish/fish_variables
index 9807e17..6eb46f9 100644
--- a/fish/.config/fish/fish_variables
+++ b/fish/.config/fish/fish_variables
@@ -1,36 +1,38 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
+SETUVAR --export COMPOSE_BAKE:true
+SETUVAR --export DISPLAY:\x3a0
SETUVAR --export EDITOR:nvim
SETUVAR --export VISUAL:nvim
SETUVAR --export _JAVA_AWT_WM_NONREPARENTING:1
-SETUVAR __fish_initialized:3800
-SETUVAR fish_color_autosuggestion:4c566a
+SETUVAR fish_color_autosuggestion:666666
SETUVAR fish_color_cancel:\x2dr
-SETUVAR fish_color_command:green
-SETUVAR fish_color_comment:434c5e
-SETUVAR fish_color_cwd:green
-SETUVAR fish_color_cwd_root:red
-SETUVAR fish_color_end:88c0d0
-SETUVAR fish_color_error:ebcb8b
-SETUVAR fish_color_escape:00a6b2
+SETUVAR fish_color_command:569CD6
+SETUVAR fish_color_comment:6A9955
+SETUVAR fish_color_cwd:4EC9B0
+SETUVAR fish_color_cwd_root:F14C4C
+SETUVAR fish_color_end:C586C0
+SETUVAR fish_color_error:F14C4C
+SETUVAR fish_color_escape:D7BA7D
SETUVAR fish_color_history_current:\x2d\x2dbold
-SETUVAR fish_color_host:normal
-SETUVAR fish_color_host_remote:yellow
-SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
+SETUVAR fish_color_host:569CD6
+SETUVAR fish_color_host_remote:DCDCAA
+SETUVAR fish_color_keyword:C586C0
+SETUVAR fish_color_match:\x2d\x2dbackground\x3d264F78
SETUVAR fish_color_normal:normal
-SETUVAR fish_color_operator:00a6b2
+SETUVAR fish_color_operator:D4D4D4
+SETUVAR fish_color_option:9CDCFE
SETUVAR fish_color_param:normal
-SETUVAR fish_color_quote:999900
-SETUVAR fish_color_redirection:00afff
-SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
-SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
-SETUVAR fish_color_status:red
-SETUVAR fish_color_user:brgreen
+SETUVAR fish_color_quote:CE9178
+SETUVAR fish_color_redirection:9CDCFE
+SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d264F78
+SETUVAR fish_color_selection:E5E5E5\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3d264F78
+SETUVAR fish_color_status:F14C4C
+SETUVAR fish_color_user:9CDCFE
SETUVAR fish_color_valid_path:\x2d\x2dunderline
-SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:normal
-SETUVAR fish_pager_color_description:B3A06D\x1eyellow
-SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
-SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
-SETUVAR fish_pager_color_selected_background:\x2dr
+SETUVAR fish_pager_color_description:9D9D9D
+SETUVAR fish_pager_color_prefix:569CD6\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_progress:E5E5E5\x1e\x2d\x2dbackground\x3d264F78
+SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3d264F78
SETUVAR fish_user_paths:/home/n0x/\x2ecargo/bin\x1e/home/n0x/\x2elocal/bin
diff --git a/fish/.config/fish/functions/fish_prompt.fish b/fish/.config/fish/functions/fish_prompt.fish
index 526d740..5b934dd 100644
--- a/fish/.config/fish/functions/fish_prompt.fish
+++ b/fish/.config/fish/functions/fish_prompt.fish
@@ -1,20 +1,19 @@
set fish_prompt_pwd_dir_length 0
set __fish_git_prompt_show_informative_status 1
-# Fish command and parameter colors
-set fish_color_command green
-set fish_color_param $fish_color_normal
+# Command and parameter colors come from fish_variables (Cursor Dark)
# Git prompt
set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showupstream 'yes'
-set __fish_git_prompt_color_branch brown
-set __fish_git_prompt_color_dirtystate FCBC47
-set __fish_git_prompt_color_stagedstate yellow
-set __fish_git_prompt_color_upstream cyan
-set __fish_git_prompt_color_cleanstate green
-set __fish_git_prompt_color_invalidstate red
+# Colors mirror Cursor's git decorations
+set __fish_git_prompt_color_branch 569CD6
+set __fish_git_prompt_color_dirtystate E2C08D
+set __fish_git_prompt_color_stagedstate 73C991
+set __fish_git_prompt_color_upstream 4EC9B0
+set __fish_git_prompt_color_cleanstate 73C991
+set __fish_git_prompt_color_invalidstate E4676B
# Git Characters
set __fish_git_prompt_char_dirtystate '*'
@@ -41,9 +40,9 @@ end
function _prompt_color_for_status
if test $argv[1] -eq 0
- echo magenta
+ echo C586C0
else
- echo red
+ echo F14C4C
end
end
@@ -51,7 +50,7 @@ function fish_prompt
set -l last_status $status
# username and hostname
- _print_in_color "┏["$USER"@"(prompt_hostname)"]" blue
+ _print_in_color "┏["$USER"@"(prompt_hostname)"]" 569CD6
# current working dir
_print_in_color " "(prompt_pwd) $fish_color_cwd
@@ -59,10 +58,10 @@ function fish_prompt
__fish_git_prompt " (%s)"
# beginning of new line
- _print_in_color "\n┗" blue
+ _print_in_color "\n┗" 569CD6
# time information
- _print_in_color " "(date "+%H:%M:%S") green
+ _print_in_color " "(date "+%H:%M:%S") 73C991
# little error that indicates the status of the previous command
_print_in_color " ❯ " (_prompt_color_for_status $last_status)
diff --git a/git/.gitconfig b/git/.gitconfig
index de3a117..8bd478b 100644
--- a/git/.gitconfig
+++ b/git/.gitconfig
@@ -48,3 +48,5 @@
ll = !git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)' --all
s = status
unstage = reset HEAD --
+[advice]
+ addIgnoredFile = false
diff --git a/gtktheme/.config/gtk-3.0/settings.ini b/gtktheme/.config/gtk-3.0/settings.ini
index 8f7f85d..cca6ce5 100644
--- a/gtktheme/.config/gtk-3.0/settings.ini
+++ b/gtktheme/.config/gtk-3.0/settings.ini
@@ -1,6 +1,6 @@
[Settings]
-gtk-theme-name=Everforest-Teal-Dark
-gtk-icon-theme-name=Everforest-Light
+gtk-theme-name=Orchis-Dark-Compact
+gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans 11
gtk-cursor-theme-name=default
gtk-cursor-theme-size=24
diff --git a/gtktheme/.config/gtk-4.0/settings.ini b/gtktheme/.config/gtk-4.0/settings.ini
index 1d0c83f..eb36bc3 100644
--- a/gtktheme/.config/gtk-4.0/settings.ini
+++ b/gtktheme/.config/gtk-4.0/settings.ini
@@ -1,6 +1,6 @@
[Settings]
-gtk-theme-name=Everforest-Teal-Dark
-gtk-icon-theme-name=Everforest-Light
+gtk-theme-name=Orchis-Dark-Compact
+gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans 11
gtk-cursor-theme-name=default
gtk-cursor-theme-size=24
diff --git a/gtktheme/.gtkrc-2.0 b/gtktheme/.gtkrc-2.0
index 8dddf1e..c5a5e3a 100644
--- a/gtktheme/.gtkrc-2.0
+++ b/gtktheme/.gtkrc-2.0
@@ -2,8 +2,8 @@
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/n0x/.gtkrc-2.0.mine"
-gtk-theme-name="Everforest-Teal-Dark"
-gtk-icon-theme-name="Everforest-Light"
+gtk-theme-name="Orchis-Dark-Compact"
+gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="Noto Sans 11"
gtk-cursor-theme-name="default"
gtk-cursor-theme-size=24
diff --git a/hypr/.config/hypr/hyprconf/base.lua b/hypr/.config/hypr/hyprconf/base.lua
index c983b1c..94007d0 100644
--- a/hypr/.config/hypr/hyprconf/base.lua
+++ b/hypr/.config/hypr/hyprconf/base.lua
@@ -7,8 +7,9 @@ hl.config({
gaps_out = 10,
border_size = 2,
col = {
- active_border = { colors = { "rgba(7fbbb3ee)", "rgba(a7c080ee)" }, angle = 45 },
- inactive_border = "rgba(384b55aa)",
+ -- Cursor Dark: accent blue gradient, neutral dark inactive
+ active_border = { colors = { "rgba(2472c8ee)", "rgba(3b8eeaee)" }, angle = 45 },
+ inactive_border = "rgba(2b2b2baa)",
},
resize_on_border = false,
allow_tearing = false,
diff --git a/hypr/.config/hypr/hyprlock.conf b/hypr/.config/hypr/hyprlock.conf
index dacc519..e7bcc21 100644
--- a/hypr/.config/hypr/hyprlock.conf
+++ b/hypr/.config/hypr/hyprlock.conf
@@ -1,7 +1,7 @@
background {
monitor =
path = $HOME/.config/hypr/wp.png
- color = rgba(59,66,82,1)
+ color = rgba(24,24,24,1)
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_size = 5
@@ -20,9 +20,9 @@ input-field {
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 1.00 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
- outer_color = rgba(59,66,82,1)
- inner_color = rgba(59,66,82,1)
- font_color = rgba(235,203,139,1)
+ outer_color = rgba(36,114,200,1)
+ inner_color = rgba(43,43,43,1)
+ font_color = rgba(204,204,204,1)
fade_on_empty = true
placeholder_text = Password... # Text rendered in the input box when it's empty.
hide_input = false
@@ -56,7 +56,7 @@ label {
label {
monitor =
text = cmd[update:1000] echo " $(date +"%d %b") "
- color =rgb(163,190,140)
+ color =rgb(59,142,234)
font_size = 16
font_family = HackJBMLigatured-Regular 10
position = 0, -160
@@ -66,7 +66,7 @@ label {
label {
monitor =
text = cmd[update:1000] echo " $(date +"%A") "
- color =rgb(163,190,140)
+ color =rgb(59,142,234)
font_size = 16
font_family = HackJBMLigatured-Regular 10
position = 0, -180
diff --git a/hypr/.config/hypr/wp.png b/hypr/.config/hypr/wp.png
index 0870472..bbbdde1 100644
Binary files a/hypr/.config/hypr/wp.png and b/hypr/.config/hypr/wp.png differ
diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf
index 3a31235..6b14927 100644
--- a/kitty/.config/kitty/kitty.conf
+++ b/kitty/.config/kitty/kitty.conf
@@ -13,64 +13,64 @@ symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200
# Transparency
background_opacity 0.85
-foreground #d3c6aa
-background #2b3339
-selection_foreground #9da9a0
-selection_background #503946
+foreground #cccccc
+background #181818
+selection_foreground none
+selection_background #264f78
-cursor #d3c6aa
-cursor_text_color #323c41
+cursor #aeafad
+cursor_text_color #181818
-url_color #7fbbb3
+url_color #3b8eea
-active_border_color #a7c080
-inactive_border_color #53605c
-bell_border_color #e69875
+active_border_color #2472c8
+inactive_border_color #2b2b2b
+bell_border_color #e5e510
visual_bell_color none
wayland_titlebar_color system
macos_titlebar_color system
-active_tab_background #2b3339
-active_tab_foreground #d3c6aa
-inactive_tab_background #3a454a
-inactive_tab_foreground #9da9a0
-tab_bar_background #323c41
+active_tab_background #1f1f1f
+active_tab_foreground #ffffff
+inactive_tab_background #181818
+inactive_tab_foreground #9d9d9d
+tab_bar_background #181818
tab_bar_margin_color none
-# Set up term-colors (Nord Theme)
+# Set up term-colors (Cursor Dark)
#: black
-color0 #374247
-color8 #404c51
+color0 #000000
+color8 #666666
#: red
-color1 #e67e80
-color9 #e67e80
+color1 #cd3131
+color9 #f14c4c
#: green
-color2 #a7c080
-color10 #a7c080
+color2 #0dbc79
+color10 #23d18b
#: yellow
-color3 #dbbc7f
-color11 #dbbc7f
+color3 #e5e510
+color11 #f5f543
#: blue
-color4 #7fbbb3
-color12 #7fbbb3
+color4 #2472c8
+color12 #3b8eea
#: magenta
-color5 #d699b6
-color13 #d699b6
+color5 #bc3fbc
+color13 #d670d6
#: cyan
-color6 #83c092
-color14 #83c092
+color6 #11a8cd
+color14 #29b8db
#: white
-color7 #859289
-color15 #9da9a0
+color7 #e5e5e5
+color15 #e5e5e5
# The cursor shape can be one of (block, beam, underline)
@@ -89,13 +89,6 @@ window_border_width 0
window_margin_width 20
-# The color for the border of the active window
-active_border_color #ffffff
-
-# The color for the border of inactive windows
-inactive_border_color #cccccc
-
-
# Manage font size
map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size
diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json
index 7da2ddb..3beecd9 100644
--- a/nvim/.config/nvim/lazy-lock.json
+++ b/nvim/.config/nvim/lazy-lock.json
@@ -7,16 +7,15 @@
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
"dashboard-nvim": { "branch": "master", "commit": "f787e3462c2ee2b6117b17c1aa4ddf66cb6f57fe" },
- "everforest-nvim": { "branch": "main", "commit": "d235ca0aa6a29546e661a020e2618612acbbffbe" },
- "gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
+ "gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
- "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
- "mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" },
- "mason.nvim": { "branch": "main", "commit": "8e921c2b68571e978db5d4d3fef9c9a7f8755473" },
- "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
- "nvim-tree.lua": { "branch": "master", "commit": "07f541fcaa4a5ae019598240362449ab7e9812b3" },
- "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
- "nvim-web-devicons": { "branch": "master", "commit": "2795c26c916bb3c57dde308b82be51971fa92747" },
+ "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "67029ccdac1ef8941e13b826417bc0ffac24cc86" },
+ "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
+ "nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" },
+ "nvim-tree.lua": { "branch": "master", "commit": "b2aadda94b107480c48e548d6db51c6840b7b33c" },
+ "nvim-treesitter": { "branch": "main", "commit": "7b6cc8949f9999c5ed91436cbe24aa5f99c42025" },
+ "nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" },
@@ -24,7 +23,8 @@
"vim-bbye": { "branch": "master", "commit": "25ef93ac5a87526111f43e5110675032dbcacf56" },
"vim-floaterm": { "branch": "master", "commit": "bb4ba7952e906408e1f83b215f55ffe57efcade6" },
"vim-vsnip": { "branch": "master", "commit": "9bcfabea653abdcdac584283b5097c3f8760abaa" },
- "vimtex": { "branch": "master", "commit": "182ad387e3f3107699483606c9a2b6648f8437b2" },
+ "vimtex": { "branch": "master", "commit": "154eca8f68a5ad54eb12308bb378e88bdd0dfb3e" },
"vimwiki": { "branch": "dev", "commit": "a54a3002e229c4b43d69ced170ff77663a5b2c40" },
+ "vscode.nvim": { "branch": "main", "commit": "aa1102a7e15195c9cca22730b09224a7f7745ba8" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}
diff --git a/nvim/.config/nvim/lua/lazy-setup.lua b/nvim/.config/nvim/lua/lazy-setup.lua
index c888190..98ec3b3 100644
--- a/nvim/.config/nvim/lua/lazy-setup.lua
+++ b/nvim/.config/nvim/lua/lazy-setup.lua
@@ -22,7 +22,7 @@ require("lazy").setup({
{ import = "plugins" },
},
install = {
- colorscheme = { "everforest" },
+ colorscheme = { "vscode" },
},
checker = {
enabled = true,
diff --git a/nvim/.config/nvim/lua/plugins/colorscheme.lua b/nvim/.config/nvim/lua/plugins/colorscheme.lua
index 47d88b0..1810f45 100644
--- a/nvim/.config/nvim/lua/plugins/colorscheme.lua
+++ b/nvim/.config/nvim/lua/plugins/colorscheme.lua
@@ -1,10 +1,44 @@
+-- Cursor Dark.
+--
+-- Cursor's default theme is VS Code Dark Modern lineage, so vscode.nvim already
+-- ships the exact token colors (#569CD6 keywords, #CE9178 strings, #6A9955
+-- comments, #4EC9B0 types). Only the chrome and the :terminal palette need
+-- pinning so Neovim matches kitty/tmux/fish.
return {
{
- "neanias/everforest-nvim",
+ "Mofiqul/vscode.nvim",
+ lazy = false,
priority = 1000,
config = function()
- require("everforest").setup({})
- vim.cmd([[colorscheme everforest]])
+ vim.o.background = "dark"
+
+ require("vscode").setup({
+ -- The editor background is pinned to kitty's #181818 instead of Cursor's
+ -- #1F1F1F: kitty only leaves a cell transparent when it uses the default
+ -- background, so matching it keeps background_opacity working in nvim.
+ color_overrides = {
+ vscBack = "#181818",
+ vscTabCurrent = "#1F1F1F",
+ vscTabOther = "#181818",
+ vscTabOutside = "#181818",
+ vscLeftDark = "#181818",
+ },
+ })
+
+ vim.cmd.colorscheme("vscode")
+
+ -- :terminal gets the same 16 colors as kitty and tmux. vscode.nvim would
+ -- otherwise map them onto the syntax palette, which makes green the
+ -- comment green (#6A9955) and looks nothing like the shell.
+ local palette = {
+ [0] = "#000000", "#cd3131", "#0dbc79", "#e5e510",
+ "#2472c8", "#bc3fbc", "#11a8cd", "#e5e5e5",
+ "#666666", "#f14c4c", "#23d18b", "#f5f543",
+ "#3b8eea", "#d670d6", "#29b8db", "#e5e5e5",
+ }
+ for i, color in pairs(palette) do
+ vim.g["terminal_color_" .. i] = color
+ end
end,
},
}
diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua
index dd2cb45..a83d2de 100644
--- a/nvim/.config/nvim/lua/plugins/treesitter.lua
+++ b/nvim/.config/nvim/lua/plugins/treesitter.lua
@@ -1,17 +1,31 @@
return {
{
"nvim-treesitter/nvim-treesitter",
+ branch = "main",
+ lazy = false,
build = ":TSUpdate",
config = function()
- require("nvim-treesitter").setup {
- ensure_installed = { "bash", "c", "cpp", "javascript", "json", "python", "css", "rust", "lua", "markdown", "markdown_inline" },
- auto_install = true,
- highlight = {
- enable = true,
- additional_vim_regex_highlighting = false,
- },
- indent = { enable = true },
+ local ts = require("nvim-treesitter")
+ ts.setup()
+
+ local ensure = {
+ "bash", "c", "cpp", "javascript", "json", "python",
+ "css", "rust", "lua", "markdown", "markdown_inline",
+ "php", "html", "terraform",
}
+ ts.install(ensure)
+
+ vim.api.nvim_create_autocmd("FileType", {
+ pattern = {
+ "bash", "sh", "c", "cpp", "javascript", "json", "python",
+ "css", "rust", "lua", "markdown",
+ "php", "html", "terraform",
+ },
+ callback = function()
+ pcall(vim.treesitter.start)
+ vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
+ end,
+ })
end,
},
}
diff --git a/nvim/.config/nvim/lua/plugins/ui.lua b/nvim/.config/nvim/lua/plugins/ui.lua
index ef4743a..4165bf8 100644
--- a/nvim/.config/nvim/lua/plugins/ui.lua
+++ b/nvim/.config/nvim/lua/plugins/ui.lua
@@ -111,11 +111,37 @@ return {
-- Status line
{
"nvim-lualine/lualine.nvim",
- dependencies = { "nvim-tree/nvim-web-devicons", "neanias/everforest-nvim" },
+ dependencies = { "nvim-tree/nvim-web-devicons", "Mofiqul/vscode.nvim" },
config = function()
+ -- Cursor Dark, deliberately mirroring the tmux status bar: same #181818
+ -- bar, same #2b2b2b raised segments, mode colour from the shared palette.
+ local bar, raised, text, dim = "#181818", "#2b2b2b", "#cccccc", "#9d9d9d"
+
+ local function mode(bg, fg)
+ return {
+ a = { bg = bg, fg = fg or "#ffffff", gui = "bold" },
+ b = { bg = raised, fg = text },
+ c = { bg = bar, fg = dim },
+ }
+ end
+
+ local cursor_dark = {
+ normal = mode("#2472c8"),
+ insert = mode("#0dbc79"),
+ visual = mode("#bc3fbc"),
+ replace = mode("#cd3131"),
+ -- dark text on yellow; white would be unreadable here
+ command = mode("#e5e510", "#181818"),
+ inactive = {
+ a = { bg = bar, fg = "#666666" },
+ b = { bg = bar, fg = "#666666" },
+ c = { bg = bar, fg = "#666666" },
+ },
+ }
+
require('lualine').setup {
options = {
- theme = 'everforest',
+ theme = cursor_dark,
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
}
diff --git a/nwg/.config/nwg-bar/style.css b/nwg/.config/nwg-bar/style.css
index b677ac1..d9bab0c 100644
--- a/nwg/.config/nwg-bar/style.css
+++ b/nwg/.config/nwg-bar/style.css
@@ -8,12 +8,13 @@ window {
}
/* Inner bar container, surrounds buttons */
+/* Cursor Dark: #181818 panel, #cccccc outline */
#inner-box {
- background-color: rgba (59, 66, 82, 1);
+ background-color: rgba (24, 24, 24, 1);
border-radius: 10px;
border-style: solid;
border-width: 2px;
- border-color: rgba (216, 222, 233, 0.7);
+ border-color: rgba (204, 204, 204, 0.7);
padding: 10px;
margin: 10px
}
@@ -31,5 +32,5 @@ button {
}
button:hover {
- background-color: rgba (216, 222, 233, 0.1)
+ background-color: rgba (204, 204, 204, 0.1)
}
diff --git a/nwg/.config/nwg-look/config b/nwg/.config/nwg-look/config
index 3f49ae5..50cd4cf 100644
--- a/nwg/.config/nwg-look/config
+++ b/nwg/.config/nwg-look/config
@@ -3,5 +3,8 @@
"export-gtkrc-20": true,
"export-index-theme": true,
"export-xsettingsd": true,
- "export-gtk4-symlinks": true
+ "export-gtk4-symlinks": true,
+ "flatpak-export-gtk-theme-override": false,
+ "flatpak-export-icon-theme-override": false,
+ "flatpak-install-current-gtk-theme": false
}
\ No newline at end of file
diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi
index 0a25808..93539c1 100644
--- a/rofi/.config/rofi/config.rasi
+++ b/rofi/.config/rofi/config.rasi
@@ -6,20 +6,21 @@ configuration {
modi: "combi,run,drun";
show-icons: true;
- icon-theme: "Nordzy-green-dark";
+ icon-theme: "Papirus-Dark";
}
@theme "/dev/null"
+/* Cursor Dark */
* {
- bgdark: #272E33;
- bgalt: #3C4841;
- bggreen: #56635F;
- fg0: #A7C080;
- fgalt: #4f5b58;
+ bgdark: #181818;
+ bgalt: #2b2b2b;
+ bgraised: #313131;
+ fg0: #cccccc;
+ fgalt: #6e6e6e;
- accent-color: #A7C080;
- urgent-color: #DBBC7F;
+ accent-color: #2472c8;
+ urgent-color: #e2c08d;
font: "Roboto 12";
@@ -32,7 +33,7 @@ configuration {
}
element selected {
- text-color: @bgalt;
+ text-color: #ffffff;
}
window {
@@ -49,7 +50,7 @@ mainbox {
inputbar {
background-color: @bgalt;
- border-color: @bggreen;
+ border-color: @bgraised;
border: 2px;
border-radius: 8px;
@@ -60,7 +61,7 @@ inputbar {
}
prompt {
- text-color: @fg0;
+ text-color: @accent-color;
}
entry {
@@ -71,8 +72,8 @@ entry {
message {
margin: 12px 0 0;
border-radius: 8px;
- border-color: @bggreen;
- background-color: @bggreen;
+ border-color: @bgraised;
+ background-color: @bgraised;
}
textbox {
@@ -96,15 +97,15 @@ element {
}
element normal active {
- text-color: @fg0;
+ text-color: @accent-color;
}
element alternate active {
- text-color: @fg0;
+ text-color: @accent-color;
}
element selected normal, element selected active {
- background-color: @fg0;
+ background-color: @accent-color;
}
element-icon {
diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf
index 4e9871c..64bdee9 100644
--- a/tmux/.tmux.conf
+++ b/tmux/.tmux.conf
@@ -22,6 +22,48 @@ set -g mouse on
set-option -g status-position bottom
set-option -g renumber-windows on
+# ==========================
+# === Cursor Dark theme ===
+# ==========================
+# Powerline status bar, ported from nordtheme/tmux with Cursor Dark colors.
+# Requires a patched (Nerd) font for the U+E0B0-E0B3 separators.
+#
+# bar bg #181818 raised segment #2b2b2b text #cccccc
+# session #2472c8 current window / host #11a8cd
+
+set -g status on
+set -g status-interval 1
+set -g status-justify left
+set -g status-style "bg=#181818,fg=#cccccc"
+set -g status-left-length 40
+set -g status-right-length 80
+
+#+--- Bars ---+
+set -g status-left "#[fg=#ffffff,bg=#2472c8,bold] #S #[fg=#2472c8,bg=#181818,nobold,noitalics,nounderscore]"
+set -g status-right "#[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %Y-%m-%d #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %H:%M #[fg=#11a8cd,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#181818,bg=#11a8cd,bold] #H "
+
+#+--- Windows ---+
+set -g window-status-format "#[fg=#181818,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#I #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#W #F #[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]"
+set -g window-status-current-format "#[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#I #[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#W #F #[fg=#11a8cd,bg=#181818,nobold,noitalics,nounderscore]"
+set -g window-status-separator ""
+# Let the formats above own the colors; activity/bell still show via the #F flag
+setw -g window-status-activity-style "none"
+setw -g window-status-bell-style "none"
+
+#+--- Panes ---+
+set -g pane-border-style "bg=default,fg=#2b2b2b"
+set -g pane-active-border-style "bg=default,fg=#2472c8"
+set -g display-panes-colour "#666666"
+set -g display-panes-active-colour "#2472c8"
+
+#+--- Messages ---+
+set -g message-style "bg=#2b2b2b,fg=#11a8cd"
+set -g message-command-style "bg=#2b2b2b,fg=#11a8cd"
+setw -g mode-style "bg=#264f78,fg=#e5e5e5"
+
+#+--- Clock ---+
+setw -g clock-mode-colour "#11a8cd"
+
# ================================================
# === Copy mode, scroll and clipboard ===
# ================================================
@@ -92,12 +134,29 @@ bind -T copy-mode-vi MouseDown1Pane select-pane \;\
# tmux show-options -g -s set-clipboard
# set-clipboard on|external
-# List of plugins
-set -g @plugin 'tmux-plugins/tpm'
+# ==========================
+# === Plugins ===
+# ==========================
+# Nothing under ~/.tmux/plugins is tracked in git - tpm owns that directory and
+# clones everything listed below itself. Do not commit the plugin folders: they
+# would be checked out as empty dirs, and tpm would then skip installing them.
+set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
-set -g @plugin "arcticicestudio/nord-tmux"
+
+# tpm and its installer both resolve the plugin dir from this tmux environment
+# variable, and only the tpm script itself sets it. Pin it up-front so the
+# installer below already works on the very first run.
+run 'tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"'
+
+# Bootstrap tpm itself on a machine that has never run it
+if "test ! -d ~/.tmux/plugins/tpm" \
+ "run 'git clone -q --single-branch https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm'"
+
+# Clone any declared plugin that is missing. Deliberately in the foreground, so
+# plugins installed here are already on disk when tpm sources them below.
+run '~/.tmux/plugins/tpm/bin/install_plugins'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
diff --git a/tmux/.tmux/plugins/nord-tmux b/tmux/.tmux/plugins/nord-tmux
deleted file mode 160000
index f7b6da0..0000000
--- a/tmux/.tmux/plugins/nord-tmux
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f7b6da07ab55fe32ee5f7d62da56d8e5ac691a92
diff --git a/tmux/.tmux/plugins/tmux-sensible b/tmux/.tmux/plugins/tmux-sensible
deleted file mode 160000
index 25cb91f..0000000
--- a/tmux/.tmux/plugins/tmux-sensible
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 25cb91f42d020f675bb0a2ce3fbd3a5d96119efa
diff --git a/tmux/.tmux/plugins/tmux-yank b/tmux/.tmux/plugins/tmux-yank
deleted file mode 160000
index acfd36e..0000000
--- a/tmux/.tmux/plugins/tmux-yank
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit acfd36e4fcba99f8310a7dfb432111c242fe7392
diff --git a/tmux/.tmux/plugins/tpm b/tmux/.tmux/plugins/tpm
deleted file mode 160000
index 99469c4..0000000
--- a/tmux/.tmux/plugins/tpm
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946
diff --git a/waybar/.config/waybar/config b/waybar/.config/waybar/config
index 10ad4d6..34d717e 100644
--- a/waybar/.config/waybar/config
+++ b/waybar/.config/waybar/config
@@ -10,36 +10,36 @@
// Choose the order of the modules
"modules-left": ["hyprland/workspaces","hyprland/window"],
"modules-center": ["clock"],
- "modules-right": ["pulseaudio", "backlight", "network", "battery", "cpu", "memory", "tray"],
+ "modules-right": ["pulseaudio", "network", "cpu", "memory", "tray"],
// Modules configuration
-// "hyprland/workspaces": {
-// "disable-scroll": true,
-// //"all-outputs": true,
-// "on-click": "activate",
-// "format": "{icon}",
-// "format-icons": {
-// "empty": "",
-// //"default": "",
-// "default": "",
-// "active": "",
-// }
-// },
-
"hyprland/workspaces": {
- "format": "{name}",
- "persistent_workspaces": {
- "1": [],
- "2": [],
- "3": [],
- "4": [],
- "5": []
- },
- "all-outputs": true,
- "active-only": false,
- "sort-by-number": true
+ "disable-scroll": true,
+ //"all-outputs": true,
+ "on-click": "activate",
+ "format": "{icon}",
+ "format-icons": {
+ "empty": "",
+ //"default": "",
+ "default": "",
+ "active": "",
+ }
},
+
+// "hyprland/workspaces": {
+// "format": "{name}",
+// "persistent_workspaces": {
+// "1": [],
+// "2": [],
+// "3": [],
+// "4": [],
+// "5": []
+// },
+// "all-outputs": true,
+// "active-only": false,
+// "sort-by-number": true
+// },
"keyboard-state": {
"numlock": false,
"capslock": false,
@@ -93,7 +93,6 @@
"bat": "BAT2"
},
"network": {
- "interface": "wlo1", // (Optional) To force the use of this interface
"format-wifi": "{essid} ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
@@ -124,13 +123,13 @@
"tooltip": false,
"format": "{} {icon}",
"format-icons": {
- "notification": " ",
+ "notification": " ",
"none": "",
- "dnd-notification": " ",
+ "dnd-notification": " ",
"dnd-none": "",
- "inhibited-notification": " ",
+ "inhibited-notification": " ",
"inhibited-none": "",
- "dnd-inhibited-notification": " ",
+ "dnd-inhibited-notification": " ",
"dnd-inhibited-none": ""
},
"return-type": "json",
@@ -149,6 +148,13 @@
},
"exec-if": "which waybar-updates",
"exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300"
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
}
}
diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css
index d17fd3f..2b8dd71 100644
--- a/waybar/.config/waybar/style.css
+++ b/waybar/.config/waybar/style.css
@@ -1,11 +1,12 @@
-@define-color bg_dim #1e2326;
-@define-color bg0 #272e33;
-@define-color bg2 #374145;
-@define-color fg #D3C6AA;
-@define-color red #E67E80;
-@define-color blue #7fbbb3;
-@define-color orange #e69875;
-@define-color bg4 #495156;
+/* Cursor Dark */
+@define-color bg_dim #141414;
+@define-color bg0 #181818;
+@define-color bg2 #2b2b2b;
+@define-color fg #cccccc;
+@define-color red #f14c4c;
+@define-color blue #3b8eea;
+@define-color orange #e2c08d;
+@define-color bg4 #2472c8;
* {
transition: none;
@@ -37,6 +38,8 @@
#workspaces button.active {
border-radius: 10px;
background-color: @bg4;
+ /* @fg on the accent blue is too low-contrast to read */
+ color: #ffffff;
}
#workspaces button.urgent {
diff --git a/zathura/.config/zathura/zathurarc b/zathura/.config/zathura/zathurarc
index 452e116..24ce927 100644
--- a/zathura/.config/zathura/zathurarc
+++ b/zathura/.config/zathura/zathurarc
@@ -13,3 +13,53 @@ map J zoom out
map i recolor
map p print
map g goto top
+
+# ==========================
+# === Cursor Dark ===
+# ==========================
+# bg #181818 | raised #2b2b2b | popup #202020 | text #cccccc
+# accent #2472c8 | selection #264f78
+
+# Chrome
+set default-bg "#181818"
+set default-fg "#cccccc"
+set statusbar-bg "#2b2b2b"
+set statusbar-fg "#cccccc"
+set inputbar-bg "#181818"
+set inputbar-fg "#cccccc"
+set render-loading-bg "#181818"
+set render-loading-fg "#9d9d9d"
+
+# Notifications. Error/warning backgrounds are VS Code's input-validation
+# colors, so the error tint matches dunst's critical notifications.
+set notification-bg "#2b2b2b"
+set notification-fg "#cccccc"
+set notification-error-bg "#5a1d1d"
+set notification-error-fg "#ffffff"
+set notification-warning-bg "#352a05"
+set notification-warning-fg "#ffffff"
+
+# Completion and index reuse the popup/selection colors from nvim
+set completion-bg "#202020"
+set completion-fg "#cccccc"
+set completion-group-bg "#181818"
+set completion-group-fg "#9d9d9d"
+set completion-highlight-bg "#264f78"
+set completion-highlight-fg "#ffffff"
+set index-bg "#181818"
+set index-fg "#cccccc"
+set index-active-bg "#264f78"
+set index-active-fg "#ffffff"
+
+# Search: every match subtle, the current one in the accent blue
+set highlight-color "#264f78"
+set highlight-active-color "#2472c8"
+
+# Render the document itself dark; 'i' (mapped above) toggles it back off.
+# Despite the names, lightcolor is what LIGHT areas become (the page
+# background) and darkcolor is what DARK areas become (the text).
+set recolor true
+set recolor-lightcolor "#181818"
+set recolor-darkcolor "#cccccc"
+# Keep colored figures and links recognisable instead of crushing them to mono
+set recolor-keephue true