Compare commits

32 Commits
Author SHA1 Message Date
_N0x a7c4dc8407 fish/.config/fish/fish_variables aktualisiert 2026-08-06 10:35:30 +02:00
_N0x 42c44aec68 Fixes after testing new theme 2026-08-05 18:13:46 +02:00
_N0x 96d3086885 Updated zathura colors to match cursor dark setup 2026-08-05 16:16:09 +02:00
_N0x 699473d7b5 More theming 2026-08-05 16:02:19 +02:00
_N0x a5686ccee0 Updated gtk theme, added SETUP.md 2026-08-05 13:26:10 +02:00
_N0x dcb2b320eb updated broken wallpaper 2026-08-05 11:45:21 +02:00
_N0x dc10b3dfb3 Updated gitconfig 2026-08-05 11:38:13 +02:00
_N0x 79036dce2c Updated hypr, rofi and waybar theme 2026-08-05 10:56:12 +02:00
_N0x 2dcbd80842 Updated nvim theme 2026-08-05 10:36:35 +02:00
_N0x e5fb57c279 First iteration of cursor dark theme for kitty, tmux, fish 2026-08-05 10:13:57 +02:00
_N0x 14c53abbf3 Updated fish to use start-hyprland dispatcher 2026-05-17 16:51:39 +02:00
_N0x 23718c9477 Updated hyprland to use lua to be compatible 0.55 2026-05-17 16:49:33 +02:00
_N0x f308f2fe75 Updated nvim config to work on latest versions 2026-05-17 16:03:56 +02:00
_N0x a945adae10 Fix: fixed broken keymap for closing buffers 2025-11-17 23:00:17 +01:00
_N0x 6c156422be Feat: updated nvim config to use lazy vim and fixed dependencies 2025-11-17 22:54:35 +01:00
_N0x 897bc92c94 new wallpaper 2025-11-09 21:53:45 +01:00
_N0x aa96285da3 FEAT: Updated gtk settings to be similar across gtk versions 2025-09-06 16:20:30 +02:00
_N0x b9959d2c6f FEAT: Updated init.lua 2025-09-06 16:17:50 +02:00
_N0x b7fccc80db FEAT: Updated mimelist 2025-09-06 16:17:01 +02:00
_N0x 7efc69cc34 Updates to nvim stuff 2025-05-20 14:18:28 +02:00
_N0x 93c1b94387 Updated dunstrc with everforest and hyprland tweaks 2025-05-19 22:07:41 +02:00
_N0x f222bd9b8f Moved theming to Everforest theme 2025-05-19 22:01:28 +02:00
_N0x 24979c1872 laptop config to transfer to new laptop 2025-05-01 02:09:09 +02:00
_N0x 0050404bd9 FEAT: updated theme stuff and nwg-bar 2025-03-29 20:29:36 +01:00
_N0x d9375906f0 FEAT: added nwg dotfiles 2025-03-29 19:37:00 +01:00
_N0x 505734efa7 FEAT: updated mimeapps 2025-03-21 15:18:32 +01:00
_N0x a4afa92102 FEAT: updated fish config 2025-03-21 15:15:17 +01:00
_N0x e25799c2a1 FEAT: cleanup of fish config 2025-02-25 16:19:18 +01:00
_N0x 1ac2a8be73 FEAT: Exdented funny git config 2025-02-25 16:18:59 +01:00
_N0x 6433bb1a07 FEAT: Exdented funny git config 2025-02-25 14:35:27 +01:00
_N0x 94ddccdf87 FEAT: Added extended git config 2025-02-25 13:50:44 +01:00
_N0x aae3258c5a FEAT: added fish rustup integration 2025-02-15 19:04:59 +01:00
53 changed files with 1596 additions and 1090 deletions
+101
View File
@@ -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+E0B0E0B3), 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.
+23 -7
View File
@@ -1,5 +1,5 @@
[Added Associations] [Added Associations]
application/pdf=org.pwmt.zathura.desktop; application/pdf=userapp-librewolf.desktop;
application/x-extension-htm=userapp-librewolf.desktop; application/x-extension-htm=userapp-librewolf.desktop;
application/x-extension-html=userapp-librewolf.desktop; application/x-extension-html=userapp-librewolf.desktop;
application/x-extension-shtml=userapp-librewolf.desktop; application/x-extension-shtml=userapp-librewolf.desktop;
@@ -12,30 +12,32 @@ x-scheme-handler/chrome=userapp-librewolf.desktop;
x-scheme-handler/ftp=userapp-librewolf.desktop; x-scheme-handler/ftp=userapp-librewolf.desktop;
x-scheme-handler/http=userapp-librewolf.desktop; x-scheme-handler/http=userapp-librewolf.desktop;
x-scheme-handler/https=userapp-librewolf.desktop; x-scheme-handler/https=userapp-librewolf.desktop;
x-scheme-handler/mailto=userapp-Thunderbird-OZQMR0.desktop;userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop; x-scheme-handler/mailto=userapp-Thunderbird-OZQMR0.desktop;userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop;userapp-Thunderbird-P5H422.desktop;
x-scheme-handler/tg=userapp-Telegram Desktop-4ZQQX0.desktop;org.telegram.desktop.desktop; x-scheme-handler/tg=userapp-Telegram Desktop-4ZQQX0.desktop;org.telegram.desktop.desktop;
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop; x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop;userapp-Thunderbird-P5H422.desktop;
text/plain=codium.desktop; text/plain=codium.desktop;
application/zip=xarchiver.desktop;teamspeak3.desktop; application/zip=xarchiver.desktop;teamspeak3.desktop;
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop;
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop;
[Default Applications] [Default Applications]
application/pdf=org.pwmt.zathura.desktop application/pdf=librewolf.desktop
application/x-extension-htm=librewolf.desktop application/x-extension-htm=librewolf.desktop
application/x-extension-html=librewolf.desktop application/x-extension-html=librewolf.desktop
application/x-extension-shtml=librewolf.desktop application/x-extension-shtml=librewolf.desktop
application/x-extension-xht=librewolf.desktop application/x-extension-xht=librewolf.desktop
application/x-extension-xhtml=librewolf.desktop application/x-extension-xhtml=librewolf.desktop
application/xhtml+xml=librewolf.desktop application/xhtml+xml=librewolf.desktop
message/rfc822=userapp-Thunderbird-WB8BX2.desktop message/rfc822=userapp-Thunderbird-P5H422.desktop
text/html=librewolf.desktop text/html=librewolf.desktop
x-scheme-handler/bitwarden=bitwarden.desktop x-scheme-handler/bitwarden=bitwarden.desktop
x-scheme-handler/chrome=librewolf.desktop x-scheme-handler/chrome=librewolf.desktop
x-scheme-handler/ftp=librewolf.desktop x-scheme-handler/ftp=librewolf.desktop
x-scheme-handler/http=librewolf.desktop x-scheme-handler/http=librewolf.desktop
x-scheme-handler/https=librewolf.desktop x-scheme-handler/https=librewolf.desktop
x-scheme-handler/mailto=userapp-Thunderbird-WB8BX2.desktop x-scheme-handler/mailto=userapp-Thunderbird-P5H422.desktop
x-scheme-handler/tg=org.telegram.desktop.desktop x-scheme-handler/tg=org.telegram.desktop.desktop
x-scheme-handler/mid=userapp-Thunderbird-WB8BX2.desktop x-scheme-handler/mid=userapp-Thunderbird-P5H422.desktop
image/png=imv-dir.desktop image/png=imv-dir.desktop
image/jpg=imv-dir.desktop image/jpg=imv-dir.desktop
application/json=codium.desktop application/json=codium.desktop
@@ -53,3 +55,17 @@ image/bmp=imv-dir.desktop
image/tiff=imv-dir.desktop image/tiff=imv-dir.desktop
image/x-icon=imv-dir.desktop image/x-icon=imv-dir.desktop
image/svg+xml=imv-dir.desktop image/svg+xml=imv-dir.desktop
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop
text/calendar=userapp-Thunderbird-ID7522.desktop
application/x-extension-ics=userapp-Thunderbird-ID7522.desktop
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop
application/x-tar=xarchiver.desktop
application/x-7z-compressed=xarchiver.desktop
application/x-rar=xarchiver.desktop
application/x-bzip=xarchiver.desktop
application/x-bzip2=xarchiver.desktop
application/gzip=xarchiver.desktop
application/x-xz=xarchiver.desktop
application/x-lzma=xarchiver.desktop
application/x-iso9660-image=xarchiver.desktop
application/vnd.rar=xarchiver.desktop
+16 -11
View File
@@ -33,7 +33,7 @@
origin = top-right origin = top-right
# Offset from the origin # Offset from the origin
offset = 15x48 offset = 15x15
# Scale factor. It is auto-detected if value is 0. # Scale factor. It is auto-detected if value is 0.
scale = 0 scale = 0
@@ -92,10 +92,11 @@
# Defines width in pixels of frame around the notification window. # Defines width in pixels of frame around the notification window.
# Set to 0 to disable. # Set to 0 to disable.
frame_width = 5 frame_width = 2
# Defines color of the frame around the notification window. # Defines color of the frame around the notification window.
frame_color = "#8FBCBB" # Cursor Dark: neutral by default, overridden per urgency below.
frame_color = "#2b2b2b"
# Size of gap to display between notifications - requires a compositor. # Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border # If value is greater than 0, separator_height will be ignored and a border
@@ -201,7 +202,7 @@
enable_recursive_icon_lookup = true enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup) # 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. # You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze" # icon_theme = "Adwaita, breeze"
@@ -250,7 +251,7 @@
# corners. # corners.
# The radius will be automatically lowered if it exceeds half of the # The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons. # notification height to avoid clipping text and/or icons.
corner_radius = 0 corner_radius = 10
# Ignore the dbus closeNotification message. # Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this # Useful to enforce the timeout set by dunst configuration. Without this
@@ -313,23 +314,27 @@
[urgency_low] [urgency_low]
# IMPORTANT: colors have to be defined in quotation marks. # IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment. # Otherwise the "#" and following would be interpreted as a comment.
background = "#2E3440" background = "#181818"
foreground = "#888888" foreground = "#9d9d9d"
frame_color = "#2b2b2b"
timeout = 10 timeout = 10
# Icon for notifications with low urgency, uncomment to enable # Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
[urgency_normal] [urgency_normal]
background = "#3b4252" background = "#181818"
foreground = "#ffffff" foreground = "#cccccc"
frame_color = "#2472c8"
timeout = 10 timeout = 10
# Icon for notifications with normal urgency, uncomment to enable # Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
[urgency_critical] [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" foreground = "#ffffff"
frame_color = "#ff0000" frame_color = "#f14c4c"
timeout = 0 timeout = 0
# Icon for notifications with critical urgency, uncomment to enable # Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
-221
View File
@@ -1,221 +0,0 @@
set -Ux LF_ICONS "\
*.7z=:\
*.aac=:\
*.ace=:\
*.alz=:\
*.arc=:\
*.arj=:\
*.asf=:\
*.atom=:\
*.au=:\
*.avi=:\
*.bash=:\
*.bash_history=:\
*.bashprofile=:\
*.bashrc=:\
*.bmp=:\
*.bz2=:\
*.bz=:\
*.c=:\
*.cab=:\
*.cc=:\
*.cfg=:\
*.cgm=:\
*.clang-format=:\
*.clj=:\
*.cmd=:\
*.coffee=:\
*.cpio=:\
*.cpp=:\
*.css=:\
*.d=:\
*.dart=:\
*.deb=:\
*.dl=:\
*.DS_Store=:\
*.dwm=:\
*.dz=:\
*.ear=:\
*.emf=:\
*.env=:\
*.erl=:\
*.esd=:\
*.exs=:\
*.fish=:\
*.flac=:\
*.flc=:\
*.fli=:\
*.flv=:\
*.fs=:\
*.gif=:\
*.git=:\
*.gitattributes=:\
*.gitconfig=:\
*.github=:\
*.gitignore=:\
*.gitignore_global=:\
*.gitkeep=:\
*.gitmodules=:\
*.gl=:\
*.go=:\
*.gz=:\
*.h=:\
*.hh=:\
*.hidden=:\
*.hpp=:\
*.hs=:\
*.html=:\
*.hyper.js=:\
*.jar=:\
*.java=:\
*.jl=:\
*.jpeg=:\
*.jpg=:\
*.js=:\
*.json=:\
*.jsx=:\
*.lha=:\
*.lrz=:\
*.lua=:\
*.lz4=:\
*.lz=:\
*.lzh=:\
*.lzma=:\
*.lzo=:\
*.m2v=:\
*.m4a=:\
*.m4v=:\
*.map=:\
*.md=:\
*.mdx=:\
*.mid=:\
*.midi=:\
*.mjpeg=:\
*.mjpg=:\
*.mka=:\
*.mkv=:\
*.mng=:\
*.mov=:\
*.mp3=:\
*.mp4=:\
*.mp4v=:\
*.mpc=:\
*.mpeg=:\
*.mpg=:\
*.nix=:\
*.npmignore=:\
*.npmrc=:\
*.nuv=:\
*.nvmrc=:\
*.oga=:\
*.ogg=:\
*.ogm=:\
*.ogv=:\
*.ogx=:\
*.opus=:\
*.pbm=:\
*.pcx=:\
*.pdf=:\
*.pgm=:\
*.php=:\
*.pl=:\
*.png=:\
*.ppm=:\
*.pro=:\
*.ps1=:\
*.py=:\
*.qt=:\
*.ra=:\
*.rar=:\
*.rb=:\
*.rm=:\
*.rmvb=:\
*.rpm=:\
*.rs=:\
*.rvm=:\
*.rz=:\
*.sar=:\
*.scala=:\
*.sh=:\
*.skhdrc=:\
*.sol=ﲹ:\
*.spx=:\
*.svg=:\
*.svgz=:\
*.swm=:\
*.t7z=:\
*.tar=:\
*.taz=:\
*.tbz2=:\
*.tbz=:\
*.tga=:\
*.tgz=:\
*.tif=:\
*.tiff=:\
*.tlz=:\
*.tmux.conf=:\
*.trash=:\
*.ts=:\
*.tsx=:\
*.txz=:\
*.tz=:\
*.tzo=:\
*.tzst=:\
*.vim=:\
*.vimrc=:\
*.vob=:\
*.vscode=:\
*.war=:\
*.wav=:\
*.webm=:\
*.wim=:\
*.xbm=:\
*.xcf=:\
*.xpm=:\
*.xspf=:\
*.xwd=:\
*.xz=:\
*.yabairc=:\
*.yaml=פּ:\
*.yarn-integrity=:\
*.yarnrc=:\
*.yml=פּ:\
*.yuv=:\
*.z=:\
*.zip=:\
*.zoo=:\
*.zprofile=:\
*.zprofile=:\
*.zsh=:\
*.zsh_history=:\
*.zshrc=:\
*.zst=:\
*bin=:\
*config=:\
*docker-compose.yml=:\
*dockerfile=:\
*gradle=:\
*gruntfile.coffee=:\
*gruntfile.js=:\
*gruntfile.ls=:\
*gulpfile.coffee=:\
*gulpfile.js=:\
*gulpfile.ls=:\
*include=:\
*lib=:\
*localized=:\
*node_modules=:\
*package.json=:\
*rubydoc=:\
*tsconfig.json=:\
*yarn.lock=:\
di=:\
dt=:\
ex=:\
fi=:\
ln=:\
or=:\
ow=:\
st=:\
tw=:\
"
+4 -14
View File
@@ -1,9 +1,11 @@
if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ]; if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ];
Hyprland start-hyprland
end end
fish_ssh_agent fish_ssh_agent
umask 0077
function q function q
exit exit
end end
@@ -13,10 +15,6 @@ function ff
fastfetch --logo-type kitty-direct --logo ~/.config/fish/img/ff.png -c neofetch.jsonc fastfetch --logo-type kitty-direct --logo ~/.config/fish/img/ff.png -c neofetch.jsonc
end end
function lf
command lfub
end
function cls function cls
command clear && ls command clear && ls
end end
@@ -46,15 +44,7 @@ function tree
end end
function ds function ds
command du -sch * | sort -rh command du -sch (ls -A) | sort -rh
end
function hv
command nmcli --ask connection up "HP VPN"
end
function hvd
command nmcli connection down "HP VPN"
end end
function nv function nv
File diff suppressed because one or more lines are too long
+13 -14
View File
@@ -1,20 +1,19 @@
set fish_prompt_pwd_dir_length 0 set fish_prompt_pwd_dir_length 0
set __fish_git_prompt_show_informative_status 1 set __fish_git_prompt_show_informative_status 1
# Fish command and parameter colors # Command and parameter colors come from fish_variables (Cursor Dark)
set fish_color_command green
set fish_color_param $fish_color_normal
# Git prompt # Git prompt
set __fish_git_prompt_showdirtystate 'yes' set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showupstream 'yes' set __fish_git_prompt_showupstream 'yes'
set __fish_git_prompt_color_branch brown # Colors mirror Cursor's git decorations
set __fish_git_prompt_color_dirtystate FCBC47 set __fish_git_prompt_color_branch 569CD6
set __fish_git_prompt_color_stagedstate yellow set __fish_git_prompt_color_dirtystate E2C08D
set __fish_git_prompt_color_upstream cyan set __fish_git_prompt_color_stagedstate 73C991
set __fish_git_prompt_color_cleanstate green set __fish_git_prompt_color_upstream 4EC9B0
set __fish_git_prompt_color_invalidstate red set __fish_git_prompt_color_cleanstate 73C991
set __fish_git_prompt_color_invalidstate E4676B
# Git Characters # Git Characters
set __fish_git_prompt_char_dirtystate '*' set __fish_git_prompt_char_dirtystate '*'
@@ -41,9 +40,9 @@ end
function _prompt_color_for_status function _prompt_color_for_status
if test $argv[1] -eq 0 if test $argv[1] -eq 0
echo magenta echo C586C0
else else
echo red echo F14C4C
end end
end end
@@ -51,7 +50,7 @@ function fish_prompt
set -l last_status $status set -l last_status $status
# username and hostname # username and hostname
_print_in_color "┏["$USER"@"(prompt_hostname)"]" blue _print_in_color "┏["$USER"@"(prompt_hostname)"]" 569CD6
# current working dir # current working dir
_print_in_color " "(prompt_pwd) $fish_color_cwd _print_in_color " "(prompt_pwd) $fish_color_cwd
@@ -59,10 +58,10 @@ function fish_prompt
__fish_git_prompt " (%s)" __fish_git_prompt " (%s)"
# beginning of new line # beginning of new line
_print_in_color "\n┗" blue _print_in_color "\n┗" 569CD6
# time information # 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 # little error that indicates the status of the previous command
_print_in_color " " (_prompt_color_for_status $last_status) _print_in_color " " (_prompt_color_for_status $last_status)
+52
View File
@@ -0,0 +1,52 @@
# Specify the git user in the .gituser files to keep config the same across work and priv systems
[include]
path = .gituser
# global settings to improve git and its behavior
# See https://blog.gitbutler.com/how-git-core-devs-configure-git/
[column]
ui = auto
[branch]
sort = -committerdate
[tag]
sort = version:refname
[init]
defaultBranch = master
[diff]
algorithm = histogram
[push]
default = simple
autoSetupRemote = true
followTags = true
[fetch]
prune = true
pruneTags = true
all = true
[help]
autocorrect = prompt
[commit]
verbose = true
[rebase]
autoSquash = true
autoStash = true
updateRefs = true
[pull]
rebase = true
[merge]
conflictstyle = zdiff3
[core]
fsmonitor = true
untrackedCache = true
[log]
date = iso
[apply]
# Remove trailing whitespaces
whitespace = fix
[color "diff"]
whitespace = red reverse
[alias]
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
+4
View File
@@ -0,0 +1,4 @@
file:///home/n0x/Downloads Downloads
file:///home/n0x/Nextcloud Nextcloud
file:///home/n0x/Pictures Pictures
file:///home/n0x/Workspace Workspace
+15 -8
View File
@@ -1,14 +1,21 @@
[Settings] [Settings]
gtk-theme-name=Nordic-darker gtk-theme-name=Orchis-Dark-Compact
gtk-icon-theme-name=Nordzy-green-dark gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans, 10 gtk-font-name=Noto Sans 11
gtk-cursor-theme-name=Adwaita gtk-cursor-theme-name=default
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-decoration-layout=close,minimize,maximize: gtk-toolbar-style=3
gtk-application-prefer-dark-theme=true gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1 gtk-button-images=1
gtk-enable-animations=1
gtk-menu-images=1 gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1
gtk-decoration-layout=close,minimize,maximize:
gtk-enable-animations=1
gtk-primary-button-warps-slider=0 gtk-primary-button-warps-slider=0
gtk-shell-shows-menubar=1 gtk-shell-shows-menubar=1
gtk-toolbar-style=3
+1
View File
@@ -0,0 +1 @@
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/assets
+1
View File
@@ -0,0 +1 @@
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk-dark.css
-1
View File
@@ -1 +0,0 @@
@import 'colors.css';
+1
View File
@@ -0,0 +1 @@
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk.css
+5 -12
View File
@@ -1,14 +1,7 @@
[Settings] [Settings]
gtk-theme-name=Nordic-darker gtk-theme-name=Orchis-Dark-Compact
gtk-icon-theme-name=Nordzy-green-dark gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans, 10 gtk-font-name=Noto Sans 11
gtk-cursor-theme-name=Adwaita gtk-cursor-theme-name=default
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-decoration-layout=close,minimize,maximize: gtk-application-prefer-dark-theme=1
gtk-application-prefer-dark-theme=true
gtk-button-images=1
gtk-enable-animations=1
gtk-menu-images=1
gtk-primary-button-warps-slider=0
gtk-shell-shows-menubar=1
gtk-toolbar-style=3
+16 -9
View File
@@ -1,12 +1,19 @@
# DO NOT EDIT! This file will be overwritten by nwg-look.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/n0x/.gtkrc-2.0.mine"
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 gtk-cursor-theme-size=24
gtk-theme-name="Nordic-darker"
gtk-enable-animations=1
gtk-primary-button-warps-slider=0
gtk-toolbar-style=3 gtk-toolbar-style=3
gtk-menu-images=1 gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1 gtk-button-images=1
gtk-cursor-theme-name="Adwaita" gtk-menu-images=1
gtk-icon-theme-name="Nordzy-green-dark" gtk-enable-event-sounds=1
gtk-font-name="Noto Sans, 10" gtk-enable-input-feedback-sounds=0
gtk-application-prefer-dark-theme=true gtk-xft-antialias=1
gtk-modules=appmenu-gtk-module gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"
gtk-xft-rgba="rgb"
+93
View File
@@ -0,0 +1,93 @@
-----------------------
---- LOOK AND FEEL ----
-----------------------
hl.config({
general = {
gaps_in = 5,
gaps_out = 10,
border_size = 2,
col = {
-- 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,
layout = "dwindle",
},
decoration = {
rounding = 10,
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = "rgba(1a1a1aee)",
},
blur = {
enabled = true,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
},
animations = {
enabled = true,
},
dwindle = {
-- pseudotile = true,
preserve_split = true,
},
master = {
new_status = "master",
},
misc = {
force_default_wallpaper = -1,
disable_hyprland_logo = false,
},
cursor = {
no_hardware_cursors = true,
},
})
---------------------
---- ANIMATIONS -----
---------------------
-- Curves and animation leaves are now top-level hl.curve / hl.animation calls.
hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
---------------
---- INPUT ----
---------------
hl.config({
input = {
kb_layout = "de",
kb_variant = "",
kb_model = "",
kb_options = "",
kb_rules = "",
follow_mouse = 1,
sensitivity = 0,
numlock_by_default = true,
touchpad = {
natural_scroll = false,
},
},
})
+53
View File
@@ -0,0 +1,53 @@
---------------------
---- KEYBINDINGS ----
---------------------
-- Core
hl.bind(mainMod .. " + SHIFT + return", hl.dsp.exec_cmd(terminal))
hl.bind(mainMod .. " + SHIFT + C", hl.dsp.window.close())
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.exit())
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + P", hl.dsp.exec_cmd(menu))
hl.bind(mainMod .. " + SHIFT + P", hl.dsp.window.pseudo()) -- dwindle
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.exec_cmd(screenshot))
hl.bind(mainMod .. " + SHIFT + B", hl.dsp.exec_cmd(pwmanager))
hl.bind(mainMod .. " + L", hl.dsp.exec_cmd(lockscreen))
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
hl.bind(mainMod .. " + ESCAPE", hl.dsp.exec_cmd("nwg-bar"))
-- Move focus
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "l" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "r" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "u" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "d" }))
-- Special workspace (scratchpad)
hl.bind(mainMod .. " + space", hl.dsp.workspace.toggle_special("magic"))
hl.bind(mainMod .. " + SHIFT + space", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through existing workspaces
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Mouse drag/resize (mouse = true replaces the old `bindm`)
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Multimedia (locked = true makes them work while session is locked,
-- replacing the bindel flags `e` and `l`)
hl.bind(
"XF86AudioRaiseVolume",
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
{ locked = true, repeating = true }
)
hl.bind(
"XF86AudioLowerVolume",
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
{ locked = true, repeating = true }
)
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 5%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 5%-"), { locked = true, repeating = true })
+13
View File
@@ -0,0 +1,13 @@
------------------
---- MONITORS ----
------------------
-- Hyprland uses an inverse Y cartesian system: negative y places a monitor
-- HIGHER. The original conf had DP-2 at y=1440 (below DP-1). Kept as-is.
hl.monitor({ output = "DP-1", mode = "2560x1440@165", position = "0x0", scale = 1 })
hl.monitor({ output = "DP-2", mode = "3440x1440@165", position = "-440x1440", scale = 1 })
-- Persistent workspace 1 on DP-2
hl.workspace_rule({
workspace = "1",
monitor = "DP-2",
})
@@ -0,0 +1,23 @@
hl.config({
plugin = {
split_monitor_workspaces = {
count = 6,
keep_focused = 0,
enable_notifications = 0,
enable_persistent_workspaces = 1,
},
},
})
local smw = hl.plugin.split_monitor_workspaces
-- Switch workspaces with mainMod + [1-5]
for i = 1, 6 do
local key = tostring(i)
hl.bind(mainMod .. " + " .. key, function()
return smw.workspace(i)
end)
hl.bind(mainMod .. " + SHIFT + " .. key, function()
return smw.move_to_workspace_silent(i)
end)
end
-309
View File
@@ -1,309 +0,0 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DP-2,2560x1440@165,0x0,1
monitor=DP-1,3440x1440@165,-440x1440,1
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = pcmanfm
$menu = rofi -show drun
#$screenshot = slurp | grim -g - ~/Pictures/Screenshots/screenshot_$(date "+%Y-%m-%d_%T").png
$screenshot = grim -g "$(slurp)" - | swappy -f -
$pwmanager = bitwarden-desktop
$lockscreen = hyprlock
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = waybar
exec-once = hyprpaper
exec-once = nm-applet
exec-once = bitwarden-desktop
exec-once = nextcloud --background
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 10
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
numlock_by_default = true
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod SHIFT, return, exec, $terminal
bind = $mainMod SHIFT, C, killactive,
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, P, exec, $menu
bind = $mainMod SHIFT, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod SHIFT, S, exec, $screenshot
bind = $mainMod SHIFT, B, exec, $pwmanager
bind = $mainMod, L, exec, $lockscreen
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
#bind = $mainMod, 1, workspace, 1
#bind = $mainMod, 2, workspace, 2
#bind = $mainMod, 3, workspace, 3
#bind = $mainMod, 4, workspace, 4
#bind = $mainMod, 5, workspace, 5
#bind = $mainMod, 6, workspace, 6
#bind = $mainMod, 7, workspace, 7
#bind = $mainMod, 8, workspace, 8
#bind = $mainMod, 9, workspace, 9
#bind = $mainMod, 0, workspace, 10
#
## Move active window to a workspace with mainMod + SHIFT + [0-9]
#bind = $mainMod SHIFT, 1, movetoworkspace, 1
#bind = $mainMod SHIFT, 2, movetoworkspace, 2
#bind = $mainMod SHIFT, 3, movetoworkspace, 3
#bind = $mainMod SHIFT, 4, movetoworkspace, 4
#bind = $mainMod SHIFT, 5, movetoworkspace, 5
#bind = $mainMod SHIFT, 6, movetoworkspace, 6
#bind = $mainMod SHIFT, 7, movetoworkspace, 7
#bind = $mainMod SHIFT, 8, movetoworkspace, 8
#bind = $mainMod SHIFT, 9, movetoworkspace, 9
#bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, space, togglespecialworkspace, magic
bind = $mainMod SHIFT, space, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
#
windowrule = float, ^(Bitwarden)$
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = NVD_BACKEND,direct
cursor {
no_hardware_cursors = true
}
#workspace = 1, monitor:DP-2
plugin {
split-monitor-workspaces {
count = 5
keep_focused = 0
enable_notifications = 0
enable_persistent_workspaces = 1
}
}
$mainMod = SUPER
# Switch workspaces with mainMod + [0-5]
bind = $mainMod, 1, split-workspace, 1
bind = $mainMod, 2, split-workspace, 2
bind = $mainMod, 3, split-workspace, 3
bind = $mainMod, 4, split-workspace, 4
bind = $mainMod, 5, split-workspace, 5
# Move active window to a workspace with mainMod + SHIFT + [0-5]
bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5
+79
View File
@@ -0,0 +1,79 @@
-- ##########################################################################
-- Hyprland 0.55+ Lua configuration.
-- Migrated from hyprland.conf (hyprlang). Hyprlang is deprecated since 0.55.
-- File location: $XDG_CONFIG_HOME/hypr/hyprland.lua (~/.config/hypr/hyprland.lua)
-- Wiki: https://wiki.hypr.land/Configuring/Start/
-- ##########################################################################
local configDir = os.getenv("HOME") .. "/.config/hypr/"
package.path = configDir .. "?.lua;" .. package.path
----------------------
---- GLOBAL BINDS ----
----------------------
_G.mainMod = "SUPER"
---------------------
---- MY PROGRAMS ----
---------------------
_G.terminal = "kitty"
_G.fileManager = "pcmanfm"
_G.menu = "rofi -show drun"
_G.screenshot = 'grim -g "$(slurp)" - | swappy -f -'
_G.pwmanager = "bitwarden-desktop"
_G.lockscreen = "hyprlock"
require("hyprconf.base")
require("hyprconf.monitor")
require("hyprconf.keybinds")
require("hyprconf.split-workspace")
-------------------
---- AUTOSTART ----
-------------------
-- exec-once is gone; use hl.on("hyprland.start", ...).
hl.on("hyprland.start", function()
hl.exec_cmd("hyprpm reload")
hl.exec_cmd("waybar")
hl.exec_cmd("hyprpaper")
hl.exec_cmd("nm-applet")
hl.exec_cmd("blueman-applet")
hl.exec_cmd("bitwarden-desktop")
hl.exec_cmd("udiskie")
hl.exec_cmd("dunst")
hl.exec_cmd("nextcloud --background")
end)
-------------------------------
---- ENVIRONMENT VARIABLES ----
-------------------------------
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
-- NVIDIA / Wayland environment.
hl.env("LIBVA_DRIVER_NAME", "nvidia")
hl.env("XDG_SESSION_TYPE", "wayland")
hl.env("GBM_BACKEND", "nvidia-drm")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
hl.env("NVD_BACKEND", "direct")
--------------------------------
---- WINDOWS AND WORKSPACES ----
--------------------------------
-- Float Bitwarden
hl.window_rule({
name = "bw-float",
match = { title = "^(Bitwarden)$" },
float = true,
})
-- Suppress maximize events from all clients
hl.window_rule({
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
+7 -7
View File
@@ -1,7 +1,7 @@
background { background {
monitor = monitor =
path = $HOME/Nextcloud/Pictures/Wallpapers/MRR.png 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 # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_size = 5 blur_size = 5
@@ -20,9 +20,9 @@ input-field {
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 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_spacing = 1.00 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true dots_center = true
outer_color = rgba(59,66,82,1) outer_color = rgba(36,114,200,1)
inner_color = rgba(59,66,82,1) inner_color = rgba(43,43,43,1)
font_color = rgba(235,203,139,1) font_color = rgba(204,204,204,1)
fade_on_empty = true fade_on_empty = true
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty. placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
hide_input = false hide_input = false
@@ -56,7 +56,7 @@ label {
label { label {
monitor = monitor =
text = cmd[update:1000] echo "<b><big> $(date +"%d %b") </big></b>" text = cmd[update:1000] echo "<b><big> $(date +"%d %b") </big></b>"
color =rgb(163,190,140) color =rgb(59,142,234)
font_size = 16 font_size = 16
font_family = HackJBMLigatured-Regular 10 font_family = HackJBMLigatured-Regular 10
position = 0, -160 position = 0, -160
@@ -66,7 +66,7 @@ label {
label { label {
monitor = monitor =
text = cmd[update:1000] echo "<b><big> $(date +"%A") </big></b>" text = cmd[update:1000] echo "<b><big> $(date +"%A") </big></b>"
color =rgb(163,190,140) color =rgb(59,142,234)
font_size = 16 font_size = 16
font_family = HackJBMLigatured-Regular 10 font_family = HackJBMLigatured-Regular 10
position = 0, -180 position = 0, -180
+7 -2
View File
@@ -1,2 +1,7 @@
preload = ~/.config/hypr/wp.png wallpaper {
wallpaper = , ~/.config/hypr/wp.png monitor =
path = ~/.config/hypr/wp.png
fit_mode = cover
}
splash = false
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 22 MiB

+48 -35
View File
@@ -1,6 +1,6 @@
# Font stuff # Font stuff
font_family family="Hack JBM Ligatured" font_family family="Berkeley Mono Regular"
italic_font auto italic_font auto
bold_font auto bold_font auto
bold_italic_font auto bold_italic_font auto
@@ -13,45 +13,65 @@ symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200
# Transparency # Transparency
background_opacity 0.85 background_opacity 0.85
# The foreground color foreground #cccccc
foreground #d8dee9 background #181818
selection_foreground none
selection_background #264f78
# The background color cursor #aeafad
background #2e3440 cursor_text_color #181818
# The foreground for selections url_color #3b8eea
selection_foreground #81a1c1
# The background for selections active_border_color #2472c8
selection_background #eceff4 inactive_border_color #2b2b2b
bell_border_color #e5e510
visual_bell_color none
# The cursor color wayland_titlebar_color system
cursor #e5e9f0 macos_titlebar_color system
# Set up term-colors (Nord Theme) active_tab_background #1f1f1f
color0 #3b4252 active_tab_foreground #ffffff
color8 #4c566a inactive_tab_background #181818
inactive_tab_foreground #9d9d9d
tab_bar_background #181818
tab_bar_margin_color none
color1 #bf616a # Set up term-colors (Cursor Dark)
color9 #bf616a
color2 #a3be8c #: black
color10 #a3be8c color0 #000000
color8 #666666
color3 #ebcb8b #: red
color11 #ebcb8b color1 #cd3131
color9 #f14c4c
color4 #81a1c1 #: green
color12 #81a1c1 color2 #0dbc79
color10 #23d18b
color5 #b48ead #: yellow
color13 #b48ead color3 #e5e510
color11 #f5f543
color6 #88c0d0 #: blue
color14 #8fbcbb color4 #2472c8
color12 #3b8eea
#: magenta
color5 #bc3fbc
color13 #d670d6
#: cyan
color6 #11a8cd
color14 #29b8db
#: white
color7 #e5e5e5
color15 #e5e5e5
color7 #e5e9f0
color15 #eceff4
# The cursor shape can be one of (block, beam, underline) # The cursor shape can be one of (block, beam, underline)
shell_integration no-cursor shell_integration no-cursor
@@ -69,13 +89,6 @@ window_border_width 0
window_margin_width 20 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 # Manage font size
map ctrl+shift+up increase_font_size map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size map ctrl+shift+down decrease_font_size
+6 -335
View File
@@ -1,41 +1,9 @@
require "keymap" require "keymap"
require "options" require "options"
require "plugins" require "lazy-setup"
require "vars" require "vars"
-- Color Theme -- LSP Diagnostics Options Setup
vim.cmd [[
try
colorscheme nord
endtry
]]
-- Mason Setup
require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
}
})
require("mason-lspconfig").setup()
-- Rust Tools Setup
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
},
})
-- LSP Diagnostics Options Setup
local sign = function(opts) local sign = function(opts)
vim.fn.sign_define(opts.name, { vim.fn.sign_define(opts.name, {
texthl = opts.name, texthl = opts.name,
@@ -44,10 +12,10 @@ local sign = function(opts)
}) })
end end
sign({name = 'DiagnosticSignError', text = ''}) sign({name = 'DiagnosticSignError', text = ''})
sign({name = 'DiagnosticSignWarn', text = ''}) sign({name = 'DiagnosticSignWarn', text = ''})
sign({name = 'DiagnosticSignHint', text = ''}) sign({name = 'DiagnosticSignHint', text = ''})
sign({name = 'DiagnosticSignInfo', text = ''}) sign({name = 'DiagnosticSignInfo', text = ''})
vim.diagnostic.config({ vim.diagnostic.config({
virtual_text = false, virtual_text = false,
@@ -66,300 +34,3 @@ vim.cmd([[
set signcolumn=yes set signcolumn=yes
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false }) autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
]]) ]])
-- Completion Plugin Setup
local cmp = require'cmp'
cmp.setup({
-- Enable LSP snippets
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
mapping = {
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
-- Add tab support
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<Tab>'] = cmp.mapping.select_next_item(),
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
})
},
-- Installed sources:
sources = {
{ name = 'path' }, -- file paths
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
{ name = 'calc'}, -- source for math calculation
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
fields = {'menu', 'abbr', 'kind'},
format = function(entry, item)
local menu_icon ={
nvim_lsp = 'λ',
vsnip = '',
buffer = 'Ω',
path = '🖫',
}
item.menu = menu_icon[entry.source.name]
return item
end,
},
})
-- Treesitter Plugin Setup
require('nvim-treesitter.configs').setup {
ensure_installed = { "bash", "c", "cpp", "javascript", "json", "lua", "python", "typescript", "tsx", "css", "rust", "java", "yaml", "markdown", "markdown_inline" },
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting=false,
},
ident = { enable = true },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil,
}
}
-- nvim-tree Setup
-- following options are the default
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
local nvimtree = require("nvim-tree")
nvimtree.setup {
on_attach = function(bufnr)
local api = require("nvim-tree.api")
local function opts(desc)
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
api.config.mappings.default_on_attach(bufnr)
vim.keymap.set("n", "<space>", api.node.open.edit, opts("Open"))
end,
renderer = {
icons = {
webdev_colors = true,
git_placement = "before",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = "",
symlink = "",
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
deleted = "",
untracked = "U",
ignored = "",
},
folder = {
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
},
},
},
highlight_git = true,
root_folder_modifier = ":t",
indent_markers = {
enable = true,
},
},
hijack_directories = {
enable = true,
auto_open = true,
},
disable_netrw = true,
hijack_netrw = true,
hijack_cursor = false,
update_cwd = true,
diagnostics = {
enable = true,
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
},
update_focused_file = {
enable = true,
update_cwd = true,
ignore_list = {},
},
system_open = {
cmd = nil,
args = {},
},
filters = {
dotfiles = false,
custom = {},
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 35,
side = "left",
float = {
quit_on_focus_loss = true,
},
},
trash = {
cmd = "trash",
require_confirm = true,
},
actions = {
open_file = {
resize_window = true,
quit_on_open = false,
window_picker = {
enable = false,
},
},
},
}
-- Statusline
require('lualine').setup {
options = { theme = 'nord' }
}
local status_ok, bufferline = pcall(require, "bufferline")
if not status_ok then
return
end
require('bufferline').setup {
options = {
mode = "buffers", -- set to "tabs" to only show tabpages instead
style_preset = bufferline.style_preset.default, -- or bufferline.style_preset.minimal,
themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default
numbers = "none", -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
close_command = "bdelete! %d", -- can be a string | function, | false see "Mouse actions"
right_mouse_command = "bdelete! %d", -- can be a string | function | false, see "Mouse actions"
left_mouse_command = "buffer %d", -- can be a string | function, | false see "Mouse actions"
middle_mouse_command = nil, -- can be a string | function, | false see "Mouse actions"
indicator = {
icon = '', -- this should be omitted if indicator style is not 'icon'
style = 'icon', --| 'underline' | 'none',
},
buffer_close_icon = '󰅖',
modified_icon = '',
close_icon = '',
left_trunc_marker = '',
right_trunc_marker = '',
max_name_length = 30,
max_prefix_length = 30, -- prefix used when a buffer is de-duplicated
truncate_names = true, -- whether or not tab names should be truncated
tab_size = 25,
diagnostics = "nvim_lsp",
diagnostics_update_in_insert = false, -- only applies to coc
diagnostics_update_on_event = true, -- use nvim's diagnostic handler
-- The diagnostics indicator can be set to nil to keep the buffer name highlight but delete the highlighting
offsets = {
{
filetype = "NvimTree",
text = "File Explorer",-- | function ,
text_align = "left",-- | "center" | "right"
separator = true
}
},
color_icons = true, -- whether or not to add the filetype icon highlights
show_buffer_icons = true , -- disable filetype icons for buffers
show_buffer_close_icons = true ,
show_close_icon = true,
show_tab_indicators = true ,
show_duplicate_prefix = true , -- whether to show duplicate buffer prefix
duplicates_across_groups = true, -- whether to consider duplicate paths in different groups as duplicates
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
move_wraps_at_ends = false, -- whether or not the move command "wraps" at the first or last position
-- can also be a table containing 2 custom separators
-- [focused and unfocused]. eg: { '|', '|' }
separator_style = "thin", --| "slope" | "thick" | "thin" | { 'any', 'any' },
enforce_regular_tabs = true,--| true,
always_show_bufferline = true,-- | false,
auto_toggle_bufferline = true,-- | false,
hover = {
enabled = true,
delay = 200,
reveal = {'close'}
},
sort_by = 'insert_after_current',
}
}
-- Git sign
require("gitsigns").setup {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
interval = 1000,
follow_files = true
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000,
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
}
require("presence").setup({
debounce_timeout = 5, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
})
+30
View File
@@ -0,0 +1,30 @@
{
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "fd3e882e56956675c620898bf1ffcf4fcbe7ec84" },
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
"dashboard-nvim": { "branch": "master", "commit": "f787e3462c2ee2b6117b17c1aa4ddf66cb6f57fe" },
"gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"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" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"vim-bbye": { "branch": "master", "commit": "25ef93ac5a87526111f43e5110675032dbcacf56" },
"vim-floaterm": { "branch": "master", "commit": "bb4ba7952e906408e1f83b215f55ffe57efcade6" },
"vim-vsnip": { "branch": "master", "commit": "9bcfabea653abdcdac584283b5097c3f8760abaa" },
"vimtex": { "branch": "master", "commit": "154eca8f68a5ad54eb12308bb378e88bdd0dfb3e" },
"vimwiki": { "branch": "dev", "commit": "a54a3002e229c4b43d69ced170ff77663a5b2c40" },
"vscode.nvim": { "branch": "main", "commit": "aa1102a7e15195c9cca22730b09224a7f7745ba8" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}
+30 -7
View File
@@ -29,13 +29,20 @@ keymap("n", "<Down>", "<Nop>", opts)
keymap("n", "<Left>", "<Nop>", opts) keymap("n", "<Left>", "<Nop>", opts)
keymap("n", "<Right>", "<Nop>", opts) keymap("n", "<Right>", "<Nop>", opts)
-- Remap some language specific stuff -- -- German ISO-DE keyboard friendly mappings --
-- On German keyboard, { and } require AltGr+7/0 which is awkward
-- These mappings make paragraph navigation much easier
keymap("n", "ü", "{", opts) keymap("n", "ü", "{", opts)
keymap("n", "<C-ü>", "<C-{>", opts) keymap("n", "<C-ü>", "<C-{>", opts)
keymap("n", "+", "}", opts) keymap("n", "+", "}", opts)
keymap("n", "<C-+>", "<C-}>", opts) keymap("n", "<C-+>", "<C-}>", opts)
-- Alternative: You could also use ö and ä for other bracket operations
-- Uncomment if needed:
-- keymap("n", "ö", "[", opts)
-- keymap("n", "ä", "]", opts)
-- Normal -- -- Normal --
-- Better window navigation -- Better window navigation
keymap("n", "<C-h>", "<C-w>h", opts) keymap("n", "<C-h>", "<C-w>h", opts)
@@ -45,11 +52,11 @@ keymap("n", "<C-l>", "<C-w>l", opts)
keymap("n", "<leader>e", ":NvimTreeToggle<cr>", opts) keymap("n", "<leader>e", ":NvimTreeToggle<cr>", opts)
-- Resize with arrows -- Resize with hjkl instead of arrows (stay disciplined!)
keymap("n", "<C-Up>", ":resize -2<CR>", opts) keymap("n", "<C-S-k>", ":resize -2<CR>", opts)
keymap("n", "<C-Down>", ":resize +2<CR>", opts) keymap("n", "<C-S-j>", ":resize +2<CR>", opts)
keymap("n", "<C-Left>", ":vertical resize -2<CR>", opts) keymap("n", "<C-S-h>", ":vertical resize -2<CR>", opts)
keymap("n", "<C-Right>", ":vertical resize +2<CR>", opts) keymap("n", "<C-S-l>", ":vertical resize +2<CR>", opts)
-- Navigate buffers -- Navigate buffers
keymap("n", "<S-l>", ":bnext<CR>", opts) keymap("n", "<S-l>", ":bnext<CR>", opts)
@@ -64,6 +71,12 @@ keymap("n", "<A-k>", "<Esc>:m .-2<CR>==gi", opts)
keymap("i", "jk", "<ESC>", opts) keymap("i", "jk", "<ESC>", opts)
-- Visual -- -- Visual --
-- Disable arrow keys in visual mode too
keymap("v", "<Up>", "<Nop>", opts)
keymap("v", "<Down>", "<Nop>", opts)
keymap("v", "<Left>", "<Nop>", opts)
keymap("v", "<Right>", "<Nop>", opts)
-- Stay in indent mode -- Stay in indent mode
keymap("v", "<", "<gv", opts) keymap("v", "<", "<gv", opts)
keymap("v", ">", ">gv", opts) keymap("v", ">", ">gv", opts)
@@ -74,6 +87,12 @@ keymap("v", "<A-k>", ":m .-2<CR>==", opts)
keymap("v", "p", '"_dP', opts) keymap("v", "p", '"_dP', opts)
-- Visual Block -- -- Visual Block --
-- Disable arrow keys in visual block mode
keymap("x", "<Up>", "<Nop>", opts)
keymap("x", "<Down>", "<Nop>", opts)
keymap("x", "<Left>", "<Nop>", opts)
keymap("x", "<Right>", "<Nop>", opts)
-- Move text up and down -- Move text up and down
keymap("x", "J", ":move '>+1<CR>gv-gv", opts) keymap("x", "J", ":move '>+1<CR>gv-gv", opts)
keymap("x", "K", ":move '<-2<CR>gv-gv", opts) keymap("x", "K", ":move '<-2<CR>gv-gv", opts)
@@ -89,7 +108,7 @@ keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", term_opts)
keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", term_opts) keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", term_opts)
-- close buffer -- -- close buffer --
keymap("n", "<leader>q", "<cmd>Bdelete! %d<cr>", opts) keymap("n", "<leader>q", "<cmd>Bdelete!<cr>", opts)
-- toggle whitespace -- -- toggle whitespace --
keymap("n", "<leader>w", "<cmd>set list!<cr>", opts) keymap("n", "<leader>w", "<cmd>set list!<cr>", opts)
@@ -109,3 +128,7 @@ keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts) keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts) keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
keymap("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts) keymap("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
keymap("n", "<leader>f", "<cmd>lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))<cr>", opts)
keymap("n", "<c-t>", "<cmd>Telescope live_grep<cr>", opts)
+34
View File
@@ -0,0 +1,34 @@
-- Bootstrap lazy.nvim
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)
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- Import all plugin specs from lua/plugins/
{ import = "plugins" },
},
install = {
colorscheme = { "vscode" },
},
checker = {
enabled = true,
notify = false,
},
change_detection = {
notify = false,
},
})
+12
View File
@@ -5,6 +5,7 @@ local options = {
conceallevel = 0, -- so that `` is visible in markdown files conceallevel = 0, -- so that `` is visible in markdown files
fileencoding = "utf-8", -- the encoding written to a file fileencoding = "utf-8", -- the encoding written to a file
hlsearch = true, -- highlight all matches on previous search pattern hlsearch = true, -- highlight all matches on previous search pattern
incsearch = true, -- show search matches as you type
ignorecase = true, -- ignore case in search patterns ignorecase = true, -- ignore case in search patterns
mouse = "a", -- allow the mouse to be used in neovim mouse = "a", -- allow the mouse to be used in neovim
pumheight = 10, -- pop up menu height pumheight = 10, -- pop up menu height
@@ -71,3 +72,14 @@ autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
vim.wo.foldmethod = 'expr' vim.wo.foldmethod = 'expr'
vim.wo.foldexpr = 'nvim_treesitter#foldexpr()' vim.wo.foldexpr = 'nvim_treesitter#foldexpr()'
vim.g.dashboard_default_executive ='telescope'
vim.g.dashboard_custom_header = {
"███████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ ██████╗ ███████╗███████╗████████╗",
"██╔════╝██║ ██║██╔════╝██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝╚══██╔══╝",
"█████╗ ██║ ██║█████╗ ██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ███████╗ ██║ ",
"██╔══╝ ╚██╗ ██╔╝██╔══╝ ██╔══██╗██╔══╝ ██║ ██║██╔══██╗██╔══╝ ╚════██║ ██║ ",
"███████╗ ╚████╔╝ ███████╗██║ ██║██║ ╚██████╔╝██║ ██║███████╗███████║ ██║ ",
"╚══════╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ",
" NEOVIM"
}
@@ -43,14 +43,21 @@ return packer.startup(function(use)
use "wbthomason/packer.nvim" -- Have packer manage itself use "wbthomason/packer.nvim" -- Have packer manage itself
-- Colorschemes -- Colorschemes
use "shaunsingh/nord.nvim" --use "shaunsingh/nord.nvim"
use({
"neanias/everforest-nvim",
-- Optional; default configuration will be used if setup isn't called.
config = function()
require("everforest").setup()
end,
})
-- LSP -- LSP
use "neovim/nvim-lspconfig" -- enable LSP use "neovim/nvim-lspconfig" -- enable LSP
use "williamboman/mason.nvim" -- simple to use language server installer use "mason-org/mason.nvim" -- simple to use language server installer
use "williamboman/mason-lspconfig.nvim" -- simple to use language server installer use "mason-org/mason-lspconfig.nvim" -- simple to use language server installer
use 'simrat39/rust-tools.nvim' use 'mrcjkb/rustaceanvim'
-- Completion framework: -- Completion framework:
use 'hrsh7th/nvim-cmp' use 'hrsh7th/nvim-cmp'
@@ -61,12 +68,15 @@ return packer.startup(function(use)
-- Useful completion sources: -- Useful completion sources:
use 'hrsh7th/cmp-nvim-lua' use 'hrsh7th/cmp-nvim-lua'
use 'hrsh7th/cmp-nvim-lsp-signature-help' use 'hrsh7th/cmp-nvim-lsp-signature-help'
use 'hrsh7th/cmp-vsnip' use 'hrsh7th/cmp-vsnip'
use 'hrsh7th/cmp-path' use 'hrsh7th/cmp-path'
use 'hrsh7th/vim-vsnip' use 'hrsh7th/vim-vsnip'
use "hrsh7th/cmp-cmdline" -- cmdline completions use "hrsh7th/cmp-cmdline" -- cmdline completions
use 'nvim-treesitter/nvim-treesitter' use {
'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate'
}
use 'nvim-tree/nvim-web-devicons' use 'nvim-tree/nvim-web-devicons'
@@ -83,6 +93,25 @@ return packer.startup(function(use)
-- VimWiki -- VimWiki
use { 'vimwiki/vimwiki', branch='dev'} use { 'vimwiki/vimwiki', branch='dev'}
-- Dashboard
use {
'nvimdev/dashboard-nvim',
event = 'VimEnter',
config = function()
require('dashboard').setup {
-- config
}
end,
requires = {'nvim-tree/nvim-web-devicons'}
}
-- Telescope
use "nvim-lua/plenary.nvim"
use {
'nvim-telescope/telescope.nvim', tag = '0.1.8',
requires = { {'nvim-lua/plenary.nvim'} }
}
-- dicord fuckery -- dicord fuckery
use 'andweeb/presence.nvim' use 'andweeb/presence.nvim'
@@ -0,0 +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 {
{
"Mofiqul/vscode.nvim",
lazy = false,
priority = 1000,
config = function()
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,
},
}
@@ -0,0 +1,68 @@
return {
-- Completion framework
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-nvim-lsp-signature-help",
"hrsh7th/cmp-vsnip",
"hrsh7th/cmp-path",
"hrsh7th/vim-vsnip",
"hrsh7th/cmp-cmdline",
},
config = function()
local cmp = require('cmp')
cmp.setup({
-- Enable LSP snippets
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
mapping = {
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
-- Add tab support
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<Tab>'] = cmp.mapping.select_next_item(),
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
})
},
-- Installed sources:
sources = {
{ name = 'path' }, -- file paths
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
{ name = 'calc'}, -- source for math calculation
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
fields = {'menu', 'abbr', 'kind'},
format = function(entry, item)
local menu_icon = {
nvim_lsp = 'λ',
vsnip = '',
buffer = 'Ω',
path = '🖫',
}
item.menu = menu_icon[entry.source.name]
return item
end,
},
})
end,
},
}
+81
View File
@@ -0,0 +1,81 @@
return {
-- Fuzzy finder
{
"nvim-telescope/telescope.nvim",
tag = "0.1.8",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
require('telescope').setup{}
end,
},
-- Git signs
{
"lewis6991/gitsigns.nvim",
config = function()
require("gitsigns").setup {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signcolumn = true,
numhl = false,
linehl = false,
word_diff = false,
watch_gitdir = {
interval = 1000,
follow_files = true
},
attach_to_untracked = true,
current_line_blame = false,
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol',
delay = 1000,
ignore_whitespace = false,
},
sign_priority = 6,
update_debounce = 100,
status_formatter = nil,
max_file_length = 40000,
preview_config = {
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
}
end,
},
-- Floating terminal
{
"voldikss/vim-floaterm",
},
-- VimWiki
{
"vimwiki/vimwiki",
branch = "dev",
},
-- Discord presence
{
"andweeb/presence.nvim",
},
-- LaTeX support
{
"lervag/vimtex",
},
-- Better buffer closing
{
"moll/vim-bbye",
},
}
+30
View File
@@ -0,0 +1,30 @@
return {
-- Mason: LSP installer
{
"mason-org/mason.nvim",
config = function()
require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
},
})
end,
},
-- Mason LSP Config bridge
{
"mason-org/mason-lspconfig.nvim",
dependencies = { "mason-org/mason.nvim" },
config = function()
require("mason-lspconfig").setup()
-- Setup LSP servers using vim.lsp.config (new API)
vim.lsp.config('clangd', {})
vim.lsp.config('pylsp', {})
end,
},
}
+24
View File
@@ -0,0 +1,24 @@
return {
{
"mrcjkb/rustaceanvim",
version = "^5",
lazy = false,
ft = { "rust" },
config = function()
vim.g.rustaceanvim = {
server = {
on_attach = function(client, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", function()
vim.cmd.RustLsp('hover', 'actions')
end, { buffer = bufnr, desc = "Rust hover actions" })
-- Code action groups
vim.keymap.set("n", "<Leader>a", function()
vim.cmd.RustLsp('codeAction')
end, { buffer = bufnr, desc = "Rust code actions" })
end,
},
}
end,
},
}
@@ -0,0 +1,31 @@
return {
{
"nvim-treesitter/nvim-treesitter",
branch = "main",
lazy = false,
build = ":TSUpdate",
config = function()
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,
},
}
+228
View File
@@ -0,0 +1,228 @@
return {
-- File explorer
{
"nvim-tree/nvim-tree.lua",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
local nvimtree = require("nvim-tree")
nvimtree.setup {
on_attach = function(bufnr)
local api = require("nvim-tree.api")
local function opts(desc)
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
api.config.mappings.default_on_attach(bufnr)
vim.keymap.set("n", "<space>", api.node.open.edit, opts("Open"))
end,
renderer = {
icons = {
webdev_colors = true,
git_placement = "before",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = "",
symlink = "",
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
deleted = "",
untracked = "U",
ignored = "",
},
folder = {
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
},
},
},
highlight_git = true,
root_folder_modifier = ":t",
indent_markers = {
enable = true,
},
},
hijack_directories = {
enable = true,
auto_open = true,
},
disable_netrw = true,
hijack_netrw = true,
hijack_cursor = false,
update_cwd = true,
diagnostics = {
enable = true,
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
},
update_focused_file = {
enable = true,
update_cwd = true,
ignore_list = {},
},
filters = {
dotfiles = false,
custom = {},
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 35,
side = "left",
float = {
quit_on_focus_loss = true,
},
},
trash = {
cmd = "trash",
require_confirm = true,
},
actions = {
open_file = {
resize_window = true,
quit_on_open = false,
window_picker = {
enable = false,
},
},
},
}
end,
},
-- Status line
{
"nvim-lualine/lualine.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 = cursor_dark,
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
}
}
end,
},
-- Buffer line
{
"akinsho/bufferline.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
local bufferline = require("bufferline")
bufferline.setup {
options = {
mode = "buffers",
style_preset = bufferline.style_preset.default,
themable = true,
numbers = "none",
close_command = "bdelete! %d",
right_mouse_command = "bdelete! %d",
left_mouse_command = "buffer %d",
middle_mouse_command = nil,
indicator = {
icon = '',
style = 'icon',
},
buffer_close_icon = '󰅖',
modified_icon = '',
close_icon = ' ',
left_trunc_marker = ' ',
right_trunc_marker = ' ',
max_name_length = 30,
max_prefix_length = 30,
truncate_names = true,
tab_size = 25,
diagnostics = "nvim_lsp",
diagnostics_update_in_insert = false,
diagnostics_update_on_event = true,
offsets = {
{
filetype = "NvimTree",
text = "File Explorer",
text_align = "left",
separator = true
}
},
color_icons = true,
show_buffer_icons = true,
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
show_duplicate_prefix = true,
duplicates_across_groups = true,
persist_buffer_sort = true,
move_wraps_at_ends = false,
separator_style = "thin",
enforce_regular_tabs = true,
always_show_bufferline = true,
auto_toggle_bufferline = true,
hover = {
enabled = true,
delay = 200,
reveal = {'close'}
},
sort_by = 'insert_after_current',
}
}
end,
},
-- Dashboard
{
"nvimdev/dashboard-nvim",
event = "VimEnter",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require('dashboard').setup {}
end,
},
-- Icons
{ "nvim-tree/nvim-web-devicons" },
}
@@ -0,0 +1,91 @@
return {
{
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
config = function()
local wk = require("which-key")
wk.setup({
plugins = {
marks = true,
registers = true,
spelling = {
enabled = true,
suggestions = 20,
},
presets = {
operators = true,
motions = true,
text_objects = true,
windows = true,
nav = true,
z = true,
g = true,
},
},
win = {
border = "rounded",
position = "bottom",
margin = { 1, 0, 1, 0 },
padding = { 2, 2, 2, 2 },
winblend = 0,
},
layout = {
height = { min = 4, max = 25 },
width = { min = 20, max = 50 },
spacing = 3,
align = "left",
},
})
-- Register leader key mappings with descriptions
wk.add({
{ "<leader>e", desc = "Toggle File Explorer" },
{ "<leader>q", desc = "Close Buffer" },
{ "<leader>w", desc = "Toggle Whitespace" },
{ "<leader>f", desc = "Find Files" },
{ "<leader>rn", desc = "LSP Rename" },
{ "<leader>a", desc = "Code Actions (Rust)" },
{ "<leader><leader>f", desc = "Format Code" },
})
-- Register LSP mappings (global, not buffer-specific)
wk.add({
{ "gD", desc = "Go to Declaration" },
{ "gd", desc = "Go to Definition" },
{ "gi", desc = "Go to Implementation" },
{ "gr", desc = "Find References" },
{ "K", desc = "Hover Documentation" },
})
-- Register German keyboard specific mappings
wk.add({
{ "ü", desc = "Jump to previous paragraph {" },
{ "+", desc = "Jump to next paragraph }" },
})
-- Register buffer navigation
wk.add({
{ "<S-h>", desc = "Previous Buffer" },
{ "<S-l>", desc = "Next Buffer" },
})
-- Register Telescope
wk.add({
{ "<c-t>", desc = "Live Grep" },
})
-- Register Floaterm
wk.add({
{ "<F7>", desc = "New Float Terminal" },
{ "<F8>", desc = "Previous Float Terminal" },
{ "<F9>", desc = "Next Float Terminal" },
{ "<F12>", desc = "Toggle Float Terminal" },
})
end,
},
}
+22
View File
@@ -0,0 +1,22 @@
[
{
"label": "Lock",
"exec": "hyprlock",
"icon": "/usr/share/nwg-bar/images/system-lock-screen.svg"
},
{
"label": "Logout",
"exec": "hyprctl dispatch exit 1",
"icon": "/usr/share/nwg-bar/images/system-log-out.svg"
},
{
"label": "Reboot",
"exec": "systemctl reboot",
"icon": "/usr/share/nwg-bar/images/system-reboot.svg"
},
{
"label": "Shutdown",
"exec": "systemctl -i poweroff",
"icon": "/usr/share/nwg-bar/images/system-shutdown.svg"
}
]
+36
View File
@@ -0,0 +1,36 @@
window {
background-color: rgba (0, 0, 0, 00)
}
/* Outer bar container, takes all the window width/height */
#outer-box {
margin: 0px
}
/* Inner bar container, surrounds buttons */
/* Cursor Dark: #181818 panel, #cccccc outline */
#inner-box {
background-color: rgba (24, 24, 24, 1);
border-radius: 10px;
border-style: solid;
border-width: 2px;
border-color: rgba (204, 204, 204, 0.7);
padding: 10px;
margin: 10px
}
button, image {
background: none;
border: none;
box-shadow: none
}
button {
padding-left: 10px;
padding-right: 10px;
margin: 5px
}
button:hover {
background-color: rgba (204, 204, 204, 0.1)
}
+10
View File
@@ -0,0 +1,10 @@
{
"export-settings-ini": true,
"export-gtkrc-20": true,
"export-index-theme": true,
"export-xsettingsd": true,
"export-gtk4-symlinks": true,
"flatpak-export-gtk-theme-override": false,
"flatpak-export-icon-theme-override": false,
"flatpak-install-current-gtk-theme": false
}
+21 -20
View File
@@ -6,20 +6,21 @@ configuration {
modi: "combi,run,drun"; modi: "combi,run,drun";
show-icons: true; show-icons: true;
icon-theme: "Nordzy-green-dark"; icon-theme: "Papirus-Dark";
} }
@theme "/dev/null" @theme "/dev/null"
/* Cursor Dark */
* { * {
bg0: #2E3440F2; bgdark: #181818;
bg1: #3B4252; bgalt: #2b2b2b;
bg2: #4C566A80; bgraised: #313131;
bg3: #88C0D0F2; fg0: #cccccc;
fg0: #D8DEE9; fgalt: #6e6e6e;
fg1: #ECEFF4;
fg2: #D8DEE9; accent-color: #2472c8;
fg3: #4C566A; urgent-color: #e2c08d;
font: "Roboto 12"; font: "Roboto 12";
@@ -32,7 +33,7 @@ configuration {
} }
element selected { element selected {
text-color: @bg1; text-color: #ffffff;
} }
window { window {
@@ -40,7 +41,7 @@ window {
width: 720px; width: 720px;
border-radius: 10px; border-radius: 10px;
background-color: @bg0; background-color: @bgdark;
} }
mainbox { mainbox {
@@ -48,8 +49,8 @@ mainbox {
} }
inputbar { inputbar {
background-color: @bg1; background-color: @bgalt;
border-color: @bg3; border-color: @bgraised;
border: 2px; border: 2px;
border-radius: 8px; border-radius: 8px;
@@ -60,19 +61,19 @@ inputbar {
} }
prompt { prompt {
text-color: @fg2; text-color: @accent-color;
} }
entry { entry {
placeholder: "Search"; placeholder: "Search";
placeholder-color: @fg3; placeholder-color: @fgalt;
} }
message { message {
margin: 12px 0 0; margin: 12px 0 0;
border-radius: 8px; border-radius: 8px;
border-color: @bg2; border-color: @bgraised;
background-color: @bg2; background-color: @bgraised;
} }
textbox { textbox {
@@ -96,15 +97,15 @@ element {
} }
element normal active { element normal active {
text-color: @bg3; text-color: @accent-color;
} }
element alternate active { element alternate active {
text-color: @bg3; text-color: @accent-color;
} }
element selected normal, element selected active { element selected normal, element selected active {
background-color: @bg3; background-color: @accent-color;
} }
element-icon { element-icon {
+62 -3
View File
@@ -22,6 +22,48 @@ set -g mouse on
set-option -g status-position bottom set-option -g status-position bottom
set-option -g renumber-windows on 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 === # === Copy mode, scroll and clipboard ===
# ================================================ # ================================================
@@ -92,12 +134,29 @@ bind -T copy-mode-vi MouseDown1Pane select-pane \;\
# tmux show-options -g -s set-clipboard # tmux show-options -g -s set-clipboard
# set-clipboard on|external # 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-sensible'
set -g @plugin 'tmux-plugins/tmux-yank' 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) # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm' run '~/.tmux/plugins/tpm/tpm'
Submodule tmux/.tmux/plugins/nord-tmux deleted from f7b6da07ab
Submodule tmux/.tmux/plugins/tmux-sensible deleted from 25cb91f42d
Submodule tmux/.tmux/plugins/tmux-yank deleted from acfd36e4fc
Submodule tmux/.tmux/plugins/tpm deleted from 99469c4a9b
-5
View File
@@ -1,5 +0,0 @@
@define-color bg0 #211a17;
@define-color bg1 #362f2b;
@define-color tip #221e1b;
@define-color accent #ffbf9b;
@define-color text #ffffff;
+26 -6
View File
@@ -10,7 +10,7 @@
// Choose the order of the modules // Choose the order of the modules
"modules-left": ["hyprland/workspaces","hyprland/window"], "modules-left": ["hyprland/workspaces","hyprland/window"],
"modules-center": ["clock"], "modules-center": ["clock"],
"modules-right": ["pulseaudio", "backlight", "network", "cpu", "memory", "tray"], "modules-right": ["pulseaudio", "network", "cpu", "memory", "tray"],
// Modules configuration // Modules configuration
@@ -26,6 +26,20 @@
"active": "", "active": "",
} }
}, },
// "hyprland/workspaces": {
// "format": "{name}",
// "persistent_workspaces": {
// "1": [],
// "2": [],
// "3": [],
// "4": [],
// "5": []
// },
// "all-outputs": true,
// "active-only": false,
// "sort-by-number": true
// },
"keyboard-state": { "keyboard-state": {
"numlock": false, "numlock": false,
"capslock": false, "capslock": false,
@@ -79,7 +93,6 @@
"bat": "BAT2" "bat": "BAT2"
}, },
"network": { "network": {
"interface": "enp4s0", // (Optional) To force the use of this interface
"format-wifi": "{essid} ", "format-wifi": "{essid} ",
"format-ethernet": "{ipaddr}/{cidr} ", "format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ", "tooltip-format": "{ifname} via {gwaddr} ",
@@ -110,13 +123,13 @@
"tooltip": false, "tooltip": false,
"format": "{} {icon}", "format": "{} {icon}",
"format-icons": { "format-icons": {
"notification": "<span foreground='red'><sup></sup></span> ", "notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"none": "", "none": "",
"dnd-notification": "<span foreground='red'><sup></sup></span> ", "dnd-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"dnd-none": "", "dnd-none": "",
"inhibited-notification": "<span foreground='red'><sup></sup></span> ", "inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"inhibited-none": "", "inhibited-none": "",
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span> ", "dnd-inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"dnd-inhibited-none": "" "dnd-inhibited-none": ""
}, },
"return-type": "json", "return-type": "json",
@@ -135,6 +148,13 @@
}, },
"exec-if": "which waybar-updates", "exec-if": "which waybar-updates",
"exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300" "exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
} }
} }
+22 -27
View File
@@ -1,19 +1,12 @@
@define-color base00 #181818; /* Cursor Dark */
@define-color base01 #2b2e37; @define-color bg_dim #141414;
@define-color base02 #3b3e47; @define-color bg0 #181818;
@define-color base03 #585858; @define-color bg2 #2b2b2b;
@define-color base04 #b8b8b8; @define-color fg #cccccc;
@define-color base05 #d8d8d8; @define-color red #f14c4c;
@define-color base06 #e8e8e8; @define-color blue #3b8eea;
@define-color base07 #f8f8f8; @define-color orange #e2c08d;
@define-color base08 #ab4642; @define-color bg4 #2472c8;
@define-color base09 #dc9656;
@define-color base0A #f7ca88;
@define-color base0B #a1b56c;
@define-color base0C #86c1b9;
@define-color base0D #7cafc2;
@define-color base0E #ba8baf;
@define-color base0F #a16946;
* { * {
transition: none; transition: none;
@@ -24,9 +17,9 @@
font-family: 'Hack JBM Ligatured', "Font Awesome 6 Free"; font-family: 'Hack JBM Ligatured', "Font Awesome 6 Free";
font-size: 1.2em; font-size: 1.2em;
font-weight: 400; font-weight: 400;
color: @base04; color: @fg;
border-radius: 10px; border-radius: 10px;
background: @base01; background: @bg0;
} }
#workspaces { #workspaces {
@@ -36,7 +29,7 @@
#workspaces button { #workspaces button {
margin: 4px 0; margin: 4px 0;
padding: 0 4px; padding: 0 4px;
color: @base05; color: @fg;
} }
#workspaces button.visible { #workspaces button.visible {
@@ -44,22 +37,24 @@
#workspaces button.active { #workspaces button.active {
border-radius: 10px; border-radius: 10px;
background-color: @base03; background-color: @bg4;
/* @fg on the accent blue is too low-contrast to read */
color: #ffffff;
} }
#workspaces button.urgent { #workspaces button.urgent {
color: rgba(238, 46, 36, 1); color: @red;
} }
#tray { #tray {
margin: 4px 4px 4px 4px; margin: 4px 4px 4px 4px;
border-radius: 4px; border-radius: 4px;
background-color: @base02; background-color: @bg2;
} }
#tray * { #tray * {
padding: 0 6px; padding: 0 6px;
border-left: 1px solid @base00; border-left: 1px solid @bg_dim;
} }
#tray *:first-child { #tray *:first-child {
@@ -69,17 +64,17 @@
#mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature, #language{ #mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature, #language{
margin: 4px 2px; margin: 4px 2px;
padding: 0 6px; padding: 0 6px;
background-color: @base02; background-color: @bg2;
border-radius: 4px; border-radius: 4px;
min-width: 20px; min-width: 20px;
} }
#pulseaudio.muted { #pulseaudio.muted {
color: @base0F; color: @orange;
} }
#pulseaudio.bluetooth { #pulseaudio.bluetooth {
color: @base0C; color: @blue;
} }
#clock { #clock {
@@ -89,7 +84,7 @@
} }
#temperature.critical { #temperature.critical {
color: @base0F; color: @orange;
} }
#window { #window {
+50
View File
@@ -13,3 +13,53 @@ map J zoom out
map i recolor map i recolor
map p print map p print
map g goto top 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