Compare commits
32
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7c4dc8407 | ||
|
|
42c44aec68 | ||
|
|
96d3086885 | ||
|
|
699473d7b5 | ||
|
|
a5686ccee0 | ||
|
|
dcb2b320eb | ||
|
|
dc10b3dfb3 | ||
|
|
79036dce2c | ||
|
|
2dcbd80842 | ||
|
|
e5fb57c279 | ||
|
|
14c53abbf3 | ||
|
|
23718c9477 | ||
|
|
f308f2fe75 | ||
|
|
a945adae10 | ||
|
|
6c156422be | ||
|
|
897bc92c94 | ||
|
|
aa96285da3 | ||
|
|
b9959d2c6f | ||
|
|
b7fccc80db | ||
|
|
7efc69cc34 | ||
|
|
93c1b94387 | ||
|
|
f222bd9b8f | ||
|
|
24979c1872 | ||
|
|
0050404bd9 | ||
|
|
d9375906f0 | ||
|
|
505734efa7 | ||
|
|
a4afa92102 | ||
|
|
e25799c2a1 | ||
|
|
1ac2a8be73 | ||
|
|
6433bb1a07 | ||
|
|
94ddccdf87 | ||
|
|
aae3258c5a |
@@ -0,0 +1,101 @@
|
||||
# Setup after pulling (Arch)
|
||||
|
||||
Everything needed to bring the Cursor Dark theme up on a machine that has just
|
||||
pulled these changes.
|
||||
|
||||
## 1. Packages
|
||||
|
||||
```sh
|
||||
sudo pacman -S --needed papirus-icon-theme ttf-nerd-fonts-symbols-mono
|
||||
```
|
||||
|
||||
| Package | Why |
|
||||
| --- | --- |
|
||||
| `papirus-icon-theme` | rofi, dunst and the GTK configs all reference `Papirus-Dark` |
|
||||
| `ttf-nerd-fonts-symbols-mono` | the tmux status bar uses powerline separators (U+E0B0–E0B3), and `kitty.conf` maps that range to `Symbols Nerd Font Mono` |
|
||||
|
||||
Not in the repos: **Berkeley Mono** (`kitty.conf`) and **Hack JBM Ligatured**
|
||||
(waybar, rofi, hyprlock) are installed by hand.
|
||||
|
||||
## 2. Deploy
|
||||
|
||||
```sh
|
||||
cd ~/.dotfiles
|
||||
stow fish kitty tmux nvim hypr waybar rofi dunst gtktheme
|
||||
```
|
||||
|
||||
> The README suggests `stow *`, which now also picks up `SETUP.md`.
|
||||
> Use `stow */` or an explicit list.
|
||||
|
||||
## 3. Reload
|
||||
|
||||
```sh
|
||||
# fish - close every running fish session BEFORE pulling (see notes)
|
||||
exec fish
|
||||
|
||||
# tmux - plugins now bootstrap themselves, no prefix+I needed
|
||||
tmux kill-server && tmux
|
||||
|
||||
# nvim - installs vscode.nvim, drops everforest
|
||||
nvim --headless "+Lazy! sync" +qa
|
||||
|
||||
# desktop
|
||||
hyprctl reload
|
||||
killall -SIGUSR2 waybar
|
||||
killall dunst # respawns via dbus
|
||||
```
|
||||
|
||||
kitty: `ctrl+shift+F5` to reload, or restart it. rofi has no daemon.
|
||||
|
||||
## 4. GTK theme
|
||||
|
||||
The configs are set to `Orchis-Dark-Compact` (Material Design, accent `#1A73E8`).
|
||||
|
||||
```sh
|
||||
sudo pacman -S orchis-theme xdg-desktop-portal-gtk
|
||||
```
|
||||
|
||||
libadwaita ignores `gtk-theme-name`, so GTK4 apps also need the portal settings
|
||||
and Orchis' own GTK4 stylesheet linked in:
|
||||
|
||||
```sh
|
||||
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||
gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
|
||||
gsettings set org.gnome.desktop.interface gtk-theme 'Orchis-Dark-Compact'
|
||||
|
||||
mkdir -p ~/.config/gtk-4.0
|
||||
ln -sf /usr/share/themes/Orchis-Dark-Compact/gtk-4.0/gtk.css ~/.config/gtk-4.0/gtk.css
|
||||
ln -sf /usr/share/themes/Orchis-Dark-Compact/gtk-4.0/assets ~/.config/gtk-4.0/assets
|
||||
```
|
||||
|
||||
`nwg-look` can do the symlink step for you — `nwg/.config/nwg-look/config` already
|
||||
has `export-gtk4-symlinks: true`. Set the gsettings values above first, then run
|
||||
`nwg-look` and hit Apply; it writes `.gtkrc-2.0`, both `settings.ini` files and the
|
||||
GTK4 symlinks from those values.
|
||||
|
||||
### Window buttons
|
||||
|
||||
Both `settings.ini` files set `gtk-decoration-layout=close,minimize,maximize:`
|
||||
— everything left of the `:` sits on the **left**, which is macOS placement and
|
||||
order. That is client-side decoration, so it is all Hyprland apps use.
|
||||
|
||||
Orchis' `--tweaks macos` is **not** useful here: it only replaces `xfwm4` and
|
||||
`metacity-1` assets (Xfce / Marco window managers) and touches no GTK CSS, so it
|
||||
would change nothing under Hyprland — and it requires building from source,
|
||||
giving up the packaged theme. Circular red/yellow/green buttons are not
|
||||
available from Orchis for GTK client-side decorations.
|
||||
|
||||
## Notes
|
||||
|
||||
- **fish universal variables.** The colours live in `fish/.config/fish/fish_variables`,
|
||||
which fish rewrites from memory whenever any universal variable changes. Close
|
||||
running fish sessions before pulling so an old session can't write the previous
|
||||
palette back over it.
|
||||
- **`cat` is broken on Arch.** `config.fish` defines `cat` as `batcat …`, which is
|
||||
the Debian binary name. Arch's `bat` package installs `/usr/bin/bat`. Either
|
||||
`sudo pacman -S bat` and rename the call, or add an alias.
|
||||
- **nwg-look overwrites GTK config.** It regenerates `.gtkrc-2.0` and the
|
||||
`settings.ini` files. Run it *before* editing these by hand, or re-apply after.
|
||||
- **`gtktheme/.gtkrc-2.0` line 4** includes `/home/n0x/.gtkrc-2.0.mine`, a stale
|
||||
path from a previous username. Harmless, but dead.
|
||||
- **`~/.tmux/plugins/nord-tmux`** is no longer used or tracked. Safe to delete.
|
||||
@@ -1,5 +1,5 @@
|
||||
[Added Associations]
|
||||
application/pdf=org.pwmt.zathura.desktop;
|
||||
application/pdf=userapp-librewolf.desktop;
|
||||
application/x-extension-htm=userapp-librewolf.desktop;
|
||||
application/x-extension-html=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/http=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/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;
|
||||
application/zip=xarchiver.desktop;teamspeak3.desktop;
|
||||
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop;
|
||||
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop;
|
||||
|
||||
[Default Applications]
|
||||
application/pdf=org.pwmt.zathura.desktop
|
||||
application/pdf=librewolf.desktop
|
||||
application/x-extension-htm=librewolf.desktop
|
||||
application/x-extension-html=librewolf.desktop
|
||||
application/x-extension-shtml=librewolf.desktop
|
||||
application/x-extension-xht=librewolf.desktop
|
||||
application/x-extension-xhtml=librewolf.desktop
|
||||
application/xhtml+xml=librewolf.desktop
|
||||
message/rfc822=userapp-Thunderbird-WB8BX2.desktop
|
||||
message/rfc822=userapp-Thunderbird-P5H422.desktop
|
||||
text/html=librewolf.desktop
|
||||
x-scheme-handler/bitwarden=bitwarden.desktop
|
||||
x-scheme-handler/chrome=librewolf.desktop
|
||||
x-scheme-handler/ftp=librewolf.desktop
|
||||
x-scheme-handler/http=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/mid=userapp-Thunderbird-WB8BX2.desktop
|
||||
x-scheme-handler/mid=userapp-Thunderbird-P5H422.desktop
|
||||
image/png=imv-dir.desktop
|
||||
image/jpg=imv-dir.desktop
|
||||
application/json=codium.desktop
|
||||
@@ -53,3 +55,17 @@ image/bmp=imv-dir.desktop
|
||||
image/tiff=imv-dir.desktop
|
||||
image/x-icon=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
@@ -33,7 +33,7 @@
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 15x48
|
||||
offset = 15x15
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
@@ -92,10 +92,11 @@
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 5
|
||||
frame_width = 2
|
||||
|
||||
# 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.
|
||||
# If value is greater than 0, separator_height will be ignored and a border
|
||||
@@ -201,7 +202,7 @@
|
||||
enable_recursive_icon_lookup = true
|
||||
|
||||
# Set icon theme (only used for recursive icon lookup)
|
||||
icon_theme = Nordzy-green-dark
|
||||
icon_theme = Papirus-Dark
|
||||
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||
# icon_theme = "Adwaita, breeze"
|
||||
|
||||
@@ -250,7 +251,7 @@
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
corner_radius = 10
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
@@ -313,23 +314,27 @@
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#2E3440"
|
||||
foreground = "#888888"
|
||||
background = "#181818"
|
||||
foreground = "#9d9d9d"
|
||||
frame_color = "#2b2b2b"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#3b4252"
|
||||
foreground = "#ffffff"
|
||||
background = "#181818"
|
||||
foreground = "#cccccc"
|
||||
frame_color = "#2472c8"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
# #5a1d1d is VS Code's error-validation background, so it stays in-family
|
||||
# while still reading as alarming.
|
||||
background = "#5a1d1d"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
frame_color = "#f14c4c"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
@@ -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=:\
|
||||
"
|
||||
@@ -1,9 +1,11 @@
|
||||
if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ];
|
||||
Hyprland
|
||||
start-hyprland
|
||||
end
|
||||
|
||||
fish_ssh_agent
|
||||
|
||||
umask 0077
|
||||
|
||||
function q
|
||||
exit
|
||||
end
|
||||
@@ -13,10 +15,6 @@ function ff
|
||||
fastfetch --logo-type kitty-direct --logo ~/.config/fish/img/ff.png -c neofetch.jsonc
|
||||
end
|
||||
|
||||
function lf
|
||||
command lfub
|
||||
end
|
||||
|
||||
function cls
|
||||
command clear && ls
|
||||
end
|
||||
@@ -46,15 +44,7 @@ function tree
|
||||
end
|
||||
|
||||
function ds
|
||||
command du -sch * | sort -rh
|
||||
end
|
||||
|
||||
function hv
|
||||
command nmcli --ask connection up "HP VPN"
|
||||
end
|
||||
|
||||
function hvd
|
||||
command nmcli connection down "HP VPN"
|
||||
command du -sch (ls -A) | sort -rh
|
||||
end
|
||||
|
||||
function nv
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,20 +1,19 @@
|
||||
set fish_prompt_pwd_dir_length 0
|
||||
set __fish_git_prompt_show_informative_status 1
|
||||
|
||||
# Fish command and parameter colors
|
||||
set fish_color_command green
|
||||
set fish_color_param $fish_color_normal
|
||||
# Command and parameter colors come from fish_variables (Cursor Dark)
|
||||
|
||||
# Git prompt
|
||||
set __fish_git_prompt_showdirtystate 'yes'
|
||||
set __fish_git_prompt_showupstream 'yes'
|
||||
|
||||
set __fish_git_prompt_color_branch brown
|
||||
set __fish_git_prompt_color_dirtystate FCBC47
|
||||
set __fish_git_prompt_color_stagedstate yellow
|
||||
set __fish_git_prompt_color_upstream cyan
|
||||
set __fish_git_prompt_color_cleanstate green
|
||||
set __fish_git_prompt_color_invalidstate red
|
||||
# Colors mirror Cursor's git decorations
|
||||
set __fish_git_prompt_color_branch 569CD6
|
||||
set __fish_git_prompt_color_dirtystate E2C08D
|
||||
set __fish_git_prompt_color_stagedstate 73C991
|
||||
set __fish_git_prompt_color_upstream 4EC9B0
|
||||
set __fish_git_prompt_color_cleanstate 73C991
|
||||
set __fish_git_prompt_color_invalidstate E4676B
|
||||
|
||||
# Git Characters
|
||||
set __fish_git_prompt_char_dirtystate '*'
|
||||
@@ -41,9 +40,9 @@ end
|
||||
|
||||
function _prompt_color_for_status
|
||||
if test $argv[1] -eq 0
|
||||
echo magenta
|
||||
echo C586C0
|
||||
else
|
||||
echo red
|
||||
echo F14C4C
|
||||
end
|
||||
end
|
||||
|
||||
@@ -51,7 +50,7 @@ function fish_prompt
|
||||
set -l last_status $status
|
||||
|
||||
# username and hostname
|
||||
_print_in_color "┏["$USER"@"(prompt_hostname)"]" blue
|
||||
_print_in_color "┏["$USER"@"(prompt_hostname)"]" 569CD6
|
||||
|
||||
# current working dir
|
||||
_print_in_color " "(prompt_pwd) $fish_color_cwd
|
||||
@@ -59,10 +58,10 @@ function fish_prompt
|
||||
__fish_git_prompt " (%s)"
|
||||
|
||||
# beginning of new line
|
||||
_print_in_color "\n┗" blue
|
||||
_print_in_color "\n┗" 569CD6
|
||||
|
||||
# time information
|
||||
_print_in_color " "(date "+%H:%M:%S") green
|
||||
_print_in_color " "(date "+%H:%M:%S") 73C991
|
||||
|
||||
# little error that indicates the status of the previous command
|
||||
_print_in_color " ❯ " (_prompt_color_for_status $last_status)
|
||||
|
||||
@@ -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
|
||||
@@ -0,0 +1,4 @@
|
||||
file:///home/n0x/Downloads Downloads
|
||||
file:///home/n0x/Nextcloud Nextcloud
|
||||
file:///home/n0x/Pictures Pictures
|
||||
file:///home/n0x/Workspace Workspace
|
||||
@@ -1,14 +1,21 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Nordic-darker
|
||||
gtk-icon-theme-name=Nordzy-green-dark
|
||||
gtk-font-name=Noto Sans, 10
|
||||
gtk-cursor-theme-name=Adwaita
|
||||
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-decoration-layout=close,minimize,maximize:
|
||||
gtk-application-prefer-dark-theme=true
|
||||
gtk-toolbar-style=3
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-enable-animations=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-shell-shows-menubar=1
|
||||
gtk-toolbar-style=3
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/assets
|
||||
+1
@@ -0,0 +1 @@
|
||||
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk-dark.css
|
||||
@@ -1 +0,0 @@
|
||||
@import 'colors.css';
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk.css
|
||||
@@ -1,14 +1,7 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Nordic-darker
|
||||
gtk-icon-theme-name=Nordzy-green-dark
|
||||
gtk-font-name=Noto Sans, 10
|
||||
gtk-cursor-theme-name=Adwaita
|
||||
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-decoration-layout=close,minimize,maximize:
|
||||
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
|
||||
gtk-application-prefer-dark-theme=1
|
||||
|
||||
+16
-9
@@ -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-theme-name="Nordic-darker"
|
||||
gtk-enable-animations=1
|
||||
gtk-primary-button-warps-slider=0
|
||||
gtk-toolbar-style=3
|
||||
gtk-menu-images=1
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-cursor-theme-name="Adwaita"
|
||||
gtk-icon-theme-name="Nordzy-green-dark"
|
||||
gtk-font-name="Noto Sans, 10"
|
||||
gtk-application-prefer-dark-theme=true
|
||||
gtk-modules=appmenu-gtk-module
|
||||
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"
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -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 })
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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",
|
||||
})
|
||||
@@ -1,7 +1,7 @@
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/Nextcloud/Pictures/Wallpapers/MRR.png
|
||||
color = rgba(59,66,82,1)
|
||||
path = $HOME/.config/hypr/wp.png
|
||||
color = rgba(24,24,24,1)
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
blur_size = 5
|
||||
@@ -20,9 +20,9 @@ input-field {
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 1.00 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgba(59,66,82,1)
|
||||
inner_color = rgba(59,66,82,1)
|
||||
font_color = rgba(235,203,139,1)
|
||||
outer_color = rgba(36,114,200,1)
|
||||
inner_color = rgba(43,43,43,1)
|
||||
font_color = rgba(204,204,204,1)
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
@@ -56,7 +56,7 @@ label {
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%d %b") </big></b>"
|
||||
color =rgb(163,190,140)
|
||||
color =rgb(59,142,234)
|
||||
font_size = 16
|
||||
font_family = HackJBMLigatured-Regular 10
|
||||
position = 0, -160
|
||||
@@ -66,7 +66,7 @@ label {
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%A") </big></b>"
|
||||
color =rgb(163,190,140)
|
||||
color =rgb(59,142,234)
|
||||
font_size = 16
|
||||
font_family = HackJBMLigatured-Regular 10
|
||||
position = 0, -180
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
preload = ~/.config/hypr/wp.png
|
||||
wallpaper = , ~/.config/hypr/wp.png
|
||||
wallpaper {
|
||||
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 |
@@ -1,6 +1,6 @@
|
||||
|
||||
# Font stuff
|
||||
font_family family="Hack JBM Ligatured"
|
||||
font_family family="Berkeley Mono Regular"
|
||||
italic_font auto
|
||||
bold_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
|
||||
background_opacity 0.85
|
||||
|
||||
# The foreground color
|
||||
foreground #d8dee9
|
||||
foreground #cccccc
|
||||
background #181818
|
||||
selection_foreground none
|
||||
selection_background #264f78
|
||||
|
||||
# The background color
|
||||
background #2e3440
|
||||
cursor #aeafad
|
||||
cursor_text_color #181818
|
||||
|
||||
# The foreground for selections
|
||||
selection_foreground #81a1c1
|
||||
url_color #3b8eea
|
||||
|
||||
# The background for selections
|
||||
selection_background #eceff4
|
||||
active_border_color #2472c8
|
||||
inactive_border_color #2b2b2b
|
||||
bell_border_color #e5e510
|
||||
visual_bell_color none
|
||||
|
||||
# The cursor color
|
||||
cursor #e5e9f0
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Set up term-colors (Nord Theme)
|
||||
color0 #3b4252
|
||||
color8 #4c566a
|
||||
active_tab_background #1f1f1f
|
||||
active_tab_foreground #ffffff
|
||||
inactive_tab_background #181818
|
||||
inactive_tab_foreground #9d9d9d
|
||||
tab_bar_background #181818
|
||||
tab_bar_margin_color none
|
||||
|
||||
color1 #bf616a
|
||||
color9 #bf616a
|
||||
# Set up term-colors (Cursor Dark)
|
||||
|
||||
color2 #a3be8c
|
||||
color10 #a3be8c
|
||||
#: black
|
||||
color0 #000000
|
||||
color8 #666666
|
||||
|
||||
color3 #ebcb8b
|
||||
color11 #ebcb8b
|
||||
#: red
|
||||
color1 #cd3131
|
||||
color9 #f14c4c
|
||||
|
||||
color4 #81a1c1
|
||||
color12 #81a1c1
|
||||
#: green
|
||||
color2 #0dbc79
|
||||
color10 #23d18b
|
||||
|
||||
color5 #b48ead
|
||||
color13 #b48ead
|
||||
#: yellow
|
||||
color3 #e5e510
|
||||
color11 #f5f543
|
||||
|
||||
color6 #88c0d0
|
||||
color14 #8fbcbb
|
||||
#: blue
|
||||
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)
|
||||
shell_integration no-cursor
|
||||
@@ -69,13 +89,6 @@ window_border_width 0
|
||||
window_margin_width 20
|
||||
|
||||
|
||||
# The color for the border of the active window
|
||||
active_border_color #ffffff
|
||||
|
||||
# The color for the border of inactive windows
|
||||
inactive_border_color #cccccc
|
||||
|
||||
|
||||
# Manage font size
|
||||
map ctrl+shift+up increase_font_size
|
||||
map ctrl+shift+down decrease_font_size
|
||||
|
||||
+5
-334
@@ -1,40 +1,8 @@
|
||||
require "keymap"
|
||||
require "options"
|
||||
require "plugins"
|
||||
require "lazy-setup"
|
||||
require "vars"
|
||||
|
||||
-- Color Theme
|
||||
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)
|
||||
vim.fn.sign_define(opts.name, {
|
||||
@@ -44,10 +12,10 @@ local sign = function(opts)
|
||||
})
|
||||
end
|
||||
|
||||
sign({name = 'DiagnosticSignError', text = ''})
|
||||
sign({name = 'DiagnosticSignWarn', text = ''})
|
||||
sign({name = 'DiagnosticSignHint', text = ''})
|
||||
sign({name = 'DiagnosticSignInfo', text = ''})
|
||||
sign({name = 'DiagnosticSignError', text = ''})
|
||||
sign({name = 'DiagnosticSignWarn', text = ''})
|
||||
sign({name = 'DiagnosticSignHint', text = ''})
|
||||
sign({name = 'DiagnosticSignInfo', text = ''})
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
@@ -66,300 +34,3 @@ vim.cmd([[
|
||||
set signcolumn=yes
|
||||
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)`)
|
||||
})
|
||||
|
||||
@@ -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" }
|
||||
}
|
||||
@@ -29,13 +29,20 @@ keymap("n", "<Down>", "<Nop>", opts)
|
||||
keymap("n", "<Left>", "<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", "<C-ü>", "<C-{>", opts)
|
||||
|
||||
keymap("n", "+", "}", 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 --
|
||||
-- Better window navigation
|
||||
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)
|
||||
|
||||
-- Resize with arrows
|
||||
keymap("n", "<C-Up>", ":resize -2<CR>", opts)
|
||||
keymap("n", "<C-Down>", ":resize +2<CR>", opts)
|
||||
keymap("n", "<C-Left>", ":vertical resize -2<CR>", opts)
|
||||
keymap("n", "<C-Right>", ":vertical resize +2<CR>", opts)
|
||||
-- Resize with hjkl instead of arrows (stay disciplined!)
|
||||
keymap("n", "<C-S-k>", ":resize -2<CR>", opts)
|
||||
keymap("n", "<C-S-j>", ":resize +2<CR>", opts)
|
||||
keymap("n", "<C-S-h>", ":vertical resize -2<CR>", opts)
|
||||
keymap("n", "<C-S-l>", ":vertical resize +2<CR>", opts)
|
||||
|
||||
-- Navigate buffers
|
||||
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)
|
||||
|
||||
-- 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
|
||||
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)
|
||||
|
||||
-- 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
|
||||
keymap("x", "J", ":move '>+1<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)
|
||||
|
||||
-- close buffer --
|
||||
keymap("n", "<leader>q", "<cmd>Bdelete! %d<cr>", opts)
|
||||
keymap("n", "<leader>q", "<cmd>Bdelete!<cr>", opts)
|
||||
|
||||
-- toggle whitespace --
|
||||
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", "gr", "<cmd>lua vim.lsp.buf.references()<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)
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
})
|
||||
@@ -5,6 +5,7 @@ local options = {
|
||||
conceallevel = 0, -- so that `` is visible in markdown files
|
||||
fileencoding = "utf-8", -- the encoding written to a file
|
||||
hlsearch = true, -- highlight all matches on previous search pattern
|
||||
incsearch = true, -- show search matches as you type
|
||||
ignorecase = true, -- ignore case in search patterns
|
||||
mouse = "a", -- allow the mouse to be used in neovim
|
||||
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.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
|
||||
|
||||
-- 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
|
||||
use "neovim/nvim-lspconfig" -- enable LSP
|
||||
use "williamboman/mason.nvim" -- simple to use language server installer
|
||||
use "williamboman/mason-lspconfig.nvim" -- simple to use language server installer
|
||||
use "mason-org/mason.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:
|
||||
use 'hrsh7th/nvim-cmp'
|
||||
@@ -66,7 +73,10 @@ return packer.startup(function(use)
|
||||
use 'hrsh7th/vim-vsnip'
|
||||
use "hrsh7th/cmp-cmdline" -- cmdline completions
|
||||
|
||||
use 'nvim-treesitter/nvim-treesitter'
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = ':TSUpdate'
|
||||
}
|
||||
|
||||
use 'nvim-tree/nvim-web-devicons'
|
||||
|
||||
@@ -83,6 +93,25 @@ return packer.startup(function(use)
|
||||
-- VimWiki
|
||||
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
|
||||
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,
|
||||
},
|
||||
}
|
||||
@@ -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",
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -6,20 +6,21 @@ configuration {
|
||||
modi: "combi,run,drun";
|
||||
|
||||
show-icons: true;
|
||||
icon-theme: "Nordzy-green-dark";
|
||||
icon-theme: "Papirus-Dark";
|
||||
}
|
||||
|
||||
@theme "/dev/null"
|
||||
|
||||
/* Cursor Dark */
|
||||
* {
|
||||
bg0: #2E3440F2;
|
||||
bg1: #3B4252;
|
||||
bg2: #4C566A80;
|
||||
bg3: #88C0D0F2;
|
||||
fg0: #D8DEE9;
|
||||
fg1: #ECEFF4;
|
||||
fg2: #D8DEE9;
|
||||
fg3: #4C566A;
|
||||
bgdark: #181818;
|
||||
bgalt: #2b2b2b;
|
||||
bgraised: #313131;
|
||||
fg0: #cccccc;
|
||||
fgalt: #6e6e6e;
|
||||
|
||||
accent-color: #2472c8;
|
||||
urgent-color: #e2c08d;
|
||||
|
||||
font: "Roboto 12";
|
||||
|
||||
@@ -32,7 +33,7 @@ configuration {
|
||||
}
|
||||
|
||||
element selected {
|
||||
text-color: @bg1;
|
||||
text-color: #ffffff;
|
||||
}
|
||||
|
||||
window {
|
||||
@@ -40,7 +41,7 @@ window {
|
||||
width: 720px;
|
||||
border-radius: 10px;
|
||||
|
||||
background-color: @bg0;
|
||||
background-color: @bgdark;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
@@ -48,8 +49,8 @@ mainbox {
|
||||
}
|
||||
|
||||
inputbar {
|
||||
background-color: @bg1;
|
||||
border-color: @bg3;
|
||||
background-color: @bgalt;
|
||||
border-color: @bgraised;
|
||||
|
||||
border: 2px;
|
||||
border-radius: 8px;
|
||||
@@ -60,19 +61,19 @@ inputbar {
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-color: @fg2;
|
||||
text-color: @accent-color;
|
||||
}
|
||||
|
||||
entry {
|
||||
placeholder: "Search";
|
||||
placeholder-color: @fg3;
|
||||
placeholder-color: @fgalt;
|
||||
}
|
||||
|
||||
message {
|
||||
margin: 12px 0 0;
|
||||
border-radius: 8px;
|
||||
border-color: @bg2;
|
||||
background-color: @bg2;
|
||||
border-color: @bgraised;
|
||||
background-color: @bgraised;
|
||||
}
|
||||
|
||||
textbox {
|
||||
@@ -96,15 +97,15 @@ element {
|
||||
}
|
||||
|
||||
element normal active {
|
||||
text-color: @bg3;
|
||||
text-color: @accent-color;
|
||||
}
|
||||
|
||||
element alternate active {
|
||||
text-color: @bg3;
|
||||
text-color: @accent-color;
|
||||
}
|
||||
|
||||
element selected normal, element selected active {
|
||||
background-color: @bg3;
|
||||
background-color: @accent-color;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
|
||||
+62
-3
@@ -22,6 +22,48 @@ set -g mouse on
|
||||
set-option -g status-position bottom
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# ==========================
|
||||
# === Cursor Dark theme ===
|
||||
# ==========================
|
||||
# Powerline status bar, ported from nordtheme/tmux with Cursor Dark colors.
|
||||
# Requires a patched (Nerd) font for the U+E0B0-E0B3 separators.
|
||||
#
|
||||
# bar bg #181818 raised segment #2b2b2b text #cccccc
|
||||
# session #2472c8 current window / host #11a8cd
|
||||
|
||||
set -g status on
|
||||
set -g status-interval 1
|
||||
set -g status-justify left
|
||||
set -g status-style "bg=#181818,fg=#cccccc"
|
||||
set -g status-left-length 40
|
||||
set -g status-right-length 80
|
||||
|
||||
#+--- Bars ---+
|
||||
set -g status-left "#[fg=#ffffff,bg=#2472c8,bold] #S #[fg=#2472c8,bg=#181818,nobold,noitalics,nounderscore]"
|
||||
set -g status-right "#[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %Y-%m-%d #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %H:%M #[fg=#11a8cd,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#181818,bg=#11a8cd,bold] #H "
|
||||
|
||||
#+--- Windows ---+
|
||||
set -g window-status-format "#[fg=#181818,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#I #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#W #F #[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]"
|
||||
set -g window-status-current-format "#[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#I #[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#W #F #[fg=#11a8cd,bg=#181818,nobold,noitalics,nounderscore]"
|
||||
set -g window-status-separator ""
|
||||
# Let the formats above own the colors; activity/bell still show via the #F flag
|
||||
setw -g window-status-activity-style "none"
|
||||
setw -g window-status-bell-style "none"
|
||||
|
||||
#+--- Panes ---+
|
||||
set -g pane-border-style "bg=default,fg=#2b2b2b"
|
||||
set -g pane-active-border-style "bg=default,fg=#2472c8"
|
||||
set -g display-panes-colour "#666666"
|
||||
set -g display-panes-active-colour "#2472c8"
|
||||
|
||||
#+--- Messages ---+
|
||||
set -g message-style "bg=#2b2b2b,fg=#11a8cd"
|
||||
set -g message-command-style "bg=#2b2b2b,fg=#11a8cd"
|
||||
setw -g mode-style "bg=#264f78,fg=#e5e5e5"
|
||||
|
||||
#+--- Clock ---+
|
||||
setw -g clock-mode-colour "#11a8cd"
|
||||
|
||||
# ================================================
|
||||
# === Copy mode, scroll and clipboard ===
|
||||
# ================================================
|
||||
@@ -92,12 +134,29 @@ bind -T copy-mode-vi MouseDown1Pane select-pane \;\
|
||||
# tmux show-options -g -s set-clipboard
|
||||
# set-clipboard on|external
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
# ==========================
|
||||
# === Plugins ===
|
||||
# ==========================
|
||||
# Nothing under ~/.tmux/plugins is tracked in git - tpm owns that directory and
|
||||
# clones everything listed below itself. Do not commit the plugin folders: they
|
||||
# would be checked out as empty dirs, and tpm would then skip installing them.
|
||||
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin "arcticicestudio/nord-tmux"
|
||||
|
||||
# tpm and its installer both resolve the plugin dir from this tmux environment
|
||||
# variable, and only the tpm script itself sets it. Pin it up-front so the
|
||||
# installer below already works on the very first run.
|
||||
run 'tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"'
|
||||
|
||||
# Bootstrap tpm itself on a machine that has never run it
|
||||
if "test ! -d ~/.tmux/plugins/tpm" \
|
||||
"run 'git clone -q --single-branch https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm'"
|
||||
|
||||
# Clone any declared plugin that is missing. Deliberately in the foreground, so
|
||||
# plugins installed here are already on disk when tpm sources them below.
|
||||
run '~/.tmux/plugins/tpm/bin/install_plugins'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
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
@@ -1,5 +0,0 @@
|
||||
@define-color bg0 #211a17;
|
||||
@define-color bg1 #362f2b;
|
||||
@define-color tip #221e1b;
|
||||
@define-color accent #ffbf9b;
|
||||
@define-color text #ffffff;
|
||||
@@ -10,7 +10,7 @@
|
||||
// Choose the order of the modules
|
||||
"modules-left": ["hyprland/workspaces","hyprland/window"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": ["pulseaudio", "backlight", "network", "cpu", "memory", "tray"],
|
||||
"modules-right": ["pulseaudio", "network", "cpu", "memory", "tray"],
|
||||
|
||||
// Modules configuration
|
||||
|
||||
@@ -26,6 +26,20 @@
|
||||
"active": "",
|
||||
}
|
||||
},
|
||||
|
||||
// "hyprland/workspaces": {
|
||||
// "format": "{name}",
|
||||
// "persistent_workspaces": {
|
||||
// "1": [],
|
||||
// "2": [],
|
||||
// "3": [],
|
||||
// "4": [],
|
||||
// "5": []
|
||||
// },
|
||||
// "all-outputs": true,
|
||||
// "active-only": false,
|
||||
// "sort-by-number": true
|
||||
// },
|
||||
"keyboard-state": {
|
||||
"numlock": false,
|
||||
"capslock": false,
|
||||
@@ -79,7 +93,6 @@
|
||||
"bat": "BAT2"
|
||||
},
|
||||
"network": {
|
||||
"interface": "enp4s0", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
@@ -110,13 +123,13 @@
|
||||
"tooltip": false,
|
||||
"format": "{} {icon}",
|
||||
"format-icons": {
|
||||
"notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"none": "",
|
||||
"dnd-notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"dnd-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"dnd-none": "",
|
||||
"inhibited-notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"inhibited-none": "",
|
||||
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"dnd-inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"dnd-inhibited-none": ""
|
||||
},
|
||||
"return-type": "json",
|
||||
@@ -135,6 +148,13 @@
|
||||
},
|
||||
"exec-if": "which waybar-updates",
|
||||
"exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300"
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
@define-color base00 #181818;
|
||||
@define-color base01 #2b2e37;
|
||||
@define-color base02 #3b3e47;
|
||||
@define-color base03 #585858;
|
||||
@define-color base04 #b8b8b8;
|
||||
@define-color base05 #d8d8d8;
|
||||
@define-color base06 #e8e8e8;
|
||||
@define-color base07 #f8f8f8;
|
||||
@define-color base08 #ab4642;
|
||||
@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;
|
||||
/* Cursor Dark */
|
||||
@define-color bg_dim #141414;
|
||||
@define-color bg0 #181818;
|
||||
@define-color bg2 #2b2b2b;
|
||||
@define-color fg #cccccc;
|
||||
@define-color red #f14c4c;
|
||||
@define-color blue #3b8eea;
|
||||
@define-color orange #e2c08d;
|
||||
@define-color bg4 #2472c8;
|
||||
|
||||
* {
|
||||
transition: none;
|
||||
@@ -24,9 +17,9 @@
|
||||
font-family: 'Hack JBM Ligatured', "Font Awesome 6 Free";
|
||||
font-size: 1.2em;
|
||||
font-weight: 400;
|
||||
color: @base04;
|
||||
color: @fg;
|
||||
border-radius: 10px;
|
||||
background: @base01;
|
||||
background: @bg0;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
@@ -36,7 +29,7 @@
|
||||
#workspaces button {
|
||||
margin: 4px 0;
|
||||
padding: 0 4px;
|
||||
color: @base05;
|
||||
color: @fg;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
@@ -44,22 +37,24 @@
|
||||
|
||||
#workspaces button.active {
|
||||
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 {
|
||||
color: rgba(238, 46, 36, 1);
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin: 4px 4px 4px 4px;
|
||||
border-radius: 4px;
|
||||
background-color: @base02;
|
||||
background-color: @bg2;
|
||||
}
|
||||
|
||||
#tray * {
|
||||
padding: 0 6px;
|
||||
border-left: 1px solid @base00;
|
||||
border-left: 1px solid @bg_dim;
|
||||
}
|
||||
|
||||
#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{
|
||||
margin: 4px 2px;
|
||||
padding: 0 6px;
|
||||
background-color: @base02;
|
||||
background-color: @bg2;
|
||||
border-radius: 4px;
|
||||
min-width: 20px;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: @base0F;
|
||||
color: @orange;
|
||||
}
|
||||
|
||||
#pulseaudio.bluetooth {
|
||||
color: @base0C;
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
#clock {
|
||||
@@ -89,7 +84,7 @@
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: @base0F;
|
||||
color: @orange;
|
||||
}
|
||||
|
||||
#window {
|
||||
|
||||
@@ -13,3 +13,53 @@ map J zoom out
|
||||
map i recolor
|
||||
map p print
|
||||
map g goto top
|
||||
|
||||
# ==========================
|
||||
# === Cursor Dark ===
|
||||
# ==========================
|
||||
# bg #181818 | raised #2b2b2b | popup #202020 | text #cccccc
|
||||
# accent #2472c8 | selection #264f78
|
||||
|
||||
# Chrome
|
||||
set default-bg "#181818"
|
||||
set default-fg "#cccccc"
|
||||
set statusbar-bg "#2b2b2b"
|
||||
set statusbar-fg "#cccccc"
|
||||
set inputbar-bg "#181818"
|
||||
set inputbar-fg "#cccccc"
|
||||
set render-loading-bg "#181818"
|
||||
set render-loading-fg "#9d9d9d"
|
||||
|
||||
# Notifications. Error/warning backgrounds are VS Code's input-validation
|
||||
# colors, so the error tint matches dunst's critical notifications.
|
||||
set notification-bg "#2b2b2b"
|
||||
set notification-fg "#cccccc"
|
||||
set notification-error-bg "#5a1d1d"
|
||||
set notification-error-fg "#ffffff"
|
||||
set notification-warning-bg "#352a05"
|
||||
set notification-warning-fg "#ffffff"
|
||||
|
||||
# Completion and index reuse the popup/selection colors from nvim
|
||||
set completion-bg "#202020"
|
||||
set completion-fg "#cccccc"
|
||||
set completion-group-bg "#181818"
|
||||
set completion-group-fg "#9d9d9d"
|
||||
set completion-highlight-bg "#264f78"
|
||||
set completion-highlight-fg "#ffffff"
|
||||
set index-bg "#181818"
|
||||
set index-fg "#cccccc"
|
||||
set index-active-bg "#264f78"
|
||||
set index-active-fg "#ffffff"
|
||||
|
||||
# Search: every match subtle, the current one in the accent blue
|
||||
set highlight-color "#264f78"
|
||||
set highlight-active-color "#2472c8"
|
||||
|
||||
# Render the document itself dark; 'i' (mapped above) toggles it back off.
|
||||
# Despite the names, lightcolor is what LIGHT areas become (the page
|
||||
# background) and darkcolor is what DARK areas become (the text).
|
||||
set recolor true
|
||||
set recolor-lightcolor "#181818"
|
||||
set recolor-darkcolor "#cccccc"
|
||||
# Keep colored figures and links recognisable instead of crushing them to mono
|
||||
set recolor-keephue true
|
||||
|
||||
Reference in New Issue
Block a user