├── .asoundrc ├── .bashrc ├── .clang-format ├── .dir_colors ├── .gitconfig ├── .gtkrc-2.0 ├── .hushlogin ├── .mailcap ├── .mozilla └── firefox │ └── surfingkeys.js ├── .npmrc ├── .nvidia-settings-rc ├── .pqivrc ├── .tmux.conf ├── .vifm ├── colors │ └── candymouse.vifm ├── configs │ └── favicons.vifm └── vifmrc ├── .zlogin ├── .zshrc ├── README.md ├── blender ├── 3.6 │ └── scripts │ │ └── presets │ │ └── interface_theme │ │ └── Candymouse.xml └── 4.3 │ └── scripts │ └── presets │ └── interface_theme │ └── Candymouse.xml ├── clangd └── config.yaml ├── data └── krita │ ├── VincentXYZ_Scheme.shortcuts │ ├── color-schemes │ └── Candymouse.colors │ └── shortcuts │ └── VincentXYZ.shortcuts ├── gotop ├── candymouse.json └── custom ├── gtk-3.0 └── settings.ini ├── gtk-4.0 ├── gtk.css └── settings.ini ├── herbstluftwm ├── autostart ├── scripts │ ├── switch-monitor.sh │ └── switch-tag.sh └── sxhkdrc ├── keymaps ├── assorted │ ├── arensito.xmodmap │ ├── asset.xmodmap │ ├── balanced.xmodmap │ ├── capewell.xmodmap │ ├── colemak.xmodmap │ ├── dvorak.xmodmap │ ├── eaton.xmodmap │ ├── hieamtsrn.xmodmap │ ├── klausler.xmodmap │ ├── qwerty.xmodmap │ ├── stndc.xmodmap │ └── workman.xmodmap ├── overlay.xmodmap ├── xbindkeys └── zsu │ ├── KeyboardEvolve.out.txt │ ├── zsu-place.png │ ├── zsu-same-dvorak.png │ ├── zsu-same-qwerty.png │ ├── zsu-start.png │ ├── zsu.png │ ├── zsu.xmodmap │ └── zsu2.xmodmap ├── kitty └── kitty.conf ├── kritadisplayrc ├── kritarc ├── kritashortcutsrc ├── mpv ├── input.conf └── mpv.conf ├── nvim ├── colors │ └── candymouse.vim ├── ftdetect │ └── gentoo.vim ├── ftplugin │ ├── ebuild.vim │ ├── gentoo-conf-d.vim │ ├── gentoo-env-d.vim │ ├── gentoo-init-d.vim │ ├── gentoo-make-conf.vim │ ├── gentoo-metadata.vim │ ├── gentoo-package-keywords.vim │ ├── gentoo-package-license.vim │ ├── gentoo-package-mask.vim │ ├── gentoo-package-properties.vim │ ├── gentoo-package-use.vim │ └── gentoo-use-desc.vim ├── index │ ├── ebuild.vim │ └── gentoo-metadata.vim ├── init.lua ├── lua │ ├── autocmds.lua │ ├── config │ │ ├── flog.lua │ │ ├── fzf.lua │ │ ├── lsp.lua │ │ ├── lspkind.lua │ │ ├── lualine.lua │ │ ├── pear.lua │ │ └── vifm.lua │ ├── keybindings.lua │ ├── plugins.lua │ └── settings.lua ├── plugin │ ├── gentoo-common.vim │ ├── newebuild.vim │ ├── newglep.vim │ ├── newinitd.vim │ └── newmetadata.vim └── syntax │ ├── ebuild.vim │ ├── gentoo-common.vim │ ├── gentoo-conf-d.vim │ ├── gentoo-env-d.vim │ ├── gentoo-init-d.vim │ ├── gentoo-make-conf.vim │ ├── gentoo-metadata.vim │ ├── gentoo-mirrors.vim │ ├── gentoo-package-common.vim │ ├── gentoo-package-keywords.vim │ ├── gentoo-package-license.vim │ ├── gentoo-package-mask.vim │ ├── gentoo-package-properties.vim │ ├── gentoo-package-use.vim │ ├── gentoo-use-desc.vim │ ├── glep.vim │ └── guidexml.vim ├── polybar ├── config.ini └── scripts │ ├── gputemp.zsh │ ├── headphones.zsh │ └── spotify.sh ├── rofi ├── colors.rasi ├── config.rasi ├── game-menu.rasi ├── menus │ └── games └── scripts │ └── games.sh ├── share └── images │ └── 2025_02_01-113912.png ├── user-dirs.dirs ├── xorg ├── Xresources └── xinitrc ├── yt-dlp └── config └── zsh ├── zsh-aliases ├── zsh-exports ├── zsh-functions └── zsh-options /.asoundrc: -------------------------------------------------------------------------------- 1 | pcm.!default { 2 | type pulse 3 | #fallback "sysdefault" 4 | #hint { 5 | # show on 6 | # description "Default to ALSA Output (current PulseAudio Sound Server)" 7 | } 8 | 9 | ctl.!default { 10 | type pulse 11 | #fallback "sysdefault" 12 | } 13 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | source ~/zsh/zsh-exports 2 | export HISTFILE= 3 | PS1='\u [\w]\$ ' 4 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | # file: ${XDG_CONFIG_HOME}/.clang-format 2 | 3 | # NOTE: This file is stored within $HOME but symlinked to its parent directory. 4 | # This ensures that it's contents are applied to all of my C/CPP files (not just those within ~). 5 | # The main reason for this choice is so that I can manage the file with my git:dotfiles repo. 6 | 7 | # 'Microsoft' is very similar to 'Allman' (preferred). 8 | BasedOnStyle: Microsoft 9 | # Future-proof redundancy in case these change from their default values. 10 | IndentWidth: 4 11 | TabWidth: 4 12 | -------------------------------------------------------------------------------- /.dir_colors: -------------------------------------------------------------------------------- 1 | ################################################################# 2 | # locate: ${XDG_CONFIG_HOME}/.dir_colors # 3 | # author: Vincent (github.com/milomouse) # 4 | ################################################################# 5 | 6 | ##+ color (tty, all, none): 7 | COLOR all 8 | 9 | ##+ extra ls options: 10 | OPTIONS -F -b -T 0 11 | 12 | ##+ eightbit (1=on, 0=off) 13 | EIGHTBIT 1 14 | 15 | ##+ Below are the color init strings for the basic file types. A color init 16 | ##+ string consists of one or more of the following numeric codes: 17 | ##+ Attribute codes: 18 | ##+ 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed 19 | ##+ Text color codes: 20 | ##+ 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white 21 | ##+ Background color codes: 22 | ##+ 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white 23 | 24 | NORMAL 00 25 | FILE 00 26 | DIR 01;34 27 | LINK 01;31 28 | FIFO 01;33 29 | SOCK 00;33 30 | BLK 40;31;01 31 | CHR 40;37 32 | ORPHAN 01;30 33 | MISSING 01;30 34 | EXEC 01;36 35 | 36 | ##+ executables: 37 | .bat 00;31 38 | .btm 00;31 39 | .cmd 00;31 40 | .com 00;31 41 | .exe 00;31 42 | .iso 00;31 43 | 44 | ##+ 3D: 45 | .blend 01;35 46 | .BLEND 01;35 47 | .duf 01;35 48 | .DUF 01;35 49 | .dsf 01;35 50 | .DSF 01;35 51 | .fbx 01;35 52 | .FBX 01;35 53 | .gltf 01;35 54 | .GLTF 01;35 55 | .obj 01;35 56 | .OBJ 01;35 57 | 58 | ##+ archives: 59 | .7z 01;31 60 | .deb 01;31 61 | .DEB 01;31 62 | .tar 01;31 63 | .TAR 01;31 64 | .tgz 01;31 65 | .TGZ 01;31 66 | .gz 01;31 67 | .GZ 01;31 68 | .bz2 01;31 69 | .BZ2 01;31 70 | .tar.xz 01;31 71 | .tar.gz 01;31 72 | .xz 01;31 73 | .XZ 01;31 74 | .lzma 01;31 75 | .LZMA 01;31 76 | .lzo 01;31 77 | .LZO 01;31 78 | .lzop 01;31 79 | .LZOP 01;31 80 | .rar 01;31 81 | .RAR 01;31 82 | .ace 01;31 83 | .ACE 01;31 84 | .zip 01;31 85 | .ZIP 01;31 86 | .xpi 00;31 87 | 88 | ##+ images: 89 | .gif 00;34 90 | .GIF 00;34 91 | .svg 00;34 92 | .SVG 00;34 93 | .png 00;34 94 | .PNG 00;34 95 | .jpg 00;34 96 | .JPG 00;34 97 | .jpeg 00;34 98 | .JPEG 00;34 99 | .webp 00;34 100 | .WEBP 00;34 101 | .bmp 00;34 102 | .BMP 00;34 103 | .xbm 00;34 104 | .XBM 00;34 105 | .xpm 00;34 106 | .XPM 00;34 107 | .tif 00;34 108 | .TIF 00;34 109 | .tiff 00;34 110 | .TIFF 00;34 111 | .tga 00;34 112 | .TGA 00;34 113 | .xcf 00;34 114 | .XCF 00;34 115 | .xcf.gz 00;34 116 | .XCF.GZ 00;34 117 | .pcx 00;34 118 | .PCX 00;34 119 | .ppm 00;34 120 | .PPM 00;34 121 | .psd 00;34 122 | .PSD 00;34 123 | 124 | ##+ audio: 125 | .ogg 00;35 126 | .OGG 00;35 127 | .ogm 00;35 128 | .OGM 00;35 129 | .flac 00;35 130 | .FLAC 00;35 131 | .ape 00;35 132 | .APE 00;35 133 | .ac3 00;35 134 | .AC3 00;35 135 | .dts 00;35 136 | .DTS 00;35 137 | .aiff 00;35 138 | .AIFF 00;35 139 | .aiffc 00;35 140 | .AIFFC 00;35 141 | .opus 00;35 142 | .OPUS 00;35 143 | .aac 00;35 144 | .AAC 00;35 145 | .mp3 00;35 146 | .MP3 00;35 147 | .fla 00;35 148 | .FLA 00;35 149 | .m4a 00;35 150 | .M4A 00;35 151 | .mid 00;35 152 | .MID 00;35 153 | .wav 00;35 154 | .WAV 00;35 155 | .au 00;35 156 | .nes 00;35 157 | .smc 00;35 158 | .fig 00;35 159 | .sfc 00;35 160 | .smc.gz 00;35 161 | .fig.gz 00;35 162 | .sfc.gz 00;35 163 | 164 | ##+ video: 165 | .mkv 01;35 166 | .MKV 01;35 167 | .ogv 01;35 168 | .OGV 01;35 169 | .mp4 01;35 170 | .MP4 01;35 171 | .m4v 01;35 172 | .M4V 01;35 173 | .mpg 01;35 174 | .MPG 01;35 175 | .mpeg 01;35 176 | .MPEG 01;35 177 | .wmv 01;35 178 | .WMV 01;35 179 | .avi 01;35 180 | .AVI 01;35 181 | .mov 01;35 182 | .MOV 01;35 183 | .fli 01;35 184 | .FLI 01;35 185 | .flc 01;35 186 | .FLC 01;35 187 | .flv 01;35 188 | .FLV 01;35 189 | .swf 01;35 190 | .SWF 01;35 191 | .webm 01;35 192 | 193 | ##+ documents: 194 | .doc 01;37 195 | .docx 01;37 196 | .dif 01;37 197 | .word 01;37 198 | .excel 01;37 199 | .xls 01;37 200 | .xlt 01;37 201 | .pxl 01;37 202 | .slk 01;37 203 | .csv 01;37 204 | .rtf 01;37 205 | .pdb 01;37 206 | .psw 01;37 207 | .ppt 01;37 208 | .pps 01;37 209 | .pot 01;37 210 | .potm 01;37 211 | .pptx 01;37 212 | .ppsx 01;37 213 | .pdf 01;37 214 | .ps 01;37 215 | .txt 00;37 216 | .odt 00;37 217 | .odg 00;37 218 | .ods 00;37 219 | .ots 00;37 220 | .fodt 00;37 221 | .ott 00;37 222 | .uot 00;37 223 | .ssi 00;37 224 | .sti 00;37 225 | .ssx 00;37 226 | .sxc 00;37 227 | .sxd 00;37 228 | .sxw 00;37 229 | .stw 00;37 230 | .txt 00;37 231 | .tex 00;37 232 | .odp 00;37 233 | .otp 00;37 234 | 235 | # configuration files: 236 | .ackrc 01;35 237 | 238 | # programming editable: 239 | 240 | 241 | # programming compiled: 242 | 243 | ##+ everything else: 244 | .asc 00;37 245 | .asm 01;35 246 | .apvlvrc 00;35 247 | .asoundrc 00;35 248 | .awk 00;33 249 | .bash 00;35 250 | .bashrc 00;35 251 | .bash_profile 00;35 252 | .bak 00;31 253 | .bin 01;31 254 | .bzr 00;36 255 | .c 00;35 256 | .cfg 00;36 257 | .coffee 00;36 258 | .conf 00;35 259 | .cpp 01;35 260 | .cs 01;35 261 | .css 00;35 262 | .csv 01;35 263 | .cue 00;35 264 | .def 00;35 265 | .diff 01;33 266 | .dir_colors 00;37 267 | .dirs 00;37 268 | .ebuild 00;35 269 | .enc 00;36 270 | .eps 00;36 271 | .etx 00;36 272 | .ex 00;36 273 | .example 00;36 274 | .fehbg 00;36 275 | .fonts 00;36 276 | .git 00;37 277 | .gitconfig 00;37 278 | .gitignore 00;37 279 | .glivrc 00;35 280 | .gtk-bookmarks 00;37 281 | .gtkrc 00;37 282 | .gtkrc-2.0 00;37 283 | .go 00;35 284 | .h 01;34 285 | .hgignore 01;34 286 | .hgrc 01;35 287 | .hs 00;35 288 | .htm 00;35 289 | .html 00;35 290 | .htoprc 00;35 291 | .info 00;32 292 | .ini 00;37 293 | .interrobangrc 01;35 294 | .irbrc 00;35 295 | .java 01;35 296 | .jhtm 01;35 297 | .jl 00;35 298 | .js 01;35 299 | .jsm 01;35 300 | .jsm 01;35 301 | .json 01;35 302 | .jsp 01;35 303 | .larswmrc 01;35 304 | .lisp 00;35 305 | .lesshst 00;37 306 | .log 01;37 307 | .lua 00;35 308 | .m3u 01;35 309 | .mailcap 00;37 310 | *Makefile 00;31 311 | .map 01;32 312 | .markdown 01;32 313 | .md 01;37 314 | .mostrc 01;35 315 | .mkd 01;32 316 | .msmtprc 01;35 317 | .muttrc 01;35 318 | .nfo 01;37 319 | .netrc 00;35 320 | .npmrc 00;31 321 | .o 00;34 322 | .offlineimaprc 01;35 323 | .opt 00;36 324 | .pacnew 00;33 325 | .patch 00;33 326 | .pentadactylrc 00;35 327 | .pc 00;36 328 | .php 00;35 329 | .pid 00;33 330 | .pl 00;31 331 | .pod 01;32 332 | .py 00;35 333 | .rpy 00;35 334 | .R 00;35 335 | .Renviron 00;31 336 | .Rprofile 00;31 337 | .ratpoisonrc 01;35 338 | .rb 00;35 339 | .rc 01;35 340 | *README 01;37 341 | .rtf 00;37 342 | .recently-used 00;37 343 | .rnd 00;33 344 | .sbclrc 00;35 345 | .sed 00;35 346 | .sh 00;31 347 | .signature 01;33 348 | .spec 00;37 349 | .stumpwmrc 00;35 350 | .t 01;37 351 | .tcl 00;35 352 | .tdy 00;35 353 | .textile 00;35 354 | .theme 00;37 355 | .viminfo 00;39 356 | *viminfo 00;39 357 | .xml 00;35 358 | .yml 00;35 359 | .zcompdump 00;35 360 | .zlogin 00;35 361 | .zwc 01;35 362 | .zsh 01;31 363 | .zshrc 00;35 364 | .ttytterrc 00;35 365 | .urlview 00 366 | .vim 00;35 367 | .vimperatorrc 00;35 368 | .vimrc 00;35 369 | .xinitrc 00;35 370 | *xinitrc 00;35 371 | .Xauthority 01;35 372 | .Xdefaults 01;35 373 | *Xdefaults 01;35 374 | *xdefaults 01;35 375 | .Xmodmap 01;35 376 | .xmodmap 01;35 377 | .Xresources 01;35 378 | *Xresources 01;35 379 | *xresources 01;35 380 | .zig 00;35 381 | 382 | ##+ below, there should be one TERM entry for each termtype that is colorizable 383 | TERM alacritty 384 | TERM alacritty-direct 385 | TERM ansi 386 | TERM *color* 387 | TERM con[0-9]*x[0-9]* 388 | TERM cons25 389 | TERM console 390 | TERM cygwin 391 | TERM dtterm 392 | TERM dvtm 393 | TERM dvtm-256color 394 | TERM Eterm 395 | TERM eterm-color 396 | TERM fbterm 397 | TERM gnome 398 | TERM gnome-256color 399 | TERM hurd 400 | TERM jfbterm 401 | TERM konsole 402 | TERM konsole-256color 403 | TERM kterm 404 | TERM linux 405 | TERM linux-c 406 | TERM mlterm 407 | TERM putty 408 | TERM putty-256color 409 | TERM rxvt* 410 | TERM rxvt-unicode 411 | TERM rxvt-256color 412 | TERM rxvt-unicode256 413 | TERM screen* 414 | TERM screen-256color 415 | TERM st 416 | TERM st-256color 417 | TERM terminator 418 | TERM tmux* 419 | TERM tmux-256color 420 | TERM vt100 421 | TERM xterm* 422 | TERM xterm-color 423 | TERM xterm-88color 424 | TERM xterm-256color 425 | TERM xterm-kitty 426 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = milomouse (Vincent) 3 | email = ixsolaris86@gmail.com 4 | [diff] 5 | tool = colordiff 6 | [color] 7 | ui = true 8 | pager = true 9 | diff = auto 10 | status = auto 11 | branch = auto 12 | interactive = auto 13 | [color "branch"] 14 | current = cyan reverse 15 | local = cyan 16 | remote = blue 17 | [color "diff"] 18 | meta = red bold 19 | frag = yellow bold 20 | new = magenta 21 | old = magenta bold 22 | [color "status"] 23 | added = cyan 24 | changed = magenta 25 | untracked = blue 26 | [sendmail] 27 | supressfrom = true 28 | chainreplyto = false 29 | thread = true 30 | compose = true 31 | confirm = auto 32 | [alias] 33 | tree = log --graph --pretty=oneline --decorate 34 | amend = commit --amend -C HEAD 35 | [core] 36 | whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol 37 | editor = nvim 38 | pager = less 39 | [apply] 40 | whitespace = strip 41 | [push] 42 | default = simple 43 | [init] 44 | defaultBranch = master 45 | -------------------------------------------------------------------------------- /.gtkrc-2.0: -------------------------------------------------------------------------------- 1 | gtk-theme-name="Vimix-dark-beryl" 2 | gtk-icon-theme-name="Suru-++" 3 | gtk-cursor-theme-name="Simp1e-Catppuccin" 4 | gtk-font-name="Dina 10" 5 | gtk-menu-images=0 6 | gtk-cursor-theme-size=0 7 | gtk-button-images=0 8 | gtk-xft-antialias=1 9 | gtk-xft-hinting=1 10 | gtk-xft-hintstyle="hintmedium" 11 | gtk-xft-rgba="rgb" 12 | gtk-xft-dpi=147456 13 | -------------------------------------------------------------------------------- /.hushlogin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/.hushlogin -------------------------------------------------------------------------------- /.mailcap: -------------------------------------------------------------------------------- 1 | image/*; sxiv -s -f ab -g '3000x2000' %s 2>/dev/null; test=test -n "$DISPLAY"; edit=krita %s 2 | application/pdf; mupdf -Y 2 -I %s 3 | -------------------------------------------------------------------------------- /.mozilla/firefox/surfingkeys.js: -------------------------------------------------------------------------------- 1 | settings.defaultSearchEngine = 'd'; 2 | 3 | api.unmap('ob'); 4 | api.unmap('sb'); 5 | 6 | // api.map('W', ''); 7 | 8 | api.map('_', 't'); 9 | api.map('t', 'T'); 10 | api.map('T', '_'); 11 | api.unmap('_'); 12 | 13 | api.map('gT', 'E'); 14 | api.map('gt', 'R'); 15 | api.map('gp', 'E'); 16 | api.map('gn', 'R'); 17 | api.map('H', 'S'); 18 | api.map('L', 'D'); 19 | api.map('K', 'u'); 20 | api.map('J', 'd'); 21 | api.map('gd', 'x'); 22 | api.map('u', 'X'); 23 | api.map('P', 'cc'); 24 | 25 | api.unmap('d'); 26 | 27 | api.cmap('', ''); 28 | api.cmap('', ''); 29 | 30 | api.aceVimMap('jk', '', 'insert'); 31 | 32 | settings.tabsThreshold = 0; 33 | settings.tabsMRUOrder = false; 34 | 35 | // set theme 36 | settings.theme = ` 37 | .sk_theme { 38 | font-family: Input Sans Condensed, Charcoal, sans-serif; 39 | font-size: 10pt; 40 | background: #7F7F7F; 41 | color: #313131; 42 | font-weight: bold; 43 | } 44 | .sk_theme tbody { 45 | color: #fff; 46 | } 47 | .sk_theme input { 48 | color: #d0d0d0; 49 | } 50 | .sk_theme .url { 51 | color: #3E3E4C; 52 | font-weight: normal; 53 | font-style: italic; 54 | } 55 | .sk_theme .annotation { 56 | color: #7B7FCC; 57 | } 58 | .sk_theme .omnibar_highlight { 59 | color: #D0D0D0; 60 | } 61 | .sk_theme .omnibar_timestamp { 62 | color: #5A5A5A; 63 | } 64 | .sk_theme .omnibar_visitcount { 65 | color: #4A4A4A; 66 | } 67 | .sk_theme #sk_omnibarSearchResult ul li:nth-child(odd) { 68 | background: #797979; 69 | } 70 | .sk_theme #sk_omnibarSearchResult ul li.focused { 71 | background: #313131; 72 | color: #7F7F7F; 73 | } 74 | #sk_status, #sk_find { 75 | font-size: 20pt; 76 | }`; 77 | // click `Save` button to make above settings to take effect. 78 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | prefix=/home/mother/code/nodejs/pkg 2 | -------------------------------------------------------------------------------- /.nvidia-settings-rc: -------------------------------------------------------------------------------- 1 | # 2 | # /home/mother/conf/.nvidia-settings-rc 3 | # 4 | # Configuration file for nvidia-settings - the NVIDIA Settings utility 5 | # Generated on Fri Jan 31 06:45:05 2025 6 | # 7 | 8 | # ConfigProperties: 9 | 10 | RcFileLocale = C 11 | DisplayStatusBar = Yes 12 | SliderTextEntries = Yes 13 | IncludeDisplayNameInConfigFile = No 14 | UpdateRulesOnProfileNameChange = Yes 15 | Timer = PowerMizer_Monitor_(GPU_0),Yes,1000 16 | Timer = Thermal_Monitor_(GPU_0),Yes,1000 17 | Timer = Memory_Used_(GPU_0),Yes,3000 18 | 19 | # Attributes: 20 | 21 | 0/SyncToVBlank=1 22 | 0/LogAniso=0 23 | 0/FSAA=0 24 | 0/TextureClamping=1 25 | 0/FXAA=0 26 | 0/AllowFlipping=1 27 | 0/FSAAAppControlled=1 28 | 0/LogAnisoAppControlled=1 29 | 0/OpenGLImageSettings=1 30 | 0/FSAAAppEnhanced=0 31 | 0/ShowGraphicsVisualIndicator=0 32 | [DPY:DP-0]/Dithering=0 33 | [DPY:DP-0]/DitheringMode=0 34 | [DPY:DP-0]/DitheringDepth=0 35 | [DPY:DP-0]/ColorSpace=0 36 | [DPY:DP-0]/ColorRange=0 37 | [DPY:DP-0]/SynchronousPaletteUpdates=0 38 | [DPY:DP-1]/Dithering=0 39 | [DPY:DP-1]/DitheringMode=0 40 | [DPY:DP-1]/DitheringDepth=0 41 | [DPY:DP-1]/ColorSpace=0 42 | [DPY:DP-1]/ColorRange=0 43 | [DPY:DP-1]/SynchronousPaletteUpdates=0 44 | [DPY:DP-2]/RedBrightness=0.000000 45 | [DPY:DP-2]/GreenBrightness=0.000000 46 | [DPY:DP-2]/BlueBrightness=0.000000 47 | [DPY:DP-2]/RedContrast=0.000000 48 | [DPY:DP-2]/GreenContrast=0.000000 49 | [DPY:DP-2]/BlueContrast=0.000000 50 | [DPY:DP-2]/RedGamma=1.000000 51 | [DPY:DP-2]/GreenGamma=1.000000 52 | [DPY:DP-2]/BlueGamma=1.000000 53 | [DPY:DP-2]/Dithering=0 54 | [DPY:DP-2]/DitheringMode=0 55 | [DPY:DP-2]/DitheringDepth=0 56 | [DPY:DP-2]/DigitalVibrance=0 57 | [DPY:DP-2]/ColorSpace=0 58 | [DPY:DP-2]/ColorRange=0 59 | [DPY:DP-2]/SynchronousPaletteUpdates=0 60 | [DPY:DP-3]/Dithering=0 61 | [DPY:DP-3]/DitheringMode=0 62 | [DPY:DP-3]/DitheringDepth=0 63 | [DPY:DP-3]/ColorSpace=0 64 | [DPY:DP-3]/ColorRange=0 65 | [DPY:DP-3]/SynchronousPaletteUpdates=0 66 | [DPY:HDMI-0]/Dithering=0 67 | [DPY:HDMI-0]/DitheringMode=0 68 | [DPY:HDMI-0]/DitheringDepth=0 69 | [DPY:HDMI-0]/ColorSpace=0 70 | [DPY:HDMI-0]/ColorRange=0 71 | [DPY:HDMI-0]/SynchronousPaletteUpdates=0 72 | [DPY:DP-4]/RedBrightness=0.000000 73 | [DPY:DP-4]/GreenBrightness=0.000000 74 | [DPY:DP-4]/BlueBrightness=0.000000 75 | [DPY:DP-4]/RedContrast=0.000000 76 | [DPY:DP-4]/GreenContrast=0.000000 77 | [DPY:DP-4]/BlueContrast=0.000000 78 | [DPY:DP-4]/RedGamma=1.000000 79 | [DPY:DP-4]/GreenGamma=1.000000 80 | [DPY:DP-4]/BlueGamma=1.000000 81 | [DPY:DP-4]/Dithering=0 82 | [DPY:DP-4]/DitheringMode=0 83 | [DPY:DP-4]/DitheringDepth=0 84 | [DPY:DP-4]/DigitalVibrance=0 85 | [DPY:DP-4]/ColorSpace=0 86 | [DPY:DP-4]/ColorRange=0 87 | [DPY:DP-4]/SynchronousPaletteUpdates=0 88 | [DPY:DP-5]/Dithering=0 89 | [DPY:DP-5]/DitheringMode=0 90 | [DPY:DP-5]/DitheringDepth=0 91 | [DPY:DP-5]/ColorSpace=0 92 | [DPY:DP-5]/ColorRange=0 93 | [DPY:DP-5]/SynchronousPaletteUpdates=0 94 | [GPU:0]/GPUPowerMizerMode=2 95 | -------------------------------------------------------------------------------- /.pqivrc: -------------------------------------------------------------------------------- 1 | [options] 2 | background-pattern=white 3 | scale-images-up=1 4 | scale-mode-screen-fraction=0.9 5 | 6 | [keybindings] 7 | f { send_keys(#1); } 8 | 1 { toggle_info_box(); command(herbstclient pseudotile off); toggle_fullscreen(1); bind_key(f { send_keys(#2\); }); } 9 | 2 { toggle_fullscreen(2); command(herbstclient pseudotile on); reset_scale_level(); toggle_info_box(); bind_key(f { send_keys(#1\); }); } 10 | 0 { toggle_scale_mode(1); } 11 | w { toggle_scale_mode(3); reset_scale_level(); } 12 | g { goto_file_byindex(0); } 13 | G { goto_file_byindex(-1); } 14 | j { shift_y(-10); } 15 | k { shift_y(10); } 16 | h { shift_x(10); } 17 | l { shift_x(-10); } 18 | J { shift_y(-100); } 19 | K { shift_y(100); } 20 | H { shift_x(100); } 21 | L { shift_x(-100); } 22 | z { reset_scale_level(); } 23 | x { toggle_background_pattern(0); } 24 | V { flip_horizontally(); } 25 | b { goto_file_relative(-1); } 26 | { set_scale_level_relative(0.9); } 27 | { set_scale_level_relative(0.7); } 28 | { set_scale_level_relative(1.1); } 29 | { set_scale_level_relative(1.3); } 30 | { nop(); } 31 | h { rotate_left(); } 32 | l { rotate_right(); } 33 | f { jump_dialog(); } 34 | @MONTAGE { 35 | G { goto_file_byindex(-1); } 36 | g { goto_file_byindex(0); } 37 | q { montage_mode_return_cancel(); } 38 | j { montage_mode_shift_y(1); } 39 | k { montage_mode_shift_y(-1); } 40 | h { montage_mode_shift_x(-1); } 41 | l { montage_mode_shift_x(1); } 42 | { nop(); } 43 | f { montage_mode_follow(asdfghjkl); } 44 | { set_thumbnail_size(128,128) } 45 | { set_thumbnail_size(256,256) } 46 | } 47 | -------------------------------------------------------------------------------- /.tmux.conf: -------------------------------------------------------------------------------- 1 | # file: ${XDG_CONFIG_HOME}/.tmux.conf 2 | 3 | # command prefix 4 | set-option -g prefix C-e 5 | bind-key C-e send-prefix 6 | 7 | # reload tmux.conf 8 | bind-key R source-file /home/mother/conf/.tmux.conf 9 | 10 | # basic global settings 11 | set-option -g default-shell /usr/bin/zsh 12 | set-option -g history-limit 10000 13 | set-option -g status-keys vi 14 | set-window-option -g mode-keys vi 15 | 16 | # copy mode to escape key 17 | unbind-key [ 18 | bind-key Escape copy-mode 19 | 20 | # window navigation 21 | bind-key / last-window 22 | bind-key C-n next-window 23 | bind-key C-p previous-window 24 | 25 | # pane navigation 26 | bind-key h select-pane -L 27 | bind-key j select-pane -D 28 | bind-key k select-pane -U 29 | bind-key l select-pane -R 30 | bind-key u last-pane 31 | 32 | # pane swapping 33 | bind-key J swap-pane -D 34 | bind-key K swap-pane -U 35 | 36 | # send current pane to a new window 37 | bind-key ! 38 | 39 | # pane resizing 40 | bind-key -r C-h resize-pane -L 41 | bind-key -r C-j resize-pane -D 42 | bind-key -r C-k resize-pane -U 43 | bind-key -r C-l resize-pane -R 44 | 45 | # pane splitting and cycling 46 | unbind % 47 | bind-key = split-window -h 48 | unbind '"' 49 | bind-key - split-window -v 50 | 51 | # window title 52 | set-option -g set-titles on 53 | set-option -g set-titles-string '[#S][#I:#P] #W - #{pane_title}' 54 | set-window-option -g automatic-rename on 55 | 56 | # messages 57 | set-window-option -g mode-style fg=black,bg=yellow 58 | set-window-option -g message-style "fg=colour250,bg=colour238" 59 | set-option -g message-command-style "fg=colour250,bg=colour238" 60 | set-option -g mode-style fg=black,bg=yellow 61 | set-option -g message-style fg=black,bg=yellow 62 | 63 | # panes 64 | set-option -g pane-active-border-style "fg=#8D8D8D" 65 | set-option -g pane-border-style "fg=#616161" 66 | 67 | # status bar 68 | set-option -g status "on" 69 | set-option -g status-left-style "none" 70 | set-option -g status-right-style "none" 71 | set-option -g status-fg '#8D8D8D' 72 | set-option -g status-bg '#1E1E1E' 73 | set-option -g status-interval 5 74 | set-option -g status-left-length 100 75 | set-option -g status-right-length 100 76 | set-option -g status-left "#[fg=#1E1E1E,bg=#585858,bold] #W #[fg=#5F5F5F,bg=#5F5F5F,bold]▊#[fg=#5F5F5F,bg=#1E1E1E,bold] #(echo '#{pane_current_path}' | sed 's#$HOME#~#; s#\\([^/]*/[^/]*/\\).*\\(/[^/]*/.*\\)$#\\1 ... \\2#; s#/#/#g') #[none]" 77 | set-option -g status-right "#[fg=#5F5F5F,bg=#1E1E1E,bold] #S #I:#P #[none]" 78 | set-option -g status-justify "right" 79 | set-window-option -g window-status-format " #I#F " 80 | set-window-option -g window-status-current-format " #I#F " 81 | set-window-option -g monitor-activity on 82 | set-window-option -g window-status-activity-style "bold,fg=#9E9DA5" 83 | set-window-option -g window-status-separator "" 84 | set-window-option -g window-status-current-style "none,fg=#8D8D8D" 85 | set-window-option -g window-status-style "none,fg=#3d3a3a" 86 | set-window-option -g status-style "none" 87 | set-option -g visual-activity on 88 | 89 | # clock 90 | set-window-option -g clock-mode-colour cyan 91 | set-window-option -g clock-mode-style 24 92 | 93 | # pass through focus events to supported applications 94 | set-option -g focus-events on 95 | 96 | # external commands 97 | unbind-key , 98 | unbind-key . 99 | bind-key m command-prompt "split-window -v 'exec man %%'" 100 | 101 | # undercurl support inside tmux+neovim 102 | set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' 103 | set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' 104 | -------------------------------------------------------------------------------- /.vifm/colors/candymouse.vifm: -------------------------------------------------------------------------------- 1 | " ------------------------------------------------------------------------------ 2 | " locate: ${XDG_CONFIG_HOME}/.vifm/colors/candymouse.vifm 3 | " author: Vincent (github.com/milomouse) 4 | " detail: colorscheme for vifm 5 | " ------------------------------------------------------------------------------ 6 | 7 | highlight clear 8 | 9 | " UPDATED: 256 version 10 | highlight AuxWin ctermfg=233 ctermbg=240 cterm=none 11 | highlight Border ctermfg=240 ctermbg=234 cterm=none 12 | highlight BrokenLink ctermfg=235 ctermbg=232 cterm=none,underline 13 | highlight CmdLine ctermfg=240 ctermbg=233 cterm=none 14 | highlight CmpMismatch ctermfg=240 ctermbg=56 cterm=bold 15 | highlight CurrLine ctermfg=233 ctermbg=240 cterm=bold 16 | highlight Device ctermfg=125 ctermbg=233 cterm=bold,reverse 17 | highlight Directory ctermfg=39 ctermbg=233 cterm=bold 18 | highlight Fifo ctermfg=220 ctermbg=233 cterm=bold 19 | highlight ErrorMsg ctermfg=161 ctermbg=233 cterm=none 20 | highlight Executable ctermfg=80 ctermbg=233 cterm=bold 21 | highlight JobLine ctermfg=35 ctermbg=233 cterm=bold,reverse 22 | highlight Link ctermfg=162 ctermbg=233 cterm=underline 23 | highlight OtherLine ctermfg=none ctermbg=234 cterm=bold 24 | highlight OtherWin ctermfg=238 ctermbg=233 cterm=bold 25 | highlight Selected ctermfg=99 ctermbg=233 cterm=bold,standout 26 | highlight Socket ctermfg=143 ctermbg=233 cterm=bold 27 | highlight StatusLine ctermfg=233 ctermbg=240 cterm=bold 28 | highlight SuggestBox ctermfg=233 ctermbg=238 cterm=bold 29 | highlight TabLine ctermfg=238 ctermbg=234 cterm=none 30 | highlight TabLineSel ctermfg=233 ctermbg=240 cterm=none 31 | highlight TopLine ctermfg=233 ctermbg=240 cterm=none 32 | highlight TopLineSel ctermfg=233 ctermbg=240 cterm=bold 33 | highlight WildMenu ctermfg=233 ctermbg=238 cterm=underline,reverse 34 | highlight Win ctermfg=61 ctermbg=233 cterm=bold 35 | 36 | 37 | " ORIGINAL: non-256 version (inherited) 38 | " highlight AuxWin ctermfg=default ctermbg=default cterm=none 39 | " highlight Border ctermfg=default ctermbg=black cterm=none 40 | " highlight BrokenLink ctermfg=black ctermbg=default cterm=none,underline 41 | " highlight CmdLine ctermfg=white ctermbg=default cterm=none 42 | " highlight CmpMismatch ctermfg=white ctermbg=red cterm=bold 43 | " highlight CurrLine ctermfg=black ctermbg=white cterm=bold 44 | " highlight Device ctermfg=red ctermbg=default cterm=bold,reverse 45 | " highlight Directory ctermfg=blue ctermbg=default cterm=bold 46 | " highlight Fifo ctermfg=yellow ctermbg=default cterm=bold 47 | " highlight ErrorMsg ctermfg=red ctermbg=default cterm=none 48 | " highlight Executable ctermfg=green ctermbg=default cterm=bold 49 | " highlight JobLine ctermfg=black ctermbg=white cterm=bold,reverse 50 | " highlight Link ctermfg=red ctermbg=default cterm=underline 51 | " highlight OtherLine ctermfg=white ctermbg=black cterm=bold 52 | " highlight OtherWin ctermfg=default ctermbg=default cterm=bold 53 | " highlight Selected ctermfg=cyan ctermbg=default cterm=bold,standout 54 | " highlight Socket ctermfg=cyan ctermbg=default cterm=bold 55 | " highlight StatusLine ctermfg=black ctermbg=white cterm=bold 56 | " highlight SuggestBox ctermfg=default ctermbg=default cterm=bold 57 | " highlight TabLine ctermfg=white ctermbg=black cterm=none 58 | " highlight TabLineSel ctermfg=black ctermbg=white cterm=none 59 | " highlight TopLine ctermfg=black ctermbg=white cterm=none 60 | " highlight TopLineSel ctermfg=black ctermbg=white cterm=bold 61 | " highlight WildMenu ctermfg=white ctermbg=default cterm=underline,reverse 62 | " highlight Win ctermfg=magenta ctermbg=default cterm=bold 63 | -------------------------------------------------------------------------------- /.vifm/configs/favicons.vifm: -------------------------------------------------------------------------------- 1 | " ------------------------------------------------------------------------------ 2 | " locate: ${XDG_CONFIG_HOME}/.vifm/configs/favicons.vifm 3 | " detail: nerd font icons within 'vifm' 4 | " ------------------------------------------------------------------------------ 5 | " credit: https://github.com/cirala/vifm_devicons 6 | " notice: edited to add more extensions while cleaning up a bit (WIP) 7 | " ------------------------------------------------------------------------------ 8 | 9 | " Filetypes/Directories 10 | set classify=' :dir:/, :exe:, :reg:, :link:,? :?:, ::../::' 11 | 12 | " Language Oriented 13 | set classify+='󰪛 ::*.asm::' 14 | set classify+=' ::*.c++,,*.cpp,,*.cxx,,*.h::' 15 | set classify+=' ::*.cc,,*.c::' 16 | set classify+=' ::*.clj,,*.cljc,,*.cljs,,*.cljr,,*.cljd,,*.edn::' 17 | set classify+=' ::*.d::' 18 | set classify+=' ::*.dart::' 19 | set classify+=' ::*.erl,,*.hrl::' 20 | set classify+=' ::*.f#,,*.fs,,*.fsi,,*.fsscript,,*.fsx::' 21 | set classify+=' ::*.go::' 22 | set classify+=' ::*.hs,,*.lhs::' 23 | set classify+=' ::*.java,,*.jar::' 24 | set classify+=' ::*.scala::' 25 | set classify+=' ::*.jl::' 26 | set classify+=' ::*.lua::' 27 | set classify+=' ::*.markdown,,*.md::' 28 | set classify+='λ ::*.ml,,*.mli::' 29 | set classify+=' ::*.nim::' 30 | set classify+=' ::*.odin::' 31 | set classify+=' ::*.pl,,*.pm,,*.t::' 32 | set classify+=' ::*.py,,*.pyc,,*.pyd,,*.pyo::' 33 | set classify+=' ::*.R,,*.r::' 34 | set classify+=' ::*.rb::' 35 | set classify+=' ::*.rlib,,*.rs::' 36 | set classify+=' ::*.zig::' 37 | set classify+=' ::*.fish,,*.sh,,*.bash,,*.zsh::' 38 | 39 | " Web Specific 40 | set classify+=' ::*.rss::' 41 | set classify+=' ::*.ejs,,*.htm,,*.html,,*.slim,,*.xml,,*.xbel::' 42 | set classify+=' ::*.css::' 43 | set classify+=' ::*.styl::' 44 | set classify+=' ::*.scss::' 45 | set classify+=' ::*.js::' 46 | set classify+=' ::*.ts::' 47 | set classify+=' ::*.jsx::' 48 | set classify+=' ::*.coffee::' 49 | set classify+=' ::*.mustasche::' 50 | set classify+=' ::*.php::' 51 | set classify+=' ::*.twig::' 52 | set classify+=' ::*.xul::' 53 | 54 | " Multimedia 55 | set classify+='󰂫 ::*.blend::' 56 | set classify+=' ::*.kra::' 57 | set classify+=' ::*.xcf::' 58 | set classify+=' ::*.ai::' 59 | set classify+=' ::*.psb,,*.psd::' 60 | set classify+='󰰚 ::*.pur::' 61 | set classify+=' ::*.hdr,,*.pbr::' 62 | set classify+='󰯕 ::*.exif::' 63 | set classify+=' ::*.qoi,,*.exr,,*.pic,,*.ppm,,*.pgm,,*.pbm,,*.bmp,,*.gif,,*.ico,,*.xmp,,*.jpeg,,*.jpg,,*.png,,*.svg,,*.svgz,,*.tga,,*.tiff,,*.xmb,,*.xpm,,*.xspf,,*.xwd,,*.cr2,,*.dng,,*.3fr,,*.ari,,*.arw,,*.bay,,*.crw,,*.cr3,,*.cap,,*.data,,*.dcs,,*.dcr,,*.drf,,*.eip,,*.erf,,*.fff,,*.gpr,,*.iiq,,*.k25,,*.kdc,,*.mdc,,*.mef,,*.mos,,*.mrw,,*.obm,,*.orf,,*.pef,,*.ptx,,*.pxn,,*.r3d,,*.raf,,*.raw,,*.rwl,,*.rw2,,*.rwz,,*.sr2,,*.srf,,*.srw,,*.tif,,*.x3f,,*.webp,,*.avif,,*.jxl::' 64 | set classify+=' ::*.avi,,*.flv,,*.mkv,,*.mov,,*.mp4,,*.mpeg,,*.mpg,,*.webm,,*.av1::' 65 | set classify+='󰝚 ::*.qoa,,*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.opus,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::' 66 | set classify+=' ::*.ttf,,*.otf,,*.woff,,*.woff2,,*.eot::' 67 | 68 | " Archives/Documents/DBs 69 | set classify+=' ::*.7z,,*.apk,,*.bz2,,*.cab,,*.cpio,,*.deb,,*.gem,,*.gz,,*.gzip,,*.lh,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.tar,,*.tgz,,*.xz,,*.zip,,*.zst::' 70 | set classify+=' ::*.epub,,*.pdf,,*.fb2,,*.djvu::' 71 | set classify+=' ::*.cbr,,*.cbz::' 72 | set classify+=' ::*.doc,,*.docx,,*.adoc::' 73 | set classify+=' ::*.pptx,,*.ppt::' 74 | set classify+=' ::*.xls,,*.xlsmx::' 75 | set classify+=' ::*.db,,*.dump,,*.sql::' 76 | 77 | " Configuration/Unique/Other 78 | set classify+=' ::*.json::' 79 | set classify+='󰘦 ::*.json_*::' 80 | set classify+=' ::*.less,,*.bat,,*.conf,,*.ini,,*.rc,,*.yml,,*.yaml,,*.toml,,*.cfg,,*.prefs::' 81 | set classify+=' ::.zshrc,,.zlogin,,zsh-aliases,,zsh-exports,,zsh-functions,,zsh-options,,user-dirs.dirs,,mimeapps.list,,sxhkdrc,,.asoundrc,,.clang-format,,.dir_colors,,.mailcap,,.npmrc,,.pqivrc,,.ripgreprc,,kritarc,,kritadisplayrc,,.Xdefaults,,.Xresources,,.bashprofile,,.bash_profile,,.bashrc,,.dmrc,,.d_store,,.fasd,,.gitconfig,,.gitignore,,.jack-settings,,.mime.types,,.nvidia-settings-rc,,.pam_environment,,.profile,,.recently-used,,.selected_editor,,.xinitpurc,,.zprofile,,.yarnc,,.snclirc,,.tmux.conf,,.urlview,,.config,,.ini,,.user-dirs.dirs,,.mimeapps.list,,.offlineimaprc,,.msmtprc,,config::' 82 | set classify+=' ::.zcompdump.zwc,,.zcompdump,,.zshrc.zwc,,.Xauthority::' 83 | set classify+=' ::.vim,,.vimrc,,.gvimrc,,.vifm::' 84 | set classify+='󰂠 ::.hushlogin::' 85 | set classify+=' ::.wget-hsts,,.history,,.bash_history::' 86 | set classify+=' ::*.xmodmap,,*.xbindkeysrc,,xbindkeys::' 87 | set classify+=' ::*.log::' 88 | set classify+=' ::favicons.*::' 89 | set classify+=' ::README,,readme::' 90 | set classify+=' ::gruntfile.coffee,,gruntfile.js,,gruntfile.ls::' 91 | set classify+=' ::gulpfile.coffee,,gulpfile.js,,gulpfile.ls::' 92 | set classify+=' ::react.jsx::' 93 | set classify+='󱜥 ::license,,copyright,,copying,,LICENSE,,COPYRIGHT,,COPYING::' 94 | set classify+=' ::*.gpg,,*.asc,,*.kbx,,*.key,,*.rev::' 95 | set classify+=' ::*.diff,,*.sum,,*.md5,,*.sha512::' 96 | set classify+=' ::*.o,,*.out,,*.dat,,*.bin::' 97 | set classify+=' ::*.sln,,*.suo::' 98 | set classify+=' ::*.exe::' 99 | set classify+=' ::*.part::' 100 | set classify+='󱖶 ::*.safetensors::' 101 | -------------------------------------------------------------------------------- /.vifm/vifmrc: -------------------------------------------------------------------------------- 1 | " ------------------------------------------------------------------------------ 2 | " locate: ${XDG_CONFIG_HOME}/.vifm/vifmrc 3 | " author: Vincent (github.com/milomouse) 4 | " detail: main vifm configuration file 5 | " ------------------------------------------------------------------------------ 6 | 7 | " Preferred theme 8 | colorscheme candymouse 9 | 10 | " Use vifm file operations instead of external utilities 11 | set syscalls 12 | 13 | " Change default programs 14 | set vicmd=nvim 15 | set findprg='fd %A -HIt f' 16 | set grepprg='rg --line-number --smart-case %i %a %s' 17 | "set grepprg='ag --line-numbers %i\ %a\ %s' 18 | 19 | " Basic settings 20 | set nowrap 21 | set notrash 22 | set norunexec 23 | set nofollowlinks 24 | set noiec 25 | set nolsview 26 | set nomillerview 27 | set nohlsearch 28 | set noincsearch 29 | 30 | set dotfiles 31 | set sortnumbers 32 | set ignorecase 33 | set smartcase 34 | set undolevels=100 35 | set history=100 36 | set vimhelp 37 | set scrolloff=4 38 | set wildmenu 39 | set wildstyle=popup 40 | set timefmt=%Y-%m-%d\ %H:%M 41 | set suggestoptions=normal,visual,view,otherpane,keys,marks,registers 42 | 43 | set statusline=" %A%= %10u:%-7g %15s %20d " 44 | " set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d " 45 | 46 | set vifminfo=dhistory,savedirs,chistory,state,tui,shistory, 47 | \phistory,fhistory,dirstack,registers,bookmarks,bmarks 48 | 49 | 50 | " ------------------------------------------------------------------------------ 51 | 52 | " :com[mand][!] command_name action 53 | " The following macros can be used in a command 54 | " %a is replaced with the user arguments. 55 | " %c the current file under the cursor. 56 | " %C the current file under the cursor in the other directory. 57 | " %f the current selected file, or files. 58 | " %F the current selected file, or files in the other directory. 59 | " %b same as %f %F. 60 | " %d the current directory name. 61 | " %D the other window directory name. 62 | " %m run the command in a menu window 63 | 64 | command! reload :write | restart 65 | command! mkcd :mkdir %a | cd %a 66 | command! vgrep nvim "+grep %a" 67 | command! diff nvim -d %f %F 68 | command! df df -h %m 2> /dev/null 69 | command! zip zip -r %f.zip %f 70 | command! run !! ./%f 71 | "command! make !!make %a 72 | 73 | " ------------------------------------------------------------------------------ 74 | 75 | 76 | " Default fileviewer (overrides can be defined later) 77 | fileviewer *[^/],.*[^/] env -uCOLORTERM bat --color always --wrap never --pager never %c --style=changes 78 | 79 | " PDF 80 | filextype *.pdf 81 | \ {View in mupdf} 82 | \ mupdf -Y 2 -I %c, 83 | " fileviewer *.pdf pdftotext -nopgbrk %c - 84 | 85 | " Various Documents 86 | filextype *.ps,*.eps,*.ps.gz,*.djvu,*.cbz 87 | \ {View in mupdf} 88 | \ mupdf -Y 2 -I %f, 89 | 90 | " Office files 91 | "filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f & 92 | "fileviewer *.doc catdoc %c 93 | "fileviewer *.docx, docx2txt.pl %f - 94 | 95 | " Audio 96 | filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus 97 | \ {Play using mpv} 98 | \ mpv -no-video %c, 99 | \ {Play using ffplay} 100 | \ ffplay %c, 101 | fileviewer *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus 102 | \ mediainfo %c 103 | " \ ffprobe -v error -show_format -of default=noprint_wrappers=1 %c 2>&1 104 | 105 | " Video 106 | filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,*.fl[icv], 107 | \*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,*.as[fx] 108 | \ {View using mpv} 109 | \ mpv -really-quiet -fs %c &, 110 | fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,*.fl[icv], 111 | \*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,*.as[fx] 112 | \ mediainfo %c 113 | " \ ffprobe -v error -show_format -of default=noprint_wrappers=1 %c 2>&1 114 | 115 | " Web 116 | filextype *.html,*.htm 117 | \ {Open with Firefox} 118 | \ firefox-bin --new-tab %f &, 119 | filetype *.html,*.htm 120 | \ lynx -vikeys -tna -force_secure -accept_all_cookies -cookie_file='/tmp/lynx_cookies' -short_url -show_rate -lss='~/lynx/lynx.lss' %f, 121 | fileviewer *.html,*htm 122 | \ lynx -dump %f 123 | 124 | " Object 125 | filetype *.o nm %f | less 126 | 127 | " Man page 128 | filetype *.[1-8] man ./%c 129 | fileviewer *.[1-8] man ./%c | col -b 130 | 131 | " Images 132 | filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp, 133 | \ {View in sxiv} 134 | \ sxiv -abp %f &, 135 | \ {View in } 136 | \ pqiv -t --low-memory %f 2>/dev/null&, 137 | fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp, 138 | \ magick identify %f 2> /dev/null 139 | 140 | " GPG signature 141 | filetype *.asc 142 | \ {Check signature} 143 | \ !!gpg --verify %c, 144 | 145 | " Checksums 146 | filetype *.md5 147 | \ {Check MD5 hash sum} 148 | \ md5sum -c %f %S, 149 | 150 | filetype *.sha1 151 | \ {Check SHA1 hash sum} 152 | \ sha1sum -c %f %S, 153 | 154 | filetype *.sha256 155 | \ {Check SHA256 hash sum} 156 | \ sha256sum -c %f %S, 157 | 158 | filetype *.sha512 159 | \ {Check SHA512 hash sum} 160 | \ sha512sum -c %f %S, 161 | 162 | " Torrent 163 | " filetype *.torrent transmission-remote-cli %f & 164 | fileviewer *.torrent transmission-show %c 165 | 166 | " FuseZipMount 167 | filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg 168 | \ {View contents} 169 | \ zip -sf %c | less, 170 | \ {Extract here} 171 | \ tar -xf %c, 172 | \ {Mount with fuse-zip} 173 | \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, 174 | fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zipinfo %c 175 | "fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c 176 | 177 | " ArchiveMount 178 | filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz 179 | \ {Mount with archivemount} 180 | \ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR, 181 | fileviewer *.tar tar -tf %c 182 | fileviewer *.tgz,*.tar.gz tar -tzf %c 183 | fileviewer *.tar.bz2,*.tbz2 tar -tjf %c 184 | fileviewer *.tar.xz,*.xz tar -tJf %c 185 | fileviewer *.tar.txz,*.txz xz --list %c 186 | 187 | " Rar2FsMount and rar archives 188 | filetype *.rar 189 | \ {Mount with rar2fs} 190 | \ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR, 191 | fileviewer *.rar unrar v %c 192 | 193 | " IsoMount 194 | filetype *.iso 195 | \ {Mount with fuseiso} 196 | \ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR, 197 | 198 | " SshMount 199 | filetype *.ssh 200 | \ {Mount with sshfs} 201 | \ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR, 202 | 203 | " FtpMount 204 | filetype *.ftp 205 | \ {Mount with curlftpfs} 206 | \ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR, 207 | 208 | " Fuse7z and 7z archives 209 | filetype *.7z 210 | \ {Mount with fuse-7z} 211 | \ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR, 212 | fileviewer *.7z 7z l %c 213 | 214 | " Program Specific 215 | " fileviewer *.json,*.jl,*.rst,*.pl, 216 | " \ bat %c -p 217 | 218 | " " Visualize various files 219 | " fileviewer *.vifm,vifmrc,vifminfo,xinitrc,Xresources, 220 | " \autostart,sxhkdrc,*.dck,*.xmodmap, 221 | " \zsh-options,zsh-aliases,zsh-functions,zsh-exports, 222 | " \ bat %c -p 223 | 224 | " Obscure various files 225 | fileviewer *.gpg,*.kbx,*.key,*.rev,.Xauthority,*.log,*.*~, 226 | \ echo "(OBSCURED)" 227 | 228 | " Directory 229 | fileviewer */, tree %f 230 | 231 | " Open all other files with default system programs (you can also remove allk 232 | " :file[x]type commands above to ensure they don't interfere with system-wide 233 | " settings). By default all unknown files are opened with 'vi[x]cmd'. 234 | " Use a custom ~/.vifm/scripts/ zsh file to display non-handled files. 235 | filetype * xdg-open 236 | 237 | " ------------------------------------------------------------------------------ 238 | 239 | " Examples of configuring both panels 240 | " Customize view columns a bit (enable ellipsis for truncated file names) 241 | windo set viewcolumns=-{name}..,6{}. 242 | 243 | " Filter-out build and temporary files 244 | "windo filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/ 245 | 246 | " ------------------------------------------------------------------------------ 247 | 248 | " Display sorting dialog 249 | nnoremap S :sort 250 | 251 | " Toggle visibility of preview window 252 | nnoremap w :view 253 | vnoremap w :viewgv 254 | 255 | " Change directory of current pane to directory of inactive pane 256 | nnoremap W :cd %D 257 | 258 | " Change directory to last used one 259 | nnoremap B :cd - 260 | 261 | " Yank current directory path into the clipboard 262 | nnoremap yd :!echo %d | xclip -selection primary -i %i:echo expand('%"d') "yanked to primary" 263 | nnoremap yD :!echo %d | xclip -selection clipboard -i %i:echo expand('%"d') "yanked to clipboard" 264 | 265 | " Yank current file path into the clipboard 266 | nnoremap yf :!echo %c:p | xclip -selection primary -i %i:echo expand('%"c:p') "yanked to primary" 267 | nnoremap yF :!echo %c:p | xclip -selection clipboard -i %i:echo expand('%"c:p') "yanked to clipboard" 268 | 269 | " Start shell in current directory (in current window while minimizing vifm) 270 | nnoremap o :shell 271 | 272 | " Open shell in current directory (in a new window) 273 | nnoremap O :!kitty --title "[VIFM] $PWD" 2>/dev/null & 274 | 275 | " Open editor to edit vifmrc and apply settings after returning to vifm 276 | " MYVIFMRC is export variable within shell configuration (zsh/zsh-exports) 277 | nnoremap E :write | edit $MYVIFMRC | restart 278 | 279 | " Directory bindings 280 | nnoremap gh :cd /home/mother/ 281 | nnoremap J 5j 282 | nnoremap K 5k 283 | 284 | " Panel resizing 285 | nnoremap - 2< 286 | nnoremap = 2> 287 | 288 | " Redraw window 289 | nnoremap b :redraw 290 | 291 | " Examples 292 | "nnoremap 293 | "nnoremap :!less %f 294 | 295 | " ------------------------------------------------------------------------------ 296 | 297 | " Add additional place to look for executables 298 | "let $PATH=$HOME.'/home/mother/code/bin:'.$PATH 299 | 300 | "if !has('win') 301 | " set slowfs=curlftpfs 302 | "endif 303 | 304 | " nerd icons 305 | source $XDG_CONFIG_HOME/.vifm/configs/favicons.vifm 306 | 307 | " vim: filetype=vifm : 308 | -------------------------------------------------------------------------------- /.zlogin: -------------------------------------------------------------------------------- 1 | # autologin from `mingetty' (--autologin) then auto `startx' once from tty1 2 | if [[ -z "${DISPLAY}" ]] && [[ $(tty) == /dev/tty1 ]] ; then 3 | startx 4 | fi 5 | 6 | # change directories from configuration dir to base dir 7 | if [[ $PWD == $HOME ]] ; then 8 | cd ${H:-/home/${USER}} 9 | fi 10 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | ####################################################### 2 | ## locate: ${XDG_CONFIG_HOME}/.zshrc ## 3 | ## author: Vincent (github.com/milomouse) ## 4 | ## detail: main configuration file for `zsh' ## 5 | ####################################################### 6 | 7 | # source external configuration files: 8 | for i in ${HOME}/zsh/zsh-{options,exports,aliases,functions} /usr/share/fzf/key-bindings.zsh ; do 9 | if [[ -f $i ]] { source $i } else { print "Cannot find file: $i" } 10 | done 11 | 12 | # prompt line: 13 | [[ ${TERM} =~ screen ]] && precmd() { print -Pn "\e]2;%2d\a" } 14 | function zle-keymap-select zle-line-init zle-line-finish 15 | { 16 | if [[ $KEYMAP == (viins|main) ]] ; then 17 | _VP1="{magenta}MOTHER%b%F{white}" 18 | _VP2="{magenta}" 19 | else 20 | _VP1="{black}MOTHER%b%F{cyan}" 21 | _VP2="{black}" 22 | fi 23 | zle reset-prompt 24 | zle -R 25 | } 26 | PS1='%(1j.%b%F{white}%j .)%(0?..%B%F{red}%? )%B%F${_VP1}%#%b%f ' 27 | PS2='%B%F${_VP2}> %b%f' 28 | PS3='%B%F{white}?# %b%f%F{red}%# %f' 29 | PS4='%B%F{white}%_ %b%f%F{magenta}%# %f%B%F{white}+%N:%i %b%f%F{magenta}%# %f' 30 | zle -N zle-line-init 31 | zle -N zle-line-finish 32 | zle -N zle-keymap-select 33 | 34 | # set title to current directory 35 | precmd () {print -Pn "\e]0;%~\a"} 36 | 37 | # auto-completion: 38 | autoload -U compinit 39 | compinit 40 | _force_rehash() { (( CURRENT == 1 )) && rehash ; return 1 } 41 | zstyle ':completion:::::' completer _force_rehash _expand _complete _approximate 42 | zstyle ':completion:*:descriptions' format "- %d -" 43 | zstyle ':completion:*:default' list-prompt '%S%M matches%s' 44 | zstyle ':completion:*:manuals' separate-sections true 45 | zstyle ':completion:*:manuals.(^1*)' insert-sections true 46 | zstyle ':completion:*' verbose true 47 | zstyle ':completion:*' use-cache on 48 | zstyle ':completion:*' cache-path ${XDG_CACHE_HOME:-${HOME}/cache} 49 | zstyle ':completion:*' squeeze-slashes true 50 | zstyle ':completion:*:functions' ignored-patterns '_*' 51 | zstyle ':completion:*:*:kill:*' menu yes select 52 | zstyle ':completion:*:*:kill:*:processes' command 'ps haxopid:5,user:4,%cpu:4,ni:2,stat:3,etime:8,args' 53 | zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' 54 | zstyle ':completion:*:kill:*' force-list always 55 | 56 | # framebuffer colors: 57 | if [[ ${TERM} == linux ]] || [[ ${TERM} =~ screen && ${+DISPLAY} == 0 ]]; then 58 | echo -en "\e]P0000000" ; echo -en "\e]P83D3A3A" # 0: black/default 59 | echo -en "\e]P1E31763" ; echo -en "\e]P9C2003B" # 1: red 60 | echo -en "\e]P200CC6C" ; echo -en "\e]PA008C6C" # 2: green 61 | echo -en "\e]P3EAE900" ; echo -en "\e]PBFFCB6B" # 3: yellow 62 | echo -en "\e]P4009DFF" ; echo -en "\e]PC0047BB" # 4: blue 63 | echo -en "\e]P54F4FAF" ; echo -en "\e]PD6300FF" # 5: magenta 64 | echo -en "\e]P600CCCC" ; echo -en "\e]PE00AFAF" # 6: cyan 65 | echo -en "\e]P7A9B1A6" ; echo -en "\e]PF9E9DA5" # 7: white 66 | fi 67 | 68 | # source custom colors: 69 | eval $(dircolors -b ${HOME}/.dir_colors) 70 | 71 | # Fish-like syntax highlighting for ZSH: 72 | if [[ -f $HOME/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then 73 | source $HOME/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 74 | 75 | # activate highlighters: 76 | ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) 77 | 78 | # override main colors: 79 | ZSH_HIGHLIGHT_STYLES[default]='none' 80 | ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold' 81 | ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=blue,bold' 82 | ZSH_HIGHLIGHT_STYLES[assign]='fg=yellow,bold' 83 | ZSH_HIGHLIGHT_STYLES[alias]='fg=white' 84 | ZSH_HIGHLIGHT_STYLES[function]='fg=white' 85 | ZSH_HIGHLIGHT_STYLES[builtin]='fg=magenta' 86 | ZSH_HIGHLIGHT_STYLES[command]='fg=magenta' 87 | ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=red,bold' 88 | ZSH_HIGHLIGHT_STYLES[path]='fg=white,underline' 89 | ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=white,underline' 90 | ZSH_HIGHLIGHT_STYLES[path_approx]='fg=green,bold' 91 | ZSH_HIGHLIGHT_STYLES[globbing]='fg=yellow,bold' 92 | ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=yellow' 93 | ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue' 94 | ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue' 95 | ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=blue' 96 | ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=blue' 97 | ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=red,bold' 98 | ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=blue,bold' 99 | 100 | # override bracket colors: 101 | ZSH_HIGHLIGHT_STYLES[bracket-error]='fg=red,bold' 102 | ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=green,bold' 103 | ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=white,bold' 104 | ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=blue,bold' 105 | ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=green,bold' 106 | ZSH_HIGHLIGHT_STYLES[bracket-level-5]='fg=white,bold' 107 | ZSH_HIGHLIGHT_STYLES[bracket-level-6]='fg=blue,bold' 108 | 109 | # override pattern decorations: 110 | ZSH_HIGHLIGHT_PATTERNS+=('rm -[f,r] *' 'fg=black,bg=white,bold') 111 | ZSH_HIGHLIGHT_PATTERNS+=('rm -[f,r][f,r] *' 'fg=black,bg=white,bold') 112 | ZSH_HIGHLIGHT_PATTERNS+=('shred *' 'fg=black,bg=white,bold') 113 | 114 | fi 115 | 116 | # Fish-like history sub-string search for ZSH (load AFTER syntax): 117 | if [[ -f $HOME/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh ]]; then 118 | source $HOME/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh 119 | 120 | # override main colors: 121 | HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='fg=cyan,bold' 122 | HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=black' 123 | HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i' 124 | 125 | # bind UP/DOWN in normal mode: 126 | zmodload zsh/terminfo 127 | bindkey "$terminfo[kcuu1]" history-substring-search-up 128 | bindkey "$terminfo[kcud1]" history-substring-search-down 129 | 130 | # bind K/J for VI mode: 131 | bindkey -M vicmd 'k' history-substring-search-up 132 | bindkey -M vicmd 'j' history-substring-search-down 133 | fi 134 | 135 | # keybindings (defined AFTER scripts): 136 | bindkey "^[[2~" overwrite-mode 137 | bindkey "^[[3~" delete-char 138 | bindkey "^[[5~" up-line-or-search 139 | bindkey "^[[6~" down-line-or-search 140 | bindkey "^[[1~" beginning-of-line 141 | bindkey "^[[7~" beginning-of-line 142 | bindkey "^[[4~" end-of-line 143 | bindkey "^[[8~" end-of-line 144 | bindkey "^?" backward-delete-char 145 | bindkey '^R' history-incremental-search-backward 146 | bindkey -M vicmd '^U' vi-kill-line 147 | bindkey -M viins '^U' kill-whole-line 148 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Current Setup: 2 | -------------- 3 | 4 | + *DISTRO* = Gentoo ( ~amd64 nomultilib llvm ) ( [link](https://www.gentoo.org) ) 5 | 6 | + *KERNEL* = GNU/Linux 6.12.10 ( [link](https://kernel.org) ) 7 | 8 | + *PATCHSET* = Zen ( [link](https://github.com/zen-kernel/zen-kernel) ) 9 | 10 | + *COMPILER* = Clang ( [link](https://clang.llvm.org/) / [link](https://llvm.org) ) 11 | 12 | + *INIT* = OpenRC ( [link](https://github.com/OpenRC/openrc) ) 13 | 14 | + *UDEV* = mdevd ( [link](https://github.com/skarnet/mdevd) ) + libudev-zero ( [link](https://github.com/illiliti/libudev-zero) ) 15 | 16 | + *SHELL* = Zsh ( [link](https://www.zsh.org/) ) 17 | 18 | + *EDITOR* = Neovim ( [link](https://neovim.io/) ) 19 | 20 | + *TERMINAL MULTIPLEX* = Tmux ( [link](https://github.com/tmux/tmux/wiki) ) 21 | 22 | + *TERMINAL EMULATOR* = kitty ( [link](https://sw.kovidgoyal.net/kitty/) ) 23 | 24 | + *FILE EXPLORER* = vifm ( [link](https://vifm.info) ) 25 | 26 | + *IMAGE VIEWER* = sxiv ( [link](https://github.com/xyb3rt/sxiv) ) + pqiv ( [link](https://github.com/phillipberndt/pqiv) ) 27 | 28 | + *MEDIA PLAYER* = mpv ( [link](https://mpv.io/) ) 29 | 30 | + *DOCUMENT READER* = mupdf ( [link](https://mupdf.com/) ) 31 | 32 | + *WEB BROWSER* = Firefox ( [link](https://www.mozilla.org/en-US/firefox/new/) ) + Surfingkeys ( [link](https://github.com/brookhong/Surfingkeys) ) 33 | 34 | + *WINDOW MANAGER* = herbstluftwm ( [link](https://herbstluftwm.org/) ) 35 | 36 | 37 | Screenshots: 38 | -------------- 39 | 40 | ![Workload](share/images/2025_02_01-113912.png) 41 | -------------------------------------------------------------------------------- /clangd/config.yaml: -------------------------------------------------------------------------------- 1 | # file: ${XDG_CONFIG_HOME}/clangd/config.yaml 2 | # default error checking for all c/c++ files inside file location 3 | CompileFlags: 4 | Add: [ 5 | -Wpedantic, 6 | -Wall, 7 | -Wextra 8 | ] 9 | -------------------------------------------------------------------------------- /data/krita/color-schemes/Candymouse.colors: -------------------------------------------------------------------------------- 1 | [ColorEffects:Disabled] 2 | Color=56,56,56 3 | ColorAmount=0.0 4 | ColorEffect=0 5 | ContrastAmount=0.65 6 | ContrastEffect=2 7 | IntensityAmount=0.10 8 | IntensityEffect=2 9 | 10 | [ColorEffects:Inactive] 11 | ChangeSelectionColor=true 12 | Color=112,111,110 13 | ColorAmount=-0.9 14 | ColorEffect=1 15 | ContrastAmount=0.25 16 | ContrastEffect=2 17 | Enable=true 18 | IntensityAmount=0 19 | IntensityEffect=0 20 | 21 | [Colors:Button] 22 | BackgroundAlternate=224,223,222 23 | BackgroundNormal=45,46,51 24 | DecorationFocus=58,167,221 25 | DecorationHover=110,214,255 26 | ForegroundActive=146,76,157 27 | ForegroundInactive=137,136,135 28 | ForegroundLink=0,87,174 29 | ForegroundNegative=191,3,3 30 | ForegroundNeutral=176,128,0 31 | ForegroundNormal=237,237,237,165 32 | ForegroundPositive=0,110,40 33 | ForegroundVisited=100,74,155 34 | 35 | [Colors:Selection] 36 | BackgroundAlternate=62,138,204 37 | BackgroundNormal=50,51,56 38 | DecorationFocus=58,167,221 39 | DecorationHover=110,214,255 40 | ForegroundActive=108,36,119 41 | ForegroundInactive=199,226,248 42 | ForegroundLink=0,49,110 43 | ForegroundNegative=156,14,14 44 | ForegroundNeutral=255,221,0 45 | ForegroundNormal=210,210,210 46 | ForegroundPositive=128,255,128 47 | ForegroundVisited=69,40,134 48 | 49 | [Colors:Tooltip] 50 | BackgroundAlternate=196,224,255 51 | BackgroundNormal=30,30,33 52 | DecorationFocus=58,167,221 53 | DecorationHover=110,214,255 54 | ForegroundActive=255,128,224 55 | ForegroundInactive=137,136,135 56 | ForegroundLink=88,172,255 57 | ForegroundNegative=191,3,3 58 | ForegroundNeutral=176,128,0 59 | ForegroundNormal=231,253,255 60 | ForegroundPositive=0,110,40 61 | ForegroundVisited=150,111,232 62 | 63 | [Colors:View] 64 | BackgroundAlternate=45,46,51 65 | BackgroundNormal=30,30,33 66 | DecorationFocus=58,167,221 67 | DecorationHover=110,214,255 68 | ForegroundActive=146,76,157 69 | ForegroundInactive=137,136,135 70 | ForegroundLink=0,157,255 71 | ForegroundNegative=191,3,3 72 | ForegroundNeutral=176,128,0 73 | ForegroundNormal=237,237,237,165 74 | ForegroundPositive=0,110,40 75 | ForegroundVisited=0,71,187 76 | 77 | [Colors:Window] 78 | BackgroundAlternate=218,217,216 79 | BackgroundNormal=45,46,51 80 | DecorationFocus=58,167,221 81 | DecorationHover=110,214,255 82 | ForegroundActive=146,76,157 83 | ForegroundInactive=137,136,135 84 | ForegroundLink=0,87,174 85 | ForegroundNegative=191,3,3 86 | ForegroundNeutral=176,128,0 87 | ForegroundNormal=237,237,237 88 | ForegroundPositive=0,110,40 89 | ForegroundVisited=100,74,155 90 | 91 | [General] 92 | ColorScheme=Candymouse 93 | Name=Candymouse 94 | 95 | [KDE] 96 | contrast=7 97 | 98 | [WM] 99 | activeBackground=96,148,207 100 | activeForeground=255,255,255 101 | inactiveBackground=224,223,222 102 | inactiveForeground=20,19,18 103 | -------------------------------------------------------------------------------- /data/krita/shortcuts/VincentXYZ.shortcuts: -------------------------------------------------------------------------------- 1 | [Shortcuts] 2 | file_quit=Ctrl+Alt+Shift+Q 3 | windows_next=Alt+] 4 | windows_previous=Alt+[ 5 | -------------------------------------------------------------------------------- /gotop/candymouse.json: -------------------------------------------------------------------------------- 1 | { 2 | "Fg": 59, 3 | "Bg": -1, 4 | 5 | "BorderLabel": 249, 6 | "BorderLine": 238, 7 | 8 | "CPULines": [61, 27, 78, 125, 75, 163, 56, 73], 9 | 10 | "BattLines": [61, 27, 78, 125, 75, 163, 56, 73], 11 | 12 | "MemLines": [242, 238, 61, 27, 78, 125, 75, 163, 56, 73], 13 | 14 | "ProcCursor": 61, 15 | 16 | "Sparklines": [61, 73], 17 | 18 | "DiskBar": 242, 19 | 20 | "TempLow": 78, 21 | "TempHigh": 125 22 | } 23 | -------------------------------------------------------------------------------- /gotop/custom: -------------------------------------------------------------------------------- 1 | 4:procs/3 4:cpu/3 2 | 2:mem/1 2:disk/1 2:net/1 3 | -------------------------------------------------------------------------------- /gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Vimix-dark-beryl 3 | gtk-application-prefer-dark-theme=false 4 | gtk-icon-theme-name=Suru-++ 5 | gtk-cursor-theme-name=Simp1e-Catppuccin 6 | gtk-cursor-theme-size=0 7 | gtk-font-name=Dina 10 8 | gtk-xft-antialias=1 9 | gtk-xft-hinting=1 10 | gtk-xft-hintstyle=hintmedium 11 | gtk-xft-rgba=rgb 12 | gtk-xft-dpi=147456 13 | gtk-overlay-scrolling=true 14 | gtk-menu-images=false 15 | gtk-button-images=false 16 | -------------------------------------------------------------------------------- /gtk-4.0/gtk.css: -------------------------------------------------------------------------------- 1 | * {all: unset;} 2 | @import url("/home/mother/conf/.themes/Vimix-dark-beryl/gtk-4.0/gtk.css") 3 | -------------------------------------------------------------------------------- /gtk-4.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Vimix-dark-beryl 3 | gtk-application-prefer-dark-theme=false 4 | gtk-icon-theme-name=Suru-++ 5 | gtk-cursor-theme-name=Simp1e-Catppuccin 6 | gtk-cursor-theme-size=0 7 | gtk-font-name=Dina 10 8 | gtk-xft-antialias=1 9 | gtk-xft-hinting=1 10 | gtk-xft-hintstyle=hintmedium 11 | gtk-xft-rgba=rgb 12 | gtk-xft-dpi=147456 13 | gtk-overlay-scrolling=true 14 | -------------------------------------------------------------------------------- /herbstluftwm/autostart: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ####################################################### 3 | ## locate: ${XDG_CONFIG_HOME}/herbstluftwm/autostart ## 4 | ## author: Vincent (github.com/milomouse) ## 5 | ## detail: startup file for `herbstluftwm' ## 6 | ####################################################### 7 | 8 | # function shortcut 9 | hc() { 10 | herbstclient "$@" 11 | } 12 | 13 | # reload and reset 14 | hc emit_hook reload 15 | hc keyunbind --all 16 | 17 | # modifier key 18 | Mod=Mod4 19 | 20 | # define tags and associated keys 21 | # secondary monitor always assigned to the second tag, 22 | # so we change the order of tag/index to be more coherent once created 23 | tag_names=( I X II III IV V VI VII) 24 | tag_keys=( 1 0 {2..7} ) 25 | 26 | # frame layout (always prefer one frame by default) 27 | hc set default_frame_layout 2 28 | hc set_layout max 29 | 30 | # automatically assign keybindings to appropriate tag 31 | hc rename default "${tag_names[0]}" || true 32 | for i in ${!tag_names[@]} ; do 33 | hc add "${tag_names[$i]}" 34 | key="${tag_keys[$i]}" 35 | if ! [ -z "$key" ] ; then 36 | hc keybind "$Mod-$key" use_index "$i" 37 | hc keybind "$Mod-Shift-$key" move_index "$i" 38 | fi 39 | done 40 | 41 | # mouse/pointer related 42 | hc mouseunbind 43 | hc mousebind $Mod-B1 move 44 | hc mousebind $Mod-B2 resize 45 | hc mousebind $Mod-B3 zoom 46 | hc set focus_follows_mouse 0 47 | 48 | # theme attributes 49 | hc attr theme.tiling.reset 1 50 | hc attr theme.floating.reset 1 51 | hc attr theme.floating.border_width 13 52 | hc attr theme.floating.outer_width 0 53 | hc attr theme.border_width 13 54 | hc attr theme.inner_width 0 55 | hc attr theme.outer_width 0 56 | hc attr theme.inner_color '#080808' 57 | hc attr theme.active.inner_color '#292929' 58 | hc attr theme.normal.inner_color '#080808' 59 | hc attr theme.outer_color '#292929' 60 | hc attr theme.active.outer_color '#616161' 61 | hc attr theme.normal.outer_color '#080808' 62 | # hc attr theme.active.color '#262626' 63 | # hc attr theme.active.color '#292929' 64 | hc attr theme.active.color '#303030' 65 | # hc attr theme.active.color '#313238' 66 | hc attr theme.normal.color '#161616' 67 | # hc attr theme.normal.color '#121212' 68 | # hc attr theme.normal.color '#1E1E21' 69 | hc attr theme.urgent.color '#C2003B' 70 | # hc attr theme.urgent.color '#FF009A' 71 | hc attr theme.background_color '#101010' 72 | 73 | # theme settings 74 | hc set show_frame_decorations if_multiple 75 | hc set frame_bg_transparent 1 76 | hc set frame_bg_active_color '#616161' 77 | hc set frame_bg_normal_color '#101010' 78 | hc set frame_border_active_color '#444444' 79 | hc set frame_border_normal_color '#1E1E21' 80 | hc set frame_border_inner_color '#080808' 81 | hc set frame_border_inner_width 0 82 | hc set frame_border_width 1 83 | hc set frame_gap 0 84 | hc set frame_padding 0 85 | hc set frame_transparent_width 0 86 | hc set mouse_recenter_gap 0 87 | hc set smart_frame_surroundings 0 88 | hc set smart_window_surroundings 0 89 | hc set window_gap 0 90 | 91 | # monitor settings 92 | # make sure we don't cycle between monitors unless we explicitly select the tags 93 | hc set swap_monitors_to_get_tag false 94 | hc set focus_crosses_monitor_boundaries false 95 | 96 | # ASCII graph for layout command 97 | hc set tree_style '·│ ├└+─┐' 98 | 99 | # rules 100 | # unset any previously assigned rules 101 | hc unrule -F 102 | 103 | # non-tag specific rules; 104 | hc rule focus=on 105 | hc rule class="a.out" floating=on 106 | hc rule class="Toplevel" pseudotile=on 107 | # hc rule class="Dialog" pseudotile=on 108 | hc rule class="polybar" manage=off 109 | hc rule class="mpv" pseudotile=off 110 | hc rule class="Nvidia-settings" floating=on 111 | hc rule class="sun-awt-X11-XFramePeer" pseudotile=on 112 | hc rule class="About Mozilla Firefox" pseudotile=on 113 | hc rule class~'([yY]ad)' floating=on 114 | hc rule class~'([pP]qiv)' pseudotile=on 115 | # hc rule title="Open File" floating=on 116 | # hc rule title="Open Image" pseudotile=on 117 | # hc rule title="Save As" pseudotile=on 118 | # hc rule title="Save file" pseudotile=on 119 | # hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on 120 | hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' focus=on pseudotile=on 121 | hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off 122 | 123 | # tag I (default); 124 | 125 | # tag II (debugging); 126 | 127 | # tag III (complementary); 128 | hc rule class="Godot" tag=III 129 | 130 | # tag IV (literature); 131 | hc rule class="calibre" tag=IV 132 | 133 | # tag V (gaming); 134 | hc rule class="forge-view-Main" tag=V pseudotile=on 135 | hc rule class="PolyMC" tag=V floating=on 136 | hc rule class="EoCApp" tag=V fullscreen=on 137 | hc rule class="duckstation-nogui" tag=V 138 | hc rule class="retroarch" tag=V 139 | hc rule class~'([pP]csx2)' tag=V pseudotile=on 140 | hc rule class~'([fF]actorio)' tag=V fullscreen=on 141 | hc rule class~'([rR]im[wW]orld[lL]inux)' tag=V fullscreen=on 142 | hc rule class~'([cC]k[23])' tag=V 143 | hc rule class~'([eE]u4)' tag=V fullscreen=on 144 | hc rule class~'([vV]ictoria3)' tag=V fullscreen=on 145 | hc rule class~'([cC]ivilization6)' tag=V fullscreen=on 146 | hc rule class~'([kK]ingmaker)' tag=V fullscreen=on 147 | hc rule class~'([iI]cewind[dD]ale)' tag=V fullscreen=on 148 | hc rule class~'([tT]orment64)' tag=V fullscreen=on 149 | hc rule class~'([sS]lay [tT]he [sS]pire)' tag=V fullscreen=on 150 | hc rule class~'([dD]eep [sS]ky [dD]erelicts.*)' tag=V fullscreen=on 151 | hc rule class~'([bB]reach)' tag=V fullscreen=on 152 | hc rule class~'([bB]attle[tT]ech)' tag=V fullscreen=on 153 | hc rule class~'([mM]idnight[pP]rotocol)' tag=V fullscreen=on 154 | hc rule class~'([iI]nscryption.*)' tag=V fullscreen=on 155 | hc rule class~'([pP]apers[pP]lease)' tag=V fullscreen=on 156 | hc rule class~'([sS]tardew [vV]alley)' tag=V fullscreen=on 157 | hc rule class~'([sS]lime [rR]ancher)' tag=V fullscreen=on 158 | hc rule class~'([mM]inecraft.*)' tag=V 159 | hc rule class~'([bB]aldurs[gG]ate.*)' tag=V fullscreen=on 160 | hc rule title~'([pP]illars [oO]f [eE]ternity.*)' tag=V fullscreen=on 161 | hc rule title="Torment" tag=V fullscreen=on 162 | hc rule title="Loading Forge..." tag=V floating=on 163 | 164 | 165 | # tag VI (illustration); 166 | hc rule class~'([kK]rita)' tag=VI 167 | hc rule class~'([gG]imp)' tag=VI 168 | hc rule class~'([iI]nkscape)' tag=VI 169 | hc rule class~'([mM]y[pP]aint)' tag=VI 170 | hc rule class~'([sS]ubstance-[pP]ainter)' tag=VI 171 | 172 | # tag VII (3D modeling); 173 | hc rule class~'([bB]lender)' tag=VII 174 | 175 | # tag X ([second monitor]); 176 | # search the herbstluftwm manpage for "FRAME INDEX" 177 | # hc rule class~'([fF]irefox)' tag=X index=01 178 | hc rule class~'([nN]avigator)' tag=X index=01 179 | hc rule class~'([sS]potify)' tag=X index=1 180 | hc rule class~'([dD]iscord)' tag=X index=1 181 | hc rule class~'([pP]ure[rR]ef)' tag=X fullscreen=off index=e 182 | hc rule class="obs" tag=X index=e 183 | hc rule class="LM Studio" tag=X index=0 184 | 185 | # reset monitors_locked uint, just to be sure 186 | # if monitors_locked is changed to 0, then all monitors are repainted again 187 | hc unlock 188 | 189 | # run commands on initial loading of this autostart file 190 | # we do not want these commands ran when herbstluftwm is reloaded 191 | # NOTE: custom attribute must begin with: my_ 192 | if hc silent new_attr bool my_autostart_sanity_check ; then 193 | # second monitor has scaling applied via 'xrandr' within xinitrc file 194 | # re-adjust size for correct boundaries within herbstluftwm 195 | hc set_monitors 3840x2160+2016+0 2016x3584+0+0 196 | 197 | # rename monitors for possible script integration 198 | hc rename_monitor 0 "ViewSonic" 199 | hc rename_monitor 1 "BenQ" 200 | 201 | # lock second monitor from switching tags ("use" and "use_index") 202 | hc lock_tag BenQ 203 | 204 | # setup default frames for second monitor (alternatively; use keybind in 'sxhkdrc' file) 205 | # hc load X '(split vertical:0.69:0 (split vertical:0.28:0))' 206 | 207 | # example: run external programs if desired 208 | # spotify & 209 | fi 210 | 211 | # panel (restart 'polybar' if already running) 212 | polybar-msg cmd quit 2>&1 213 | polybar -c ${XDG_CONFIG_HOME}/polybar/config.ini main 2>&1 & disown 214 | -------------------------------------------------------------------------------- /herbstluftwm/scripts/switch-monitor.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # quick and dirty script to toggle between monitors 3 | # also has a sanity check for switching to a monitor during herbstluftwm's autostart 4 | 5 | if [[ "$1" == toggle ]]; then 6 | for i in $(herbstclient tag_status); do 7 | # check for "focused" tag on a different monitor 8 | if [[ ${i:0:1} == "-" ]] ; then 9 | herbstclient use "${i:1}" 10 | exit 0 11 | # check for "urgent" tag on a different monitor 12 | elif [[ ${i:0:1} == "!" ]] ; then 13 | herbstclient use "${i:1}" 14 | exit 0 15 | fi 16 | done 17 | elif [[ "$1" == switch ]]; then 18 | if [[ -n $2 ]]; then 19 | # if we are not focused on specified monitor then switch to it 20 | if [[ $(herbstclient list_monitors | grep FOCUS | cut -d ':' -f1) != $2 ]]; then 21 | herbstclient focus_monitor "$2" 22 | exit 0 23 | fi 24 | # otherwise do nothing (useful for herbstluftwm restarts) 25 | else 26 | echo "you must specify which monitor to focus" 27 | exit 1 28 | fi 29 | else 30 | echo "usage: $0 [switch ] || [toggle]" 31 | exit 0 32 | fi 33 | -------------------------------------------------------------------------------- /herbstluftwm/scripts/switch-tag.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # vim: set fileencoding=utf-8 ts=4 sts=4 sw=4 tw=80 expandtab : 3 | 4 | # Copyright (C) 2012 Florian Bruhin 5 | 6 | # tagswitch is free software: you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # tagswitch is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with tagswitch If not, see . 18 | 19 | # Changes herbstluftwm tags 20 | 21 | # EDIT FROM ORIGINAL: 22 | # Removed '!' (urgent window flag) from `checkuse' unused tag check. 23 | # Avoid switching to the tag defined in ${skiptag} 24 | 25 | skiptag="X" 26 | 27 | checkuse() { 28 | if [[ "${tags[$1]}" != [.]* ]] && [[ "${tags[$1]}" != *${skiptag} ]]; then # tag has open client(s) and is NOT tag "skiptag" 29 | herbstclient use "${tags[$1]:1}" # cutting off first char (.#:!) 30 | exit 0 31 | fi 32 | } 33 | 34 | tags=( $(herbstclient tag_status) ) 35 | 36 | # Find the currently active tag 37 | for ((i=0; i<="${#tags[@]}"; i++)); do 38 | [[ "${tags[i]}" == "#"* ]] && activetag="$i" 39 | done 40 | 41 | # do nothing if focused index is "skiptag" 42 | if [[ ${activetag} = $(herbstclient attr tags.by-name.${skiptag}.index) ]]; then 43 | exit 0 44 | fi 45 | 46 | if [[ "$1" == next ]]; then # next active tag 47 | for ((i="$((activetag+1))"; i<"${#tags[@]}"; i++)); do 48 | checkuse "$i" 49 | done 50 | # at the end of the taglist, wrap around 51 | for ((i=0; i<"$activetag"; i++)); do 52 | checkuse "$i" 53 | done 54 | elif [[ "$1" == prev ]]; then # previous active tag 55 | for ((i="$((activetag-1))"; i>=0; i--)) do 56 | checkuse "$i" 57 | done 58 | # at the beginning of the taglist, wrap around 59 | for ((i=${#tags[@]}-1; i>$((activetag-1)); i--)) do 60 | checkuse "$i" 61 | done 62 | else 63 | echo "Usage: $0 [next|prev]" 64 | exit 1 65 | fi 66 | -------------------------------------------------------------------------------- /herbstluftwm/sxhkdrc: -------------------------------------------------------------------------------- 1 | ####################################################### 2 | ## locate: ${XDG_CONFIG_HOME}/herbstluftwm/sxhkdrc ## 3 | ## detail: keybinding(s) for `herbstluftwm' ## 4 | ## notice: spawned and killed from "xinitrc" file ## 5 | ####################################################### 6 | 7 | ############################### 8 | ## Internal (herbstluftwm): ## 9 | ############################### 10 | 11 | #+ quit herbstluftwm 12 | mod4 + {_,shift +} q 13 | herbstclient {reload,chain - emit_hook quit_panel - quit} 14 | 15 | #+ rotate tag layout 16 | mod4 + c 17 | herbstclient rotate 18 | 19 | #+ cycle frame layout 20 | mod4 + {_,shift +} t 21 | herbstclient cycle_layout {+,-}1 max vertical horizontal grid 22 | 23 | #+ manually split frame horizontally 24 | mod4 + {_,shift +} minus 25 | herbstclient split {bottom,top} 0.5 26 | 27 | #+ manually split frame horizontally 28 | mod4 + control + {_,shift +} minus 29 | herbstclient split {bottom,top} 0.7 30 | 31 | #+ manually split frame vertically 32 | mod4 + {_,shift +} equal 33 | herbstclient split {right,left} 0.5 34 | 35 | #+ manually split frame vertically 36 | mod4 + control + {_,shift +} equal 37 | herbstclient split {right,left} 0.7 38 | 39 | #+ manually split frame horizontally (to preferred size for vertical monitor) 40 | mod4 + mod1 + minus 41 | herbstclient split bottom 0.61 42 | 43 | #+ automatically split, and/or shift window to new split (if available) 44 | mod4 + {_,shift +} BackSpace 45 | herbstclient split {explode,auto} 46 | 47 | #+ shift window focus next/previous within a frame (or floating windows if focused) 48 | mod4 + {_,shift +} space 49 | herbstclient cycle {+,-}1 50 | 51 | #+ shift window focus next/previous within a tag (both tiled and floating, skipping minimized) 52 | mod4 + {_,shift +} i 53 | herbstclient cycle_all --skip-invisible {-,+}1 54 | 55 | #+ resize window in direction 56 | mod4 + r : {h,shift + h,j,shift + j,k,shift + k,l,shift + l} 57 | herbstclient resize {left +,left -,down +,down -,up +,up -,right +,right -}0.01 58 | 59 | #+ shift focus or window in frame direction 60 | mod4 + {_,shift +} {h,j,k,l} 61 | herbstclient {focus,shift} -e {left,down,up,right} 62 | 63 | #+ shift window to monitor 64 | mod4 + control + {h,j,k,l} 65 | herbstclient shift_to_monitor {-l,-d,-u,-r} 66 | 67 | #+ shift focus to next/prev occupied tag 68 | mod4 + {n,p} 69 | /home/mother/conf/herbstluftwm/scripts/switch-tag.sh {next,prev} 70 | 71 | #+ shift focus or window between second monitor 72 | #+ TODO: write a custom script for automated movement between monitors 73 | mod4 + {_,shift} Tab 74 | {/home/mother/conf/herbstluftwm/scripts/switch-monitor.sh toggle,herbstclient move X} 75 | 76 | #+ shift focus or window to next/prev tag 77 | mod4 + {_,shift +} {period,comma} 78 | herbstclient {use,move}_index {+,-}1 --skip-visible 79 | 80 | #+ or restore minimized clientshift focus between last used tag(s) 81 | mod4 + slash 82 | herbstclient use_previous 83 | 84 | #+ minimize or restore minimized client 85 | mod4 + {grave,backslash} 86 | herbstclient {set_attr clients.focus.minimized true,jumpto last-minimized} 87 | 88 | #+ focus or pull urgent window 89 | mod4 + {_,shift +} u 90 | herbstclient {jumpto,bring} urgent 91 | 92 | #+ close focused window (with backup/alternative command) 93 | mod4 + {shift,control} + Delete 94 | {herbstclient close,wmctrl -c :ACTIVE:} 95 | 96 | #+ remove/collapse frame 97 | mod4 + z 98 | herbstclient remove 99 | 100 | #+ remove/collapse all frames recursively 101 | mod4 + shift + z 102 | /bin/sh -c 'while true ; do if (herbstclient dump|grep split &>/dev/null) ; then herbstclient remove ; else exit 0 ; fi ; done' 103 | 104 | #+ fullscreen client toggle 105 | mod4 + o 106 | herbstclient {fullscreen} toggle 107 | 108 | #+ pseudotile; float client; float tag 109 | mod4 + {_,shift,control +} f 110 | herbstclient {pseudotile,attr clients.focus.floating,floating} toggle 111 | 112 | #+ "ELECOM TrackBall HUGE" [mouse] extra function keys [10,11] (12 used as scroll modifier) 113 | {_,shift} + button10 114 | /home/mother/conf/herbstluftwm/scripts/switch-tag.sh {next,prev} 115 | 116 | control + button10 117 | herbstclient use_previous 118 | 119 | {_,shift} + button11 120 | herbstclient cycle {+,-}1 121 | 122 | ######################## 123 | ## External: ## 124 | ######################## 125 | 126 | #+ reload sxhkd config 127 | mod4 + shift + s 128 | pkill -USR1 -x sxhkd 129 | 130 | #+ spawn terminal with tmux 131 | mod4 + {Return,KP_Enter} 132 | kitty -e tmux 133 | 134 | #+ spawn terminal 135 | mod4 + shift + {Return,KP_Enter} 136 | kitty 137 | 138 | #+ application/window menu 139 | mod4 + {e,w} 140 | rofi -show {run,window} 141 | 142 | #+ games menu 143 | mod4 + g 144 | /home/mother/conf/rofi/scripts/games.sh 145 | 146 | #+ image capture of current screen 147 | mod4 + control + i 148 | import -window root /home/mother/foto/shot/$(date '+%Y_%m_%d-%H%M%S').png 149 | 150 | #+ rotation of primary/clipboard selections 151 | mod4 + Print 152 | /usr/local/bin/clipswap.sh 153 | 154 | #+ load custom layout on second monitor (if "removed" splits or not running via 'autostart' file) 155 | mod4 + Home 156 | herbstclient load X '(split vertical:0.69:0 (split vertical:0.28:0))' 157 | # herbstclient load X '(split vertical:0.75:1 (split vertical:0.57:1))' 158 | # herbstclient load X '(split vertical:0.7:0 (split vertical:0.61:1))' 159 | 160 | #+ raise spotify app volume 161 | mod4+ Prior 162 | playerctl --player spotify volume 0.1+ 163 | 164 | #+ lower spotify app volume 165 | mod4+ Next 166 | playerctl --player spotify volume 0.1- 167 | 168 | #+ raise pulseaudio volume via ALSA 169 | XF86AudioRaiseVolume 170 | amixer -c 1 -q -D pulse sset Master 5%+ 171 | 172 | #+ lower pulseaudio volume via ALSA 173 | XF86AudioLowerVolume 174 | amixer -c 1 -q -D pulse sset Master 5%- 175 | 176 | #+ mute/unmute pulseaudio volume via ALSA 177 | XF86AudioMute 178 | amixer -c 1 -q -D pulse sset Master toggle 179 | 180 | #+ suspend system to memory 181 | {XF86Sleep,mod4 + control + shift + End} 182 | /bin/sh -c 'echo freeze | doas tee /sys/power/state' 183 | 184 | #+ remotely control music player 185 | XF86AudioPlay 186 | playerctl --player spotify play-pause 187 | 188 | #+ remotely control music player 189 | XF86AudioPrev 190 | playerctl --player spotify previous 191 | 192 | #+ remotely control music player 193 | XF86AudioNext 194 | playerctl --player spotify next 195 | 196 | # vim: set ft=sxhkdrc: 197 | -------------------------------------------------------------------------------- /keymaps/assorted/arensito.xmodmap: -------------------------------------------------------------------------------- 1 | ! Arensito (simplified) ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 / = ! 5 | ! q l , p ' ; f u d k [ ] \ ! 6 | ! a r e n b g s i t o - ! 7 | ! z w . h j v c y m x ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) ? + ! 10 | ! Q L < P " : F U D K { } | ! 11 | ! A R E N B G S I T O _ ! 12 | ! Z W > H J V C Y M X ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = slash question 28 | keycode 21 = equal plus 29 | ! top row 30 | keycode 24 = q Q 31 | keycode 25 = l L 32 | keycode 26 = comma less 33 | keycode 27 = p P 34 | keycode 28 = apostrophe quotedbl 35 | keycode 29 = semicolon colon 36 | keycode 30 = f F 37 | keycode 31 = u U 38 | keycode 32 = d D 39 | keycode 33 = k K 40 | keycode 34 = bracketleft braceleft 41 | keycode 35 = bracketright braceright 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = r R 46 | keycode 40 = e E 47 | keycode 41 = n N 48 | keycode 42 = b B 49 | keycode 43 = g G 50 | keycode 44 = s S 51 | keycode 45 = i I 52 | keycode 46 = t T 53 | keycode 47 = o O 54 | keycode 48 = minus underscore 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = w W 58 | keycode 54 = period greater 59 | keycode 55 = h H 60 | keycode 56 = j J 61 | keycode 57 = v V 62 | keycode 58 = c C 63 | keycode 59 = y Y 64 | keycode 60 = m M 65 | keycode 61 = x X 66 | -------------------------------------------------------------------------------- /keymaps/assorted/asset.xmodmap: -------------------------------------------------------------------------------- 1 | ! Asset ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 - = ! 5 | ! q w f g j y p u l ; [ ] \ ! 6 | ! a s e t d h n i o r ' ! 7 | ! z x c v b k m , . / ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) _ + ! 10 | ! Q W F G J Y P U L : { } | ! 11 | ! A S E T D H N I O R " ! 12 | ! Z X C V B K M < > ? ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = minus underscore 28 | keycode 21 = equal plus 29 | ! top row 30 | keycode 24 = q Q 31 | keycode 25 = w W 32 | keycode 26 = f F 33 | keycode 27 = g G 34 | keycode 28 = j J 35 | keycode 29 = y Y 36 | keycode 30 = p P 37 | keycode 31 = u U 38 | keycode 32 = l L 39 | keycode 33 = semicolon colon 40 | keycode 34 = bracketleft braceleft 41 | keycode 35 = bracketright braceright 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = s S 46 | keycode 40 = e E 47 | keycode 41 = t T 48 | keycode 42 = d D 49 | keycode 43 = h H 50 | keycode 44 = n N 51 | keycode 45 = i I 52 | keycode 46 = o O 53 | keycode 47 = r R 54 | keycode 48 = apostrophe quotedbl 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = x X 58 | keycode 54 = c C 59 | keycode 55 = v V 60 | keycode 56 = b B 61 | keycode 57 = k K 62 | keycode 58 = m M 63 | keycode 59 = comma less 64 | keycode 60 = period greater 65 | keycode 61 = slash question 66 | -------------------------------------------------------------------------------- /keymaps/assorted/balanced.xmodmap: -------------------------------------------------------------------------------- 1 | ! Balanced (1) ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 [ ] ! 5 | ! j f u b z x w l c q / = \ ! 6 | ! s a e n p m t o i r - ! 7 | ! v , y h ' k d g . " ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * < > { } ! 10 | ! J F U B Z X W L C Q ? + | ! 11 | ! S A E N P M T O I R _ ! 12 | ! V ( Y H ; K D G ) : ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 less 26 | keycode 19 = 0 greater 27 | keycode 20 = bracketleft braceleft 28 | keycode 21 = bracketright braceright 29 | ! top row 30 | keycode 24 = j J 31 | keycode 25 = f F 32 | keycode 26 = u U 33 | keycode 27 = b B 34 | keycode 28 = z Z 35 | keycode 29 = x X 36 | keycode 30 = w W 37 | keycode 31 = l L 38 | keycode 32 = c C 39 | keycode 33 = q Q 40 | keycode 34 = slash question 41 | keycode 35 = equal plus 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = s S 45 | keycode 39 = a A 46 | keycode 40 = e E 47 | keycode 41 = n N 48 | keycode 42 = p P 49 | keycode 43 = m M 50 | keycode 44 = t T 51 | keycode 45 = o O 52 | keycode 46 = i I 53 | keycode 47 = r R 54 | keycode 48 = minus underscore 55 | ! bottom row 56 | keycode 52 = v V 57 | keycode 53 = comma parenleft 58 | keycode 54 = y Y 59 | keycode 55 = h H 60 | keycode 56 = apostrophe semicolon 61 | keycode 57 = k K 62 | keycode 58 = d D 63 | keycode 59 = g G 64 | keycode 60 = period parenright 65 | keycode 61 = quotedbl colon 66 | -------------------------------------------------------------------------------- /keymaps/assorted/capewell.xmodmap: -------------------------------------------------------------------------------- 1 | ! Capewell ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 [ ] ! 5 | ! . y w d f j p l u q / = \ ! 6 | ! a e r s g b t n i o - ! 7 | ! x z c v ; k m h , ' ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) { } ! 10 | ! > Y W D F J P L U Q ? + | ! 11 | ! A E R S G B T N I O _ ! 12 | ! X Z C V : K M H < " ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = bracketleft braceleft 28 | keycode 21 = bracketright braceright 29 | ! top row 30 | keycode 24 = period greater 31 | keycode 25 = y Y 32 | keycode 26 = w W 33 | keycode 27 = d D 34 | keycode 28 = f F 35 | keycode 29 = j J 36 | keycode 30 = p P 37 | keycode 31 = l L 38 | keycode 32 = u U 39 | keycode 33 = q Q 40 | keycode 34 = slash question 41 | keycode 35 = equal plus 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = e E 46 | keycode 40 = r R 47 | keycode 41 = s S 48 | keycode 42 = g G 49 | keycode 43 = b B 50 | keycode 44 = t T 51 | keycode 45 = n N 52 | keycode 46 = i I 53 | keycode 47 = o O 54 | keycode 48 = minus underscore 55 | ! bottom row 56 | keycode 52 = x X 57 | keycode 53 = z Z 58 | keycode 54 = c C 59 | keycode 55 = v V 60 | keycode 56 = semicolon colon 61 | keycode 57 = k K 62 | keycode 58 = m M 63 | keycode 59 = h H 64 | keycode 60 = comma less 65 | keycode 61 = apostrophe quotedbl 66 | -------------------------------------------------------------------------------- /keymaps/assorted/colemak.xmodmap: -------------------------------------------------------------------------------- 1 | ! Colemak ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 - = ! 5 | ! q w f p g j l u y ; [ ] \ ! 6 | ! a r s t d h n e i o ' ! 7 | ! z x c v b k m , . / ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) _ + ! 10 | ! Q W F P G J L U Y : { } | ! 11 | ! A R S T D H N E I O " ! 12 | ! Z X C V B K M < > ? ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = minus underscore 28 | keycode 21 = equal plus 29 | ! top row 30 | keycode 24 = q Q 31 | keycode 25 = w W 32 | keycode 26 = f F 33 | keycode 27 = p P 34 | keycode 28 = g G 35 | keycode 29 = j J 36 | keycode 30 = l L 37 | keycode 31 = u U 38 | keycode 32 = y Y 39 | keycode 33 = semicolon colon 40 | keycode 34 = bracketleft braceleft 41 | keycode 35 = bracketright braceright 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = r R 46 | keycode 40 = s S 47 | keycode 41 = t T 48 | keycode 42 = d D 49 | keycode 43 = h H 50 | keycode 44 = n N 51 | keycode 45 = e E 52 | keycode 46 = i I 53 | keycode 47 = o O 54 | keycode 48 = apostrophe quotedbl 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = x X 58 | keycode 54 = c C 59 | keycode 55 = v V 60 | keycode 56 = b B 61 | keycode 57 = k K 62 | keycode 58 = m M 63 | keycode 59 = comma less 64 | keycode 60 = period greater 65 | keycode 61 = slash question 66 | -------------------------------------------------------------------------------- /keymaps/assorted/dvorak.xmodmap: -------------------------------------------------------------------------------- 1 | ! Dvorak (ordered numbers) ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 [ ] ! 5 | ! ' , . p y f g c r l / = \ ! 6 | ! a o e u i d h t n s - ! 7 | ! ; q j k x b m w v z ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) { } ! 10 | ! " < > P Y F G C R L ? + | ! 11 | ! A O E U I D H T N S _ ! 12 | ! : Q J K X B M W V Z ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = bracketleft braceleft 28 | keycode 21 = bracketright braceright 29 | ! top row 30 | keycode 24 = apostrophe quotedbl 31 | keycode 25 = comma less 32 | keycode 26 = period greater 33 | keycode 27 = p P 34 | keycode 28 = y Y 35 | keycode 29 = f F 36 | keycode 30 = g G 37 | keycode 31 = c c 38 | keycode 32 = r R 39 | keycode 33 = l l 40 | keycode 34 = slash question 41 | keycode 35 = equal plus 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = o O 46 | keycode 40 = e E 47 | keycode 41 = u U 48 | keycode 42 = i I 49 | keycode 43 = d D 50 | keycode 44 = h H 51 | keycode 45 = t T 52 | keycode 46 = n N 53 | keycode 47 = s S 54 | keycode 48 = minus underscore 55 | ! bottom row 56 | keycode 52 = semicolon colon 57 | keycode 53 = q Q 58 | keycode 54 = j J 59 | keycode 55 = k K 60 | keycode 56 = x X 61 | keycode 57 = b B 62 | keycode 58 = m M 63 | keycode 59 = w W 64 | keycode 60 = v V 65 | keycode 61 = z Z 66 | -------------------------------------------------------------------------------- /keymaps/assorted/eaton.xmodmap: -------------------------------------------------------------------------------- 1 | ! EAton ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 [ ] ! 5 | ! ; r l d p ' f u w q - = \ ! 6 | ! s n t h m y a e o i . ! 7 | ! z x c v ? g , j k b ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) { } ! 10 | ! : R L D P " F U W Q _ + | ! 11 | ! S N T H M Y A E O I > ! 12 | ! Z X C V / G < J K B ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = bracketleft braceleft 28 | keycode 21 = bracketright braceright 29 | ! top row 30 | keycode 24 = semicolon colon 31 | keycode 25 = r R 32 | keycode 26 = l L 33 | keycode 27 = d D 34 | keycode 28 = p P 35 | keycode 29 = apostrophe quotedbl 36 | keycode 30 = f F 37 | keycode 31 = u U 38 | keycode 32 = w W 39 | keycode 33 = q Q 40 | keycode 34 = minus underscore 41 | keycode 35 = equal plus 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = s S 45 | keycode 39 = n N 46 | keycode 40 = t T 47 | keycode 41 = h H 48 | keycode 42 = m M 49 | keycode 43 = y Y 50 | keycode 44 = a A 51 | keycode 45 = e E 52 | keycode 46 = o O 53 | keycode 47 = i I 54 | keycode 48 = period greater 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = x X 58 | keycode 54 = c C 59 | keycode 55 = v V 60 | keycode 56 = slash question 61 | keycode 57 = g G 62 | keycode 58 = comma less 63 | keycode 59 = j J 64 | keycode 60 = k K 65 | keycode 61 = b B 66 | -------------------------------------------------------------------------------- /keymaps/assorted/hieamtsrn.xmodmap: -------------------------------------------------------------------------------- 1 | ! HIEAMTSRN ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 ( ) ! 5 | ! b y o u ' k d c l p q = \ ! 6 | ! h i e a , m t s r n v ! 7 | ! x - " . ? w g f j z ! 8 | ! ! 9 | ! ~ [ ] # $ % ^ & * < > { } ! 10 | ! B Y O U @ K D C L P Q + | ! 11 | ! H I E A ; M T S R N V ! 12 | ! X _ / : ! W G F J Z ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 bracketleft 18 | keycode 11 = 2 bracketright 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 less 26 | keycode 19 = 0 greater 27 | keycode 20 = parenleft braceleft 28 | keycode 21 = parenright braceright 29 | ! top row 30 | keycode 24 = b B 31 | keycode 25 = y Y 32 | keycode 26 = o O 33 | keycode 27 = u U 34 | keycode 28 = apostrophe at 35 | keycode 29 = k K 36 | keycode 30 = d D 37 | keycode 31 = c C 38 | keycode 32 = l L 39 | keycode 33 = p P 40 | keycode 34 = q Q 41 | keycode 35 = equal plus 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = h H 45 | keycode 39 = i I 46 | keycode 40 = e E 47 | keycode 41 = a A 48 | keycode 42 = comma semicolon 49 | keycode 43 = m M 50 | keycode 44 = t T 51 | keycode 45 = s S 52 | keycode 46 = r R 53 | keycode 47 = n N 54 | keycode 48 = v V 55 | ! bottom row 56 | keycode 52 = x X 57 | keycode 53 = minus underscore 58 | keycode 54 = quotedbl slash 59 | keycode 55 = period colon 60 | keycode 56 = question exclam 61 | keycode 57 = w W 62 | keycode 58 = g G 63 | keycode 59 = f F 64 | keycode 60 = j J 65 | keycode 61 = z Z 66 | -------------------------------------------------------------------------------- /keymaps/assorted/klausler.xmodmap: -------------------------------------------------------------------------------- 1 | ! Klausler (2) ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 - = ! 5 | ! k , u y p w l m f c [ ] \ ! 6 | ! o a e i d r n t h s / ! 7 | ! q . ' ; z x v g b j ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) _ + ! 10 | ! K < U Y P W L M F C { } | ! 11 | ! O A E I D R N T H S ? ! 12 | ! Q > " : Z X V G B J ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = minus underscore 28 | keycode 21 = equal plus 29 | ! top row 30 | keycode 24 = k K 31 | keycode 25 = comma less 32 | keycode 26 = u U 33 | keycode 27 = y Y 34 | keycode 28 = p P 35 | keycode 29 = w W 36 | keycode 30 = l L 37 | keycode 31 = m M 38 | keycode 32 = f F 39 | keycode 33 = c C 40 | keycode 34 = bracketleft braceleft 41 | keycode 35 = bracketright braceright 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = o O 45 | keycode 39 = a A 46 | keycode 40 = e E 47 | keycode 41 = i I 48 | keycode 42 = d D 49 | keycode 43 = r R 50 | keycode 44 = n N 51 | keycode 45 = t T 52 | keycode 46 = h H 53 | keycode 47 = s S 54 | keycode 48 = slash question 55 | ! bottom row 56 | keycode 52 = q Q 57 | keycode 53 = period greater 58 | keycode 54 = apostrophe quotedbl 59 | keycode 55 = semicolon colon 60 | keycode 56 = z Z 61 | keycode 57 = x X 62 | keycode 58 = v V 63 | keycode 59 = g G 64 | keycode 60 = b B 65 | keycode 61 = j J 66 | -------------------------------------------------------------------------------- /keymaps/assorted/qwerty.xmodmap: -------------------------------------------------------------------------------- 1 | ! Qwerty ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 - = ! 5 | ! q w e r t y u i o p [ ] \ ! 6 | ! a s d f g h j k l ; ' ! 7 | ! z x c v b n m , . / ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) _ + ! 10 | ! Q W E R T Y U I O P { } | ! 11 | ! A S D F G H J K L : " ! 12 | ! Z X C V B N M < > ? ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = minus underscore 28 | keycode 21 = equal plus 29 | ! top row 30 | keycode 24 = q Q 31 | keycode 25 = w W 32 | keycode 26 = e E 33 | keycode 27 = r R 34 | keycode 28 = t T 35 | keycode 29 = y Y 36 | keycode 30 = u U 37 | keycode 31 = i I 38 | keycode 32 = o O 39 | keycode 33 = p P 40 | keycode 34 = bracketleft braceleft 41 | keycode 35 = bracketright braceright 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = s S 46 | keycode 40 = d D 47 | keycode 41 = f F 48 | keycode 42 = g G 49 | keycode 43 = h H 50 | keycode 44 = j J 51 | keycode 45 = k K 52 | keycode 46 = l L 53 | keycode 47 = semicolon colon 54 | keycode 48 = apostrophe quotedbl 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = x X 58 | keycode 54 = c C 59 | keycode 55 = v V 60 | keycode 56 = b B 61 | keycode 57 = n N 62 | keycode 58 = m M 63 | keycode 59 = comma less 64 | keycode 60 = period greater 65 | keycode 61 = slash question 66 | -------------------------------------------------------------------------------- /keymaps/assorted/stndc.xmodmap: -------------------------------------------------------------------------------- 1 | ! STNDC ! 2 | !_________________________________! 3 | ! ! 4 | ! ` ( ) 0 1 2 3 4 5 6 7 8 9 ! 5 | ! v m h g p x l o u y j = / ! 6 | ! s t n d c w r a e i - ! 7 | ! z k b f q , . ' " ? ! 8 | ! ! 9 | ! ~ [ ] # $ % ^ & * [ ] @ | ! 10 | ! V M H G P X L O U Y J + \ ! 11 | ! S T N D C W R A E I _ ! 12 | ! Z K B F Q ; : < > ! ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = parenleft bracketleft 18 | keycode 11 = parenright bracketright 19 | keycode 12 = 0 numbersign 20 | keycode 13 = 1 dollar 21 | keycode 14 = 2 percent 22 | keycode 15 = 3 asciicircum 23 | keycode 16 = 4 ampersand 24 | keycode 17 = 5 asterisk 25 | keycode 18 = 6 bracketleft 26 | keycode 19 = 7 bracketright 27 | keycode 20 = 8 at 28 | keycode 21 = 9 bar 29 | ! top row 30 | keycode 24 = v V 31 | keycode 25 = m M 32 | keycode 26 = h H 33 | keycode 27 = g G 34 | keycode 28 = p P 35 | keycode 29 = x X 36 | keycode 30 = l L 37 | keycode 31 = o O 38 | keycode 32 = u U 39 | keycode 33 = y Y 40 | keycode 34 = j J 41 | keycode 35 = equal plus 42 | keycode 51 = slash backslash 43 | ! middle row 44 | keycode 38 = s S 45 | keycode 39 = t T 46 | keycode 40 = n N 47 | keycode 41 = d D 48 | keycode 42 = c C 49 | keycode 43 = w W 50 | keycode 44 = r R 51 | keycode 45 = a A 52 | keycode 46 = e E 53 | keycode 47 = i I 54 | keycode 48 = minus underscore 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = k K 58 | keycode 54 = b B 59 | keycode 55 = f F 60 | keycode 56 = q Q 61 | keycode 57 = comma semicolon 62 | keycode 58 = period colon 63 | keycode 59 = apostrophe less 64 | keycode 60 = quotedbl greater 65 | keycode 61 = question exclam 66 | -------------------------------------------------------------------------------- /keymaps/assorted/workman.xmodmap: -------------------------------------------------------------------------------- 1 | ! Workman ! 2 | !_________________________________! 3 | ! ! 4 | ! ` 1 2 3 4 5 6 7 8 9 0 - = ! 5 | ! q d r w b j f u p ; [ ] \ ! 6 | ! a s h t g y n e o i ' ! 7 | ! z x m c v k l , . / ! 8 | ! ! 9 | ! ~ ! @ # $ % ^ & * ( ) _ + ! 10 | ! Q D R W B J F U P : { } | ! 11 | ! A S H T G Y N E O I " ! 12 | ! Z X M C V K L < > ? ! 13 | !_________________________________! 14 | 15 | ! number row 16 | keycode 49 = grave asciitilde 17 | keycode 10 = 1 exclam 18 | keycode 11 = 2 at 19 | keycode 12 = 3 numbersign 20 | keycode 13 = 4 dollar 21 | keycode 14 = 5 percent 22 | keycode 15 = 6 asciicircum 23 | keycode 16 = 7 ampersand 24 | keycode 17 = 8 asterisk 25 | keycode 18 = 9 parenleft 26 | keycode 19 = 0 parenright 27 | keycode 20 = minus underscore 28 | keycode 21 = equal plus 29 | ! top row 30 | keycode 24 = q Q 31 | keycode 25 = d D 32 | keycode 26 = r R 33 | keycode 27 = w W 34 | keycode 28 = b B 35 | keycode 29 = j J 36 | keycode 30 = f F 37 | keycode 31 = u U 38 | keycode 32 = p P 39 | keycode 33 = semicolon colon 40 | keycode 34 = bracketleft braceleft 41 | keycode 35 = bracketright braceright 42 | keycode 51 = backslash bar 43 | ! middle row 44 | keycode 38 = a A 45 | keycode 39 = s S 46 | keycode 40 = h H 47 | keycode 41 = t T 48 | keycode 42 = g G 49 | keycode 43 = y Y 50 | keycode 44 = n N 51 | keycode 45 = e E 52 | keycode 46 = o O 53 | keycode 47 = i I 54 | keycode 48 = apostrophe quotedbl 55 | ! bottom row 56 | keycode 52 = z Z 57 | keycode 53 = x X 58 | keycode 54 = m M 59 | keycode 55 = c C 60 | keycode 56 = v V 61 | keycode 57 = k K 62 | keycode 58 = l L 63 | keycode 59 = comma less 64 | keycode 60 = period greater 65 | keycode 61 = slash question 66 | -------------------------------------------------------------------------------- /keymaps/overlay.xmodmap: -------------------------------------------------------------------------------- 1 | remove Control = Control_R 2 | remove Mod1 = Alt_R 3 | keycode 108 = Control_R 4 | keycode 105 = Alt_R 5 | add Control = Control_R 6 | add Mod1 = Alt_R 7 | -------------------------------------------------------------------------------- /keymaps/xbindkeys: -------------------------------------------------------------------------------- 1 | "xdotool key F13" 2 | b:13 3 | 4 | "xdotool key F14" 5 | b:14 6 | 7 | "xdotool key F15" 8 | b:15 9 | -------------------------------------------------------------------------------- /keymaps/zsu/zsu-place.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/keymaps/zsu/zsu-place.png -------------------------------------------------------------------------------- /keymaps/zsu/zsu-same-dvorak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/keymaps/zsu/zsu-same-dvorak.png -------------------------------------------------------------------------------- /keymaps/zsu/zsu-same-qwerty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/keymaps/zsu/zsu-same-qwerty.png -------------------------------------------------------------------------------- /keymaps/zsu/zsu-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/keymaps/zsu/zsu-start.png -------------------------------------------------------------------------------- /keymaps/zsu/zsu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/keymaps/zsu/zsu.png -------------------------------------------------------------------------------- /keymaps/zsu/zsu.xmodmap: -------------------------------------------------------------------------------- 1 | !"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""! 2 | ! detail: keyboard layout file for `xmodmap' ! 3 | ! locate: $XDG_CONFIG_HOME/keymaps/zsu/zsu.xmodmap ! 4 | ! source: github[dot]com/milomouse ! 5 | !_________________________________________________________________! 6 | ! ! 7 | ! ` 1 2 3 4 5 6 7 8 9 0 [ ] ~ ! @ # $ % ^ & * ( ) { } ! 8 | ! z s u ' y v f g l p . / \ Z S U " Y V F G L P > ? | ! 9 | ! o a e i b r n h t , = O A E I B R N H T < + ! 10 | ! q ; c w x d m j k - Q : C W X D M J K _ ! 11 | !_________________________________________________________________! 12 | 13 | keycode 49 = grave asciitilde grave asciitilde 14 | keycode 10 = 1 exclam 1 exclam 15 | keycode 11 = 2 at 2 at 16 | keycode 12 = 3 numbersign 3 numbersign 17 | keycode 13 = 4 dollar 4 dollar 18 | keycode 14 = 5 percent 5 percent 19 | keycode 15 = 6 asciicircum 6 asciicircum 20 | keycode 16 = 7 ampersand 7 ampersand 21 | keycode 17 = 8 asterisk 8 asterisk 22 | keycode 18 = 9 parenleft 9 parenleft 23 | keycode 19 = 0 parenright 0 parenright 24 | keycode 20 = bracketleft braceleft bracketleft braceleft 25 | keycode 21 = bracketright braceright bracketright braceright 26 | 27 | keycode 24 = z Z z Z 28 | keycode 25 = s S s S 29 | keycode 26 = u U u U 30 | keycode 27 = apostrophe quotedbl apostrophe quotedbl 31 | keycode 28 = y Y y Y 32 | keycode 29 = v V v V 33 | keycode 30 = f F f F 34 | keycode 31 = g G g G 35 | keycode 32 = l L l L 36 | keycode 33 = p P p P 37 | keycode 34 = period greater period greater 38 | keycode 35 = slash question slash question 39 | keycode 51 = backslash bar backslash bar 40 | 41 | keycode 38 = o O o O 42 | keycode 39 = a A a A 43 | keycode 40 = e E e E 44 | keycode 41 = i I i I 45 | keycode 42 = b B b B 46 | keycode 43 = r R r R 47 | keycode 44 = n N n N 48 | keycode 45 = h H h H 49 | keycode 46 = t T t T 50 | keycode 47 = comma less comma less 51 | keycode 48 = equal plus equal plus 52 | 53 | keycode 52 = q Q q Q 54 | keycode 53 = semicolon colon semicolon colon 55 | keycode 54 = c C c C 56 | keycode 55 = w W w W 57 | keycode 56 = x X x X 58 | keycode 57 = d D d D 59 | keycode 58 = m M m M 60 | keycode 59 = j J j J 61 | keycode 60 = k K k K 62 | keycode 61 = minus underscore minus underscore 63 | -------------------------------------------------------------------------------- /keymaps/zsu/zsu2.xmodmap: -------------------------------------------------------------------------------- 1 | !"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""! 2 | ! detail: keyboard layout file for `xmodmap' ! 3 | ! locate: $XDG_CONFIG_HOME/keymaps/zsu/zsu2.xmodmap ! 4 | ! source: github[dot]com/milomouse ! 5 | !_________________________________________________________________! 6 | ! ! 7 | ! ` 1 2 3 4 5 6 7 8 9 0 [ ] ~ ! @ # $ % ^ & * ( ) { } ! 8 | ! z s u ' y v f g l p - = \ Z S U " Y V F G L P _ + | ! 9 | ! o a e i b r n h t . / O A E I B R N H T > ? ! 10 | ! q , c w x d m j k ; Q < C W X D M J K : ! 11 | !_________________________________________________________________! 12 | 13 | keycode 49 = grave asciitilde grave asciitilde 14 | keycode 10 = 1 exclam 1 exclam 15 | keycode 11 = 2 at 2 at 16 | keycode 12 = 3 numbersign 3 numbersign 17 | keycode 13 = 4 dollar 4 dollar 18 | keycode 14 = 5 percent 5 percent 19 | keycode 15 = 6 asciicircum 6 asciicircum 20 | keycode 16 = 7 ampersand 7 ampersand 21 | keycode 17 = 8 asterisk 8 asterisk 22 | keycode 18 = 9 parenleft 9 parenleft 23 | keycode 19 = 0 parenright 0 parenright 24 | keycode 20 = bracketleft braceleft bracketleft braceleft 25 | keycode 21 = bracketright braceright bracketright braceright 26 | 27 | keycode 24 = z Z z Z 28 | keycode 25 = s S s S 29 | keycode 26 = u U u U 30 | keycode 27 = apostrophe quotedbl apostrophe quotedbl 31 | keycode 28 = y Y y Y 32 | keycode 29 = v V v V 33 | keycode 30 = f F f F 34 | keycode 31 = g G g G 35 | keycode 32 = l L l L 36 | keycode 33 = p P p P 37 | keycode 34 = minus underscore minus underscore 38 | keycode 35 = equal plus equal plus 39 | keycode 51 = backslash bar backslash bar 40 | 41 | keycode 38 = o O o O 42 | keycode 39 = a A a A 43 | keycode 40 = e E e E 44 | keycode 41 = i I i I 45 | keycode 42 = b B b B 46 | keycode 43 = r R r R 47 | keycode 44 = n N n N 48 | keycode 45 = h H h H 49 | keycode 46 = t T t T 50 | keycode 47 = period greater period greater 51 | keycode 48 = slash question slash question 52 | 53 | keycode 52 = q Q q Q 54 | keycode 53 = comma less comma less 55 | keycode 54 = c C c C 56 | keycode 55 = w W w W 57 | keycode 56 = x X x X 58 | keycode 57 = d D d D 59 | keycode 58 = m M m M 60 | keycode 59 = j J j J 61 | keycode 60 = k K k K 62 | keycode 61 = semicolon colon semicolon colon 63 | -------------------------------------------------------------------------------- /kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # font 2 | font_family Input Mono Narrow 3 | bold_font auto 4 | italic_font auto 5 | bold_italic_font auto 6 | font_size 14.0 7 | force_ltr no 8 | disable_ligatures never 9 | modify_font underline_position +4 10 | url_style curly 11 | undercurl_style thick-sparse 12 | text_composition_strategy platform 13 | placement_strategy top-left 14 | 15 | # cursor 16 | cursor_shape block 17 | cursor_blink_interval 0 18 | 19 | # scrollback 20 | scrollback_lines 1000 21 | scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER 22 | scrollback_pager_history_size 1 23 | scrollback_fill_enlarged_window no 24 | 25 | # copy/paste 26 | copy_on_select no 27 | paste_actions quote-urls-at-prompt,confirm 28 | strip_trailing_spaces never 29 | 30 | # url 31 | allow_hyperlinks yes 32 | detect_urls yes 33 | show_hyperlink_targets yes 34 | underline_hyperlinks always 35 | open_url_with xdg-open 36 | url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh chrome 37 | 38 | # performance 39 | sync_to_monitor yes 40 | 41 | # bell 42 | enable_audio_bell no 43 | visual_bell_duration 0.0 44 | window_alert_on_bell yes 45 | bell_on_tab " " 46 | 47 | # mouse 48 | mouse_hide_wait 1.0 49 | focus_follows_mouse no 50 | pointer_shape_when_grabbed arrow 51 | pointer_shape_when_dragging beam 52 | default_pointer_shape beam 53 | wheel_scroll_multiplier 5.0 54 | 55 | # keybindings 56 | map ctrl+shift+c copy_to_clipboard 57 | map ctrl+shift+v paste_from_clipboard 58 | map ctrl+shift+s paste_from_selection 59 | map kitty_mod+shift+t no_op 60 | 61 | # background 62 | background_image none 63 | background_image_layout cscaled 64 | 65 | # colors: base 66 | foreground #A9B1A6 67 | background #121212 68 | # [black] 69 | color0 #161616 70 | color8 #2D2E33 71 | # [red] 72 | color1 #E31763 73 | color9 #C2003B 74 | # [green] 75 | color2 #00CC6C 76 | color10 #008C6C 77 | # [yellow] 78 | color3 #EAE900 79 | color11 #FFCB6B 80 | # [blue] 81 | color4 #009DFF 82 | color12 #0047BB 83 | # [magenta] 84 | color5 #4F4FAF 85 | color13 #6300FF 86 | # [cyan] 87 | color6 #00CCCC 88 | color14 #00AFAF 89 | # [white] 90 | color7 #A9B1A6 91 | color15 #9E9DA5 92 | 93 | # colors: extra 94 | cursor #E31763 95 | cursor_text_color #161616 96 | url_color #009DFF 97 | visual_bell_color none 98 | -------------------------------------------------------------------------------- /kritadisplayrc: -------------------------------------------------------------------------------- 1 | [General] 2 | EnableHiDPI=true 3 | LogUsage=true 4 | OpenGLRenderer=auto 5 | canvasState=OPENGL_SUCCESS 6 | rootSurfaceFormat=bt709-g22 7 | -------------------------------------------------------------------------------- /kritashortcutsrc: -------------------------------------------------------------------------------- 1 | [Shortcuts] 2 | file_quit=Ctrl+Alt+Shift+Q 3 | windows_next=Alt+] 4 | windows_previous=Alt+[ 5 | -------------------------------------------------------------------------------- /mpv/input.conf: -------------------------------------------------------------------------------- 1 | ## audio: 2 | ctrl+9 add audio-delay -0.100 3 | ctrl+0 add audio-delay +0.100 4 | ( add ao-volume -2 5 | ) add ao-volume +2 6 | VOLUME_DOWN add ao-volume -2 7 | VOLUME_UP add ao-volume +2 8 | MUTE cycle ao-mute 9 | m cycle ao-mute 10 | 11 | ## zoom: 12 | KP_Add add video-zoom .25 13 | KP_Subtract add video-zoom -.25 14 | KP_Left add video-pan-x .05 15 | KP_Right add video-pan-x -.05 16 | KP_Up add video-pan-y .05 17 | KP_Down add video-pan-y -.05 18 | 19 | ## movement: 20 | c add chapter 1 21 | C add chapter -1 22 | * ab-loop 23 | / cycle-values loop-file "inf" "no" 24 | , frame-back-step 25 | . frame-step 26 | h seek -10 27 | l seek +5 28 | H seek -35 29 | L seek +30 30 | 31 | # vim: syntax=conf 32 | -------------------------------------------------------------------------------- /mpv/mpv.conf: -------------------------------------------------------------------------------- 1 | ## video: 2 | vo=gpu 3 | hwdec=yes 4 | hdr-compute-peak=auto 5 | vulkan-async-compute=no 6 | stop-screensaver=yes 7 | deband=yes 8 | 9 | ## resizer: 10 | scale=ewa_lanczossharp 11 | # scaler-resizes-only 12 | # sigmoid-upscaling=yes 13 | # correct-downscaling=yes 14 | # scale=oversample 15 | # dscale=oversample 16 | 17 | ## audio: 18 | ao=pulse 19 | volume=100 20 | volume-max=300 21 | audio-file-auto=fuzzy 22 | audio-pitch-correction=yes 23 | 24 | ## fonts: 25 | # osd-font='Symbola' 26 | # osd-font='Noto Emoji' 27 | 28 | ## subtitles: 29 | slang=en,eng 30 | alang=en,eng 31 | demuxer-mkv-subtitle-preroll 32 | blend-subtitles=video 33 | sub-auto=fuzzy 34 | sub-file-paths-append=ass 35 | sub-file-paths-append=srt 36 | sub-file-paths-append=sub 37 | sub-file-paths-append=subs 38 | sub-file-paths-append=subtitles 39 | sub-fix-timing=no 40 | sub-use-margins 41 | sub-ass-force-margins 42 | 43 | ## screenshot: 44 | screenshot-format=png 45 | screenshot-high-bit-depth=no 46 | screenshot-png-compression=1 47 | 48 | ## playlist: 49 | loop-playlist=inf 50 | 51 | ## network: 52 | # ytdl-format=bestvideo[height>=?720]+bestaudio/best 53 | ytdl-format=bestvideo[height>=?1080]+bestaudio/best 54 | 55 | ## profiles: 56 | [network] 57 | cache=yes 58 | demuxer-max-bytes=512MiB 59 | demuxer-readahead-secs=20 60 | force-window=immediate 61 | msg-level=osd=warn 62 | panscan=1.0 63 | 64 | # vim: syntax=conf 65 | -------------------------------------------------------------------------------- /nvim/ftdetect/gentoo.vim: -------------------------------------------------------------------------------- 1 | " Vim filetype detection file 2 | " Language: Gentoo Things 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " This sets up syntax highlighting for Gentoo ebuilds, eclasses, GLEPs, init.d / 8 | " conf.d / env.d / cron.d entries, /etc/portage/ files and so on. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | 16 | " ebuilds, eclasses 17 | au BufNewFile,BufRead *.e{build,class} 18 | \ set filetype=ebuild 19 | 20 | " GLEPs 21 | au BufNewFile,BufRead *.txt,*.rst 22 | \ if (getline(1) =~? "^GLEP: " || getline(2) =~? "^GLEP: ") | 23 | \ set filetype=glep | 24 | \ endif 25 | 26 | " /etc/init.d/ scripts 27 | au BufNewFile,BufRead /etc/init.d/* 28 | \ set filetype=gentoo-init-d.sh | 29 | 30 | au BufNewFile,BufRead * 31 | \ if (getline(1) =~? "#!/sbin/\\(runscript\\|openrc-run\\)") | 32 | \ set filetype=gentoo-init-d.sh | 33 | \ endif 34 | 35 | " /etc/conf.d/ scripts 36 | au BufNewFile,BufRead /etc/conf.d/* 37 | \ set filetype=gentoo-conf-d.sh 38 | 39 | " /etc/env.d/ scripts 40 | au BufNewFile,BufRead /etc/env.d/* 41 | \ set filetype=gentoo-env-d.sh 42 | 43 | " /etc/cron.d/ scripts 44 | au BufNewFile,BufRead /etc/cron.d/* 45 | \ set filetype=crontab 46 | 47 | " package.mask, package.unmask 48 | au BufNewFile,BufRead {*/package.{un,}mask,*/portage/package.{un,}mask/*} 49 | \ set filetype=gentoo-package-mask 50 | 51 | " package.keywords 52 | au BufNewFile,BufRead {*/package.{accept_,}keywords,*/portage/package.{accept_,}keywords/*} 53 | \ set filetype=gentoo-package-keywords 54 | 55 | " package.use 56 | au BufNewFile,BufRead {*/package.use,*/portage/package.use/*,*/package.env,*/portage/package.env/*} 57 | \ set filetype=gentoo-package-use 58 | 59 | " package.license 60 | au BufNewFile,BufRead {*/package.license,*/portage/package.license/*} 61 | \ set filetype=gentoo-package-license 62 | 63 | " package.properties 64 | au BufNewFile,BufRead {*/package.properties,*/portage/package.properties/*} 65 | \ set filetype=gentoo-package-properties 66 | 67 | " thirdpartymirrors 68 | au BufNewFile,BufRead {*/thirdpartymirrors,*/portage/mirrors} 69 | \ set filetype=gentoo-mirrors 70 | 71 | " make.conf 72 | au BufNewFile,BufRead {*/make.{conf,globals},*/portage/make.conf/*} 73 | \ set filetype=gentoo-make-conf 74 | 75 | " use.desc 76 | au BufNewFile,BufRead use.{local.,}desc 77 | \ set filetype=gentoo-use-desc 78 | 79 | " metadata.xml 80 | au BufNewFile,BufRead metadata.xml 81 | \ set filetype=gentoo-metadata 82 | 83 | " repos.conf 84 | au BufNewFile,BufRead {*/portage/repos.conf,*/portage/repos.conf/*.conf} 85 | \ set filetype=dosini 86 | 87 | " portage/env/* 88 | au BufNewFile,BufRead */portage/{env/*,bashrc} 89 | \ set filetype=ebuild 90 | 91 | " guidexml 92 | au BufNewFile,BufRead *.xml 93 | \ if getline(1) =~ " 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " This sets up filetype specific options for Gentoo ebuilds and eclasses. Most 8 | " of these settings are mandated by policy.xml. Some settings are inherited 9 | " from vim's sh.vim. UTF-8 is selected as per GLEP 31. 10 | " 11 | 12 | if &compatible || v:version < 603 13 | finish 14 | endif 15 | 16 | runtime! ftplugin/sh.vim 17 | 18 | " Include - in keyword characters (for strip-flags etc) 19 | exec "setlocal iskeyword=" . &iskeyword . ",45" 20 | 21 | " Required whitespace settings 22 | setlocal tabstop=4 23 | setlocal shiftwidth=4 24 | setlocal noexpandtab 25 | 26 | " GLEP 31 settings 27 | setlocal fileencoding=utf-8 28 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-conf-d.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/sh.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-env-d.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/sh.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-init-d.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/sh.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-make-conf.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/sh.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-metadata.vim: -------------------------------------------------------------------------------- 1 | " Vim filetype plugin file 2 | " Language: Gentoo metadata.xml 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " This sets up filetype specific options for Gentoo metadata.xml files. 8 | " 9 | 10 | if &compatible || v:version < 603 11 | finish 12 | endif 13 | 14 | runtime! ftplugin/xml.vim 15 | 16 | " Required whitespace settings 17 | setlocal tabstop=4 18 | setlocal shiftwidth=4 19 | setlocal noexpandtab 20 | 21 | " GLEP 31 settings 22 | setlocal fileencoding=utf-8 23 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-package-keywords.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/conf.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-package-license.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/conf.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-package-mask.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/conf.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-package-properties.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/conf.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-package-use.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/conf.vim 6 | -------------------------------------------------------------------------------- /nvim/ftplugin/gentoo-use-desc.vim: -------------------------------------------------------------------------------- 1 | if &compatible || v:version < 603 2 | finish 3 | endif 4 | 5 | runtime! ftplugin/conf.vim 6 | -------------------------------------------------------------------------------- /nvim/index/ebuild.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo Ebuilds/Eclasses 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for ebuilds and eclasses. Inherits from sh.vim and adds 8 | " in Gentoo-specific highlights for certain keywords and functions. Requires 9 | " vim 6.3 or later. 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | " Only load this indent file when no other was loaded. 16 | if exists("b:did_indent") 17 | finish 18 | endif 19 | 20 | runtime! indent/sh.vim 21 | let b:did_indent = 1 22 | 23 | " vim: set sts=2 sw=2: 24 | -------------------------------------------------------------------------------- /nvim/index/gentoo-metadata.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo metadata.xml 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for metadata.xml 8 | " 9 | 10 | if &compatible || v:version < 603 11 | finish 12 | endif 13 | 14 | " Only load this indent file when no other was loaded. 15 | if exists("b:did_indent") 16 | finish 17 | endif 18 | 19 | runtime! indent/xml.vim 20 | let b:did_indent = 1 21 | 22 | " vim: set sts=2 sw=2: 23 | -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_DATA_HOME}/nvim/init.lua 2 | 3 | require('plugins') 4 | require('settings') 5 | require('autocmds') 6 | require('keybindings') 7 | require('config.lspkind') 8 | require('config.lsp') 9 | require('config.flog') 10 | require('config.fzf') 11 | -- require('config.pear') 12 | require('config.vifm') 13 | require('config.lualine') 14 | -------------------------------------------------------------------------------- /nvim/lua/autocmds.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/autocmds.lua 2 | 3 | local augroup = vim.api.nvim_create_augroup 4 | local autocmd = vim.api.nvim_create_autocmd 5 | 6 | -------------------- 7 | -- general -- 8 | -------------------- 9 | 10 | -- enable backup/undo for specific directories only 11 | autocmd({ 'BufWinEnter', 'WinEnter', 'FocusGained' }, { 12 | pattern = { vim.env.XDG_CONFIG_HOME .. "/*", vim.fn.expand("$H") .. "/code/*" }, 13 | command = 'setlocal undofile backup' 14 | }) 15 | 16 | 17 | -- do not automatically comment newlines 18 | autocmd('BufEnter', { 19 | pattern = '', 20 | command = 'set fo-=c fo-=r fo-=o' 21 | }) 22 | 23 | 24 | -------------------- 25 | -- filetypes -- 26 | -------------------- 27 | 28 | -- signature column for specific filetypes 29 | augroup('fto_signcol', { clear = true }) 30 | autocmd('Filetype', { 31 | group = 'fto_signcol', 32 | pattern = { 'c', 'cpp', 'go' }, 33 | command = 'setlocal signcolumn=yes:1' 34 | }) 35 | 36 | 37 | -- smaller tabs/spaces 38 | augroup('fto_small_tabs', { clear = true }) 39 | autocmd('Filetype', { 40 | group = 'fto_small_tabs', 41 | pattern = { 'text', 'xml', 'html', 'xhtml', 'css', 'scss', 'javascript', 'typescript' }, 42 | command = 'setlocal shiftwidth=2 tabstop=2 softtabstop=2' 43 | }) 44 | 45 | 46 | -- skeletons per language 47 | augroup('fto_skeleton', { clear = true }) 48 | autocmd('BufNewFile', { 49 | group = 'fto_skeleton', 50 | pattern = "*.c", 51 | command = "0r ~/nvim/templates/base.c", 52 | }) 53 | 54 | 55 | -- plain text documents 56 | augroup('ft_text', { clear = true }) 57 | autocmd('Filetype', { 58 | group = 'ft_text', 59 | pattern = { 'text', "*.txt" }, 60 | command = 'setlocal linebreak wrap spell backspace=indent,eol,start' 61 | }) 62 | 63 | 64 | -- Go (hard tabs, respecting pre-formatted files) 65 | augroup('ft_go', { clear = true }) 66 | autocmd('Filetype', { 67 | group = 'ft_go', 68 | pattern = 'go', 69 | command = 'setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=-1 preserveindent copyindent' 70 | }) 71 | 72 | 73 | -------------------- 74 | -- terminal -- 75 | -------------------- 76 | 77 | -- upon entering :terminal set some local options 78 | autocmd('TermOpen', { 79 | command = 'setlocal listchars= nonumber norelativenumber nocursorline nobuflisted' 80 | }) 81 | 82 | 83 | -- automatically enter Insert mode when creating a new :terminal 84 | autocmd({ 'TermOpen', 'BufWinEnter', 'WinEnter' }, { 85 | pattern = 'term://*', 86 | command = 'startinsert' 87 | }) 88 | -------------------------------------------------------------------------------- /nvim/lua/config/flog.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/config/flog.lua 2 | 3 | -- fugitive (dependency) 4 | vim.keymap.set('n', 'gs', ':Git', opts) 5 | vim.keymap.set('n', 'ge', ':Gdiffsplit', opts) 6 | 7 | 8 | -- flog 9 | vim.keymap.set('n', 'gg', ':Flogsplit', opts) 10 | -------------------------------------------------------------------------------- /nvim/lua/config/fzf.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/config/fzf.lua 2 | 3 | -- colors 4 | vim.g.fzf_colors = { 5 | fg = {'fg', 'Comment'}, 6 | bg = {'bg', 'Normal'}, 7 | hl = {'fg', 'Identifier'}, 8 | info = {'fg', 'Number'}, 9 | border = {'fg', 'Comment'}, 10 | prompt = {'fg', 'Identifier'}, 11 | pointer = {'fg', 'Question'}, 12 | marker = {'fg', 'Error'}, 13 | spinner = {'fg', 'Label'}, 14 | header = {'fg', 'Comment'}, 15 | } 16 | 17 | 18 | -- keybindings: general 19 | vim.keymap.set('n', 'ab', ':Buffers', opts)-- access open buffers 20 | vim.keymap.set('n', 'ac', ':FZF', opts)-- access current directory 21 | vim.keymap.set('n', 'ap', ':FZF ..', opts)-- access parent directory 22 | vim.keymap.set('n', 'ah', ':FZF $H', opts)-- access user base directory 23 | vim.keymap.set('n', 'au', ':FZF $HOME', opts)-- access user config directory 24 | 25 | -- keybindings: search/find/grep 26 | vim.keymap.set('n', 'fd', ':Rg', opts)-- grep within directory 27 | vim.keymap.set('n', 'fa', ':Lines', opts)-- grep within active buffers 28 | vim.keymap.set('n', 'fb', ':BLines', opts)-- grep within active buffer 29 | vim.keymap.set('n', 'fh', ':History', opts)-- show file history 30 | vim.keymap.set('n', 'fc', ':History:', opts)-- show cmd history 31 | 32 | -- keybindings: git 33 | vim.keymap.set('n', 'gf', ':GFiles', opts)-- show git files 34 | 35 | -- keybindings: menu 36 | vim.cmd([[ 37 | let g:fzf_action = { 38 | \ 'ctrl-h': 'split', 39 | \ 'ctrl-v': 'vsplit', 40 | \ 'ctrl-n': 'tab split' } 41 | ]]) 42 | -------------------------------------------------------------------------------- /nvim/lua/config/lsp.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/config/lsp.lua 2 | 3 | -- initialize server(s) 4 | local lspconfig = require('lspconfig') 5 | 6 | -- c/c++ 7 | lspconfig.clangd.setup{} 8 | 9 | -- go 10 | lspconfig.gopls.setup{} 11 | 12 | 13 | -- diagnostic configuration 14 | local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " } 15 | for type, icon in pairs(signs) do 16 | local hl = "DiagnosticSign" .. type 17 | vim.fn.sign_define(hl, { text = icon }) 18 | end 19 | vim.diagnostic.config({ 20 | severity_sort = true, 21 | signs = true, 22 | virtual_text = false, 23 | float = { 24 | scope = 'line', 25 | source = 'always', 26 | border = 'single', 27 | }, 28 | }) 29 | 30 | 31 | -- add borders to more popups 32 | vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { 33 | border = 'single', 34 | }) 35 | vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { 36 | border = 'single', 37 | }) 38 | 39 | 40 | -- Use LspAttach autocommand to only map the following keys 41 | -- after the language server attaches to the current buffer 42 | vim.api.nvim_create_autocmd('LspAttach', { 43 | group = vim.api.nvim_create_augroup('UserLspConfig', {}), 44 | callback = function(ev) 45 | -- enable completion triggered by (changed in keybindings.lua) 46 | vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' 47 | 48 | -- buffer localized keybindings (only used if LSP is active in buffer) 49 | local opts = { buffer = ev.buf } 50 | vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) 51 | vim.keymap.set('n', 'o', vim.diagnostic.open_float, opts) 52 | vim.keymap.set('n', 'n', vim.diagnostic.goto_next, opts) 53 | vim.keymap.set('n', 'p', vim.diagnostic.goto_prev, opts) 54 | vim.keymap.set('n', 'f', vim.lsp.buf.code_action, opts) 55 | vim.keymap.set('n', 'i', vim.lsp.buf.hover, opts) 56 | vim.keymap.set('n', 'r', vim.lsp.buf.references, opts) 57 | vim.keymap.set('n', 's', vim.lsp.buf.signature_help, opts) 58 | vim.keymap.set('n', 'e', vim.lsp.buf.rename, opts) 59 | vim.keymap.set('n', 'dc', vim.lsp.buf.declaration, opts) 60 | vim.keymap.set('n', 'df', vim.lsp.buf.definition, opts) 61 | vim.keymap.set('n', 'dt', vim.lsp.buf.type_definition, opts) 62 | vim.keymap.set('n', 'di', vim.lsp.buf.implementation, opts) 63 | -- workspaces don't work well with "autochdir" option enabled 64 | -- might want to use an external plugin for projects instead 65 | -- NOTE: these issues could also be server dependent 66 | vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) 67 | vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) 68 | vim.keymap.set('n', 'wl', function() 69 | print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 70 | end, opts) 71 | -- C/CPP (clangd) files are formatted according to the ".clang-format" file 72 | vim.keymap.set('n', '', function() 73 | vim.lsp.buf.format { async = true } 74 | end, opts) 75 | end, 76 | }) 77 | -------------------------------------------------------------------------------- /nvim/lua/config/lspkind.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/config/lspkind.lua 2 | 3 | -- initialize lspkind: 4 | 5 | -- setup() is also available as an alias 6 | require('lspkind').init({ 7 | -- defines how annotations are shown 8 | -- options: 'text', 'text_symbol', 'symbol_text', 'symbol' 9 | mode = 'symbol_text', 10 | 11 | -- default symbol map 12 | -- can be either 'default' (requires nerd-fonts font) or 13 | -- 'codicons' for codicon preset (requires vscode-codicons font) 14 | preset = 'codicons', 15 | 16 | -- override preset symbols 17 | symbol_map = { 18 | Text = "󰉿", 19 | Method = "󰆧", 20 | Function = "󰊕", 21 | Constructor = "", 22 | Field = "󰜢", 23 | Variable = "󰀫", 24 | Class = "󰠱", 25 | Interface = "", 26 | Module = "", 27 | Property = "󰜢", 28 | Unit = "󰑭", 29 | Value = "󰎠", 30 | Enum = "", 31 | Keyword = "󰌋", 32 | Snippet = "", 33 | Color = "󰏘", 34 | File = "󰈙", 35 | Reference = "󰈇", 36 | Folder = "󰉋", 37 | EnumMember = "", 38 | Constant = "󰏿", 39 | Struct = "󰙅", 40 | Event = "", 41 | Operator = "󰆕", 42 | TypeParameter = "", 43 | }, 44 | }) 45 | -------------------------------------------------------------------------------- /nvim/lua/config/pear.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/config/pear.lua 2 | 3 | -- keybindings 4 | vim.keymap.set('i', '', '(PearTreeJump)', opts)--jump to outer pair 5 | vim.keymap.set('i', '', '(PearTreeJNR)', opts)--jump down a line 6 | -------------------------------------------------------------------------------- /nvim/lua/config/vifm.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/config/vifm.lua 2 | 3 | -- keybindings 4 | vim.keymap.set('n', 've', ':Vifm', opts)-- select file to edit 5 | vim.keymap.set('n', 'vh', ':SplitVifm', opts)-- split buffer and select file(s) to open 6 | vim.keymap.set('n', 'vv', ':VsplitVifm', opts)-- split buffer veritcally and select file(s) to open 7 | vim.keymap.set('n', 'vp', ':PeditVifm', opts)-- select file to preview in a split 8 | vim.keymap.set('n', 'vd', ':DiffVifm', opts)-- select file(s) to compare with the current file 9 | -------------------------------------------------------------------------------- /nvim/lua/keybindings.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/keybindings.lua 2 | 3 | -- define options for bindings 4 | local opts = { 5 | noremap = true, -- non-recursive 6 | silent = true, -- do not show message 7 | } 8 | 9 | -- define leader key 10 | vim.g.mapleader = ',' 11 | 12 | 13 | -------------------- 14 | -- normal mode -- 15 | -------------------- 16 | 17 | -- unset keybindings [if applicable] 18 | vim.keymap.set('n', '', '', opts) 19 | 20 | 21 | -- buffers: faster navigation 22 | vim.keymap.set('n', 'gn', ':bnext', opts) 23 | vim.keymap.set('n', 'g]', ':blast', opts) 24 | vim.keymap.set('n', 'gp', ':bprevious', opts) 25 | vim.keymap.set('n', 'g[', ':bfirst', opts) 26 | vim.keymap.set('n', 'gd', ':bwipeout', opts)-- [usually] prevents re-opening closed buffers.. 27 | vim.keymap.set('n', 'gD', ':bwipeout!', opts)-- e.g. when using :blast/, , ,.. 28 | -- vim.keymap.set('n', 'gd', ':bdelete', opts) 29 | -- vim.keymap.set('n', 'gD', ':bdelete!', opts) 30 | vim.keymap.set('n', 'gw', ':close', opts) 31 | vim.keymap.set('n', 'go', ':enew', opts) 32 | vim.keymap.set('n', 'gl', '', opts) 33 | 34 | 35 | -- windows: faster resizing 36 | vim.keymap.set('n', '', ':resize +2', opts) 37 | vim.keymap.set('n', '', ':resize -2', opts) 38 | vim.keymap.set('n', '', ':vertical resize -2', opts) 39 | vim.keymap.set('n', '', ':vertical resize +2', opts) 40 | 41 | 42 | -- windows: more intuitive bindings 43 | vim.keymap.set('n', '=', ':vsplit', opts) 44 | vim.keymap.set('n', '-', ':split', opts) 45 | 46 | 47 | -- windows: open terminal 48 | vim.keymap.set('n', '', ':15%split | :terminal', opts) 49 | 50 | 51 | -------------------- 52 | -- insert mode -- 53 | -------------------- 54 | 55 | -- completion: faster navigation 56 | vim.keymap.set('i', '', '', opts)--open completion 57 | vim.keymap.set('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true})--select menu option with Tab 58 | vim.keymap.set('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true})--select menu option with Return 59 | vim.keymap.set('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true})--navigate down with ctrl+j 60 | vim.keymap.set('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true})--navigate up with ctrl+k 61 | 62 | 63 | -------------------- 64 | -- terminal mode -- 65 | -------------------- 66 | 67 | -- windows: revert to Normal mode 68 | vim.keymap.set('t', '', '', opts) 69 | 70 | -- windows: faster terminal navigation 71 | vim.keymap.set('t', 'w', 'w', opts) 72 | vim.keymap.set('t', 'j', 'j', opts) 73 | vim.keymap.set('t', 'k', 'k', opts) 74 | vim.keymap.set('t', 'h', 'h', opts) 75 | vim.keymap.set('t', 'l', 'l', opts) 76 | 77 | -- windows: faster resizing 78 | vim.keymap.set('t', '', ':resize +2', opts) 79 | vim.keymap.set('t', '', ':resize -2', opts) 80 | vim.keymap.set('t', '', ':vertical resize -2', opts) 81 | vim.keymap.set('t', '', ':vertical resize +2', opts) 82 | -------------------------------------------------------------------------------- /nvim/lua/plugins.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/plugins.lua 2 | 3 | -- auto-install 'packer', if not found on system 4 | local ensure_packer = function() 5 | local fn = vim.fn 6 | local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' 7 | if fn.empty(fn.glob(install_path)) > 0 then 8 | fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) 9 | vim.cmd [[packadd packer.nvim]] 10 | return true 11 | end 12 | return false 13 | end 14 | local packer_bootstrap = ensure_packer() 15 | 16 | 17 | -- specify plugins to install, if not found on system 18 | return require('packer').startup(function(use) 19 | -- 'packer' can self manage 20 | use 'wbthomason/packer.nvim' 21 | 22 | -- LSP framework 23 | use 'neovim/nvim-lspconfig' 24 | 25 | -- LSP completion menu symbols 26 | use 'onsails/lspkind.nvim' 27 | 28 | -- statusbar/tabline customization 29 | use { 'nvim-lualine/lualine.nvim', requires = { 'nvim-tree/nvim-web-devicons' } } 30 | 31 | -- git integration 32 | use { 'rbong/vim-flog', requires = 'tpope/vim-fugitive' } 33 | 34 | -- file picker ['vifm' inside 'neovim'] 35 | use 'vifm/vifm.vim' 36 | 37 | -- auto-pairing 38 | -- use 'tmsvg/pear-tree' 39 | 40 | -- quick comment/uncomment 41 | use 'tomtom/tcomment_vim' 42 | 43 | -- fuzzy finder (prefer this simpler version over 'ibhagwan/fzf-lua') 44 | use 'junegunn/fzf.vim' 45 | 46 | -- automatically set up configuration after cloning packer.nvim 47 | if packer_bootstrap then 48 | require('packer').sync() 49 | end 50 | end) 51 | -------------------------------------------------------------------------------- /nvim/lua/settings.lua: -------------------------------------------------------------------------------- 1 | -- file: ${XDG_CONFIG_HOME}/nvim/lua/settings.lua 2 | 3 | -- disable builtin plugins 4 | local disabled_built_ins = { 5 | "netrw", 6 | "netrwFileHandlers", 7 | "netrwPlugin", 8 | "netrwSettings", 9 | } 10 | for _, plugin in pairs(disabled_built_ins) do 11 | vim.g["loaded_" .. plugin] = 1 12 | end 13 | 14 | 15 | -- colorscheme (TODO: need to update my theme from .vim to lua, eventually) 16 | local colorscheme = 'candymouse' 17 | local is_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme) 18 | if not is_ok then 19 | vim.notify('colorscheme ' .. colorscheme .. ' not found!') 20 | return 21 | end 22 | vim.opt.termguicolors = false 23 | 24 | -- vim.cmd [[colorscheme testmouse]] 25 | 26 | 27 | -- general 28 | vim.opt.encoding = 'UTF-8' 29 | vim.opt.autochdir = true 30 | vim.opt.directory = { vim.env.XDG_DATA_HOME .. "/nvim/state/swap//" } 31 | vim.opt.swapfile = true 32 | vim.opt.backupdir = { vim.env.XDG_DATA_HOME .. "/nvim/state/backup//" } 33 | vim.opt.backup = false 34 | vim.opt.undodir = { vim.env.XDG_DATA_HOME .. "/nvim/state/undo//" } 35 | vim.opt.undofile = false 36 | vim.opt.undolevels = 100 37 | vim.opt.history = 1000 38 | vim.opt.hidden = true 39 | vim.opt.scrolloff = 2 40 | vim.opt.splitbelow = true 41 | vim.opt.splitright = true 42 | vim.opt.ttyfast = true 43 | vim.opt.spell = false 44 | vim.opt.spelllang = { 'en_us' } 45 | vim.opt.wrap = false 46 | vim.opt.foldmethod = 'manual' 47 | vim.opt.foldenable = true 48 | vim.opt.jumpoptions = 'clean' 49 | 50 | 51 | -- visuals 52 | vim.opt.laststatus = 2 53 | vim.opt.showcmd = true 54 | vim.opt.showmode = false 55 | vim.opt.modeline = false 56 | vim.opt.number = true 57 | vim.opt.relativenumber = false 58 | vim.opt.guicursor = 'i:block' 59 | vim.opt.cursorline = false 60 | vim.opt.cursorcolumn = false 61 | vim.opt.signcolumn = 'no' 62 | vim.opt.ruler = true 63 | vim.opt.listchars = { 64 | tab = '│·', 65 | trail = '·', 66 | nbsp = '¬', 67 | precedes = '▒', 68 | extends = '▒', 69 | } 70 | vim.opt.list = true 71 | vim.opt.errorbells = false 72 | vim.opt.shortmess:append("I") -- += 73 | -- vim.opt.shortmess:prepend("I") -- ^= 74 | -- vim.opt.shortmess:remove("I") -- -= 75 | 76 | 77 | -- indentation 78 | vim.opt.expandtab = true -- use spaces instead of tabs 79 | vim.opt.tabstop = 4 -- define width of character 80 | vim.opt.shiftwidth = 0 -- how many blanks inserted with > and < and during auto indent (0 uses tabstop) 81 | vim.opt.softtabstop = 4 -- and will insert and delete this many spaces 82 | vim.opt.smarttab = true -- true = pressing for identation uses shiftwidth 83 | vim.opt.autoindent = true -- automatically indent newline to the size of previous line when hitting 84 | vim.opt.breakindent = true -- wrapped lines will visually preserve indentation 85 | vim.opt.cindent = false -- highly configurable C style indentation settings (see :h c-indenting) 86 | 87 | 88 | -- searching 89 | vim.opt.incsearch = true 90 | vim.opt.hls = true 91 | vim.opt.showmatch = true 92 | vim.opt.ignorecase = true 93 | vim.opt.smartcase = true 94 | 95 | 96 | -- globbing 97 | vim.opt.wildmode = 'list:longest,full' 98 | vim.opt.wildignore = vim.opt.wildignore + { 99 | '*/.git/*,*/.hg/*,*/.svn/*,*/node_modules/*,=npm-debug.log,*/pip_modules/*,__pycache__', 100 | '*.o,*.obj,*.exe,*.dll,*.jar,*.pyc,*.rbc,*.class,*.so', 101 | '*/cache/*', 102 | } 103 | 104 | 105 | -- menus 106 | vim.opt.complete = vim.opt.complete - 'i' 107 | vim.opt.completeopt = { "menu", "menuone", "noselect", "popup" } 108 | 109 | 110 | -- mouse 111 | vim.opt.mouse = 'a' 112 | vim.opt.mousehide = true 113 | 114 | 115 | -- performance 116 | vim.opt.updatetime = 300 117 | vim.opt.ttimeoutlen = 10 118 | 119 | 120 | -- netrw (disabled plugin; fallback options if re-enabled) 121 | vim.g.netrw_banner = 0 122 | vim.g.netrw_liststyle = 3 123 | vim.g.netrw_winsize = '30' 124 | vim.g.netrw_browsex_viewer = "xdg-open" 125 | -------------------------------------------------------------------------------- /nvim/plugin/gentoo-common.vim: -------------------------------------------------------------------------------- 1 | " Vim plugin 2 | " Purpose: Common functionality for gentoo-syntax plugins 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 || exists("g:loaded_gentoo_common") 8 | finish 9 | endif 10 | 11 | let g:loaded_gentoo_common=1 12 | 13 | fun! GentooGetUser() 14 | let l:result = expand("\$ECHANGELOG_USER") 15 | if l:result ==# "\$ECHANGELOG_USER" 16 | let l:gitcfg = "git config " 17 | if executable("git") 18 | let l:email = trim(system(l:gitcfg . "user.email")) 19 | let l:name = trim(system(l:gitcfg . "user.name")) 20 | else 21 | let l:email = expand("$HOST") 22 | let l:name = expand("$USER") 23 | endif 24 | let l:result = l:name . " <" . l:email . ">" 25 | endif 26 | return l:result 27 | endfun 28 | 29 | fun! GentooHeader(...) 30 | " The shebang arg is optional 31 | let l:year = strftime("%Y") 32 | let l:copyright = '# Copyright ' . l:year . ' Gentoo Authors' 33 | 34 | " Only one arg allowed (shebang only) 35 | if a:0 == 1 36 | 0 put =a:1 " Insert shebang 37 | put =l:copyright 38 | else 39 | 0 put =l:copyright 40 | endif 41 | put ='# Distributed under the terms of the GNU General Public License v2' 42 | $ 43 | endfun 44 | 45 | fun! GentooGetArch() 46 | if exists("g:gentooarch") && g:gentooarch != "" 47 | return g:gentooarch 48 | else 49 | let l:a = system("portageq envvar ACCEPT_KEYWORDS 2>/dev/null") 50 | let l:a = substitute(l:a, "[\\n~]", " ", "g") 51 | let l:a = substitute(l:a, "^\\s\\+", "", "") 52 | let l:a = substitute(l:a, "\\s.*", "", "") 53 | if l:a == "" 54 | let l:a = "amd64" 55 | endif 56 | let g:gentooarch = l:a 57 | return g:gentooarch 58 | endif 59 | endfun 60 | 61 | fun! GentooGetPythonTargets() 62 | if exists("g:gentoopythontargets") && g:gentoopythontargets != "" 63 | return g:gentoopythontargets 64 | else 65 | let l:pyexec_path = "/etc/python-exec/python-exec.conf" 66 | 67 | if filereadable(l:pyexec_path) 68 | let l:pys = readfile(l:pyexec_path)->filter("v:val =~ '^[^#-]'") 69 | \ ->sort() 70 | let l:impls = [] 71 | let l:py3s = [] 72 | for l:py in l:pys 73 | let l:m = l:py->matchstr("^python3.*")->matchstr("\\d*$") 74 | if !empty(l:m) 75 | eval l:py3s->add(l:m) 76 | else 77 | eval l:impls->add(l:py) 78 | endif 79 | endfor 80 | if len(l:py3s) ==# 1 81 | eval l:impls->add("python3_".l:py3s->join()) 82 | elseif len(l:py3s) > 1 83 | let l:min = "" 84 | let l:max = "" 85 | eval l:py3s->sort('N') 86 | for l:py in l:py3s 87 | if l:min ==# "" 88 | let l:min = l:py 89 | let l:max = l:py 90 | elseif l:py ==# l:max + 1 91 | let l:max = l:py 92 | else 93 | let l:max = "" 94 | break 95 | endif 96 | endfor 97 | 98 | if l:max !=# "" 99 | eval l:impls->add("python3_{".l:min."..".l:max."}") 100 | else 101 | eval l:impls->add("python3_{".l:py3s->join(",")."}") 102 | endif 103 | endif 104 | let l:py3 = flatten(l:impls)->join() 105 | endif 106 | if empty(l:py3) 107 | let l:py3 = 108 | \ system("python -c 'import epython; print(epython.EPYTHON)'") 109 | \ ->substitute("\n", "", "g")->substitute("[.]", "_", "g") 110 | endif 111 | 112 | let g:gentoopythontargets = l:py3 113 | return g:gentoopythontargets 114 | endif 115 | endfun 116 | 117 | " vim: set et foldmethod=marker sw=4 ts=4 : " 118 | -------------------------------------------------------------------------------- /nvim/plugin/newebuild.vim: -------------------------------------------------------------------------------- 1 | " Vim plugin 2 | " Purpose: Intelligently create content for new ebuild files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 || exists("g:loaded_newebuild") 8 | finish 9 | endif 10 | 11 | let g:loaded_newebuild=1 12 | 13 | runtime! plugin/gentoo-common.vim 14 | 15 | fun! MakeNewEbuild() 16 | let l:pastebackup = &paste 17 | set nopaste 18 | 19 | " {{{ variables 20 | let l:arch = GentooGetArch() 21 | let l:filename = expand("%:p") 22 | let l:category = substitute(l:filename, 23 | \ "^.*/\\([^/]\\+\\)/[^/]\\+/[^/]\\+\\.ebuild", "\\1", "g") 24 | let l:package = substitute(l:filename, 25 | \ "^.*/\\([^/]\\+\\)/[^/]\\+\\.ebuild", "\\1", "g") 26 | 27 | " use empty keywords for live ebuilds 28 | if l:filename =~# "-9999\\+.ebuild\$" 29 | let l:keywords = "" 30 | else 31 | let l:keywords = "~" . l:arch 32 | endif 33 | 34 | " }}} 35 | 36 | call GentooHeader() 37 | 38 | if expand("%:e") =~# "eclass\$" 39 | " {{{ eclass special setup 40 | let l:eclass=expand("%:t") 41 | put ='# @ECLASS: ' . l:eclass 42 | put ='# @MAINTAINER:' 43 | put ='# ' . GentooGetUser() 44 | put ='# @AUTHOR:' 45 | put ='# ' . GentooGetUser() 46 | put ='# @SUPPORTED_EAPIS: 8' 47 | put ='# @BLURB: ' 48 | put ='# @DESCRIPTION:' 49 | put ='' 50 | put ='case ${EAPI} in' 51 | put =' 8) ;;' 52 | put =' *) die \"${ECLASS}: EAPI ${EAPI:-0} not supported\" ;;' 53 | put ='esac' 54 | put ='' 55 | let l:eclass_ident = substitute(toupper(l:eclass), "[^A-Z0-9]", "_", "g") 56 | put ='if [[ ! ${_' . l:eclass_ident . '} ]]; then' 57 | put ='_' . l:eclass_ident . '=1' 58 | put ='' 59 | put ='fi' 60 | " }}} 61 | 62 | " {{{ go to the first thing to edit 63 | 0 64 | /^# @BLURB:/ 65 | normal $ 66 | nohls 67 | " }}} 68 | else 69 | put ='EAPI=8' 70 | put ='' 71 | if l:category ==# "acct-group" 72 | " {{{ acct-group special setup 73 | put ='inherit acct-group' 74 | put ='' 75 | put ='ACCT_GROUP_ID=' 76 | " }}} 77 | elseif l:category ==# "acct-user" 78 | " {{{ acct-user special setup 79 | let l:username=substitute(expand("%:t:r"), 80 | \ "\\(.*\\)-[0-9]*.*", "\\1", "") 81 | put ='inherit acct-user' 82 | put ='' 83 | put ='DESCRIPTION=\"\"' 84 | put ='ACCT_USER_ID=' 85 | put ='ACCT_USER_GROUPS=( ' . l:username . ' )' 86 | put ='' 87 | put ='acct-user_add_deps' 88 | " }}} 89 | elseif l:category ==# "app-vim" 90 | " {{{ app-vim special setup 91 | put ='#VIM_PLUGIN_VIM_VERSION=\"7.0\"' 92 | put ='inherit vim-plugin' 93 | put ='' 94 | put ='DESCRIPTION=\"vim plugin: \"' 95 | put ='HOMEPAGE=\"http://www.vim.org/scripts/script.php?script_id=\"' 96 | put ='LICENSE=\"\"' 97 | put ='KEYWORDS=\"' . l:keywords . '\"' 98 | put ='' 99 | put ='VIM_PLUGIN_HELPFILES=\"\"' 100 | put ='VIM_PLUGIN_HELPTEXT=\"\"' 101 | put ='VIM_PLUGIN_HELPURI=\"\"' 102 | put ='VIM_PLUGIN_MESSAGES=\"\"' 103 | put ='' 104 | " }}} 105 | elseif l:category ==# "www-apache" && expand("%:t") =~# "^mod_" 106 | " {{{ www-apache default setup (for module pkgs) 107 | put ='inherit apache-module' 108 | put ='' 109 | put ='DESCRIPTION=\"\"' 110 | put ='HOMEPAGE=\"\"' 111 | put ='LICENSE=\"\"' 112 | put ='' 113 | put ='KEYWORDS=\"' . l:keywords . '\"' 114 | put ='SLOT=\"0\"' 115 | put ='' 116 | put ='# See apache-module.eclass for more information.' 117 | put ='APACHE2_MOD_CONF=\"XX_${PN}\"' 118 | put ='APACHE2_MOD_DEFINE=\"\"' 119 | put ='' 120 | put ='need_apache2' 121 | " }}} 122 | elseif l:category ==# "dev-java" 123 | " {{{ dev-java generation-2 default java-pkg-simple ebuild 124 | put ='JAVA_PKG_IUSE=\"doc source test\"' 125 | put ='MAVEN_ID=\"\"' 126 | put ='MAVEN_PROVIDES=\"\"' 127 | put ='JAVA_TESTING_FRAMEWORKS=\"junit-4\"' 128 | put ='' 129 | put ='inherit java-pkg-2 java-pkg-simple' 130 | put ='' 131 | put ='DESCRIPTION=\"\"' 132 | put ='HOMEPAGE=\"\"' 133 | put ='SRC_URI=\"\"' 134 | put ='S=\"${WORKDIR}/${P}\"' 135 | put ='' 136 | put ='LICENSE=\"\"' 137 | put ='SLOT=\"0\"' 138 | put ='KEYWORDS=\"' . l:keywords . '\"' 139 | put ='' 140 | put ='CP_DEPEND=\"\"' 141 | put ='' 142 | put ='DEPEND=\"${CP_DEPEND}' 143 | put =' >=virtual/jdk-1.8:*\"' 144 | put ='RDEPEND=\"${CP_DEPEND}' 145 | put =' >=virtual/jre-1.8:*\"' 146 | elseif l:category ==# "dev-perl" || l:category ==# "perl-core" 147 | " {{{ perl modules default setup 148 | put ='DIST_AUTHOR=\"\"' 149 | put ='inherit perl-module' 150 | put ='' 151 | put ='DESCRIPTION=\"\"' 152 | put ='' 153 | put ='#LICENSE=\"\|\| ( Artistic GPL-1+ )\"' 154 | put ='SLOT=\"0\"' 155 | put ='KEYWORDS=\"' . l:keywords . '\"' 156 | put ='' 157 | put ='RDEPEND=\"\"' 158 | put ='DEPEND=\"${RDEPEND}\"' 159 | " }}} 160 | else 161 | " {{{ standard default setup 162 | " {{{ extra inherits for some categories 163 | if l:category ==# "dev-python" 164 | put ='DISTUTILS_USE_PEP517=hatchling' 165 | put ='PYTHON_COMPAT=( ' . GentooGetPythonTargets() . ' )' 166 | put ='' 167 | put ='inherit distutils-r1 pypi' 168 | put ='' 169 | endif 170 | " }}} 171 | 172 | put ='DESCRIPTION=\"\"' 173 | 174 | if l:category ==# "dev-python" 175 | put ='HOMEPAGE=\"' 176 | put =' https://pypi.org/project/' . l:package . '/' 177 | put ='\"' 178 | else 179 | put ='HOMEPAGE=\"\"' 180 | put ='SRC_URI=\"\"' 181 | endif 182 | 183 | put ='' 184 | put ='LICENSE=\"\"' 185 | put ='SLOT=\"0\"' 186 | put ='KEYWORDS=\"' . l:keywords . '\"' 187 | put ='' 188 | 189 | " {{{ extra deps for some categories 190 | if l:category ==# "dev-python" 191 | put ='RDEPEND=\"' 192 | put ='\"' 193 | put ='BDEPEND=\"' 194 | put =' test? (' 195 | put =' )' 196 | put ='\"' 197 | put ='' 198 | put ='distutils_enable_tests pytest' 199 | else 200 | put ='DEPEND=\"\"' 201 | put ='RDEPEND=\"${DEPEND}\"' 202 | put ='BDEPEND=\"\"' 203 | endif 204 | " }}} 205 | endif 206 | 207 | " {{{ go to the first thing to edit 208 | 0 209 | /^\(ACCT_GROUP_ID\|DIST_AUTHOR\|DESCRIPTION\)=/ 210 | exec "normal f=ll" 211 | nohls 212 | " }}} 213 | endif 214 | 215 | if pastebackup == 0 216 | set nopaste 217 | endif 218 | endfun 219 | 220 | com! -nargs=0 NewEbuild call MakeNewEbuild() 221 | 222 | if !exists("g:ebuild_create_on_empty") 223 | " Enable autogeneration of ebuilds by default 224 | let g:ebuild_create_on_empty = 1 225 | endif 226 | 227 | " check to see if v:progname is vimdiff to disable new ebuild creation 228 | if v:progname =~ "vimdiff" 229 | let g:ebuild_create_on_empty = 0 230 | endif 231 | 232 | augroup NewEbuild 233 | au! 234 | autocmd BufNewFile *.e{build,class} 235 | \ if g:ebuild_create_on_empty | 236 | \ call MakeNewEbuild() | 237 | \ endif 238 | augroup END 239 | 240 | " vim: set et foldmethod=marker : " 241 | -------------------------------------------------------------------------------- /nvim/plugin/newglep.vim: -------------------------------------------------------------------------------- 1 | " Vim plugin 2 | " Purpose: New GLEP skeleton 3 | " Author: Michał Górny 4 | " Copyright: Copyright (c) 2017 Michał Górny 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 || exists("g:loaded_newglep") 8 | finish 9 | endif 10 | 11 | let g:loaded_newglep=1 12 | 13 | runtime! plugin/gentoo-common.vim 14 | 15 | fun! MakeNewGLEP() 16 | let l:pastebackup = &paste 17 | set nopaste 18 | 19 | " {{{ variables 20 | let l:filename = expand("%:t") 21 | let l:basename = expand("%:t:r") 22 | let l:number = str2nr(substitute(l:basename, "^glep-", "", "")) 23 | let l:date = strftime("%Y-%m-%d") 24 | " }}} 25 | 26 | " {{{ header preamble 27 | put ='---' 28 | put ='GLEP: ' . l:number 29 | put ='Title: ' 30 | put ='Author: ' . GentooGetUser() 31 | put ='Type: Standards Track' 32 | put ='Status: Draft' 33 | put ='Version: 1' 34 | put ='Created: ' . l:date 35 | put ='Last-Modified: ' . l:date 36 | put ='Post-History: ' 37 | put ='Content-Type: text/x-rst' 38 | put ='Requires: ' 39 | put ='Replaces: ' 40 | put ='---' 41 | " }}} 42 | 43 | " {{{ warn if .txt suffix is used 44 | if l:filename =~# ".txt\$" 45 | put ='' 46 | put ='.. Warning: .txt suffix is obsolete, use \"' . l:basename . '.rst\" instead' 47 | endif 48 | " }}} 49 | 50 | " {{{ skeleton 51 | let l:sections = ['Abstract', 'Motivation', 'Specification', 'Rationale', 52 | \ 'Backwards Compatibility', 'Reference Implementation', 'References', 53 | \ 'Copyright'] 54 | for l:section in l:sections 55 | let l:sectlen = len(l:section) 56 | put ='' 57 | put =l:section 58 | put =repeat('=', l:sectlen) 59 | put ='' 60 | if l:section != 'Copyright' 61 | put ='' 62 | put ='' 63 | endif 64 | endfor 65 | " copyright 66 | put ='This work is licensed under the Creative Commons Attribution-ShareAlike 4.0' 67 | put ='International License. To view a copy of this license, visit' 68 | put ='https://creativecommons.org/licenses/by-sa/4.0/.' 69 | " }}} 70 | 71 | " {{{ go to the first thing to edit 72 | 0 73 | del 74 | /^Title:/ 75 | normal $ 76 | nohls 77 | " }}} 78 | 79 | if pastebackup == 0 80 | set nopaste 81 | endif 82 | endfun 83 | 84 | com! -nargs=0 NewGLEP call MakeNewGLEP() | set filetype=glep 85 | 86 | if !exists("g:glep_create_on_empty") 87 | " Enable autogeneration of GLEPs by default 88 | let g:glep_create_on_empty = 1 89 | endif 90 | 91 | " check to see if v:progname is vimdiff to disable new GLEP creation 92 | if v:progname =~ "vimdiff" 93 | let g:glep_create_on_empty = 0 94 | endif 95 | 96 | augroup NewGLEP 97 | au! 98 | autocmd BufNewFile glep-[0-9][0-9][0-9][0-9].{txt,rst} 99 | \ if g:glep_create_on_empty | 100 | \ call MakeNewGLEP() | set filetype=glep | 101 | \ endif 102 | augroup END 103 | 104 | " vim: set et foldmethod=marker : " 105 | -------------------------------------------------------------------------------- /nvim/plugin/newinitd.vim: -------------------------------------------------------------------------------- 1 | " Vim plugin 2 | " Purpose: create content for new init.d scripts 3 | " Author: Aaron Walker 4 | " Copyright: Copyright (c) 2005 Aaron Walker 5 | " License: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 || exists("g:loaded_newinitd") 8 | finish 9 | endif 10 | 11 | let g:loaded_newinitd=1 12 | 13 | runtime! plugin/gentoo-common.vim 14 | 15 | fun! MakeNewInitd() 16 | call GentooHeader('#!/sbin/openrc-run') 17 | 18 | " {{{ variables 19 | let l:scriptname = expand("%:t:r") 20 | " }}} 21 | " 22 | " {{{ common metadata 23 | put ='name=\"' . l:scriptname . ' daemon\"' 24 | put ='description=\"\"' 25 | put ='command=/usr/bin/' . l:scriptname 26 | put ='command_args=\"${' . l:scriptname . '_args}\"' 27 | " }}} 28 | 29 | " {{{ functions 30 | put ='' 31 | put ='depend() {' 32 | put ='' 33 | put ='}' 34 | " }}} 35 | 36 | " Jump back to the first line 37 | 0 38 | endfun 39 | 40 | com! -nargs=0 NewInitd call MakeNewInitd() | set filetype=gentoo-init-d.sh 41 | 42 | augroup NewInitd 43 | au! 44 | autocmd BufNewFile {/*/files/*.{rc*,init*},/etc/init.d/*} 45 | \ call MakeNewInitd() | set filetype=gentoo-init-d.sh 46 | augroup END 47 | 48 | " vim: set et foldmethod=marker : " 49 | -------------------------------------------------------------------------------- /nvim/plugin/newmetadata.vim: -------------------------------------------------------------------------------- 1 | " Vim plugin 2 | " Purpose: Intelligently create content for metadata.xml 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 || exists("g:loaded_newmetadata") 8 | finish 9 | endif 10 | 11 | let g:loaded_newmetadata=1 12 | 13 | runtime! plugin/gentoo-common.vim 14 | 15 | fun! MakeNewMetadata() 16 | let l:pastebackup = &paste 17 | set nopaste 18 | 19 | " {{{ variables 20 | let l:filename = expand("%:p") 21 | let l:dir = expand("%:p:h") 22 | 23 | if glob(l:dir . '/*/*.ebuild') =~ '\S' 24 | let l:category = substitute(l:filename, '^.*/\([a-z][a-z0-9]\+-[a-z]\+\)/metadata.xml$', 25 | \ '\1', '') 26 | let l:iscatmetadata = 1 27 | else 28 | let l:category = substitute(l:filename, 29 | \ "^.*/\\([^/]\\+\\)/[^/]\\+/metadata\\.xml", "\\1", "g") 30 | let l:package = substitute(l:filename, 31 | \ "^.*/\\([^/]\\+\\)/metadata\\.xml", "\\1", "g") 32 | let l:iscatmetadata = 0 33 | let l:user = GentooGetUser() 34 | let l:email = matchstr(l:user, "\\(<\\)\\@<=[^>]\\+\\(>\\)\\@=") 35 | let l:name = matchstr(l:user, "^[^<]\\+\\( <\\)\\@=") 36 | endif 37 | " }}} 38 | 39 | " {{{ catmetadata 40 | if l:iscatmetadata 41 | " {{{ content 42 | 0 put ='' 43 | put ='' 44 | put ='' 45 | put ='' 46 | put ='' 47 | put ='' 48 | exec "normal gg=G" 49 | " }}} 50 | " }}} 51 | else 52 | " {{{ pkgmetadata 53 | 54 | " {{{ project 55 | let l:project = "" 56 | if l:category ==# "app-vim" 57 | let l:project = "vim" 58 | elseif l:category ==# "dev-haskell" 59 | let l:project = "haskell" 60 | elseif l:category ==# "dev-perl" 61 | let l:project = "perl" 62 | elseif l:category ==# "dev-php" 63 | let l:project = "php-bugs" 64 | elseif l:category ==# "dev-python" 65 | let l:project = "python" 66 | elseif l:category ==# "dev-ruby" 67 | let l:project = "ruby" 68 | elseif l:category ==# "dev-tex" 69 | let l:project = "tex" 70 | elseif l:category ==# "dev-java" 71 | let l:project = "java" 72 | endif 73 | " }}} 74 | 75 | " {{{ content 76 | 0 put ='' 77 | put ='' 78 | put ='' 79 | if l:project != "" 80 | if l:project == "python" 81 | put ='' 82 | endif 83 | put ='' 84 | put ='' . l:project . '@gentoo.org' 85 | put ='' 86 | endif 87 | put ='' 88 | put ='' . l:email . '' 89 | if l:name != "" 90 | put ='' . l:name . '' 91 | endif 92 | put ='' 93 | if l:category ==# "dev-python" 94 | put ='' 95 | put ='' 96 | put ='' . l:package . '' 97 | put ='' 98 | endif 99 | put ='' 100 | exec "normal gg=G" 101 | " }}} 102 | endif 103 | " }}} 104 | 105 | " Jump back to the first line 106 | 0 107 | 108 | " Delete last/empty line 109 | $ delete 110 | 111 | if pastebackup == 0 112 | set nopaste 113 | endif 114 | endfun 115 | 116 | com! -nargs=0 NewMetadata call MakeNewMetadata() 117 | augroup NewMetadata 118 | au! 119 | autocmd BufNewFile metadata.xml 120 | \ call MakeNewMetadata() 121 | augroup END 122 | 123 | " vim: set et foldmethod=marker : " 124 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-common.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo Common Rules 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 8 | finish 9 | endif 10 | 11 | syn match GentooBug contained /\(\([gG]entoo \|[dD]ebian \|[sS]ource[Ff]orge \)\?[Bb]ug \(#\s*\)\?\|#\)\d\{1,\}/ 12 | 13 | " bad space 14 | syn region GentooError start=/^ / end=/$/ 15 | " trailing whitespace 16 | syn match GentooError /\s\+$/ 17 | " mixed tab and space indentation 18 | syn match GentooError /\s*\(\t \| \t\)\s*/ 19 | 20 | hi def link GentooBug Underlined 21 | hi def link GentooError Error 22 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-conf-d.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo /etc/conf.d/ files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo /etc/conf.d/ files. Inherits from sh.vim 8 | " and adds in Gentoo-specific highlights for certain keywords and functions. 9 | " Requires vim 6.3 or later. 10 | " 11 | 12 | if &compatible || v:version < 603 13 | finish 14 | endif 15 | 16 | if exists("b:current_syntax") 17 | finish 18 | endif 19 | 20 | let is_bash=1 21 | runtime! syntax/sh.vim 22 | unlet b:current_syntax 23 | 24 | runtime syntax/gentoo-common.vim 25 | syn cluster shCommentGroup add=GentooBug 26 | 27 | let b:current_syntax = "gentoo-conf-d" 28 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-env-d.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo /etc/env.d/ files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo /etc/env.d/ files. Inherits from sh.vim 8 | " and adds in Gentoo-specific highlights for certain keywords and functions. 9 | " Requires vim 6.3 or later. 10 | " 11 | 12 | if &compatible || v:version < 603 13 | finish 14 | endif 15 | 16 | if exists("b:current_syntax") 17 | finish 18 | endif 19 | 20 | let is_bash=1 21 | runtime! syntax/sh.vim 22 | unlet b:current_syntax 23 | 24 | runtime syntax/gentoo-common.vim 25 | syn cluster shCommentGroup add=GentooBug 26 | 27 | let b:current_syntax = "gentoo-env-d" 28 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-init-d.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo /etc/init.d/ scripts 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo /etc/init.d/ scripts. Inherits from sh.vim 8 | " and adds in Gentoo-specific highlights for certain keywords and functions. 9 | " Requires vim 6.3 or later. 10 | " 11 | " TODO: Add highlights for description_$command 12 | " Add start-stop-daemon highlighting incl. deprecated options 13 | " 14 | 15 | if &compatible || v:version < 603 16 | finish 17 | endif 18 | 19 | if exists("b:current_syntax") 20 | finish 21 | endif 22 | 23 | let is_bash=1 24 | runtime! syntax/sh.vim 25 | unlet b:current_syntax 26 | 27 | runtime syntax/gentoo-common.vim 28 | syn cluster shCommentGroup add=GentooBug 29 | 30 | syn keyword GentooInitDKeyword config need use before after provide keyword 31 | syn keyword GentooInitDKeyword ebegin vebegin eend veend ewend vewend 32 | syn keyword GentooInitDKeyword einfo veinfo ewarn vewarn eerror veerror 33 | syn keyword GentooInitDKeyword ewaitfile is_newer_than is_older_than 34 | syn keyword GentooInitDKeyword service_set_value service_get_value 35 | syn keyword GentooInitDKeyword service_started service_starting service_inactive 36 | syn keyword GentooInitDKeyword service_stopping service_stopped service_coldplugged 37 | syn keyword GentooInitDKeyword service_wasinactive service_started_daemon 38 | syn keyword GentooInitDKeyword mark_service_started mark_service_starting 39 | syn keyword GentooInitDKeyword mark_service_inactive mark_service_stopping 40 | syn keyword GentooInitDKeyword mark_service_stopped mark_service_coldplugged 41 | syn keyword GentooInitDKeyword mark_service_wasinactive checkpath yesno 42 | 43 | syn keyword GentooInitSpecialVariables extra_commands extra_started_commands 44 | syn keyword GentooInitSpecialVariables extra_stopped_commands description command 45 | syn keyword GentooInitSpecialVariables command_args command_background pidfile name 46 | syn keyword GentooInitSpecialVariables start_stop_daemon_args retry required_dirs 47 | syn keyword GentooInitSpecialVariables required_files 48 | syn keyword GentooInitSpecialVariables RC_SVCNAME RC_RUNLEVEL RC_REBOOT RC_BOOTLEVEL 49 | syn keyword GentooInitSpecialVariables RC_DEFAULTLEVEL RC_SYS RC_PREFIX RC_UNAME RC_CMD 50 | syn keyword GentooInitDeprecated opts 51 | 52 | syn keyword GentooInitDFunc describe start_pre start start_post stop_pre stop stop_post 53 | syn keyword GentooInitDFunc reload restart status zap depend 54 | 55 | syn cluster shCommandSubList add=GentooInitDKeyword 56 | 57 | hi def link GentooInitDKeyword Keyword 58 | hi def link GentooInitDFunc Special 59 | hi def link GentooInitSpecialVariables PreProc 60 | hi def link GentooInitDeprecated Error 61 | 62 | let b:current_syntax = "gentoo-init-d" 63 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-metadata.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo metadata.xml 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for metadata.xml. Inherits from xml.vim. 8 | " 9 | 10 | if &compatible || v:version < 603 11 | finish 12 | endif 13 | 14 | if exists("b:current_syntax") 15 | finish 16 | endif 17 | 18 | runtime! syntax/xml.vim 19 | unlet b:current_syntax 20 | 21 | syn cluster xmlTagHook add=metadataElement 22 | 23 | syn match metadataElement contained 'packages' 24 | syn match metadataElement contained 'herd' 25 | syn match metadataElement contained 'maintainer' 26 | syn match metadataElement contained 'email' 27 | syn match metadataElement contained 'name' 28 | syn match metadataElement contained 'description' 29 | syn match metadataElement contained 'longdescription' 30 | 31 | " upstream metadata info 32 | syn cluster xmlTagHook add=upstreamMetadata 33 | syn match upstreamMetadata contained 'upstream' 34 | syn match upstreamMetadata contained 'maintainer' 35 | syn match upstreamMetadata contained 'changelog' 36 | syn match upstreamMetadata contained 'doc' 37 | syn match upstreamMetadata contained 'bugs-to' 38 | syn match upstreamMetadata contained 'remote-id' 39 | 40 | " Glep 56 41 | " TODO add support for required attributes 42 | syn match metadataElement contained 'use' 43 | syn match metadataElement contained 'flag' 44 | syn match metadataElement contained 'pkg' 45 | syn match metadataElement contained 'cat' 46 | 47 | syn match metadataElement contained 'catmetadata' 48 | syn match metadataElement contained 'pkgmetadata' 49 | 50 | hi def link metadataElement Keyword 51 | hi def link upstreamMetadata Keyword 52 | 53 | let b:current_syntax = "gentoo-metadata" 54 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-mirrors.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo thirdpartymirrors files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo thirdpartymirrors files. Requires vim 6.3 or 8 | " later. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime syntax/gentoo-package-common.vim 20 | 21 | syn match GentooMirrorsAtom /^[^# \t]\+/ 22 | \ nextgroup=GentooMirrorsHttpUrl,GentooMirrorsHttpsUrl,GentooMirrorsFtpUrl skipwhite 23 | syn region GentooMirrorsHttpUrl contained start=/http:\/\// end=/\(\s\)\@=\|$/ 24 | \ nextgroup=GentooMirrorsHttpUrl,GentooMirrorsHttpsUrl,GentooMirrorsFtpUrl skipwhite 25 | syn region GentooMirrorsHttpsUrl contained start=/https:\/\// end=/\(\s\)\@=\|$/ 26 | \ nextgroup=GentooMirrorsHttpUrl,GentooMirrorsHttpsUrl,GentooMirrorsFtpUrl skipwhite 27 | syn region GentooMirrorsFtpUrl contained start=/ftp:\/\// end=/\(\s\)\@=\|$/ 28 | \ nextgroup=GentooMirrorsHttpUrl,GentooMirrorsHttpsUrl,GentooMirrorsFtpUrl skipwhite 29 | 30 | hi def link GentooMirrorsAtom Identifier 31 | hi def link GentooMirrorsHttpUrl String 32 | hi def link GentooMirrorsHttpsUrl Keyword 33 | hi def link GentooMirrorsFtpUrl Special 34 | 35 | let b:current_syntax = "gentoo-mirrors" 36 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-package-common.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo package.*/use.desc/etc. common rules 3 | " Author: Michał Górny 4 | " Copyright: Copyright (c) 2018 Michał Górny 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | 7 | if &compatible || v:version < 603 8 | finish 9 | endif 10 | 11 | runtime syntax/gentoo-common.vim 12 | 13 | syn region GentooPackageComment start=/#/ end=/$/ 14 | \ contains=GentooPackageEmail,GentooPackageDate,GentooBug 15 | 16 | syn match GentooPackageEmail contained /<[^<>@[:space:]]\+@[^<>@.[:space:]]\+\.[^<>@[:space:]]\+>/ 17 | syn match GentooPackageDate contained /(\(\d\d\?\s\w\+\|\w\+\s\d\d\?\)\s\d\{4\})/ 18 | 19 | syn match GentooPackageAtom /^[\ \t]*[^ \t\n#]\+\S*\/\S\+/ 20 | \ nextgroup=@GentooPackagePostAtom skipwhite 21 | 22 | hi def link GentooPackageComment Comment 23 | hi def link GentooPackageEmail Special 24 | hi def link GentooPackageDate Number 25 | hi def link GentooPackageAtom Identifier 26 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-package-keywords.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo package.keywords files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo package.keywords files. Requires vim 6.3 or 8 | " later. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime syntax/gentoo-package-common.vim 20 | 21 | syn match GentooPackageKeywordsStableKeyword contained /-\?\([a-z0-9\-]\+\|\*\)/ 22 | \ nextgroup=@GentooPackagePostAtom skipwhite 23 | syn match GentooPackageKeywordsKeyword contained /-\?\~\([a-z0-9\-]\+\|\*\)/ 24 | \ nextgroup=@GentooPackagePostAtom skipwhite 25 | syn match GentooPackageKeywordsAllKeyword contained /-\?\*\*/ 26 | \ nextgroup=@GentooPackagePostAtom skipwhite 27 | syn cluster GentooPackagePostAtom contains=GentooPackageKeywordsKeyword, 28 | \ GentooPackageKeywordsStableKeyword,GentooPackageKeywordsAllKeyword 29 | 30 | hi def link GentooPackageKeywordsKeyword Keyword 31 | hi def link GentooPackageKeywordsStableKeyword Special 32 | hi def link GentooPackageKeywordsAllKeyword Type 33 | 34 | let b:current_syntax = "gentoo-package-keywords" 35 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-package-license.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo package.license files 3 | " Author: Dror Levin 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo package.mask and package.unmask files. 8 | " Requires vim 6.3 or later. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime syntax/gentoo-package-common.vim 20 | 21 | let b:current_syntax = "gentoo-package-mask" 22 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-package-properties.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo package.keywords files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo package.keywords files. Requires vim 6.3 or 8 | " later. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime syntax/gentoo-package-common.vim 20 | 21 | syn match GentooPackagePropertiesProperty contained /-\?\([a-zA-Z0-9\-_]\+\|\*\)/ 22 | \ nextgroup=GentooPackagePropertiesProperty skipwhite 23 | syn cluster GentooPackagePostAtom contains=GentooPackagePropertiesProperty 24 | 25 | hi def link GentooPackagePropertiesProperty Keyword 26 | 27 | let b:current_syntax = "gentoo-package-properties" 28 | 29 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-package-use.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo package.use files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo package.use files. Requires vim 6.3 or 8 | " later. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime syntax/gentoo-package-common.vim 20 | 21 | syn match GentooPackageUseUse contained 22 | \ /\([a-zA-Z0-9][a-zA-Z0-9\-_]*\|\*\)\(:\)\@!/ 23 | \ nextgroup=GentooPackageUseUse,GentooPackageUseUnuse, 24 | \ GentooPackageUseExpand skipwhite 25 | syn match GentooPackageUseUnuse contained 26 | \ /-\([a-zA-Z0-9][a-zA-Z0-9\-_]*\|\*\)\(:\)\@!/ 27 | \ nextgroup=GentooPackageUseUse,GentooPackageUseUnuse, 28 | \ GentooPackageUseExpand skipwhite 29 | syn match GentooPackageUseExpand contained 30 | \ /[a-zA-Z0-9][a-zA-Z0-9\-_]*:/ 31 | \ nextgroup=GentooPackageUseUse,GentooPackageUseUnuse 32 | \ skipwhite 33 | syn cluster GentooPackagePostAtom contains=GentooPackageUseUse, 34 | \ GentooPackageUseUnuse,GentooPackageUseExpand 35 | 36 | hi def link GentooPackageUseUse Special 37 | hi def link GentooPackageUseUnuse Keyword 38 | hi def link GentooPackageUseExpand Type 39 | 40 | let b:current_syntax = "gentoo-package-use" 41 | -------------------------------------------------------------------------------- /nvim/syntax/gentoo-use-desc.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo use.desc, use.local.desc files 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo package.keywords files. Requires vim 6.3 or 8 | " later. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime syntax/gentoo-package-common.vim 20 | 21 | syn match GentooUseDescPackage /^\(#\)\@!\([a-zA-Z0-9\-\_+\.]\+\/[a-zA-Z0-9\-\_+]\+\)\?/ nextgroup=GentooUseDescColon,GentooUseDescFlag skipwhite 22 | syn match GentooUseDescColon /:/ contained nextgroup=GentooUseDescFlag 23 | syn match GentooUseDescFlag contained /[a-zA-Z0-9\-\_+@:]\+/ nextgroup=GentooUseDescDash skipwhite 24 | syn match GentooUseDescDash /-\s*/ contained nextgroup=GentooUseDescDesc skipwhite 25 | syn region GentooUseDescDesc start=// end=/$/ contained skipwhite 26 | 27 | hi def link GentooUseDescPackage Keyword 28 | hi def link GentooUseDescFlag Identifier 29 | hi def link GentooUseDescDesc String 30 | 31 | let b:current_syntax = "gentoo-package-keywords" 32 | -------------------------------------------------------------------------------- /nvim/syntax/glep.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo GLEPs 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for Gentoo GLEPs. Needs vim 6.3 or later. Inherits from 8 | " rst.vim and provides a few extras. 9 | " 10 | 11 | if &compatible || v:version < 603 12 | finish 13 | endif 14 | 15 | if exists("b:current_syntax") 16 | finish 17 | endif 18 | 19 | runtime! syntax/rst.vim 20 | unlet b:current_syntax 21 | 22 | " Headings in GLEPs (rst doesn't highlight these) 23 | syn match glepHeading1 /^\(\(-\{2,\}\|=\{2,\}\|'\{2,\}\)\n\)\S.\+\n\(-\{2,\}\|=\{2,\}\|'\{2,\}\)$/ 24 | syn match glepHeading2 /^\S.\+\n=\{2,\}$/ 25 | syn match glepHeading3 /^\S.\+\n-\{2,\}$/ 26 | syn match glepHeading4 /^\S.\+\n'\{2,\}$/ 27 | syn match glepHeading5 /^\S.\+\n\^\{2,\}$/ 28 | 29 | " Folding 30 | syn region glepFoldH2 start=/^\S.\+\n=\{2,\}$/ end=/\(\n\n\S.\+\n=\{2,\}\)\@=/ transparent fold 31 | syn region glepFoldH3 start=/^\S.\+\n-\{2,\}$/ end=/\(\n\n\S.\+\n[-=]\{2,\}\)\@=/ transparent fold 32 | syn region glepFoldH4 start=/^\S.\+\n'\{2,\}$/ end=/\(\n\n\S.\+\n[-=']\{2,\}\)\@=/ transparent fold 33 | 34 | " Headers at the top of a GLEP 35 | syn region glepHeaders start=/\%^\(.*:\)\@=/ end=/^$/ contains=glepHeaderKey 36 | syn region glepTripleDash start=/\%^---$/ end=/^---$/ contains=glepHeaderKey 37 | syn region glepHeaderKey contained start=/^[A-Za-z0-9]/ end=/:/ nextgroup=glepHeaderValue skipwhite 38 | syn region glepHeaderValue contained start=/\S/ end=/^\S\|^$/me=e-1 contains=glepHeaderEmail,glepHeaderCVSVar 39 | syn match glepHeaderEmail contained /<[^<>@[:space:]]\+@[^<>@.[:space:]]\+\.[^<>@[:space:]]\+>/ 40 | syn region glepHeaderCVSVar contained start=/\$\S\+:/ end=/\$/ 41 | syn keyword glepTODO TODO FIXME 42 | 43 | syn match rstInline /|\S\+|/ 44 | 45 | hi! link rstInline PreProc 46 | hi! link rstInternalTarget PreProc 47 | 48 | hi link glepHeading1 Title 49 | hi link glepHeading2 Constant 50 | hi link glepHeading3 Keyword 51 | hi link glepHeading4 Preproc 52 | hi link glepHeading5 Special 53 | 54 | hi link glepHeaders Define 55 | hi link glepTripleDash Define 56 | hi link glepHeaderKey Keyword 57 | hi link glepHeaderValue String 58 | hi link glepHeaderEmail Special 59 | hi link glepHeaderCVSVar PreProc 60 | hi link glepTODO Todo 61 | 62 | let b:current_syntax = "glep" 63 | -------------------------------------------------------------------------------- /nvim/syntax/guidexml.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Gentoo guidexml 3 | " Author: Ciaran McCreesh 4 | " Copyright: Copyright (c) 2004-2005 Ciaran McCreesh 5 | " Licence: You may redistribute this under the same terms as Vim itself 6 | " 7 | " Syntax highlighting for guidexml.xml. Inherits from xml.vim. 8 | " 9 | 10 | if &compatible || v:version < 603 11 | finish 12 | endif 13 | 14 | if exists("b:current_syntax") 15 | finish 16 | endif 17 | 18 | runtime! syntax/xml.vim 19 | unlet b:current_syntax 20 | 21 | syn cluster xmlTagHook add=guidexmlElement 22 | syn keyword guidexmlElement contained mainpage guide news title subtitle 23 | syn keyword guidexmlElement contained poster author abstract summary license 24 | syn keyword guidexmlElement contained glsaindex glsa-latest version date 25 | syn keyword guidexmlElement contained chapter section body figure fig img 26 | syn keyword guidexmlElement contained br note impo warn pre p table tcolumn 27 | syn keyword guidexmlElement contained tr th ti ul ol li b brite c comment 28 | syn keyword guidexmlElement contained e i path mail uri dl dt dd newsitem 29 | syn keyword guidexmlElement contained sup sub keyword ident const stmt var 30 | syn keyword guidexmlElement contained book part include sections subsection 31 | syn keyword guidexmlElement contained keyval values key 32 | syn keyword guidexmlElement contained metadoc members lead member categories 33 | syn keyword guidexmlElement contained cat files file docs doc memberof fileid 34 | syn keyword guidexmlElement contained bugs bug dynamic intro listing list catid 35 | syn keyword guidexmlElement contained overview inserts insert docdate 36 | 37 | syn cluster xmlAttribHook add=guidexmlAttr 38 | syn match guidexmlAttr contained /author\|caption\|category\|test\|parent/ 39 | syn match guidexmlAttr contained /gentoo\|id\|lang\|by\|linkto\|link/ 40 | syn match guidexmlAttr contained /short\|src\|title\|colspan\|rowspan/ 41 | syn match guidexmlAttr contained /type\|disclaimer\|redirect\|width\|align/ 42 | syn match guidexmlAttr contained /mail\|fullname\|vpart\|vchap\|stopper\|arch/ 43 | syn match guidexmlAttr contained /href\|metadoc\|name/ 44 | 45 | hi def link guidexmlElement Keyword 46 | hi def link guidexmlAttr Keyword 47 | 48 | let b:current_syntax = "guidexml" 49 | -------------------------------------------------------------------------------- /polybar/scripts/gputemp.zsh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | gputemp=$(nvidia-smi --format=nounits,csv,noheader --query-gpu=temperature.gpu | xargs echo) 3 | if [[ "$gputemp" -ge 65 && "$gputemp" -lt 80 ]] ; then 4 | echo " %{F#EAE900}%{F-} $gputemp°C" 5 | elif [[ "$gputemp" -ge 80 ]] ; then 6 | echo " %{F#C2003B}%{F-} $gputemp°C" 7 | else 8 | echo " %{F#616161}%{F-} $gputemp°C" 9 | fi 10 | -------------------------------------------------------------------------------- /polybar/scripts/headphones.zsh: -------------------------------------------------------------------------------- 1 | #! /bin/zsh 2 | STATE=${$(amixer -c 1 | grep Headphone -A 5)[-1]} 3 | if [[ "$STATE" == '[off]' ]] ; then 4 | echo " %{F#C2003B}%{F-} " 5 | else 6 | echo " %{F#73B8A8}%{F-} " 7 | fi 8 | -------------------------------------------------------------------------------- /polybar/scripts/spotify.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # The name of polybar bar which houses the main spotify module and the control modules. 4 | # PARENT_BAR="main" 5 | # PARENT_BAR_PID=$(pgrep -a "polybar" | grep "$PARENT_BAR" | cut -d" " -f1) 6 | PARENT_BAR_PID=$(pgrep -x "polybar") 7 | 8 | # Format of the information displayed 9 | # See more attributes here: https://github.com/altdesktop/playerctl/#printing-properties-and-metadata 10 | 11 | # Sends $2 as message to all polybar PIDs that are part of $1 12 | update_hooks() { 13 | while IFS= read -r id 14 | do 15 | polybar-msg -p "$id" action "#spotify-$3.hook.$2" 1>/dev/null 2>&1 16 | done < <(echo "$1") 17 | } 18 | 19 | PLAYERCTL_STATUS=$(playerctl --player=spotify status 2>/dev/null) 20 | EXIT_CODE=$? 21 | 22 | if [ $EXIT_CODE -eq 0 ]; then 23 | STATUS=$PLAYERCTL_STATUS 24 | FORMAT=$(playerctl --player=spotify metadata --format "{{ shuffle }} {{ loop }} {{ artist }} - {{ title }}" 2>/dev/null) 25 | else 26 | STATUS="No player is running" 27 | fi 28 | 29 | if [ "$1" == "--status" ]; then 30 | echo "$STATUS" 31 | else 32 | if [ "$STATUS" = "No player is running" ]; then 33 | update_hooks "$PARENT_BAR_PID" 0 state 34 | update_hooks "$PARENT_BAR_PID" 0 shuffle 35 | update_hooks "$PARENT_BAR_PID" 0 loop 36 | echo "" 37 | exit 38 | elif [ "$STATUS" = "Paused" ]; then 39 | update_hooks "$PARENT_BAR_PID" 1 state 40 | else 41 | update_hooks "$PARENT_BAR_PID" 2 state 42 | fi 43 | # set hook for Shuffle status 44 | if [ "$(echo $FORMAT | cut -d ' ' -f1)" == "false" ] ; then 45 | update_hooks "$PARENT_BAR_PID" 1 shuffle 46 | else 47 | update_hooks "$PARENT_BAR_PID" 2 shuffle 48 | fi 49 | # set hook for Loop status 50 | if [ "$(echo $FORMAT | cut -d ' ' -f2)" == "Track" ] ; then 51 | update_hooks "$PARENT_BAR_PID" 1 loop 52 | elif [ "$(echo $FORMAT | cut -d ' ' -f2)" == "Playlist" ] ; then 53 | update_hooks "$PARENT_BAR_PID" 2 loop 54 | elif [ "$(echo $FORMAT | cut -d ' ' -f2)" == "None" ] ; then 55 | update_hooks "$PARENT_BAR_PID" 3 loop 56 | fi 57 | # output command 58 | echo -n $FORMAT | cut -d ' ' -f1-2 --complement 59 | fi 60 | -------------------------------------------------------------------------------- /rofi/colors.rasi: -------------------------------------------------------------------------------- 1 | /* colors */ 2 | 3 | * { 4 | al: #00000000; 5 | bg: #1E1E21FF; 6 | bga: #E31763FF; 7 | bar: #5F5FAFFF; 8 | fg: #A9B1A6FF; 9 | fga: #9E9DA5FF; 10 | ac: #27C8B1FF; 11 | se: #8D8D8DFF; 12 | sea: #161616FF; 13 | seb: #222222FF; 14 | } 15 | -------------------------------------------------------------------------------- /rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | dpi: 1; 3 | font: "Input Mono Condensed 10"; 4 | show-icons: false; 5 | drun-display-format: "{name}"; 6 | disable-history: false; 7 | fullscreen: false; 8 | hide-scrollbar: true; 9 | sidebar-mode: false; 10 | 11 | kb-move-char-forward: "Right,Control+l"; 12 | kb-move-char-back: "Left,Control+h"; 13 | kb-remove-char-forward: "Delete,Control+L"; 14 | kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+H"; 15 | kb-remove-word-forward: "Control+w"; 16 | kb-remove-word-back: "Control+b"; 17 | kb-clear-line: "Control+u"; 18 | kb-remove-to-sol: "Control+s"; 19 | kb-remove-to-eol: "Control+d"; 20 | kb-accept-entry: "Return,KP_Enter"; 21 | kb-mode-next: "Shift+Right,Control+Tab,Control+m"; 22 | kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab,Control+M"; 23 | kb-mode-complete: ""; 24 | kb-row-up: "Up,Control+p,Control+k"; 25 | kb-row-down: "Down,Control+n,Control+j"; 26 | kb-row-tab: ""; 27 | kb-element-next: "Tab"; 28 | kb-element-prev: "ISO_Left_Tab"; 29 | } 30 | 31 | @import "colors.rasi" 32 | 33 | window { 34 | transparency: "real"; 35 | background-color: @bg; 36 | text-color: @fg; 37 | border: 13px; 38 | border-color: @se; 39 | border-radius: 0px; 40 | width: 1600px; 41 | location: center; 42 | x-offset: 0; 43 | y-offset: -15%; 44 | } 45 | 46 | prompt { 47 | enabled: true; 48 | padding: 9px 10px 10px 10px; 49 | background-color: @al; 50 | text-color: @fga; 51 | font: "Input Mono Condensed 10"; 52 | } 53 | 54 | entry { 55 | background-color: @al; 56 | text-color: @ac; 57 | placeholder-color: @ac; 58 | expand: true; 59 | horizontal-align: 0; 60 | placeholder: "..."; 61 | padding: 10px 10px 10px 0px; 62 | border-radius: 0px; 63 | blink: true; 64 | } 65 | 66 | inputbar { 67 | children: [ prompt, entry ]; 68 | background-color: @al; 69 | text-color: @fg; 70 | expand: false; 71 | border: 0px 0px 1px 0px; 72 | border-radius: 0px; 73 | border-color: @bar; 74 | spacing: 0px; 75 | } 76 | 77 | listview { 78 | background-color: @al; 79 | text-color: @fg; 80 | padding: 0px; 81 | columns: 1; 82 | lines: 5; 83 | spacing: 10px; 84 | cycle: true; 85 | dynamic: true; 86 | layout: vertical; 87 | } 88 | 89 | mainbox { 90 | background-color: @al; 91 | text-color: @fg; 92 | border: 0px; 93 | border-radius: 0px; 94 | border-color: @ac; 95 | children: [ inputbar, listview ]; 96 | spacing: 10px; 97 | padding: 2px 10px 10px 10px; 98 | } 99 | 100 | element { 101 | background-color: @fg; 102 | text-color: @fg; 103 | orientation: horizontal; 104 | border-radius: 0px; 105 | padding: 8px; 106 | } 107 | 108 | element-text { 109 | expand: true; 110 | horizontal-align: 0; 111 | vertical-align: 0.5; 112 | margin: 0px 2.5px 0px 2.5px; 113 | } 114 | 115 | element.selected.normal { 116 | background-color: @fg; 117 | text-color: @sea; 118 | border: 0px 0px 0px 0px; 119 | border-radius: 0px; 120 | border-color: @ac; 121 | } 122 | 123 | element.normal.normal { 124 | background-color: inherit; 125 | text-color: @fga; 126 | border: 0px 0px 0px 0px; 127 | border-radius: 0px; 128 | border-color: @ac; 129 | } 130 | 131 | element.normal.urgent { 132 | background-color: inherit; 133 | text-color: @fga; 134 | border: 0px 0px 0px 0px; 135 | border-radius: 0px; 136 | border-color: @al; 137 | } 138 | 139 | element.normal.active { 140 | background-color: inherit; 141 | text-color: @fga; 142 | border: 0px 0px 0px 0px; 143 | border-radius: 0px; 144 | border-color: @ac; 145 | } 146 | 147 | element.selected.urgent { 148 | background-color: @ac; 149 | border: 0px 0px 0px 0px; 150 | border-radius: 0px; 151 | border-color: @ac; 152 | } 153 | 154 | element.selected.active { 155 | background-color: @ac; 156 | border: 0px 0px 0px 0px; 157 | border-radius: 0px; 158 | border-color: @ac; 159 | } 160 | 161 | element.alternate.normal { 162 | background-color: @sea; 163 | text-color: @se; 164 | border: 0px 0px 0px 0px; 165 | border-radius: 0px; 166 | border-color: @ac; 167 | } 168 | 169 | element.alternate.urgent { 170 | background-color: @sea; 171 | text-color: @se; 172 | border: 0px 0px 0px 0px; 173 | border-radius: 0px; 174 | border-color: @ac; 175 | } 176 | 177 | element.alternate.active { 178 | background-color: @sea; 179 | text-color: @se; 180 | border: 0px 0px 0px 0px; 181 | border-radius: 0px; 182 | border-color: @ac; 183 | } 184 | -------------------------------------------------------------------------------- /rofi/game-menu.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | dpi: 1; 3 | font: "Input Mono Condensed 10"; 4 | show-icons: false; 5 | drun-display-format: "{name}"; 6 | disable-history: false; 7 | fullscreen: true; 8 | hide-scrollbar: true; 9 | sidebar-mode: false; 10 | 11 | kb-move-char-forward: "Right,Control+l"; 12 | kb-move-char-back: "Left,Control+h"; 13 | kb-remove-char-forward: "Delete,Control+L"; 14 | kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+H"; 15 | kb-remove-word-forward: "Control+w"; 16 | kb-remove-word-back: "Control+b"; 17 | kb-clear-line: "Control+u"; 18 | kb-remove-to-sol: "Control+s"; 19 | kb-remove-to-eol: "Control+d"; 20 | kb-accept-entry: "Return,KP_Enter"; 21 | kb-mode-next: "Shift+Right,Control+Tab,Control+m"; 22 | kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab,Control+M"; 23 | kb-mode-complete: ""; 24 | kb-row-up: "Up,Control+p,Control+k"; 25 | kb-row-down: "Down,Control+n,Control+j"; 26 | kb-row-tab: ""; 27 | kb-element-next: "Tab"; 28 | kb-element-prev: "ISO_Left_Tab"; 29 | } 30 | 31 | @import "colors.rasi" 32 | 33 | window { 34 | transparency: "real"; 35 | background-color: @bg; 36 | text-color: @fg; 37 | border: 13px; 38 | border-color: @se; 39 | border-radius: 0px; 40 | width: 1600px; 41 | location: center; 42 | x-offset: 0; 43 | y-offset: -15%; 44 | } 45 | 46 | prompt { 47 | enabled: true; 48 | padding: 9px 10px 10px 10px; 49 | background-color: @al; 50 | text-color: @fga; 51 | font: "Input Mono Condensed 10"; 52 | } 53 | 54 | entry { 55 | background-color: @al; 56 | text-color: @ac; 57 | placeholder-color: @ac; 58 | expand: true; 59 | horizontal-align: 0; 60 | placeholder: "..."; 61 | padding: 10px 10px 10px 0px; 62 | border-radius: 0px; 63 | blink: true; 64 | } 65 | 66 | inputbar { 67 | children: [ prompt, entry ]; 68 | background-color: @al; 69 | text-color: @fg; 70 | expand: false; 71 | border: 0px 0px 1px 0px; 72 | border-radius: 0px; 73 | border-color: @bar; 74 | spacing: 0px; 75 | } 76 | 77 | listview { 78 | background-color: @al; 79 | text-color: @fg; 80 | padding: 0px; 81 | columns: 1; 82 | lines: 5; 83 | spacing: 10px; 84 | cycle: true; 85 | dynamic: true; 86 | layout: vertical; 87 | } 88 | 89 | mainbox { 90 | background-color: @al; 91 | text-color: @fg; 92 | border: 0px; 93 | border-radius: 0px; 94 | border-color: @ac; 95 | children: [ inputbar, listview ]; 96 | spacing: 10px; 97 | padding: 2px 10px 10px 10px; 98 | } 99 | 100 | element { 101 | background-color: @fg; 102 | text-color: @fg; 103 | orientation: horizontal; 104 | border-radius: 0px; 105 | padding: 8px; 106 | } 107 | 108 | element-text { 109 | expand: true; 110 | horizontal-align: 0; 111 | vertical-align: 0.5; 112 | margin: 0px 2.5px 0px 2.5px; 113 | } 114 | 115 | element.selected.normal { 116 | background-color: @fg; 117 | text-color: @sea; 118 | border: 0px 0px 0px 0px; 119 | border-radius: 0px; 120 | border-color: @ac; 121 | } 122 | 123 | element.normal.normal { 124 | background-color: inherit; 125 | text-color: @fga; 126 | border: 0px 0px 0px 0px; 127 | border-radius: 0px; 128 | border-color: @ac; 129 | } 130 | 131 | element.normal.urgent { 132 | background-color: inherit; 133 | text-color: @fga; 134 | border: 0px 0px 0px 0px; 135 | border-radius: 0px; 136 | border-color: @al; 137 | } 138 | 139 | element.normal.active { 140 | background-color: inherit; 141 | text-color: @fga; 142 | border: 0px 0px 0px 0px; 143 | border-radius: 0px; 144 | border-color: @ac; 145 | } 146 | 147 | element.selected.urgent { 148 | background-color: @ac; 149 | border: 0px 0px 0px 0px; 150 | border-radius: 0px; 151 | border-color: @ac; 152 | } 153 | 154 | element.selected.active { 155 | background-color: @ac; 156 | border: 0px 0px 0px 0px; 157 | border-radius: 0px; 158 | border-color: @ac; 159 | } 160 | 161 | element.alternate.normal { 162 | background-color: @sea; 163 | text-color: @se; 164 | border: 0px 0px 0px 0px; 165 | border-radius: 0px; 166 | border-color: @ac; 167 | } 168 | 169 | element.alternate.urgent { 170 | background-color: @sea; 171 | text-color: @se; 172 | border: 0px 0px 0px 0px; 173 | border-radius: 0px; 174 | border-color: @ac; 175 | } 176 | 177 | element.alternate.active { 178 | background-color: @sea; 179 | text-color: @se; 180 | border: 0px 0px 0px 0px; 181 | border-radius: 0px; 182 | border-color: @ac; 183 | } 184 | -------------------------------------------------------------------------------- /rofi/menus/games: -------------------------------------------------------------------------------- 1 | Minecraft,herbstclient use V ; /home/mother/game/minecraft.sh 2 | Factorio,herbstclient use V ; /home/mother/game/Factorio/bin/x64/factorio 3 | RimWorld,herbstclient use V ; /home/mother/game/RimWorld/start.sh 4 | Crusader Kings 2,herbstclient use V ; /home/mother/game/Crusader_Kings_2/start.sh 5 | Crusader Kings 3,herbstclient use V ; /home/mother/game/Crusader_Kings_3/start.sh 6 | Europa Universalis IV,herbstclient use V ; /home/mother/game/EuropaUniversalisIV/start.sh 7 | Victoria 3,herbstclient use V ; /home/mother/game/Victoria_3/start 8 | Civilization VI,herbstclient use V ; /home/mother/game/Sid_Meiers_Civilization_VI/run.sh 9 | Pillars of Eternity 1,herbstclient use V ; /home/mother/game/Pillars_of_Eternity_1/start.sh 10 | Pillars of Eternity 2,herbstclient use V ; /home/mother/game/Pillars_of_Eternity_2/start.sh 11 | Pathfinder - Kingmaker,herbstclient use V ; /home/mother/game/Pathfinder_-_Kingmaker_-_Enhanced_Plus_Edition/run.sh 12 | Divinity - Original Sin,herbstclient use V ; /home/mother/game/Divinity_Original_Sin_-_Enhanced_Edition/start.sh 13 | Baldurs Gate 1,herbstclient use V ; /home/mother/game/Baldurs_Gate_1_-_Enhanced_Edition/start.sh 14 | Baldurs Gate 2,herbstclient use V ; /home/mother/game/Baldurs_Gate_2_-_Enhanced_Edition/start.sh 15 | Icewind Dale,herbstclient use V ; /home/mother/game/Icewind_Dale_-_Enhanced_Edition/start.sh 16 | Planescape - Torment,herbstclient use V ; /home/mother/game/Planescape_Torment_-_Enhanced_Edition/start.sh 17 | Torment - Tides of Numenera,herbstclient use V ; /home/mother/game/Torment_-_Tides_of_Numenera/start.sh 18 | Slay the Spire,herbstclient use V ; /home/mother/game/Slay_the_Spire/run.sh 19 | Deep Sky Derelicts,herbstclient use V ; /home/mother/game/Deep_Sky_Derelicts/start.sh 20 | Into The Breach,herbstclient use V ; /home/mother/game/Into_The_Breach/start.sh 21 | BATTLETECH,herbstclient use V ; /home/mother/game/BATTLETECH/run.sh 22 | Midnight Protocol,herbstclient use V ; /home/mother/game/Midnight_Protocol/run.sh 23 | Inscryption,herbstclient use V ; /home/mother/game/Inscryption/start.sh 24 | Papers Please,herbstclient use V ; /home/mother/game/Papers_Please/start.sh 25 | Stardew Valley,herbstclient use V ; /home/mother/game/Stardew_Valley/start.sh 26 | Slime Rancher,herbstclient use V ; /home/mother/game/Slime_Rancher_1/start.sh 27 | -------------------------------------------------------------------------------- /rofi/scripts/games.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CONFIG="${XDG_CONFIG_DIR}/rofi/game-menu.rasi" 3 | MAP="${XDG_CONFIG_DIR}/rofi/menus/games" 4 | 5 | cat "$MAP" \ 6 | | cut -d ',' -f 1 \ 7 | | rofi -dmenu -i -config "${CONFIG}" -sort -p "play" \ 8 | | head -n 1 | xargs -i --no-run-if-empty grep "{}" "$MAP" \ 9 | | cut -d ',' -f 2 | head -n 1 | xargs -i --no-run-if-empty /bin/bash -c "{}" 10 | 11 | exit 0 12 | -------------------------------------------------------------------------------- /share/images/2025_02_01-113912.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milomouse/dotfiles/dae22dc125049c0f14d1eb18d465413959e1b1af/share/images/2025_02_01-113912.png -------------------------------------------------------------------------------- /user-dirs.dirs: -------------------------------------------------------------------------------- 1 | XDG_CACHE_HOME="/home/mother/conf/cache" 2 | XDG_CONFIG_HOME="/home/mother/conf" 3 | XDG_CONFIG_DIR="/home/mother/conf" 4 | XDG_CONFIG_DIRS="/etc/xdg:/home/mother/conf" 5 | XDG_DATA_HOME="/home/mother/conf/data" 6 | XDG_DESKTOP_DIR="/home/mother/desk" 7 | XDG_DOCUMENTS_DIR="/home/mother/rite" 8 | XDG_DOWNLOAD_DIR="/home/mother/down" 9 | XDG_MUSIC_DIR="/home/mother/muzk" 10 | XDG_PICTURES_DIR="/home/mother/foto" 11 | XDG_PUBLICSHARE_DIR="/home/mother/conf/share" 12 | XDG_TEMPLATES_DIR="/home/mother/conf/data/templates" 13 | XDG_VIDEOS_DIR="/home/mother/vide" 14 | -------------------------------------------------------------------------------- /xorg/Xresources: -------------------------------------------------------------------------------- 1 | !#############################################! 2 | !# locate: ${XDG_CONFIG_HOME}/xorg/Xdefaults #! 3 | !# author: Vincent (github.com/milomouse) #! 4 | !# detail: X.Org and X terminal parameters #! 5 | !#############################################! 6 | 7 | !! NOTE: may also need to configure Xorg.conf.d files 8 | !! and/or export different "scale" settings via ~/.profile or shell config 9 | Xft.dpi: 144 10 | !! NOTE: also need to add 'export CURSOR_SIZE=50' to /etc/profile.d/cursor.sh 11 | !! since some applications do not acknowledge Xresources file attributes 12 | Xcursor.size: 50 13 | 14 | !! NOTE: only here in case other emulators/software need to reference it 15 | !! terminal colorscheme(s): 16 | !! scheme: candymouse [possibly outdated version] 17 | *cursorColor: #E31763 18 | *background: #121212 19 | *foreground: #A9B1A6 20 | !! black: 21 | *color0: #161616 22 | *color8: #2D2E33 23 | !! red: 24 | *color1: #E31763 25 | *color9: #C2003B 26 | !! green: 27 | *color2: #7DE1D3 28 | *color10: #27C8B1 29 | !! yellow: 30 | *color3: #EAE900 31 | *color11: #FFCB6B 32 | !! blue: 33 | *color4: #009DFF 34 | *color12: #0047BB 35 | !! magenta: 36 | *color5: #9798E5 37 | *color13: #6300FF 38 | !! cyan: 39 | *color6: #A2ECE6 40 | *color14: #25C0C0 41 | !! white: 42 | *color7: #A9B1A6 43 | *color15: #9E9DA5 44 | -------------------------------------------------------------------------------- /xorg/xinitrc: -------------------------------------------------------------------------------- 1 | #! /bin/zsh 2 | ############################################## 3 | ## locate: ${XDG_CONFIG_HOME}/xorg/xinitrc ## 4 | ## detail: X.Org init configuration file ## 5 | ############################################## 6 | 7 | # allow programs to identify session type (since we're not using a display manager, etc.) 8 | export XDG_SESSION_TYPE=x11 9 | 10 | # since we cannot apply scaling to second monitor within Xorg configuration, apply it via 'xrandr' 11 | # also taking into account the new resolution of scaled monitor (do not use left-of when scaling!) 12 | # NOTE: Xorg configured for the same setup, except without the scaling 13 | xrandr \ 14 | --output DP-4 --mode 2560x1440 --scale 1.4x1.4 --rotate left \ 15 | --output DP-2 --mode 3840x2160 --pos 2016x0 --primary 16 | 17 | # load custom Xresources for applications that use it 18 | xrdb -load ${XDG_CONFIG_HOME}/xorg/Xresources & 19 | 20 | # set default cursor shape and background color 21 | xsetroot -cursor_name left_ptr -solid '#101010' & 22 | 23 | # set root window background images 24 | xsetbg \ 25 | -gamma 0.5 -zoom 205% -clip 320,55,2016,3584 -at 0,0 /home/mother/foto/fandom/movies/solaris/solaris_peter_jojaio.jpg \ 26 | -gamma 0.5 -at 2016,0 /home/mother/foto/fandom/movies/solaris/solaris_peter_jojaio-4k-edit2.jpg & 27 | 28 | # set volume to a safe level 29 | amixer -c 1 -q -D pulse sset Master 70% & 30 | 31 | # custom script to check if drawing tablet is connected, rebinding shortcut buttons if so 32 | # ${H}/code/sh/wacom.sh & 33 | 34 | # custom keybindings for use with 'herbstluftwm' 35 | sxhkd -c ${XDG_CONFIG_HOME}/herbstluftwm/sxhkdrc & 36 | 37 | # launch window manager 38 | exec herbstluftwm --locked -c ${XDG_CONFIG_HOME}/herbstluftwm/autostart 39 | # exec dbus-launch --autolaunch=$(cat /var/lib/dbus/machine-id) herbstluftwm --locked -c ${XDG_CONFIG_HOME}/herbstluftwm/autostart 40 | -------------------------------------------------------------------------------- /yt-dlp/config: -------------------------------------------------------------------------------- 1 | # make all connections via IPv4 2 | --force-ipv4 3 | 4 | # bypass geographic restriction by faking X-Forwarded-For HTTP header 5 | --geo-bypass 6 | 7 | # stictly prefer free containers over non-free ones 8 | --prefer-free-formats 9 | --format-sort ext 10 | 11 | # use cookies from Firefox instead of defining everything via insecure 'netrc' 12 | --cookies-from-browser firefox:qqvvizi0.default-release 13 | 14 | # download YouTube livestreams from start 15 | --live-from-start 16 | 17 | # download playlist in default order 18 | --no-playlist-reverse 19 | 20 | # do not write thumbnail image to disk 21 | --no-write-thumbnail 22 | 23 | # restrict filenames to only ASCII characters 24 | --restrict-filenames 25 | 26 | # preferred formats with safe fallbacks 27 | # --format "bv[height>=720]+ba[acodec=opus]/bv[height>=720]+ba[ext=webm]/bv[height>=720]+ba/best" 28 | --format "bv[height<=720]+ba[acodec=opus]/bv[height<=720]+ba[ext=webm]/bv[height<=720]+ba/best" 29 | -------------------------------------------------------------------------------- /zsh/zsh-aliases: -------------------------------------------------------------------------------- 1 | ################################################ 2 | ## locate: ${XDG_CONFIG_HOME}/zsh/zsh-aliases ## 3 | ## detail: configuration file for zsh aliases ## 4 | ################################################ 5 | 6 | # file management (may remove some of these in future): 7 | alias gh="cd /home/${USER}" 8 | alias ls="/bin/ls -h --file-type --time-style='+%y-%m-%d %H%M%S' --color=auto --group-directories-first" 9 | alias la="ls -A" 10 | alias lb="ls -Sr" 11 | alias lt="ls -tr" 12 | alias lm="lt -c" 13 | alias lx="ls -X" 14 | alias lf="ls -H" 15 | alias lls="ls -l" 16 | alias lla="lls -A" 17 | alias llb="lls -Sr" 18 | alias llt="lls -tr" 19 | alias llm="llt -c" 20 | alias llx="lx -l" 21 | alias llf="lf -l" 22 | 23 | # trivial quick views/edits: 24 | alias xload="xrdb -load ${XDG_CONFIG_DIR:-${HOME}}/xorg/Xresources &>/dev/null" 25 | alias zedit="${EDITOR:-/usr/bin/nvim} ${HOME}/{.zshrc,zsh/zsh-{functions,aliases,options,exports}}" 26 | 27 | # program masquing: 28 | alias bc="bc -q" 29 | alias df="df -hTP" 30 | alias diff="colordiff" 31 | alias grep="grep --color=auto" 32 | alias mupdf="mupdf -Y 2 -I" 33 | alias sxiv="sxiv -s f -a -g '3000x2000'" 34 | alias krita="krita --nosplash" 35 | alias gotop="TERM=xterm-256color $H/code/go/gotop/gotop --mbps --no-statusbar --celsius --layout custom -c candymouse" 36 | # alias lynx="lynx -vikeys -tna -force_secure -accept_all_cookies -cookie_file='/tmp/lynx_cookies' -short_url -show_rate -telnet -lss='~/lynx/lynx.lss'" 37 | 38 | # system/media shortcuts: 39 | alias loadavg='print - ${$(tmux->neovim undercurl support [see also ~/tmux.conf]: 73 | export TERM="tmux-256color" 74 | 75 | # bat theme for syntax highlighting 76 | export BAT_THEME="base16" 77 | # export BAT_THEME="GitHub" 78 | 79 | # fix QT application scaling 80 | # export QT_SCALE_FACTOR=1.0 81 | -------------------------------------------------------------------------------- /zsh/zsh-functions: -------------------------------------------------------------------------------- 1 | ################################################## 2 | ## locate: ${XDG_CONFIG_HOME}/zsh/zsh-functions ## 3 | ## detail: configuration file for zsh functions ## 4 | ################################################## 5 | 6 | # use history, but skip certain cmds/args from being written: 7 | function zshaddhistory { 8 | local line cmd 9 | line=${1%%$'\n'} ; cmd=${line%% *} 10 | [[ ${#line} -ge 5 && ${cmd} != (history|fc|zedit|zload|find) ]] && (( ! $argv[(I)*.mp4|*spar*] )) 11 | } 12 | 13 | # safely recompile and reload shell settings: 14 | function zload { 15 | source /etc/profile &>/dev/null 16 | autoload -U zrecompile 17 | [[ -f ~/.zshrc ]] && zrecompile -p ~/.zshrc 18 | [[ -f ~/.zcompdump ]] && zrecompile -p ~/.zcompdump 19 | [[ -f ~/.zshrc.zwc.old ]] && rm -f ~/.zshrc.zwc.old 20 | [[ -f ~/.zcompdump.zwc.old ]] && rm -f ~/.zcompdump.zwc.old 21 | source ~/.zshrc 22 | } 23 | 24 | # go up Nth amount of directories: 25 | # a bit quicker than ../../.. (are there better built-in zsh alternatives?) 26 | function up { 27 | local arg=${1:-1}; 28 | while [ ${arg} -gt 0 ]; do 29 | cd .. >& -; 30 | arg=$((${arg} - 1)); 31 | done 32 | } 33 | 34 | # shortcuts/masquing: 35 | function dropcache { sync && print 1 | doas tee /proc/sys/vm/drop_caches } 36 | function nw { setterm --linewrap off ; eval "$@" ; setterm --linewrap on } 37 | function mkcd { command mkdir -p "${@}" && cd "$@" } 38 | function pqiv { command pqiv -n "${@}" 2>/dev/null } 39 | function startx { [[ ${+DISPLAY} -eq 1 ]] || { cd && /usr/bin/xinit ${XINITRC} -nolisten tcp -once -retro -- vt${$(tty)/*tty} &>!/var/tmp/logs/${USER}/xorg/runtime.log } } 40 | function comfy { cd ${H}/code/bin/ComfyUI && python -m venv $PYTHONUSERBASE && . $PYTHONUSERBASE/bin/activate && python main.py ; deactivate } 41 | -------------------------------------------------------------------------------- /zsh/zsh-options: -------------------------------------------------------------------------------- 1 | ################################################ 2 | ## locate: ${XDG_CONFIG_HOME}/zsh/zsh-options ## 3 | ## detail: configuration file for zsh options ## 4 | ################################################ 5 | 6 | # 01 -> changing directories: 7 | setopt autocd 8 | setopt autopushd 9 | unsetopt cdablevars 10 | unsetopt chasedots 11 | setopt chaselinks 12 | setopt pushdignoredups 13 | unsetopt pushdminus 14 | unsetopt pushdsilent 15 | unsetopt pushdtohome 16 | # 02 -> completion: 17 | setopt alwayslastprompt 18 | setopt alwaystoend 19 | setopt autolist 20 | setopt automenu 21 | setopt autonamedirs 22 | setopt autoparamkeys 23 | setopt autoparamslash 24 | setopt autoremoveslash 25 | unsetopt bashautolist 26 | setopt completealiases 27 | setopt completeinword 28 | unsetopt globcomplete 29 | setopt hashlistall 30 | setopt listambiguous 31 | unsetopt listbeep 32 | setopt listpacked 33 | unsetopt listrowsfirst 34 | setopt listtypes 35 | unsetopt menucomplete 36 | unsetopt recexact 37 | # 03 -> expansion and globbing: 38 | setopt badpattern 39 | setopt bareglobqual 40 | unsetopt braceccl 41 | setopt caseglob 42 | setopt casematch 43 | unsetopt cshnullglob 44 | setopt equals 45 | setopt extendedglob 46 | setopt glob 47 | unsetopt globassign 48 | setopt globdots 49 | unsetopt globsubst 50 | unsetopt histsubstpattern 51 | unsetopt ignorebraces 52 | unsetopt kshglob 53 | unsetopt magicequalsubst 54 | setopt markdirs 55 | setopt multibyte 56 | setopt nomatch 57 | unsetopt nullglob 58 | setopt numericglobsort 59 | unsetopt rcexpandparam 60 | unsetopt rematchpcre 61 | unsetopt shglob 62 | unsetopt warncreateglobal 63 | # 04 -> history: 64 | setopt appendhistory 65 | setopt banghist 66 | unsetopt extendedhistory 67 | unsetopt histallowclobber 68 | unsetopt histbeep 69 | setopt histexpiredupsfirst 70 | unsetopt histfcntllock 71 | setopt histfindnodups 72 | unsetopt histignorealldups 73 | setopt histignoredups 74 | setopt histignorespace 75 | setopt histnofunctions 76 | setopt histnostore 77 | setopt histreduceblanks 78 | unsetopt histsavebycopy 79 | unsetopt histsavenodups 80 | setopt histverify 81 | setopt incappendhistory 82 | unsetopt sharehistory 83 | # 05 -> initilisation: 84 | unsetopt allexport 85 | unsetopt globalexport 86 | unsetopt globalrcs 87 | setopt rcs 88 | # 06 -> input/output: 89 | setopt aliases 90 | unsetopt clobber 91 | setopt correct 92 | unsetopt correctall 93 | unsetopt dvorak 94 | setopt flowcontrol 95 | unsetopt ignoreeof 96 | unsetopt interactivecomments 97 | setopt hashcmds 98 | setopt hashdirs 99 | unsetopt mailwarning 100 | unsetopt pathdirs 101 | unsetopt printeightbit 102 | unsetopt printexitvalue 103 | unsetopt rcquotes 104 | unsetopt rmstarsilent 105 | unsetopt rmstarwait 106 | setopt shortloops 107 | unsetopt sunkeyboardhack 108 | # 07 -> job control: 109 | setopt autocontinue 110 | unsetopt autoresume 111 | setopt bgnice 112 | setopt checkjobs 113 | setopt hup 114 | setopt longlistjobs 115 | setopt monitor 116 | setopt notify 117 | # 08 -> prompting: 118 | setopt promptbang 119 | setopt promptcr 120 | setopt promptsp 121 | setopt promptpercent 122 | setopt promptsubst 123 | unsetopt transientrprompt 124 | # 09 -> scripts and functions: 125 | unsetopt cbases 126 | unsetopt cprecedences 127 | setopt debugbeforecmd 128 | unsetopt errexit 129 | unsetopt errreturn 130 | setopt evallineno 131 | setopt exec 132 | setopt functionargzero 133 | unsetopt localoptions 134 | unsetopt localtraps 135 | setopt multifuncdef 136 | setopt multios 137 | unsetopt octalzeroes 138 | unsetopt typesetsilent 139 | unsetopt verbose 140 | unsetopt xtrace 141 | # 10 -> shell emulation: 142 | unsetopt bashrematch 143 | setopt bsdecho 144 | unsetopt cshjunkiehistory 145 | setopt cshjunkieloops 146 | unsetopt cshjunkiequotes 147 | unsetopt cshnullcmd 148 | unsetopt ksharrays 149 | unsetopt kshautoload 150 | setopt kshoptionprint 151 | unsetopt kshtypeset 152 | unsetopt kshzerosubscript 153 | unsetopt posixaliases 154 | unsetopt posixbuiltins 155 | unsetopt posixidentifiers 156 | unsetopt shfileexpansion 157 | unsetopt shnullcmd 158 | unsetopt shoptionletters 159 | unsetopt shwordsplit 160 | unsetopt trapsasync 161 | # 11 -> shell state: 162 | # setopt interactive # do not set! 163 | # setopt login # do not set! 164 | #unsetopt privileged # do not set! 165 | #unsetopt restricted # do not set! 166 | # setopt shinstdin # do not set! 167 | unsetopt singlecommand 168 | # 12 -> zle: 169 | unsetopt beep 170 | unsetopt combiningchars 171 | unsetopt emacs 172 | unsetopt overstrike 173 | unsetopt singlelinezle 174 | setopt vi 175 | setopt zle 176 | --------------------------------------------------------------------------------