Compare commits
362 Commits
b08aaa6f2a
...
master
Author | SHA1 | Date | |
---|---|---|---|
39745885c2 | |||
af79a7c09c | |||
ade6aba195 | |||
b3777d53a9 | |||
3782f0b76c | |||
4f67e2b9f7 | |||
e48092d2ae | |||
ee6cf018b7 | |||
84bdaa7bd0 | |||
bd3063e370 | |||
c653114e2c | |||
4efd4c3625 | |||
90ef8c3271 | |||
926510a96c | |||
4510be46e7 | |||
2e538f2a6b | |||
1f9c670dce | |||
b26a5435e7 | |||
13015b5bcb | |||
ce15981965 | |||
0a64734884 | |||
80027dc5bf | |||
fb488350aa | |||
ffdfbf8220 | |||
e877892276 | |||
5445e6de4d | |||
f7b3c7728f | |||
975f17d1a0 | |||
cd6b8ea9f0 | |||
26168e2808 | |||
df4fedf23f | |||
8880fde097 | |||
770328c432 | |||
e362d48c76 | |||
d08697c431 | |||
40bfa59169 | |||
8e0a3f938b | |||
3eb55227d9 | |||
937e18a6a6 | |||
5705506f4a | |||
![]() |
f3f9d8d634 | ||
![]() |
b807c961e5 | ||
a130a2600d | |||
8e093d3d6b | |||
dceaaf7455 | |||
b1d83cb9c0 | |||
195d36e1c5 | |||
83ec5f1ec2 | |||
d08967c511 | |||
![]() |
445d898611 | ||
![]() |
eb94273ba6 | ||
![]() |
999e88a03d | ||
![]() |
9106503ffa | ||
![]() |
24a40d2865 | ||
![]() |
319d7c5d49 | ||
c8cb8c1bcd | |||
![]() |
f4a672b833 | ||
79034b7ffc | |||
![]() |
87eef60701 | ||
![]() |
c661155c2e | ||
![]() |
0845419583 | ||
55efdb4a21 | |||
6586a6b450 | |||
8cdf4ab033 | |||
4dea7b99af | |||
53617395a9 | |||
6c17a0171b | |||
1cb07b84c1 | |||
e2207863e7 | |||
3bd62f1815 | |||
eb4b119b9f | |||
45b93322df | |||
c534f35bce | |||
4303c84073 | |||
1b20fb90e9 | |||
a0a38f776d | |||
6fdf1a9ce3 | |||
657afe2418 | |||
1ae6991331 | |||
f00d347d4c | |||
c29981ac7a | |||
e3bba0cdea | |||
07c370ce48 | |||
f81ba8a211 | |||
767d05aae9 | |||
2d827a24dc | |||
a57acea205 | |||
8d8e9ceabc | |||
1d22a2aba1 | |||
ba98f5cdf2 | |||
4ae3c91d83 | |||
76bb8e1aa3 | |||
3755c324fd | |||
bf0bf38370 | |||
304c1868a1 | |||
c6825ff197 | |||
49d50e3507 | |||
2dc3516653 | |||
97e1a4d4c3 | |||
681ec430b9 | |||
c4cd0b945f | |||
5fc2e1d18a | |||
4d4c002ff4 | |||
65b2aadd23 | |||
c349feea51 | |||
696a5146de | |||
31936cc008 | |||
292c6da3ae | |||
8f90389691 | |||
38b9a1a487 | |||
f7f3c1fa98 | |||
b4f9f5d81f | |||
f3e4edc09b | |||
35737cd238 | |||
93d8f5be12 | |||
353d3897e6 | |||
8c7fc1a387 | |||
a1a5a4e2f5 | |||
24759eceee | |||
0e9e4e98a6 | |||
4dccafbead | |||
61296c3cd4 | |||
bb7c661fc2 | |||
5a41e9701d | |||
09b3c2b43f | |||
df88af735d | |||
9783051217 | |||
11beb9b182 | |||
4ed2003a96 | |||
7f33f6ca70 | |||
7fbc41cbd1 | |||
ed1af0ea75 | |||
825aeae1d4 | |||
0f6775753c | |||
ea7304a653 | |||
91f4feae1c | |||
aa7e9f75da | |||
556448c8f7 | |||
0f1a5cc8b4 | |||
43eed9be2e | |||
8307ea7ed7 | |||
202a370558 | |||
9a8739057c | |||
b14526d70b | |||
55ed9a1bb6 | |||
272cb0af2c | |||
51ecf7e199 | |||
43ca837317 | |||
6118d3295c | |||
2c12518d07 | |||
b5c1b2ed07 | |||
1a7814c84e | |||
c8dd400543 | |||
ef02f6e3b8 | |||
71dd9ad849 | |||
7426c4211a | |||
f2745f024d | |||
c296f4136a | |||
0ebebaad1a | |||
a9568985fb | |||
58f2f6ad45 | |||
efd5937768 | |||
964dfaab31 | |||
dbb6352564 | |||
215491a175 | |||
b988e899b1 | |||
8a9d9b4a8e | |||
a8bf27be01 | |||
c75e1a6326 | |||
316be04712 | |||
d74f91cefa | |||
91d2601344 | |||
0250e8a666 | |||
07ace6160d | |||
4e50d19f40 | |||
c43b42ab18 | |||
3468abeb5d | |||
3d9d9f9fe8 | |||
2c37f60dd0 | |||
6bbec1f422 | |||
9b13f99bb5 | |||
9b040f5337 | |||
143f48996a | |||
87f3b0b1db | |||
51e4e345e2 | |||
941b07bc3e | |||
13a662b060 | |||
6ee3b04bcf | |||
df58feb9c9 | |||
44c90d4e63 | |||
e096dfe038 | |||
1822f7cd83 | |||
9f807854fa | |||
bec07d6fea | |||
6494402d57 | |||
7f756565a0 | |||
c5a8fa7f50 | |||
1b9d8264d5 | |||
2ec7591a65 | |||
1c88a04ee3 | |||
94189aa4b1 | |||
f249325f06 | |||
2c0c7682d4 | |||
7215925ea8 | |||
b426ccc2c8 | |||
7c73bef79a | |||
57445fae63 | |||
494fade73a | |||
350249a6f6 | |||
9ae5d2ca36 | |||
4850134136 | |||
188486ff0c | |||
737dd52eaf | |||
d2a965a972 | |||
9e1482604f | |||
583fb23d61 | |||
f21cca3252 | |||
88997abede | |||
cc70578be2 | |||
44ae7b5736 | |||
6d86feaa76 | |||
fe8e4cff89 | |||
8746f3f737 | |||
ba197b44e5 | |||
5c4a03900d | |||
5ec82e75a2 | |||
fd8a8dc5d9 | |||
36ae2c53d4 | |||
796e1a717b | |||
6b6239c318 | |||
9a5bb99d61 | |||
5864c9d46f | |||
5ff46e0232 | |||
f280c76297 | |||
d42fc38e87 | |||
0eb776fd3a | |||
60e2c6f0b4 | |||
c895e17283 | |||
aced90f23b | |||
530b93e802 | |||
5c8368cab4 | |||
5caa7ee34e | |||
129bb880c3 | |||
57e518188f | |||
f73916a221 | |||
f3262a344f | |||
211c5e8bce | |||
0bc302721c | |||
330fc4f818 | |||
6e68d085fe | |||
c4c00a8701 | |||
0c5d0a80b5 | |||
4bf2a9bffc | |||
b35223e41f | |||
969fb15988 | |||
5a5eb83345 | |||
330274bbc0 | |||
51bf4161b2 | |||
bb63236125 | |||
13255c5e74 | |||
fd5b3bf7ea | |||
5a1a08c11e | |||
98c4e79442 | |||
cbd575b7b1 | |||
9211b18f23 | |||
710056840e | |||
a381f1fb6d | |||
e13a5a4b88 | |||
606a31c422 | |||
12b0ca4d52 | |||
ae733d53b3 | |||
149c957d37 | |||
2863ec45b4 | |||
7cdb0d708f | |||
c552d62cad | |||
315d3510fb | |||
b0b6047f06 | |||
8b1ae5722d | |||
318923dcd5 | |||
b01f43751a | |||
561ec9d4eb | |||
2414251e1f | |||
fbc2f92c9d | |||
92b2a7dd3f | |||
de417b51e8 | |||
6b73f3b1dd | |||
8a5ed3e32f | |||
261edaa1c2 | |||
c396e838ca | |||
ccbfdf3ec0 | |||
ca29690fd3 | |||
baf172aa78 | |||
6775a187c4 | |||
2847694671 | |||
1d13fb73ed | |||
41f60a8070 | |||
1aad56b213 | |||
f4e0a53eff | |||
aab8931831 | |||
6d3f874d0f | |||
a10b25428d | |||
49df19fd11 | |||
a9fd4a6853 | |||
6caafb0ef3 | |||
3d639da78b | |||
220da453ed | |||
280791dc43 | |||
cbb3361de7 | |||
cd99422f49 | |||
583fbcd694 | |||
79a235fd4c | |||
eb58893b48 | |||
3594b1c2a2 | |||
1d6dab2107 | |||
10b8ddb1f2 | |||
5f9dd857be | |||
8eb42d45a4 | |||
9420d1d578 | |||
6dc61b9758 | |||
906ba74538 | |||
e9e6e5e3f0 | |||
2a13cbb92f | |||
0733f165ee | |||
df195ce40e | |||
6c68f369ce | |||
16448e5d8d | |||
06d82f1f61 | |||
eb383a3365 | |||
bc68f48e82 | |||
38947e2468 | |||
1d15c38369 | |||
efd62518d3 | |||
3c43b8bcfd | |||
814166d27f | |||
ec3bc04782 | |||
b9ff1ce0a6 | |||
03293faf89 | |||
2c4341e5e8 | |||
2fb59d407e | |||
779b8c6c9d | |||
679364ee20 | |||
1ed328d882 | |||
916382b5dc | |||
149caa6cc9 | |||
93bd41c157 | |||
b22eb9b2eb | |||
9df7fbc0ba | |||
006aa36b1c | |||
f371c43557 | |||
967ffe1310 | |||
deb6ad1c87 | |||
9554034956 | |||
0b54cabfe4 | |||
e72d053d6f | |||
d8f6b1065a | |||
1795eb9967 | |||
fe5fb11174 | |||
9d1ab82e02 | |||
11dd2217b9 | |||
d71e6c720b | |||
5ebcae085b | |||
fdac8d01a9 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1,3 @@
|
||||
*.swp
|
||||
.netrwhist
|
||||
*/.config/systemd/user/default.target.wants/
|
||||
|
38
.gitmodules
vendored
38
.gitmodules
vendored
@@ -1,42 +1,48 @@
|
||||
[submodule "vim/.vim/pathogen"]
|
||||
path = vim/.vim/pathogen
|
||||
path = base/.vim/pathogen
|
||||
url = https://github.com/tpope/vim-pathogen
|
||||
[submodule "vim/.vim/bundle/vim-closetag"]
|
||||
path = vim/.vim/bundle/vim-closetag
|
||||
path = base/.vim/bundle/vim-closetag
|
||||
url = https://github.com/alvan/vim-closetag.git
|
||||
[submodule "vim/.vim/bundle/gruvbox"]
|
||||
path = vim/.vim/bundle/gruvbox
|
||||
path = base/.vim/bundle/gruvbox
|
||||
url = https://github.com/morhetz/gruvbox
|
||||
[submodule "vim/.vim/bundle/SimpylFold"]
|
||||
path = vim/.vim/bundle/SimpylFold
|
||||
path = base/.vim/bundle/SimpylFold
|
||||
url = https://github.com/tmhedberg/SimpylFold.git
|
||||
[submodule "vim/.vim/bundle/vim-template"]
|
||||
path = vim/.vim/bundle/vim-template
|
||||
path = base/.vim/bundle/vim-template
|
||||
url = https://github.com/aperezdc/vim-template.git
|
||||
[submodule "vim/.vim/bundle/incsearch.vim"]
|
||||
path = vim/.vim/bundle/incsearch.vim
|
||||
path = base/.vim/bundle/incsearch.vim
|
||||
url = https://github.com/haya14busa/incsearch.vim.git
|
||||
[submodule "vim/.vim/bundle/lightline.vim"]
|
||||
path = vim/.vim/bundle/lightline.vim
|
||||
path = base/.vim/bundle/lightline.vim
|
||||
url = https://github.com/itchyny/lightline.vim
|
||||
[submodule "vim/.vim/bundle/ale"]
|
||||
path = vim/.vim/bundle/ale
|
||||
path = base/.vim/bundle/ale
|
||||
url = https://github.com/w0rp/ale
|
||||
[submodule "vim/.vim/bundle/lightline-gruvbox.vim"]
|
||||
path = vim/.vim/bundle/lightline-gruvbox.vim
|
||||
path = base/.vim/bundle/lightline-gruvbox.vim
|
||||
url = https://github.com/shinchu/lightline-gruvbox.vim
|
||||
[submodule "vim/.vim/bundle/vim-css-color"]
|
||||
path = vim/.vim/bundle/vim-css-color
|
||||
path = base/.vim/bundle/vim-css-color
|
||||
url = https://github.com/ap/vim-css-color
|
||||
[submodule "vim/.vim/bundle/vim-javascript"]
|
||||
path = vim/.vim/bundle/vim-javascript
|
||||
path = base/.vim/bundle/vim-javascript
|
||||
url = https://github.com/pangloss/vim-javascript
|
||||
[submodule "vim/.vim/bundle/vim-ansible-yaml"]
|
||||
path = vim/.vim/bundle/vim-ansible-yaml
|
||||
path = base/.vim/bundle/vim-ansible-yaml
|
||||
url = https://github.com/chase/vim-ansible-yaml
|
||||
[submodule "firestarter/.firestarter"]
|
||||
path = firestarter/.firestarter
|
||||
url = git@git.desu.ltd:salt/firestarter
|
||||
[submodule "bin/.bin"]
|
||||
path = bin/.bin
|
||||
path = base/.bin
|
||||
url = git@git.desu.ltd:salt/bin
|
||||
[submodule "base/.vim/bundle/vim-terraform"]
|
||||
path = base/.vim/bundle/vim-terraform
|
||||
url = https://github.com/hashivim/vim-terraform
|
||||
[submodule "base/.vim/bundle/vim-groovy"]
|
||||
path = base/.vim/bundle/vim-groovy
|
||||
url = https://github.com/thecodesmith/vim-groovy
|
||||
[submodule "base/.vim/bundle/FastFold"]
|
||||
path = base/.vim/bundle/FastFold
|
||||
url = https://github.com/Konfekt/FastFold
|
||||
|
@@ -8,16 +8,11 @@ Clone the repository and stow in configs that you want, like so:
|
||||
|
||||
```bash
|
||||
cd
|
||||
git clone git@git.desu.ltd:salt/dotfiles .dotfiles
|
||||
git clone git@git.desu.ltd:salt/dotfiles --recurse-submodules .dotfiles
|
||||
cd .dotfiles
|
||||
git submodule update --recursive --remote
|
||||
stow vim # Or whatever config set you want
|
||||
stow base # Or whatever config set you want
|
||||
```
|
||||
|
||||
I would highly recommend using this repository only as a reference and building your own dotfile solution from scratch.
|
||||
|
||||
However, I would *also* highly recommend using this stow-based approach instead of putting a bare repo in your home directory. Been there, done that. It sucks, especially if you're the type to diverge configs between machines or just want a subset installed.
|
||||
|
||||
## Overview
|
||||
|
||||
TODO: Overview of config sets
|
||||
|
14
base/.bashrc
Executable file
14
base/.bashrc
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# Source .profile
|
||||
if [ -r ~/.profile ]; then
|
||||
# shellcheck disable=1090
|
||||
source ~/.profile
|
||||
fi
|
||||
|
1
base/.bin
Submodule
1
base/.bin
Submodule
Submodule base/.bin added at 45a99b283d
252
base/.config/dircolors
Normal file
252
base/.config/dircolors
Normal file
@@ -0,0 +1,252 @@
|
||||
# Copyright (c) 2017-present Arctic Ice Studio <development@arcticicestudio.com>
|
||||
# Copyright (c) 2017-present Sven Greb <code@svengreb.de>
|
||||
|
||||
# Project: Nord dircolors
|
||||
# Repository: https://github.com/arcticicestudio/nord-dircolors
|
||||
# License: MIT
|
||||
|
||||
COLOR tty
|
||||
|
||||
TERM ansi
|
||||
TERM *color*
|
||||
TERM con[0-9]*x[0-9]*
|
||||
TERM cons25
|
||||
TERM console
|
||||
TERM cygwin
|
||||
TERM dtterm
|
||||
TERM dvtm
|
||||
TERM dvtm-256color
|
||||
TERM Eterm
|
||||
TERM eterm-color
|
||||
TERM fbterm
|
||||
TERM gnome
|
||||
TERM gnome-256color
|
||||
TERM hurd
|
||||
TERM jfbterm
|
||||
TERM konsole
|
||||
TERM konsole-256color
|
||||
TERM kterm
|
||||
TERM linux
|
||||
TERM linux-c
|
||||
TERM mlterm
|
||||
TERM putty
|
||||
TERM putty-256color
|
||||
TERM rxvt*
|
||||
TERM rxvt-unicode
|
||||
TERM rxvt-256color
|
||||
TERM rxvt-unicode256
|
||||
TERM screen*
|
||||
TERM screen-256color
|
||||
TERM st
|
||||
TERM st-256color
|
||||
TERM terminator
|
||||
TERM tmux*
|
||||
TERM tmux-256color
|
||||
TERM vt100
|
||||
TERM xterm*
|
||||
TERM xterm-color
|
||||
TERM xterm-88color
|
||||
TERM xterm-256color
|
||||
|
||||
#+-----------------+
|
||||
#+ Global Defaults +
|
||||
#+-----------------+
|
||||
NORMAL 00
|
||||
RESET 0
|
||||
|
||||
FILE 00
|
||||
DIR 01;34
|
||||
LINK 36
|
||||
MULTIHARDLINK 04;36
|
||||
|
||||
FIFO 04;01;36
|
||||
SOCK 04;33
|
||||
DOOR 04;01;36
|
||||
BLK 01;33
|
||||
CHR 33
|
||||
|
||||
ORPHAN 31
|
||||
MISSING 01;37;41
|
||||
|
||||
EXEC 01;36
|
||||
|
||||
SETUID 01;04;37
|
||||
SETGID 01;04;37
|
||||
CAPABILITY 01;37
|
||||
|
||||
STICKY_OTHER_WRITABLE 01;37;44
|
||||
OTHER_WRITABLE 01;04;34
|
||||
STICKY 04;37;44
|
||||
|
||||
#+-------------------+
|
||||
#+ Extension Pattern +
|
||||
#+-------------------+
|
||||
#+--- Archives ---+
|
||||
.7z 01;32
|
||||
.ace 01;32
|
||||
.alz 01;32
|
||||
.arc 01;32
|
||||
.arj 01;32
|
||||
.bz 01;32
|
||||
.bz2 01;32
|
||||
.cab 01;32
|
||||
.cpio 01;32
|
||||
.deb 01;32
|
||||
.dz 01;32
|
||||
.ear 01;32
|
||||
.gz 01;32
|
||||
.jar 01;32
|
||||
.lha 01;32
|
||||
.lrz 01;32
|
||||
.lz 01;32
|
||||
.lz4 01;32
|
||||
.lzh 01;32
|
||||
.lzma 01;32
|
||||
.lzo 01;32
|
||||
.rar 01;32
|
||||
.rpm 01;32
|
||||
.rz 01;32
|
||||
.sar 01;32
|
||||
.t7z 01;32
|
||||
.tar 01;32
|
||||
.taz 01;32
|
||||
.tbz 01;32
|
||||
.tbz2 01;32
|
||||
.tgz 01;32
|
||||
.tlz 01;32
|
||||
.txz 01;32
|
||||
.tz 01;32
|
||||
.tzo 01;32
|
||||
.tzst 01;32
|
||||
.war 01;32
|
||||
.xz 01;32
|
||||
.z 01;32
|
||||
.Z 01;32
|
||||
.zip 01;32
|
||||
.zoo 01;32
|
||||
.zst 01;32
|
||||
|
||||
#+--- Audio ---+
|
||||
.aac 32
|
||||
.au 32
|
||||
.flac 32
|
||||
.m4a 32
|
||||
.mid 32
|
||||
.midi 32
|
||||
.mka 32
|
||||
.mp3 32
|
||||
.mpa 32
|
||||
.mpeg 32
|
||||
.mpg 32
|
||||
.ogg 32
|
||||
.opus 32
|
||||
.ra 32
|
||||
.wav 32
|
||||
|
||||
#+--- Customs ---+
|
||||
.3des 01;35
|
||||
.aes 01;35
|
||||
.gpg 01;35
|
||||
.pgp 01;35
|
||||
|
||||
#+--- Documents ---+
|
||||
.doc 32
|
||||
.docx 32
|
||||
.dot 32
|
||||
.odg 32
|
||||
.odp 32
|
||||
.ods 32
|
||||
.odt 32
|
||||
.otg 32
|
||||
.otp 32
|
||||
.ots 32
|
||||
.ott 32
|
||||
.pdf 32
|
||||
.ppt 32
|
||||
.pptx 32
|
||||
.xls 32
|
||||
.xlsx 32
|
||||
|
||||
#+--- Executables ---+
|
||||
.app 01;36
|
||||
.bat 01;36
|
||||
.btm 01;36
|
||||
.cmd 01;36
|
||||
.com 01;36
|
||||
.exe 01;36
|
||||
.reg 01;36
|
||||
|
||||
#+--- Ignores ---+
|
||||
*~ 02;37
|
||||
.bak 02;37
|
||||
.BAK 02;37
|
||||
.log 02;37
|
||||
.log 02;37
|
||||
.old 02;37
|
||||
.OLD 02;37
|
||||
.orig 02;37
|
||||
.ORIG 02;37
|
||||
.swo 02;37
|
||||
.swp 02;37
|
||||
|
||||
#+--- Images ---+
|
||||
.bmp 32
|
||||
.cgm 32
|
||||
.dl 32
|
||||
.dvi 32
|
||||
.emf 32
|
||||
.eps 32
|
||||
.gif 32
|
||||
.jpeg 32
|
||||
.jpg 32
|
||||
.JPG 32
|
||||
.mng 32
|
||||
.pbm 32
|
||||
.pcx 32
|
||||
.pgm 32
|
||||
.png 32
|
||||
.PNG 32
|
||||
.ppm 32
|
||||
.pps 32
|
||||
.ppsx 32
|
||||
.ps 32
|
||||
.svg 32
|
||||
.svgz 32
|
||||
.tga 32
|
||||
.tif 32
|
||||
.tiff 32
|
||||
.xbm 32
|
||||
.xcf 32
|
||||
.xpm 32
|
||||
.xwd 32
|
||||
.xwd 32
|
||||
.yuv 32
|
||||
|
||||
#+--- Video ---+
|
||||
.anx 32
|
||||
.asf 32
|
||||
.avi 32
|
||||
.axv 32
|
||||
.flc 32
|
||||
.fli 32
|
||||
.flv 32
|
||||
.gl 32
|
||||
.m2v 32
|
||||
.m4v 32
|
||||
.mkv 32
|
||||
.mov 32
|
||||
.MOV 32
|
||||
.mp4 32
|
||||
.mpeg 32
|
||||
.mpg 32
|
||||
.nuv 32
|
||||
.ogm 32
|
||||
.ogv 32
|
||||
.ogx 32
|
||||
.qt 32
|
||||
.rm 32
|
||||
.rmvb 32
|
||||
.swf 32
|
||||
.vob 32
|
||||
.webm 32
|
||||
.wmv 32
|
26
base/.config/htop/htoprc
Normal file
26
base/.config/htop/htoprc
Normal file
@@ -0,0 +1,26 @@
|
||||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 5 48 17 18 38 39 2 46 47 49 1
|
||||
sort_key=46
|
||||
sort_direction=1
|
||||
hide_threads=0
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=1
|
||||
shadow_other_users=1
|
||||
show_thread_names=1
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
tree_view=1
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_zero=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=0
|
||||
delay=15
|
||||
left_meters=AllCPUs2 Memory Swap
|
||||
left_meter_modes=1 1 1
|
||||
right_meters=Tasks LoadAverage Uptime
|
||||
right_meter_modes=2 2 2
|
89
base/.config/systemd/user/autocategorize
Executable file
89
base/.config/systemd/user/autocategorize
Executable file
@@ -0,0 +1,89 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# Pull in user-dirs.dirs if it exists
|
||||
userdirs="${XDG_CONFIG_DIR:-$HOME/.config}"/user-dirs.dirs
|
||||
[ -f "$userdirs" ] && . "$userdirs"
|
||||
# Obtain download directory from there, otherwise use default
|
||||
downloaddir="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}"
|
||||
documentsdir="${XDG_DOCUMENTS_DIR:-$HOME/Documents}"
|
||||
picturesdir="${XDG_PICTURES_DIR:-$HOME/Pictures}"
|
||||
videosdir="${XDG_VIDEOS_DIR:-$HOME/Videos}"
|
||||
# If we have Nextcloud installed, this will be our backups dir
|
||||
backupsdir="${HOME}/Nextcloud/Backups"
|
||||
|
||||
# Take loose crap out of the home folder
|
||||
echo "Sorting away videos from homedir..."
|
||||
find "$HOME" \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
\( \
|
||||
-iname "*.mov" -or \
|
||||
-iname "*.webm" -or \
|
||||
-iname "*.mkv" -or \
|
||||
-iname "*.mp4" \
|
||||
\) \
|
||||
-print \
|
||||
-exec mv {} "$videosdir" \;
|
||||
echo "Sorting away pictures from homedir..."
|
||||
find "$HOME" \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
\( \
|
||||
-iname "*.jpg" -or \
|
||||
-iname "*.jpeg" -or \
|
||||
-iname "*.gif" -or \
|
||||
-iname "*.png" -or \
|
||||
-iname "*.webp" \
|
||||
\) \
|
||||
-print \
|
||||
-exec mv {} "$picturesdir" \;
|
||||
|
||||
# Sort out downloads
|
||||
[ -e "$downloaddir" ] && {
|
||||
# Sort out epubs
|
||||
if [ -d ~/Books ]; then
|
||||
echo "Sorting out books..."
|
||||
find "$downloaddir" \
|
||||
-type f \
|
||||
\( \
|
||||
-iname "*.epub" -or \
|
||||
-iname "*.mobi" \
|
||||
\) \
|
||||
-print \
|
||||
-exec mv {} ~/Books \;
|
||||
fi
|
||||
# Remove RDP stuffs
|
||||
echo "Removing RDP zone identifiers..."
|
||||
find "$downloaddir" \
|
||||
-type f -iname "*:Zone.Identifier" \
|
||||
-print -delete
|
||||
# Remove anything that's wicked old
|
||||
echo "Removing ancient downloads..."
|
||||
find "$downloaddir" \
|
||||
-mtime +60 \
|
||||
-print -delete
|
||||
# Remove anything kinda old but really big
|
||||
echo "Removing large downloads..."
|
||||
find "$downloaddir" \
|
||||
-mtime +30 -size +10M \
|
||||
-print -delete
|
||||
# Remove zips, but at a lower tolerance
|
||||
echo "Removing old zips..."
|
||||
find "$downloaddir" \
|
||||
-mtime +30 -type f -iname "*.zip" \
|
||||
-print -delete
|
||||
# Sort out Super Turtle Idle automatic backups
|
||||
[ -d "$backupsdir" ] && {
|
||||
echo "Sorting out turtle backups..."
|
||||
mkdir -p "$backupsdir/SuperTurtleIdle"
|
||||
for file in "$downloaddir"/SuperSaveData-*.json; do
|
||||
if [ -e "$file" ]; then
|
||||
lastmod="$(stat -c %y -- "$file")"
|
||||
echo "Moving backup from $lastmod"
|
||||
mv "$file" "$backupsdir/SuperTurtleIdle/SuperSaveData-$lastmod.json"
|
||||
fi
|
||||
done
|
||||
}
|
||||
}
|
9
base/.config/systemd/user/autocategorize.service
Normal file
9
base/.config/systemd/user/autocategorize.service
Normal file
@@ -0,0 +1,9 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Autocategorize service
|
||||
|
||||
[Service]
|
||||
ExecStart=%h/.config/systemd/user/autocategorize
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
11
base/.config/systemd/user/autocategorize.timer
Normal file
11
base/.config/systemd/user/autocategorize.timer
Normal file
@@ -0,0 +1,11 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Autocategorize timer
|
||||
|
||||
[Timer]
|
||||
Persistent=true
|
||||
OnBootSec=15min
|
||||
OnCalendar=*-*-* 22:00:00
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
9
base/.config/systemd/user/dot-fetch.service
Normal file
9
base/.config/systemd/user/dot-fetch.service
Normal file
@@ -0,0 +1,9 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Dotfile fetch service
|
||||
|
||||
[Service]
|
||||
ExecStart=git --git-dir=%h/.dotfiles/.git fetch
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
11
base/.config/systemd/user/dot-fetch.timer
Normal file
11
base/.config/systemd/user/dot-fetch.timer
Normal file
@@ -0,0 +1,11 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Dot fetch timer
|
||||
|
||||
[Timer]
|
||||
Persistent=true
|
||||
OnBootSec=15min
|
||||
OnCalendar=*-*-* 22:00:00
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
9
base/.config/systemd/user/exif-strip.service
Normal file
9
base/.config/systemd/user/exif-strip.service
Normal file
@@ -0,0 +1,9 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Image metadata stripping service
|
||||
|
||||
[Service]
|
||||
ExecStart=toolbox run -c general nice -n 20 ionice -c 3 exiftool -recurse -overwrite_original -all= %h/Pictures/Photos
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
10
base/.config/systemd/user/exif-strip.timer
Normal file
10
base/.config/systemd/user/exif-strip.timer
Normal file
@@ -0,0 +1,10 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Image metadata stripping timer
|
||||
|
||||
[Timer]
|
||||
Persistent=true
|
||||
OnCalendar=*:0/15
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
9
base/.config/systemd/user/flatpak-dump.service
Normal file
9
base/.config/systemd/user/flatpak-dump.service
Normal file
@@ -0,0 +1,9 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Flatpak manifest backup service
|
||||
|
||||
[Service]
|
||||
ExecStart=bash -c 'flatpak list --columns=application --app > $HOME/.backup/flatpak-latest.txt'
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
10
base/.config/systemd/user/flatpak-dump.timer
Normal file
10
base/.config/systemd/user/flatpak-dump.timer
Normal file
@@ -0,0 +1,10 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Flatpak manifest backup timer
|
||||
|
||||
[Timer]
|
||||
Persistent=true
|
||||
OnCalendar=*:0/15
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
15
base/.config/systemd/user/ollama.service
Normal file
15
base/.config/systemd/user/ollama.service
Normal file
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Ollama Service
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Environment="OLLAMA_HOST=0.0.0.0"
|
||||
Environment="LD_LIBRARY_PATH=/var/home/salt/Projects/ollama/rocm/lib/ollama/"
|
||||
ExecStart=/home/salt/Projects/ollama/ollama serve
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
MemoryHigh=3G
|
||||
MemoryMax=4G
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
11
base/.config/systemd/user/openwebui.service
Normal file
11
base/.config/systemd/user/openwebui.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=OpenWebUI Service
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/home/salt/Projects/ollama/run-webui.sh
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
9
base/.config/systemd/user/proj-fetch.service
Normal file
9
base/.config/systemd/user/proj-fetch.service
Normal file
@@ -0,0 +1,9 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Project fetch service
|
||||
|
||||
[Service]
|
||||
ExecStart=find %h/Projects -type d -iname .git -execdir git fetch \;
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
11
base/.config/systemd/user/proj-fetch.timer
Normal file
11
base/.config/systemd/user/proj-fetch.timer
Normal file
@@ -0,0 +1,11 @@
|
||||
# vim:ft=systemd:
|
||||
[Unit]
|
||||
Description=Project fetch timer
|
||||
|
||||
[Timer]
|
||||
Persistent=true
|
||||
OnBootSec=15min
|
||||
OnCalendar=*-*-* 23:00:00
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
12
base/.config/systemd/user/sdwebui.service
Normal file
12
base/.config/systemd/user/sdwebui.service
Normal file
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=StableDiffusion Web UI Service
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/home/salt/Projects/ollama/sdwebui/
|
||||
ExecStart=/home/salt/Projects/ollama/sdwebui/webui-docker.sh
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
11
base/.config/systemd/user/sillytavern.service
Normal file
11
base/.config/systemd/user/sillytavern.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=SillyTavern Service
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/home/salt/Projects/ollama/run-sillytavern.sh
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
64
base/.functions
Normal file
64
base/.functions
Normal file
@@ -0,0 +1,64 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# .functions
|
||||
# Functions for interactive shells
|
||||
#
|
||||
|
||||
proj() {
|
||||
# Ensure we have an argument
|
||||
if [ -z ${1+x} ]; then
|
||||
echo "proj: requires argument"
|
||||
return 1
|
||||
fi
|
||||
# POSIX mandates this external call to sed
|
||||
projname="$(echo "$1" | sed -re 's/[^ a-zA-Z0-9.-]//g')"
|
||||
projdir="$HOME/Projects/$projname"
|
||||
# Ensure we have a ~/Projects directory
|
||||
mkdir -p "$HOME/Projects" > /dev/null 2>&1
|
||||
# cd into the project or make it if necessary
|
||||
if [ -d "$projdir" ]; then
|
||||
# It exists
|
||||
cd "$projdir" || return 50
|
||||
# Run code if we have it
|
||||
# The fun part is this environment file can access some vars about the proj
|
||||
local envfile="$projdir/.project-env"
|
||||
if [ -r "$envfile" ]; then
|
||||
. "$envfile"
|
||||
echo "Sourced environment file for project"
|
||||
# Also mark an envvar to ensure we can detect this condition
|
||||
export PROJECT="$projname"
|
||||
fi
|
||||
else
|
||||
# It does not exist
|
||||
echo "Creating new project \"$projname\""
|
||||
mkdir -p "$projdir"
|
||||
cd "$projdir" || return 51
|
||||
if command -v git > /dev/null 2>&1; then
|
||||
# Initialize git
|
||||
echo "Initializing git with .gitignore"
|
||||
git init > /dev/null 2>&1
|
||||
echo '*.swp' > .gitignore
|
||||
git add .gitignore > /dev/null 2>&1
|
||||
git commit -am "Create gitignore" > /dev/null 2>&1
|
||||
git status
|
||||
fi
|
||||
fi
|
||||
}
|
||||
# Autocompletion for bash
|
||||
# A note on the shellcheck disable: that's fine, because this is also a test
|
||||
# If it fails, we don't even define a completion function
|
||||
# shellcheck disable=2039
|
||||
complete -F _proj proj > /dev/null 2>&1 && \
|
||||
_proj() {
|
||||
[ "${#COMP_WORDS[@]}" != "2" ] && return 0
|
||||
for dir in "$HOME"/Projects/*; do
|
||||
reply="$(basename "$dir")"
|
||||
reply="${reply//[^ \-a-zA-Z0-9.]/}"
|
||||
# shellcheck disable=2179
|
||||
COMPREPLY+=" $reply"
|
||||
done
|
||||
unset reply
|
||||
# shellcheck disable=2178
|
||||
COMPREPLY=($(compgen -W "$COMPREPLY" "${COMP_WORDS[COMP_CWORD]}"))
|
||||
return 0
|
||||
}
|
17
base/.inputrc
Normal file
17
base/.inputrc
Normal file
@@ -0,0 +1,17 @@
|
||||
## COMPLETION
|
||||
set colored-stats on
|
||||
set completion-ignore-case on
|
||||
# Only need a single tab press to show results
|
||||
set show-all-if-ambiguous on
|
||||
# You ever do that thing where you put your cursorright in the middle of a word,
|
||||
# like you're at the "e" in "Makefile", and hit tab, and bash oh-so-helpfully
|
||||
# inserts the latter half of the word right in the middle of it -- so you've
|
||||
# got "Makefilefile" sitting in your terminal?
|
||||
# Yeah fuck that
|
||||
set skip-completed-text on
|
||||
|
||||
## KEYBINDINGS
|
||||
# History searching
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
|
360
base/.profile
Executable file
360
base/.profile
Executable file
@@ -0,0 +1,360 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# My shell profile
|
||||
#
|
||||
# Copyright (c) 2017-2022 Jacob Babor
|
||||
# Licensed under the terms of the MIT license
|
||||
#
|
||||
|
||||
## SHELLCHECK
|
||||
# Yeah whatever I don't care that you can't find these
|
||||
# shellcheck disable=1091
|
||||
# shellcheck disable=1090
|
||||
# I'm well aware of when functions are defined vs used
|
||||
# Those choices are deliberate
|
||||
# shellcheck disable=2139
|
||||
# shellcheck disable=2016
|
||||
# Some variables will not be used here, but in the shell
|
||||
# shellcheck disable=2034
|
||||
# Quit being pedantic
|
||||
# shellcheck disable=1117
|
||||
|
||||
# Environment variables
|
||||
_baseshell="$(basename -- "$0")"
|
||||
|
||||
# Patch PATH
|
||||
for dir in \
|
||||
"$HOME/.bin" \
|
||||
"$HOME/.local/bin" \
|
||||
"/usr/local/opt/coreutils/libexec/gnubin" \
|
||||
"/usr/local/opt/gnu-sed/libexec/gnubin" \
|
||||
"/usr/local/opt/grep/libexec/gnubin" \
|
||||
"/usr/local/opt/util-linux/bin" \
|
||||
"/usr/local/opt/util-linux/sbin"
|
||||
do
|
||||
if [ -d "$dir" ]; then
|
||||
PATH="$dir:$PATH"
|
||||
fi
|
||||
done
|
||||
|
||||
# Grab bash_completion, if it exists
|
||||
[ -f "/etc/profile.d/bash_completion.sh" ] && . "/etc/profile.d/bash_completion.sh"
|
||||
|
||||
# Source ~/.functions, if it exists
|
||||
[ -r "$HOME/.functions" ] \
|
||||
&& [ "$_baseshell" != "sh" ] \
|
||||
&& [ "$_baseshell" != "dash" ] \
|
||||
&& . "$HOME/.functions"
|
||||
|
||||
# Define a require function
|
||||
has() {
|
||||
[ -z "$1" ] && return 1
|
||||
command -v "$1" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# Source in homebrew configuration, if we have it installed
|
||||
brewfix=/usr/local
|
||||
# This patch is needed on Apple silicon
|
||||
if [ -d /opt/homebrew ]; then
|
||||
brewfix="/opt/homebrew"
|
||||
fi
|
||||
if [ -f "$brewfix"/bin/brew ]; then
|
||||
eval "$("$brewfix"/bin/brew shellenv)"
|
||||
# Add coreutils to path, if we can
|
||||
if [ -d "$brewfix"/opt/coreutils/libexec/gnubin ]; then
|
||||
export PATH="$brewfix/opt/coreutils/libexec/gnubin:$PATH"
|
||||
fi
|
||||
fi
|
||||
unset brew
|
||||
|
||||
# If we have toolbox, assume we're on Wayblue and set up an alias
|
||||
if has toolbox; then
|
||||
#toolbox create hyprpm
|
||||
#toolbox run -c hyprpm sudo dnf -y install hyprland hyprland-devel
|
||||
alias mktoolbox-hyprpm='toolbox create hyprpm && toolbox run -c hyprpm sudo dnf -y install hyprland hyprland-devel'
|
||||
alias hyprpm='toolbox run -c hyprpm env HYPRLAND_INSTANCE_SIGNATURE="$HYPRLAND_INSTANCE_SIGNATURE" hyprpm'
|
||||
fi
|
||||
|
||||
# Grab pip completion, if it exists
|
||||
if has pip; then
|
||||
case "$_baseshell" in
|
||||
*bash)
|
||||
if ! [ -f "$HOME/.pip-completion-bash" ]; then
|
||||
pip completion --bash > "$HOME/.pip-completion-bash"
|
||||
echo ".profile: Created pip completion for bash"
|
||||
fi
|
||||
. "$HOME/.pip-completion-bash"
|
||||
;;
|
||||
zsh)
|
||||
if ! [ -f "$HOME/.pip-completion-zsh" ]; then
|
||||
pip completion --zsh > "$HOME/.pip-completion-zsh"
|
||||
echo ".profile: Created pip completion for zsh"
|
||||
fi
|
||||
. "$HOME/.pip-completion-zsh"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Grab dircolors, if it exists
|
||||
if has dircolors; then
|
||||
dircolorsfile="$HOME/.config/dircolors"
|
||||
if [ -r "$dircolorsfile" ]; then
|
||||
eval "$(dircolors "$dircolorsfile")"
|
||||
else
|
||||
eval "$(dircolors -b)"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set up our text editor
|
||||
for editor in vim vi nano; do
|
||||
if has "$editor"; then
|
||||
export EDITOR="$editor"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Now for a shitton of aliases
|
||||
if has podman and ! has docker; then
|
||||
alias docker="podman"
|
||||
fi
|
||||
if has git; then
|
||||
# Thanks Bash-it!
|
||||
alias g='git'
|
||||
alias ga='git add'
|
||||
alias gall='git add -A'
|
||||
alias gap='git add -p'
|
||||
alias gb='git branch'
|
||||
alias gbD='git branch -D'
|
||||
alias gba='git branch -a'
|
||||
alias gbd='git branch -d'
|
||||
alias gbm='git branch -m'
|
||||
alias gbt='git branch --track'
|
||||
alias gc='git commit -v'
|
||||
alias gca='git commit -v -a'
|
||||
alias gcam="git commit -v -am"
|
||||
alias gcb='git checkout -b'
|
||||
alias gci='git commit --interactive'
|
||||
alias gcl='git clone'
|
||||
alias gclean='git clean -fd'
|
||||
alias gcm='git commit -v -m'
|
||||
alias gco='git checkout'
|
||||
alias gcob='git checkout -b'
|
||||
alias gcom='git checkout master'
|
||||
alias gcount='git shortlog -sn'
|
||||
alias gcp='git cherry-pick'
|
||||
alias gcpd='git checkout master; git pull; git branch -D'
|
||||
alias gcpx='git cherry-pick -x'
|
||||
alias gcsam="git commit -S -am"
|
||||
alias gct='git checkout --track'
|
||||
alias gd='git diff'
|
||||
alias gdel='git branch -D'
|
||||
alias gds='git diff --staged'
|
||||
alias gdv='git diff -w "$@" | vim -R -'
|
||||
alias get='git'
|
||||
alias gexport='git archive --format zip --output'
|
||||
alias gf='git fetch --all --prune'
|
||||
alias gft='git fetch --all --prune --tags'
|
||||
alias gftv='git fetch --all --prune --tags --verbose'
|
||||
alias gfv='git fetch --all --prune --verbose'
|
||||
alias ggs="gg --stat"
|
||||
alias ggui="git gui"
|
||||
alias gh='cd "$(git rev-parse --show-toplevel)"'
|
||||
alias gl='git pull'
|
||||
alias gll='git log --graph --pretty=oneline --abbrev-commit'
|
||||
alias glum='git pull upstream master'
|
||||
alias gm="git merge"
|
||||
alias gmu='git fetch origin -v; git fetch upstream -v; git merge upstream/master'
|
||||
alias gmv='git mv'
|
||||
alias gp='git push'
|
||||
alias gpatch="git format-patch -1"
|
||||
alias gpo='git push origin'
|
||||
alias gpom='git push origin master'
|
||||
alias gpp='git pull && git push'
|
||||
alias gpr='git pull --rebase'
|
||||
alias gpristine='git reset --hard && git clean -dfx'
|
||||
alias gpu='git push --set-upstream'
|
||||
alias gpuo='git push --set-upstream origin'
|
||||
alias gpuoc='git push --set-upstream origin $(git symbolic-ref --short HEAD)'
|
||||
alias gr='git remote'
|
||||
alias gra='git remote add'
|
||||
alias grm='git rm'
|
||||
alias grv='git remote -v'
|
||||
alias gs='git status'
|
||||
alias gsl="git shortlog -sn"
|
||||
alias gss='git status -s'
|
||||
alias gst="git stash"
|
||||
alias gstb="git stash branch"
|
||||
alias gstd="git stash drop"
|
||||
alias gstl="git stash list"
|
||||
alias gstp="git stash pop"
|
||||
alias gsu='git submodule update --init --recursive'
|
||||
alias gt="git tag"
|
||||
alias gta="git tag -a"
|
||||
alias gtd="git tag -d"
|
||||
alias gtl="git tag -l"
|
||||
alias gtls='git tag -l | sort -V'
|
||||
alias gup='git fetch && git rebase'
|
||||
alias gus='git reset HEAD'
|
||||
alias gwc="git whatchanged"
|
||||
# Add uncommitted and unstaged changes to the last commit
|
||||
alias gcaa="git commit -a --amend -C HEAD"
|
||||
# From http://blogs.atlassian.com/2014/10/advanced-git-aliases/
|
||||
# Show commits since last pull
|
||||
alias gnew="git log HEAD@{1}..HEAD@{0}"
|
||||
# Show untracked files
|
||||
alias gu='git ls-files . --exclude-standard --others'
|
||||
fi
|
||||
if has sed && has find; then
|
||||
replace() {
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "replace: Requires two arguments"
|
||||
return 1
|
||||
fi
|
||||
find . -type f -exec sed -i "s/$1/$2/g" {} \;
|
||||
}
|
||||
fi
|
||||
if has sudo; then
|
||||
case $_baseshell in
|
||||
*bash|*zsh)
|
||||
export SUDO_PROMPT=$'[\e[34msudo\e[0m as %U]: Password for %p: '
|
||||
;;
|
||||
*)
|
||||
export SUDO_PROMPT='[sudo as %U]: Password for %p: '
|
||||
esac
|
||||
fi
|
||||
if has tree; then
|
||||
treeargs='-qF --dirsfirst'
|
||||
alias tree="tree $treeargs"
|
||||
alias t="tree $treeargs -L 2"
|
||||
alias tl="tree $treeargs -pughL 2"
|
||||
alias tp="tree $treeargs -pL 2"
|
||||
alias ts="tree $treeargs -hL 2"
|
||||
unset treeargs
|
||||
fi
|
||||
|
||||
# Aliases for common utilities
|
||||
if [ "$(uname)" = "Linux" ] || has brew; then
|
||||
# Assume we have GNU coreutils
|
||||
lsarguments='-Fh --color=auto --group-directories-first'
|
||||
alias l="ls -l --file-type $lsarguments"
|
||||
alias la="ls -A --file-type $lsarguments"
|
||||
alias ls="ls $lsarguments"
|
||||
alias ll="ls -Al --file-type $lsarguments"
|
||||
unset lsarguments
|
||||
else
|
||||
# Else only assume POSIX/BSD
|
||||
lsarguments='-F'
|
||||
alias l="ls -l $lsarguments"
|
||||
alias la="ls -A $lsarguments"
|
||||
alias ls="ls $lsarguments"
|
||||
alias ll="ls -Ahl $lsarguments"
|
||||
fi
|
||||
|
||||
# Oneoffs and weird oneliners
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
# Shows realtime and low-nice processes
|
||||
alias rtps="LIBPROC_HIDE_KERNEL=1 ps -eo pid,class,rtprio,ni,stat,comm --sort=+pcpu | awk '\$4!=0.0 {print}' | awk 'NR>1'"
|
||||
fi
|
||||
|
||||
# Set up a default PS1 for bash
|
||||
_ps1bash() {
|
||||
exitcode="$?"
|
||||
r="\[\e[0m\]"
|
||||
bg_red="\[\e[41m\]"
|
||||
bg_yellow="\[\e[43m\]"
|
||||
bg_blue="\[\e[44m\]"
|
||||
fg_black="\[\e[30m\]"
|
||||
fg_red="\[\e[31m\]"
|
||||
fg_green="\[\e[32m\]"
|
||||
fg_yellow="\[\e[33m\]"
|
||||
fg_blue="\[\e[34m\]"
|
||||
fg_magenta="\[\e[35m\]"
|
||||
fg_grey="\[\e[37m\]"
|
||||
fg_bold="\[\e[1m\]"
|
||||
|
||||
# Add hostname prefix in SSH sessions
|
||||
unset _prefix
|
||||
# Get the system hostname
|
||||
if [ -f /etc/hostname ]; then
|
||||
_hostname="$(</etc/hostname)"
|
||||
else
|
||||
_hostname="$(hostname)"
|
||||
fi
|
||||
# Alert if in an SSH session
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
||||
_prefix="${fg_bold}${fg_red}${_hostname}${r}${fg_red}:${r}${_prefix}"
|
||||
elif [ -n "$TOOLBOX_PATH" ]; then
|
||||
_prefix="${fg_bold}${fg_magenta}$(. /run/.containerenv && echo "$name")${r}${fg_magenta}:${r}${_prefix}"
|
||||
elif [ "$USER" != "salt" ]; then
|
||||
_prefix="${fg_bold}${fg_yellow}$USER${r}${fg_yellow}:${r}${_prefix}"
|
||||
fi
|
||||
# If we're in a PROJECT, post that envvar
|
||||
if [ -n "$PROJECT" ]; then
|
||||
_prefix="${_prefix}${fg_bold}${fg_blue}$PROJECT${r}${fg_blue}:${r}"
|
||||
fi
|
||||
# Color PWD
|
||||
_prefix="${_prefix}${fg_blue}"
|
||||
# Show the tilde instead of $HOME
|
||||
_cpwd='\w'
|
||||
# Show read-only status in certain directories
|
||||
if [ "$UID" = 0 ]; then
|
||||
# Root gets the usual "#" prompt
|
||||
_prompt="${fg_red}#${r}"
|
||||
elif ! [ -d "$PWD" ]; then
|
||||
# Something very bad has happened to our PWD, probably got deleted
|
||||
_prompt="${bg_red}${fg_black}!${r}"
|
||||
elif ! [ -r "$PWD" ]; then
|
||||
# Guess we lost privileges
|
||||
_prompt="${fg_red}"'$'"${r}"
|
||||
elif ! [ -x "$PWD" ]; then
|
||||
# Missing execution perms
|
||||
if [ -w "$PWD" ]; then
|
||||
# Fixable
|
||||
_prompt="${bg_blue}${fg_black}"'$'"${r}"
|
||||
else
|
||||
# Unfixable
|
||||
_prompt="${bg_yellow}${fg_black}"'$'"${r}"
|
||||
fi
|
||||
elif ! [ -w "$PWD" ]; then
|
||||
# Can't write is really common but also good to know
|
||||
_prompt="${fg_magenta}"'~'"${r}"
|
||||
else
|
||||
# Otherwise we should be fine
|
||||
_prompt="${fg_green}"'$'"${r}"
|
||||
fi
|
||||
# Alert us if the last command failed
|
||||
unset _fail
|
||||
if ! [ "$exitcode" = "0" ]; then
|
||||
_fail="${fg_bold}${fg_red}?"
|
||||
fi
|
||||
# shellcheck disable=2059
|
||||
PS1="[${_prefix}${_cpwd}${r}]${_fail}${r}${_prompt}${r} "
|
||||
}
|
||||
|
||||
# And export our PS1
|
||||
case "$_baseshell" in
|
||||
zsh)
|
||||
# Don't do this on ZSH
|
||||
# I have a custom theme for that
|
||||
;;
|
||||
*bash)
|
||||
export PS1=""
|
||||
export PROMPT_COMMAND=_ps1bash
|
||||
;;
|
||||
*)
|
||||
export PS1='[\e[31m\w\e[0m]\e[32m\$\e[0m '
|
||||
;;
|
||||
esac
|
||||
|
||||
# Clean up
|
||||
unset -v _baseshell
|
||||
unset -f has
|
||||
|
||||
# Source in a site-specific profile
|
||||
localprofile="$HOME/.local/profile"
|
||||
if [ -f "$localprofile" ]; then
|
||||
. "$localprofile"
|
||||
fi
|
||||
|
1
base/.vim/bundle/FastFold
Submodule
1
base/.vim/bundle/FastFold
Submodule
Submodule base/.vim/bundle/FastFold added at c1ddfa1a0e
1
base/.vim/bundle/ale
Submodule
1
base/.vim/bundle/ale
Submodule
Submodule base/.vim/bundle/ale added at 6c337ad19c
1
base/.vim/bundle/gruvbox
Submodule
1
base/.vim/bundle/gruvbox
Submodule
Submodule base/.vim/bundle/gruvbox added at f1ecde848f
1
base/.vim/bundle/incsearch.vim
Submodule
1
base/.vim/bundle/incsearch.vim
Submodule
Submodule base/.vim/bundle/incsearch.vim added at c83de6d1ac
1
base/.vim/bundle/lightline-gruvbox.vim
Submodule
1
base/.vim/bundle/lightline-gruvbox.vim
Submodule
Submodule base/.vim/bundle/lightline-gruvbox.vim added at d233416d56
1
base/.vim/bundle/lightline.vim
Submodule
1
base/.vim/bundle/lightline.vim
Submodule
Submodule base/.vim/bundle/lightline.vim added at e358557e1a
1
base/.vim/bundle/vim-closetag
Submodule
1
base/.vim/bundle/vim-closetag
Submodule
Submodule base/.vim/bundle/vim-closetag added at d0a562f8bd
1
base/.vim/bundle/vim-css-color
Submodule
1
base/.vim/bundle/vim-css-color
Submodule
Submodule base/.vim/bundle/vim-css-color added at 14fd934cdd
1
base/.vim/bundle/vim-groovy
Submodule
1
base/.vim/bundle/vim-groovy
Submodule
Submodule base/.vim/bundle/vim-groovy added at b78bbbbc2e
1
base/.vim/bundle/vim-javascript
Submodule
1
base/.vim/bundle/vim-javascript
Submodule
Submodule base/.vim/bundle/vim-javascript added at c470ce1399
1
base/.vim/bundle/vim-terraform
Submodule
1
base/.vim/bundle/vim-terraform
Submodule
Submodule base/.vim/bundle/vim-terraform added at 8912ca1be3
1
base/.vim/pathogen
Submodule
1
base/.vim/pathogen
Submodule
Submodule base/.vim/pathogen added at ac4dd9494f
@@ -13,7 +13,6 @@ endif
|
||||
set autoread " Automatically read when a file is changed outside of Vim
|
||||
set clipboard=unnamedplus " Use XA_PRIMARY clipboard by default
|
||||
set encoding=utf-8
|
||||
set foldmethod=syntax
|
||||
set hidden " Allow buffer switching without saving
|
||||
set incsearch " Search while you type
|
||||
set laststatus=2 " Always show statusbar
|
||||
@@ -21,16 +20,14 @@ set list
|
||||
set listchars=tab:>·,trail:·
|
||||
set modeline
|
||||
set modelines=5
|
||||
set nofoldenable " Fuck autofolding
|
||||
set number relativenumber " Relative line numbering
|
||||
set number
|
||||
set t_Co=256
|
||||
set viminfo='20,<1000,s1000 " Increase buffer size
|
||||
" Folding
|
||||
set foldmethod=syntax
|
||||
"nnoremap <space> za
|
||||
set nofoldenable " Fuck autofolding
|
||||
|
||||
" Templates
|
||||
let g:email = 'rehashedsalt@cock.li'
|
||||
let g:user = 'Vintage Salt'
|
||||
let g:license = 'MIT'
|
||||
let g:templates_directory = [ '~/.vim/templates' ]
|
||||
" Lightline
|
||||
set noshowmode
|
||||
let g:lightline = {
|
||||
@@ -51,7 +48,10 @@ let g:lightline = {
|
||||
\ },
|
||||
\}
|
||||
let g:lightline.colorscheme = 'gruvbox'
|
||||
hi Normal guibg=NONE ctermbg=NONE
|
||||
|
||||
" Jenkinsfile
|
||||
au BufNewFile,BufRead Jenkinsfile setf groovy
|
||||
" Json
|
||||
au BufNewFile,BufRead *.json
|
||||
\ set tabstop=2 |
|
||||
@@ -78,4 +78,7 @@ au BufNewFile,BufRead *.html,*.php
|
||||
" Treat PHP like HTML
|
||||
au BufNewFile,BufRead *.php
|
||||
\ set filetype=html
|
||||
|
||||
au FileType yaml
|
||||
\ set tabstop=2 |
|
||||
\ set softtabstop=2 |
|
||||
\ set shiftwidth=2
|
1
bin/.bin
1
bin/.bin
Submodule bin/.bin deleted from 8bec6ce196
253
bootleg-stow
Executable file
253
bootleg-stow
Executable file
@@ -0,0 +1,253 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# bootleg-stow
|
||||
# Copyright (C) 2021 Vintage Salt <rehashedsalt@cock.li>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
set -e
|
||||
|
||||
# Read-only set-once variables
|
||||
declare -r _name="$(basename -- "$0")"
|
||||
declare -i _opthelp
|
||||
declare -i _optverbose
|
||||
# Modes
|
||||
declare -i _optstow=1
|
||||
declare -i _optunstow
|
||||
# Working variables
|
||||
declare -a _args
|
||||
declare _return
|
||||
declare _files
|
||||
declare _directories
|
||||
|
||||
# Helper functions
|
||||
log() {
|
||||
# Print a line to the terminal if _optverbose is greater than $2
|
||||
# $2 defaults to 0
|
||||
# loglevel 0: Daily-use messages
|
||||
# loglevel 1: Detailed but not quite debugging
|
||||
# loglevel 2: Definitely debugging
|
||||
[ -z "$1" ] && return 1
|
||||
if (( _optverbose >= ${2:-0} )); then
|
||||
printf "%s\\n" "$1"
|
||||
fi
|
||||
}
|
||||
warn() {
|
||||
# Print a yellow line to the terminal, respecting _optverbose
|
||||
[ -z "$1" ] && return 1
|
||||
if (( _optverbose >= ${2:-0} )); then
|
||||
if [ -t 1 ]; then
|
||||
printf "\\e[33m%s\\e[0m\\n" "$1"
|
||||
else
|
||||
printf "WARN: %s\\n" "$1"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
error() {
|
||||
# Print a red line to the terminal, exit if $2 is specified
|
||||
[ -z "$1" ] && return 1
|
||||
if [ -t 2 ]; then
|
||||
printf "\\e[31m%s\\e[0m\\n" "$1" 1>&2
|
||||
else
|
||||
printf "ERROR: %s\\n" "$1" 1>&2
|
||||
fi
|
||||
[ -z "$2" ] && return
|
||||
exit "${2:-1}"
|
||||
}
|
||||
has() {
|
||||
# Parse out all arguments and try to find them in path
|
||||
# If an argument cannot be found, set _return and fail
|
||||
for prog in "$@"; do
|
||||
if ! command -v "$prog" > /dev/null 2>&1; then
|
||||
_return="$prog"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
checkconflict() {
|
||||
# Take a directory as argument 1 and stow its contents in ..
|
||||
[ -z "$1" ] && return 1
|
||||
if ! [ -d "$1" ]; then
|
||||
error "Could not find directory: $1" 2
|
||||
fi
|
||||
if ! [ -r "$1" ]; then
|
||||
error "Could not read directory: $1" 2
|
||||
fi
|
||||
# Get our list of files
|
||||
local files="$(find "$1" ! -name "*.swp" -type f -o -type l)"
|
||||
local directories="$(find "$1" -type d)"
|
||||
local -a conflict
|
||||
# Iterate over them
|
||||
for file in $files; do
|
||||
# Get the basename of the file
|
||||
filename="${file#"$1"/}"
|
||||
if [ -f ../"$filename" ]; then
|
||||
if [ -h ../"$filename" ]; then
|
||||
continue
|
||||
else
|
||||
conflict+=("$filename")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [ -n "${conflict[*]}" ]; then
|
||||
warn "The following non-symlinks would be touched by this operation:"
|
||||
for file in "${conflict[@]}"; do
|
||||
echo "$file"
|
||||
done
|
||||
error "Please resolve these conflicts manually." 3
|
||||
fi
|
||||
_files="$files"
|
||||
_directories="$directories"
|
||||
}
|
||||
stow() {
|
||||
# Stow all of _files and _directories in $1 as a package name
|
||||
# Note that you should checkconflict first
|
||||
[ -z "$1" ] && return 1
|
||||
stowdir="$(basename -- "$PWD")"
|
||||
log "Stowing package: $stowdir" 1
|
||||
pushd .. > /dev/null 2>&1
|
||||
for dir in $_directories; do
|
||||
dirname="${dir#"$1"/}"
|
||||
if [ "$dir" == "$1" ]; then
|
||||
log "Skipping package directory: $dir" 2
|
||||
continue
|
||||
fi
|
||||
if ! [ -d "$dirname" ]; then
|
||||
log "Creating directory: $dirname" 2
|
||||
mkdir -p "$dirname"
|
||||
fi
|
||||
done
|
||||
for file in $_files; do
|
||||
filename="${file#"$1"/}"
|
||||
if has realpath dirname; then
|
||||
path="$(realpath --relative-to="$(dirname "$filename")" "$PWD/$stowdir/$1/$filename")"
|
||||
else
|
||||
path="$PWD/$stowdir/$1/$filename"
|
||||
fi
|
||||
if [ -h "$filename" ]; then
|
||||
rm "$filename"
|
||||
fi
|
||||
if [ -h "$PWD/$stowdir/$1/$filename" ]; then
|
||||
log "Copying symlink: $filename" 2
|
||||
cp -d "$PWD/$stowdir/$1/$filename" "$filename"
|
||||
else
|
||||
log "Linking file: $filename to $path" 2
|
||||
ln -s "$path" "$filename"
|
||||
fi
|
||||
done
|
||||
log "Done stowing package: $1" 1
|
||||
popd > /dev/null 2>&1
|
||||
}
|
||||
unstow() {
|
||||
# Unstow all of _files and _directories
|
||||
# Takes a packagename as $1
|
||||
[ -z "$1" ] && return 1
|
||||
pushd .. > /dev/null 2>&1
|
||||
for file in $_files; do
|
||||
filename="${file#"$1"/}"
|
||||
if [ -h "$filename" ]; then
|
||||
rm "$filename"
|
||||
elif ! [ -e "$filename" ]; then
|
||||
warn "File does not exist, skipping: $filename" 1
|
||||
else
|
||||
warn "File is not a symlink, skipping: $filename"
|
||||
fi
|
||||
done
|
||||
_directories="$(echo "$_directories" | tac)"
|
||||
log "Removing empty directories" 2
|
||||
for dir in $_directories; do
|
||||
dirname="${dir#"$1"/}"
|
||||
# We silently ignore errors here so that rmdiring a directory with stuff in
|
||||
# it doesn't break our loop.
|
||||
rmdir -p "$dirname" > /dev/null 2>&1 || continue
|
||||
done
|
||||
popd > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# Core program functions
|
||||
printhelp() {
|
||||
cat << EOF
|
||||
Usage: $_name [OPTION]... PACKAGE...
|
||||
Bootleg stow for the poor sods who can't get it.
|
||||
|
||||
-h Print this help text
|
||||
-R Unstow a directory.
|
||||
-S Stow a directory. Default operation.
|
||||
-v Print more status messages. Stacks
|
||||
|
||||
Copyright (c) 2021 rehashedsalt@cock.li
|
||||
Licensed under the MIT license
|
||||
EOF
|
||||
}
|
||||
|
||||
# Main
|
||||
main() {
|
||||
# Parse out arguments
|
||||
while [ -n "$1" ]; do
|
||||
# Parse out flags
|
||||
while getopts ":hRSv" opt; do
|
||||
case $opt in
|
||||
h)
|
||||
_opthelp=1
|
||||
;;
|
||||
R)
|
||||
_optunstow=1
|
||||
;;
|
||||
S)
|
||||
_optstow=1
|
||||
;;
|
||||
v)
|
||||
_optverbose+=1
|
||||
;;
|
||||
:)
|
||||
error "Option requires argument: -$OPTARG" 2
|
||||
;;
|
||||
*)
|
||||
error "Invalid option: -$OPTARG" 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# Store arguments
|
||||
shift $((OPTIND - 1))
|
||||
if [ -n "$1" ]; then
|
||||
_args+=("$1")
|
||||
shift
|
||||
fi
|
||||
unset OPTIND
|
||||
done
|
||||
# Early hook for help
|
||||
[ -n "$_opthelp" ] && printhelp && exit 0
|
||||
# Validate critical options
|
||||
# TODO: That
|
||||
# Validate core program dependencies
|
||||
log "Validating dependencies" 2
|
||||
if ! has basename find tac; then
|
||||
error "Failed to find program: $_return" 1
|
||||
fi
|
||||
|
||||
# Do the do
|
||||
if [ -n "$_optunstow" ]; then
|
||||
if [ -n "${_args[*]}" ]; then
|
||||
for package in "${_args[@]}"; do
|
||||
checkconflict "$package"
|
||||
unstow "$package"
|
||||
done
|
||||
else
|
||||
error "No package specified" 1
|
||||
fi
|
||||
elif [ -n "$_optstow" ]; then
|
||||
if [ -n "${_args[*]}" ]; then
|
||||
for package in "${_args[@]}"; do
|
||||
checkconflict "$package"
|
||||
stow "$package"
|
||||
done
|
||||
else
|
||||
error "No package specified" 1
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
25
contrib/cool-retro-term-modern.json
Normal file
25
contrib/cool-retro-term-modern.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"backgroundColor": "#282828",
|
||||
"fontColor": "#ebdbb2",
|
||||
"flickering": 0.1047,
|
||||
"horizontalSync": 0.0833,
|
||||
"staticNoise": 0.0956,
|
||||
"chromaColor": 1,
|
||||
"saturationColor": 1,
|
||||
"screenCurvature": 0.2026,
|
||||
"glowingLine": 0.117,
|
||||
"burnIn": 0.0528,
|
||||
"bloom": 0.4962,
|
||||
"rasterization": 0,
|
||||
"jitter": 0.1997,
|
||||
"rbgShift": 0,
|
||||
"brightness": 0.2981,
|
||||
"contrast": 1,
|
||||
"ambientLight": 0.1047,
|
||||
"windowOpacity": 0.897,
|
||||
"fontName": "TERMINUS_SCALED",
|
||||
"fontWidth": 1,
|
||||
"margin": 0.2954,
|
||||
"name": "Modern",
|
||||
"version": 2
|
||||
}
|
55
desktop-common/.config/mpd/mpd.conf
Normal file
55
desktop-common/.config/mpd/mpd.conf
Normal file
@@ -0,0 +1,55 @@
|
||||
#
|
||||
# Salt's MPD configuration
|
||||
# gitlab.com/rehashedsalt/home
|
||||
#
|
||||
|
||||
# DIRECTORIES
|
||||
#music_directory "~/Music"
|
||||
playlist_directory "~/Music/Playlists"
|
||||
db_file "~/.local/share/mpd/database"
|
||||
log_file "~/.local/share/mpd/log"
|
||||
# Disabled by default
|
||||
pid_file "~/.local/share/mpd/pid"
|
||||
state_file "~/.local/share/mpd/state"
|
||||
sticker_file "~/.local/share/mpd/sticker.sql"
|
||||
|
||||
# INPUT CONFIG
|
||||
# Why the hell are these even still here?
|
||||
input {
|
||||
plugin "tidal"
|
||||
enabled "no"
|
||||
}
|
||||
input {
|
||||
plugin "qobuz"
|
||||
enabled "no"
|
||||
}
|
||||
|
||||
# DECODER CONFIG
|
||||
decoder {
|
||||
plugin "opus"
|
||||
enabled "yes"
|
||||
}
|
||||
|
||||
# OUTPUT CONFIG
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "Local Pulse"
|
||||
## server "remote_server" # optional
|
||||
## sink "remote_server_sink" # optional
|
||||
## media_role "media_role" #optional
|
||||
}
|
||||
|
||||
# GENERAL CONFIG
|
||||
log_level "default"
|
||||
restore_paused "yes"
|
||||
save_absolute_paths_in_playlists "yes"
|
||||
|
||||
# DATABASE CONFIG
|
||||
auto_update "yes"
|
||||
#auto_update_depth "3"
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#follow_outside_symlinks "yes"
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#follow_inside_symlinks "yes"
|
1
desktop-common/.config/mpv/mpv.conf
Normal file
1
desktop-common/.config/mpv/mpv.conf
Normal file
@@ -0,0 +1 @@
|
||||
volume=100
|
13
desktop-common/.config/ptgdp.conf
Normal file
13
desktop-common/.config/ptgdp.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# ptgdp.conf
|
||||
# Config file for Play the Goddamned Playlist
|
||||
#
|
||||
|
||||
# The media player backend to use
|
||||
# Supported: mpd, audacious
|
||||
# Default: mpd
|
||||
backend=mpd
|
||||
|
||||
# Arguments to pass to youtube-dl during downloading
|
||||
# Default: --geo-bypass
|
||||
ytdl_args=--geo-bypass
|
10
desktop-common/.config/redshift.conf
Normal file
10
desktop-common/.config/redshift.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
[redshift]
|
||||
temp-day=5300
|
||||
temp-night=3500
|
||||
gamma=1
|
||||
fade=0
|
||||
location-provider=manual
|
||||
|
||||
[manual]
|
||||
lat=38.6
|
||||
lon=-90.2
|
24
desktop-common/.config/syncthing-gtk/config.json
Normal file
24
desktop-common/.config/syncthing-gtk/config.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"animate_icon": true,
|
||||
"autokill_daemon": 0,
|
||||
"autostart_daemon": 1,
|
||||
"daemon_priority": 0,
|
||||
"file_browser": "explore",
|
||||
"folder_as_path": true,
|
||||
"force_dark_theme": false,
|
||||
"icon_theme": "syncthing",
|
||||
"icons_in_menu": true,
|
||||
"infobox_style": "font_weight=\"bold\" font_size=\"large\"",
|
||||
"language": "None",
|
||||
"last_updatecheck": "1969-12-31T18:00:01",
|
||||
"max_cpus": 0,
|
||||
"minimize_on_start": true,
|
||||
"notification_for_error": true,
|
||||
"notification_for_folder": true,
|
||||
"notification_for_update": false,
|
||||
"st_autoupdate": false,
|
||||
"syncthing_arguments": "--no-browser",
|
||||
"syncthing_binary": "/usr/bin/syncthing",
|
||||
"use_old_header": true,
|
||||
"window_position": null
|
||||
}
|
15
desktop-common/.config/user-dirs.dirs
Normal file
15
desktop-common/.config/user-dirs.dirs
Normal file
@@ -0,0 +1,15 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||
XDG_MUSIC_DIR="$HOME/Music"
|
||||
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||
XDG_VIDEOS_DIR="$HOME/Videos"
|
1
desktop-common/.config/user-dirs.locale
Normal file
1
desktop-common/.config/user-dirs.locale
Normal file
@@ -0,0 +1 @@
|
||||
en_US
|
47
desktop-common/.config/zim/style.conf
Normal file
47
desktop-common/.config/zim/style.conf
Normal file
@@ -0,0 +1,47 @@
|
||||
# vim:ft=dosini
|
||||
# https://zim-wiki.org/manual/Help/Config_Files.html
|
||||
[TextView]
|
||||
font = Roboto 12
|
||||
indent = 30
|
||||
linespacing = 8
|
||||
|
||||
# Basic text formatting
|
||||
[Tag emphasis]
|
||||
style = italic
|
||||
[Tag link]
|
||||
foreground = #83a598
|
||||
[Tag mark]
|
||||
background = yellow
|
||||
[Tag strong]
|
||||
weight = PANGO_WEIGHT_BOLD
|
||||
|
||||
# Advanced text formatting
|
||||
[Tag code]
|
||||
family = monospace
|
||||
[Tag pre]
|
||||
# This style is used for multi-line verbatim blocks
|
||||
family = monospace
|
||||
wrap-mode = none
|
||||
indent = 20
|
||||
[Tag strike]
|
||||
foreground = #7f8c8d
|
||||
strikethrough = true
|
||||
[Tag tag]
|
||||
foreground = #ce5c00
|
||||
|
||||
# Headings
|
||||
[Tag h1]
|
||||
scale = 1.75
|
||||
weight = PANGO_WEIGHT_BOLD
|
||||
[Tag h2]
|
||||
scale = 1.52
|
||||
weight = PANGO_WEIGHT_BOLD
|
||||
[Tag h3]
|
||||
scale = 1.32
|
||||
style = italic
|
||||
weight = PANGO_WEIGHT_BOLD
|
||||
[Tag h4]
|
||||
scale = 1.15
|
||||
weight = PANGO_WEIGHT_BOLD
|
||||
[Tag h5]
|
||||
weight = PANGO_WEIGHT_BOLD
|
9
desktop-common/.joy2keyrc
Normal file
9
desktop-common/.joy2keyrc
Normal file
@@ -0,0 +1,9 @@
|
||||
COMMON
|
||||
-thresh -16383 16383 -16383 16383
|
||||
|
||||
# Momodora with my iBuffalo SNES pad
|
||||
# Which is bomb, btw. Would recommend
|
||||
START snes
|
||||
-X
|
||||
-buttons a b x y l r s t
|
||||
-axis Left Right Up Down
|
4612
desktop-common/.local/share/badwitch/lib.json
Normal file
4612
desktop-common/.local/share/badwitch/lib.json
Normal file
File diff suppressed because it is too large
Load Diff
105
desktop-common/.local/share/color-schemes/GruvboxColors.colors
Normal file
105
desktop-common/.local/share/color-schemes/GruvboxColors.colors
Normal file
@@ -0,0 +1,105 @@
|
||||
[ColorEffects:Disabled]
|
||||
Color=56,56,56
|
||||
ColorAmount=0
|
||||
ColorEffect=0
|
||||
ContrastAmount=0.65000000000000002
|
||||
ContrastEffect=1
|
||||
IntensityAmount=0.10000000000000001
|
||||
IntensityEffect=2
|
||||
|
||||
[ColorEffects:Inactive]
|
||||
ChangeSelectionColor=true
|
||||
Color=112,111,110
|
||||
ColorAmount=0.025000000000000001
|
||||
ColorEffect=2
|
||||
ContrastAmount=0.10000000000000001
|
||||
ContrastEffect=2
|
||||
Enable=true
|
||||
IntensityAmount=0
|
||||
IntensityEffect=0
|
||||
|
||||
[Colors:Button]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=40,40,40
|
||||
DecorationFocus=131,165,152
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=142,192,124
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=184,187,38
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[Colors:Selection]
|
||||
BackgroundAlternate=142,192,124
|
||||
BackgroundNormal=131,165,152
|
||||
DecorationFocus=131,165,152
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=252,252,252
|
||||
ForegroundInactive=235,219,178
|
||||
ForegroundLink=253,188,75
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=189,195,199
|
||||
|
||||
[Colors:Tooltip]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=40,40,40
|
||||
DecorationFocus=131,165,152
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=184,187,38
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=142,192,124
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[Colors:View]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=40,40,40
|
||||
DecorationFocus=131,165,152
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=184,187,38
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=142,192,124
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[Colors:Window]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=40,40,40
|
||||
DecorationFocus=131,165,152
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=184,187,38
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=142,192,124
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[General]
|
||||
ColorScheme=GruvboxColors
|
||||
Name=GruvboxColors
|
||||
shadeSortColumn=true
|
||||
|
||||
[KDE]
|
||||
contrast=4
|
||||
|
||||
[WM]
|
||||
activeBackground=39,39,39
|
||||
activeBlend=235,219,178
|
||||
activeForeground=235,219,178
|
||||
inactiveBackground=40,40,40
|
||||
inactiveBlend=60,56,54
|
||||
inactiveForeground=204,190,155
|
119
desktop-common/.local/share/color-schemes/GruvboxLight.colors
Normal file
119
desktop-common/.local/share/color-schemes/GruvboxLight.colors
Normal file
@@ -0,0 +1,119 @@
|
||||
[ColorEffects:Disabled]
|
||||
Color=56,56,56
|
||||
ColorAmount=0
|
||||
ColorEffect=0
|
||||
ContrastAmount=0.65000000000000002
|
||||
ContrastEffect=1
|
||||
IntensityAmount=0.10000000000000001
|
||||
IntensityEffect=2
|
||||
|
||||
[ColorEffects:Inactive]
|
||||
ChangeSelectionColor=true
|
||||
Color=112,111,110
|
||||
ColorAmount=0.025000000000000001
|
||||
ColorEffect=2
|
||||
ContrastAmount=0.10000000000000001
|
||||
ContrastEffect=2
|
||||
Enable=true
|
||||
IntensityAmount=0
|
||||
IntensityEffect=0
|
||||
|
||||
[Colors:Button]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=251,241,199
|
||||
DecorationFocus=104,157,106
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=142,192,124
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=184,187,38
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=60,56,54
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[Colors:Complementary]
|
||||
BackgroundAlternate=189,174,147
|
||||
BackgroundNormal=213,196,161
|
||||
DecorationFocus=204,36,29
|
||||
DecorationHover=204,36,29
|
||||
ForegroundActive=131,165,152
|
||||
ForegroundInactive=235,219,178
|
||||
ForegroundLink=69,133,136
|
||||
ForegroundNegative=251,73,52
|
||||
ForegroundNeutral=250,189,47
|
||||
ForegroundNormal=38,38,38
|
||||
ForegroundPositive=204,36,29
|
||||
ForegroundVisited=211,134,155
|
||||
|
||||
[Colors:Selection]
|
||||
BackgroundAlternate=142,192,124
|
||||
BackgroundNormal=104,157,106
|
||||
DecorationFocus=104,157,106
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=252,252,252
|
||||
ForegroundInactive=235,219,178
|
||||
ForegroundLink=253,188,75
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=189,195,199
|
||||
|
||||
[Colors:Tooltip]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=40,40,40
|
||||
DecorationFocus=104,157,106
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=184,187,38
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=142,192,124
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=235,219,178
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[Colors:View]
|
||||
BackgroundAlternate=242,229,188
|
||||
BackgroundNormal=251,241,199
|
||||
DecorationFocus=104,157,106
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=184,187,38
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=142,192,124
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=60,56,54
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[Colors:Window]
|
||||
BackgroundAlternate=60,56,54
|
||||
BackgroundNormal=251,241,199
|
||||
DecorationFocus=104,157,106
|
||||
DecorationHover=131,165,152
|
||||
ForegroundActive=184,187,38
|
||||
ForegroundInactive=55,115,117
|
||||
ForegroundLink=142,192,124
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=60,56,54
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=127,140,141
|
||||
|
||||
[General]
|
||||
ColorScheme=GruvboxColors
|
||||
Name=GruvboxLight
|
||||
shadeSortColumn=true
|
||||
|
||||
[KDE]
|
||||
contrast=4
|
||||
|
||||
[WM]
|
||||
activeBackground=39,39,39
|
||||
activeBlend=235,219,178
|
||||
activeForeground=235,219,178
|
||||
inactiveBackground=40,40,40
|
||||
inactiveBlend=60,56,54
|
||||
inactiveForeground=204,190,155
|
95
desktop-common/.local/share/konsole/Gruvbox.colorscheme
Normal file
95
desktop-common/.local/share/konsole/Gruvbox.colorscheme
Normal file
@@ -0,0 +1,95 @@
|
||||
[Background]
|
||||
Color=40,40,40
|
||||
|
||||
[BackgroundFaint]
|
||||
Color=40,40,40
|
||||
|
||||
[BackgroundIntense]
|
||||
Color=40,40,40
|
||||
|
||||
[Color0]
|
||||
Color=40,40,40
|
||||
|
||||
[Color0Faint]
|
||||
Color=40,40,40
|
||||
|
||||
[Color0Intense]
|
||||
Color=146,131,116
|
||||
|
||||
[Color1]
|
||||
Color=204,36,29
|
||||
|
||||
[Color1Faint]
|
||||
Color=204,36,29
|
||||
|
||||
[Color1Intense]
|
||||
Color=251,73,52
|
||||
|
||||
[Color2]
|
||||
Color=152,151,26
|
||||
|
||||
[Color2Faint]
|
||||
Color=152,151,26
|
||||
|
||||
[Color2Intense]
|
||||
Color=184,187,38
|
||||
|
||||
[Color3]
|
||||
Color=215,153,33
|
||||
|
||||
[Color3Faint]
|
||||
Color=215,153,33
|
||||
|
||||
[Color3Intense]
|
||||
Color=250,189,47
|
||||
|
||||
[Color4]
|
||||
Color=69,133,136
|
||||
|
||||
[Color4Faint]
|
||||
Color=69,133,136
|
||||
|
||||
[Color4Intense]
|
||||
Color=131,165,152
|
||||
|
||||
[Color5]
|
||||
Color=177,98,134
|
||||
|
||||
[Color5Faint]
|
||||
Color=177,98,134
|
||||
|
||||
[Color5Intense]
|
||||
Color=211,134,155
|
||||
|
||||
[Color6]
|
||||
Color=104,157,106
|
||||
|
||||
[Color6Faint]
|
||||
Color=104,157,106
|
||||
|
||||
[Color6Intense]
|
||||
Color=142,192,124
|
||||
|
||||
[Color7]
|
||||
Color=168,153,132
|
||||
|
||||
[Color7Faint]
|
||||
Color=168,153,132
|
||||
|
||||
[Color7Intense]
|
||||
Color=235,219,178
|
||||
|
||||
[Foreground]
|
||||
Color=235,219,178
|
||||
|
||||
[ForegroundFaint]
|
||||
Color=235,219,178
|
||||
|
||||
[ForegroundIntense]
|
||||
Color=235,219,178
|
||||
|
||||
[General]
|
||||
Blur=false
|
||||
Description=Gruvbox
|
||||
Opacity=1
|
||||
Wallpaper=
|
12
desktop-common/.local/share/konsole/Main.profile
Normal file
12
desktop-common/.local/share/konsole/Main.profile
Normal file
@@ -0,0 +1,12 @@
|
||||
[Appearance]
|
||||
ColorScheme=Breeze
|
||||
Font=Inconsolata,11,-1,5,57,0,0,0,0,0,Medium
|
||||
|
||||
[General]
|
||||
Name=Main
|
||||
Parent=FALLBACK/
|
||||
TerminalColumns=108
|
||||
TerminalRows=32
|
||||
|
||||
[Scrolling]
|
||||
ScrollBarPosition=2
|
95
desktop-common/.local/share/konsole/Nordic.colorscheme
Normal file
95
desktop-common/.local/share/konsole/Nordic.colorscheme
Normal file
@@ -0,0 +1,95 @@
|
||||
[Background]
|
||||
Color=46,52,64
|
||||
|
||||
[BackgroundFaint]
|
||||
Color=46,52,64
|
||||
|
||||
[BackgroundIntense]
|
||||
Color=46,52,64
|
||||
|
||||
[Color0]
|
||||
Color=59,66,82
|
||||
|
||||
[Color0Faint]
|
||||
Color=59,66,82
|
||||
|
||||
[Color0Intense]
|
||||
Color=59,66,82
|
||||
|
||||
[Color1]
|
||||
Color=191,97,106
|
||||
|
||||
[Color1Faint]
|
||||
Color=191,97,106
|
||||
|
||||
[Color1Intense]
|
||||
Color=191,97,106
|
||||
|
||||
[Color2]
|
||||
Color=163,190,140
|
||||
|
||||
[Color2Faint]
|
||||
Color=163,190,140
|
||||
|
||||
[Color2Intense]
|
||||
Color=163,190,140
|
||||
|
||||
[Color3]
|
||||
Color=235,203,139
|
||||
|
||||
[Color3Faint]
|
||||
Color=235,203,139
|
||||
|
||||
[Color3Intense]
|
||||
Color=235,203,139
|
||||
|
||||
[Color4]
|
||||
Color=129,161,193
|
||||
|
||||
[Color4Faint]
|
||||
Color=129,161,193
|
||||
|
||||
[Color4Intense]
|
||||
Color=129,161,193
|
||||
|
||||
[Color5]
|
||||
Color=180,142,173
|
||||
|
||||
[Color5Faint]
|
||||
Color=180,142,173
|
||||
|
||||
[Color5Intense]
|
||||
Color=180,142,173
|
||||
|
||||
[Color6]
|
||||
Color=136,192,208
|
||||
|
||||
[Color6Faint]
|
||||
Color=136,192,208
|
||||
|
||||
[Color6Intense]
|
||||
Color=136,192,208
|
||||
|
||||
[Color7]
|
||||
Color=216,222,233
|
||||
|
||||
[Color7Faint]
|
||||
Color=216,222,233
|
||||
|
||||
[Color7Intense]
|
||||
Color=216,222,233
|
||||
|
||||
[Foreground]
|
||||
Color=216,222,233
|
||||
|
||||
[ForegroundFaint]
|
||||
Color=216,222,233
|
||||
|
||||
[ForegroundIntense]
|
||||
Color=216,222,233
|
||||
|
||||
[General]
|
||||
Blur=false
|
||||
Description=Nordic
|
||||
Opacity=1
|
||||
Wallpaper=
|
BIN
desktop-common/.minetest/fonts/Minecraftia.ttf
Normal file
BIN
desktop-common/.minetest/fonts/Minecraftia.ttf
Normal file
Binary file not shown.
1
desktop-common/.minetest/games/README.md
Normal file
1
desktop-common/.minetest/games/README.md
Normal file
@@ -0,0 +1 @@
|
||||
Consider MineClone2
|
52
desktop-common/.quakespasm/id1/autoexec.cfg
Normal file
52
desktop-common/.quakespasm/id1/autoexec.cfg
Normal file
@@ -0,0 +1,52 @@
|
||||
// Salt's Quake autoexec.cfg
|
||||
// =========================================
|
||||
|
||||
// Base changes
|
||||
crosshair 0 // Crosshair is for pussies
|
||||
fov 110 // W I D E
|
||||
|
||||
gl_texturemode 3 // Disable texture filtering
|
||||
|
||||
r_lerpmodels 1 // Interpolate animations, except torches and muzzleflashes
|
||||
r_lerpmove 1 // Interpolate entity movement
|
||||
r_oldwater 0 // Disable old water texture warping animations
|
||||
r_particles 2 // Enable square particles
|
||||
r_sky_quality 32 // Probably doesn't do much at all, but might improve skies
|
||||
r_waterquality 32 // Noticeable improvement at 1440p, least for me
|
||||
|
||||
//scr_clock 1 // Enables ingame timer
|
||||
scr_crosshairscale 2 // Makes the crosshair not tiny as hell
|
||||
|
||||
v_gunkick 2 // Interpolates recoil
|
||||
|
||||
// Drop a quick motd
|
||||
// Assumes Quakespasm on Linux
|
||||
echo ""
|
||||
echo " .,o' `o,. "
|
||||
echo " ,o8' `8o. "
|
||||
echo " o8' `8o "
|
||||
echo " o8: ;8o "
|
||||
echo ".88 88. "
|
||||
echo ":88. ,88: "
|
||||
echo "`888 888' "
|
||||
echo " 888o `88888' o888 "
|
||||
echo " `888o,. `888' .,o888' "
|
||||
echo " `8888888888888888888' "
|
||||
echo " `888888888888888' "
|
||||
echo " `:::8;8;::' "
|
||||
echo " 888 "
|
||||
echo " `8' "
|
||||
echo " `8' "
|
||||
echo " | "
|
||||
echo ""
|
||||
echo "Custom configs loaded from:"
|
||||
echo ""
|
||||
echo " ~/.quakespasm/id1/autoexec.cfg"
|
||||
echo ""
|
||||
echo "Site-local changes can be made at:"
|
||||
echo ""
|
||||
echo " ~/.quakespasm/id1/local.cfg"
|
||||
echo ""
|
||||
|
||||
// Execute another config that exists outside of change control, just in case
|
||||
exec local.cfg // For site-local changes
|
116
desktop-gruvbox/.config/bspwm/bspwmrc
Executable file
116
desktop-gruvbox/.config/bspwm/bspwmrc
Executable file
@@ -0,0 +1,116 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# bspwmrc
|
||||
# bspwm configuration file
|
||||
#
|
||||
|
||||
## Start a hotkey daemon
|
||||
pgrep sxhkd -u "$UID" || sxhkd &
|
||||
|
||||
## Monitor allocation
|
||||
# Honestly pretty complex
|
||||
setmon() {
|
||||
desktops_total=10
|
||||
desktops_primary=8
|
||||
desktops_secondary=$(( desktops_total - desktops_primary ))
|
||||
|
||||
monitor_primary="$(xrandr -q | awk '/primary/{print $1}')"
|
||||
monitors_secondary=($(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}'))
|
||||
# Ensure we have enough for every monitor
|
||||
if (( desktops_secondary < ${#monitors_secondary[@]} )); then
|
||||
echo "Adding more desktops to match connected monitors"
|
||||
desktops_secondary=${#monitors_secondary[@]}
|
||||
desktops_total=$(( desktops_secondary + desktops_primary ))
|
||||
fi
|
||||
if (( ${#monitors_secondary[@]} == 0 )); then
|
||||
echo "Only one monitor allocated"
|
||||
layout=$(seq --separator=" " 1 $desktops_total)
|
||||
echo "Setting layout $layout"
|
||||
bspc monitor $monitor_primary -d $layout
|
||||
else
|
||||
echo "${#monitors_secondary[@]} monitors connected"
|
||||
deskpermon=$(( desktops_secondary / ${#monitors_secondary[@]} ))
|
||||
layout=$(seq --separator=" " 1 $desktops_primary)
|
||||
echo "Setting primary layout $layout"
|
||||
bspc monitor $monitor_primary -d $layout
|
||||
|
||||
for m in $(seq 0 $(( ${#monitors_secondary[@]} - 1 ))); do
|
||||
layout=$(seq --separator=" " \
|
||||
$(( 1 + m + desktops_primary )) \
|
||||
${#monitors_secondary[@]} \
|
||||
"$desktops_total" \
|
||||
)
|
||||
echo "Setting layout for ${monitors_secondary[$m]} to $layout"
|
||||
bspc monitor ${monitors_secondary[$m]} -d $layout
|
||||
done
|
||||
fi
|
||||
}
|
||||
setmon
|
||||
|
||||
## Behavior
|
||||
# Tiling behavior
|
||||
bspc config split_ratio 0.50
|
||||
bspc config remove_disabled_monitors false
|
||||
bspc config remove_unplugged_monitors true
|
||||
|
||||
# Pointer behavior
|
||||
bspc config click_to_focus any
|
||||
bspc config focus_follows_pointer true
|
||||
bspc config pointer_follows_monitor true
|
||||
bspc config pointer_modifier mod1
|
||||
bspc config pointer_action1 move #LMB
|
||||
bspc config pointer_action2 resize_corner #RMB
|
||||
|
||||
# ewmh behavior
|
||||
bspc config ignore_ewmh_focus true # Fuck you, Discord
|
||||
|
||||
## Looks
|
||||
# Padding
|
||||
bspc config border_width 6
|
||||
bspc config window_gap 8
|
||||
bspc config single_monocle false
|
||||
bspc config borderless_monocle false
|
||||
bspc config gapless_monocle false
|
||||
# Colors
|
||||
case $THEME in
|
||||
light)
|
||||
bspc config normal_border_color "#f2e5bc" #Unfocused
|
||||
bspc config active_border_color "#8ec07c" #Focused, but current monitor isn't
|
||||
bspc config focused_border_color "#83a598" #Focused completely
|
||||
bspc config presel_feedback_color "#ebdbb2" #???
|
||||
;;
|
||||
*)
|
||||
bspc config normal_border_color "#32302f" #Unfocused
|
||||
bspc config active_border_color "#8ec07c" #Focused, but current monitor isn't
|
||||
bspc config focused_border_color "#83a598" #Focused completely
|
||||
bspc config presel_feedback_color "#ebdbb2" #???
|
||||
;;
|
||||
esac
|
||||
|
||||
## Rules
|
||||
bspc rule -r '*'
|
||||
case $HOSTNAME in
|
||||
dsk-ryzen-0*)
|
||||
# Big boy gets pseudotiled Firefox
|
||||
bspc rule -a Firefox state=pseudo_tiled rectangle=1920x1080+0+0
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
bspc rule -a Steam desktop=7
|
||||
bspc rule -a KeePassXC desktop=8
|
||||
bspc rule -a slack desktop=9
|
||||
bspc rule -a Riot desktop=9
|
||||
bspc rule -a Element desktop=9
|
||||
bspc rule -a discord desktop=9
|
||||
bspc rule -a spotify desktop=10
|
||||
bspc rule -a cantata desktop=10
|
||||
bspc rule -a 'Minecraft 1.7.10' state=fullscreen
|
||||
bspc rule -a 'NieR:Automata' state=fullscreen
|
||||
bspc rule -a modloader64-gui state=floating border=off
|
||||
# Plasma rules
|
||||
bspc rule -a plasmashell state=floating sticky=on border=off
|
||||
bspc rule -a krunner state=floating layer=above sticky=on border=off
|
||||
# Widgets
|
||||
bspc rule -a Conky state=floating layer=below sticky=on
|
||||
bspc rule -a pavucontrol-qt state=floating layer=above sticky=on
|
90
desktop-gruvbox/.config/compton.conf
Normal file
90
desktop-gruvbox/.config/compton.conf
Normal file
@@ -0,0 +1,90 @@
|
||||
## BACKEND
|
||||
|
||||
backend = "glx";
|
||||
glx-no-stencil = true;
|
||||
glx-copy-from-front = false;
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
|
||||
# Recommended if it works.
|
||||
glx-no-rebind-pixmap = true;
|
||||
|
||||
## SHADOWS
|
||||
|
||||
shadow = true;
|
||||
shadow-radius = 30;
|
||||
shadow-offset-x = -25;
|
||||
shadow-offset-y = -25;
|
||||
shadow-opacity = 0.45;
|
||||
# shadow-red = 0.0;
|
||||
# shadow-green = 0.0;
|
||||
# shadow-blue = 0.0;
|
||||
shadow-ignore-shaped = false;
|
||||
|
||||
shadow-exclude = [
|
||||
"name = 'oneko'",
|
||||
"name = 'Notification'",
|
||||
"name = 'xfce4-notifyd'",
|
||||
"name *= 'VLC'",
|
||||
"name *= 'compton'",
|
||||
"name *= 'cpt_frame_window'",
|
||||
"name *= 'Chromium'",
|
||||
"name *= 'Chrome'",
|
||||
"name *= 'Conky'",
|
||||
"name *= 'Polybar tray window'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g ?= 'Xfce4-notifyd'",
|
||||
"class_g ?= 'Xfce4-power-manager'",
|
||||
"class_g ?= 'Wine'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
## FADING
|
||||
|
||||
fading = true;
|
||||
# The time between steps in a fade in milliseconds. (default 10).
|
||||
fade-delta = 5;
|
||||
# Opacity change between steps while fading in. (default 0.028).
|
||||
fade-in-step = 0.08;
|
||||
# Opacity change between steps while fading out. (default 0.03).
|
||||
fade-out-step = 0.08;
|
||||
# Fade windows in/out when opening/closing
|
||||
# no-fading-openclose = true;
|
||||
|
||||
fade-exclude = [ ];
|
||||
|
||||
## OTHER
|
||||
|
||||
# Try to detect WM windows and mark them as active.
|
||||
mark-wmwin-focused = true;
|
||||
# Mark all non-WM but override-redirect windows active (e.g. menus).
|
||||
mark-ovredir-focused = true;
|
||||
use-ewmh-active-win = true;
|
||||
detect-rounded-corners = true;
|
||||
detect-client-opacity = true;
|
||||
refresh-rate = 143.86;
|
||||
vsync = true;
|
||||
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
|
||||
# Reported to have no effect, though.
|
||||
dbe = false;
|
||||
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
|
||||
# Known to cause flickering when redirecting/unredirecting windows.
|
||||
# paint-on-overlay may make the flickering less obvious.
|
||||
unredir-if-possible = false;
|
||||
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
focus-exclude = [ ];
|
||||
|
||||
detect-transient = true;
|
||||
detect-client-leader = true;
|
||||
|
||||
## WINDOW TYPE SETTINGS
|
||||
|
||||
wintypes:
|
||||
{
|
||||
tooltip =
|
||||
{
|
||||
focus = true;
|
||||
};
|
||||
};
|
49
desktop-gruvbox/.config/conky/conky-clock.conf
Normal file
49
desktop-gruvbox/.config/conky/conky-clock.conf
Normal file
@@ -0,0 +1,49 @@
|
||||
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
|
||||
conky.config = {
|
||||
own_window = true,
|
||||
own_window_title = 'Conky',
|
||||
own_window_class = 'Conky',
|
||||
own_window_type = 'desktop',
|
||||
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||
own_window_colour = '232629',
|
||||
|
||||
double_buffer = true,
|
||||
cpu_avg_samples = 2,
|
||||
net_avg_samples = 2,
|
||||
no_buffers = true,
|
||||
update_interval = 1,
|
||||
|
||||
use_xft = true,
|
||||
font = 'IBM Plex Sans:style=Light:size=9',
|
||||
default_color = '#fffcf6',
|
||||
color1 = '232629', -- Background
|
||||
color2 = 'fffcf6', -- Foreground
|
||||
color3 = '4b5162', -- Background-alt
|
||||
|
||||
alignment = 'bottom_right',
|
||||
xinerama_head = 0,
|
||||
minimum_height = 0,
|
||||
minimum_width = 304,
|
||||
border_width = 0,
|
||||
border_outer_margin = 0,
|
||||
border_inner_margin = 16,
|
||||
gap_x = 27,
|
||||
gap_y = 72,
|
||||
|
||||
format_human_readable = true,
|
||||
temperature_unit = "celsius",
|
||||
if_up_strictness = "link",
|
||||
|
||||
default_bar_height = 11,
|
||||
default_bar_width = 130,
|
||||
default_graph_height = 36,
|
||||
draw_borders = true,
|
||||
draw_outline = false,
|
||||
draw_graph_borders = true,
|
||||
draw_shades = false
|
||||
}
|
||||
conky.text = [[
|
||||
${font IBM Plex Sans:style=Light:size=96}$alignr${time %l:%M %p}$font
|
||||
|
||||
${font IBM Plex Sans:style=Light:size=32}$alignr${time %A, %B %d, %Y}$font
|
||||
]]
|
334
desktop-gruvbox/.config/conky/gen.sh
Executable file
334
desktop-gruvbox/.config/conky/gen.sh
Executable file
@@ -0,0 +1,334 @@
|
||||
#! /bin/bash
|
||||
# _
|
||||
# ___ ___ _ __ | | ___ _ __ _ ___ _ __
|
||||
# / __/ _ \| '_ \| |/ / | | |/ _` |/ _ \ '_ \
|
||||
# | (_| (_) | | | | <| |_| | (_| | __/ | | |
|
||||
# \___\___/|_| |_|_|\_\\__, |\__, |\___|_| |_|
|
||||
# |___/ |___/
|
||||
#
|
||||
# conkygen.sh
|
||||
# Create a Conky configuration file dynamically
|
||||
#
|
||||
# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li>
|
||||
# Distributed under the terms of the MIT License
|
||||
#
|
||||
set -e
|
||||
|
||||
# Read-only set-once variables
|
||||
declare -r _name="$(basename -- "$0")"
|
||||
# Options
|
||||
declare _optout="${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky.conf"
|
||||
declare -i _optbar=1
|
||||
declare -i _optgraph=1
|
||||
declare -i _opthelp
|
||||
declare -i _optverbose
|
||||
declare -i _opttopitems=4
|
||||
# Working variables
|
||||
declare -a _args
|
||||
declare _return
|
||||
|
||||
# Helper functions
|
||||
log() {
|
||||
# Print a line to the terminal if _optverbose is greater than $2
|
||||
# $2 defaults to 0
|
||||
# loglevel 0: Daily-use messages
|
||||
# loglevel 1: Detailed but not quite debugging
|
||||
# loglevel 2: Definitely debugging
|
||||
[ -z "$1" ] && return 1
|
||||
if (( _optverbose >= ${2:-0} )); then
|
||||
printf "%s\\n" "$1"
|
||||
fi
|
||||
}
|
||||
warn() {
|
||||
# Print a yellow line to the terminal, respecting _optverbose
|
||||
[ -z "$1" ] && return 1
|
||||
if (( _optverbose >= ${2:-0} )); then
|
||||
if [ -t 1 ]; then
|
||||
printf "\\e[33m%s\\e[0m\\n" "$1"
|
||||
else
|
||||
printf "WARN: %s\\n" "$1"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
error() {
|
||||
# Print a red line to the terminal, exit if $2 is specified
|
||||
[ -z "$1" ] && return 1
|
||||
if [ -t 2 ]; then
|
||||
printf "\\e[31m%s\\e[0m\\n" "$1" 1>&2
|
||||
else
|
||||
printf "ERROR: %s\\n" "$1" 1>&2
|
||||
fi
|
||||
[ -z "$2" ] && return
|
||||
exit "${2:-1}"
|
||||
}
|
||||
has() {
|
||||
# Parse out all arguments and try to find them in path
|
||||
# If an argument cannot be found, set _return and fail
|
||||
for prog in "$@"; do
|
||||
if ! command -v "$prog" > /dev/null 2>&1; then
|
||||
_return="$prog"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
# Core program functions
|
||||
printhelp() {
|
||||
cat << EOF
|
||||
Usage: $_name [OPTION]...
|
||||
Generate a conky.conf configuration file in the current directory
|
||||
|
||||
-o Specify output file. Defaults to
|
||||
~/.config/conky/conky.conf
|
||||
-b Hide bars
|
||||
-g Hide graphs
|
||||
-h Print this help text
|
||||
-t Number of items to print in top lists. Defaults to 4
|
||||
-v Print more status messages. Stacks
|
||||
|
||||
Copyright (c) 2020 rehashedsalt@cock.li
|
||||
Licensed under the MIT license
|
||||
EOF
|
||||
}
|
||||
step_header() {
|
||||
# Clobber output file with header
|
||||
cat << EOF > "$_optout"
|
||||
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
|
||||
-- WARNING:
|
||||
-- This file was generated with conkygen. See gen.sh if you need to edit this!
|
||||
-- Any changes you make here can and probably will be clobbered!
|
||||
EOF
|
||||
}
|
||||
step_config() {
|
||||
# Append config to the output file
|
||||
cat << EOF >> "$_optout"
|
||||
conky.config = {
|
||||
own_window = true,
|
||||
own_window_title = 'Conky',
|
||||
own_window_class = 'Conky',
|
||||
own_window_type = 'desktop',
|
||||
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||
own_window_argb_visual = true,
|
||||
own_window_transparent = true,
|
||||
own_window_colour = '000000',
|
||||
|
||||
double_buffer = true,
|
||||
cpu_avg_samples = 2,
|
||||
net_avg_samples = 2,
|
||||
no_buffers = true,
|
||||
update_interval = 1,
|
||||
|
||||
use_xft = true,
|
||||
font = 'IBM Plex Sans:style=Light:size=9',
|
||||
default_color = '#ebdbb2',
|
||||
color1 = '282828', -- Background
|
||||
color2 = 'ebdbb2', -- Foreground
|
||||
color3 = '32302f', -- Background-alt
|
||||
color4 = 'b8bb26', -- Green (Battery)
|
||||
color6 = '8ec07c', -- Cyan (Network)
|
||||
color7 = 'fabd2f', -- Yellow (Disk)
|
||||
color8 = '83a598', -- Blue (CPU)
|
||||
color9 = 'de869b', -- Magenta (Memory)
|
||||
|
||||
alignment = 'top_left',
|
||||
xinerama_head = 0,
|
||||
minimum_height = 0,
|
||||
minimum_width = 304,
|
||||
border_width = 0,
|
||||
border_outer_margin = 0,
|
||||
border_inner_margin = 16,
|
||||
gap_x = 22,
|
||||
gap_y = 66,
|
||||
|
||||
format_human_readable = true,
|
||||
temperature_unit = "celsius",
|
||||
if_up_strictness = "link",
|
||||
|
||||
default_bar_height = 11,
|
||||
default_bar_width = 130,
|
||||
default_graph_height = 36,
|
||||
draw_borders = true,
|
||||
draw_outline = false,
|
||||
draw_graph_borders = true,
|
||||
draw_shades = false
|
||||
}
|
||||
EOF
|
||||
}
|
||||
step_text() {
|
||||
local -r nproc="$(nproc)"
|
||||
# Generate our actual functional Conky stuff
|
||||
# Header
|
||||
cat <<- 'EOF' >> "$_optout"
|
||||
conky.text = [[
|
||||
${font IBM Plex Sans:style=Light:size=64}$alignr${time %l:%M %p}$font
|
||||
${font IBM Plex Sans:style=Light:size=18}$alignr${time %A, %B %d, %Y}$font
|
||||
${font IBM Plex Sans:style=Light:size=12}${acpitemp}°C$alignr${no_update $nodename_short}$font
|
||||
EOF
|
||||
|
||||
# CPU info
|
||||
cat <<- 'EOF' >> "$_optout"
|
||||
${color3}$hr$color
|
||||
${font IBM Plex Sans:style=Medium:size=9}CPU$font: $freq_g GHz$alignr$cpu%
|
||||
EOF
|
||||
if (( _optgraph > 0 )); then
|
||||
local gpl=1
|
||||
if (( nproc <= 2 )); then
|
||||
gpl=1
|
||||
elif (( nproc <= 4 )); then
|
||||
gpl=2
|
||||
elif (( nproc <= 8 )); then
|
||||
gpl=4
|
||||
else
|
||||
gpl=8
|
||||
fi
|
||||
local width=$(( ( 400 - ( gpl - 1 ) * 3 ) / gpl ))
|
||||
log "Generating $gpl graphs per row of CPU core stats" 1
|
||||
log "Graphs will be $width wide" 2
|
||||
local cpuinfo
|
||||
for i in $(seq 1 "$gpl" "$nproc"); do
|
||||
# Generate lines
|
||||
local line
|
||||
for j in $(seq 0 $(( gpl - 1 ))); do
|
||||
# Generate graphs
|
||||
local cpu=$(( i + j ))
|
||||
log "Generating graph for CPU $cpu" 2
|
||||
if [ -z "$line" ]; then
|
||||
line="\${cpugraph cpu$cpu 36,$width}"
|
||||
else
|
||||
line="$line \${cpugraph cpu$cpu 36,$width}"
|
||||
fi
|
||||
done
|
||||
# Trim whitespace
|
||||
line="\${color8}${line%" "}\$color"
|
||||
log "Appending line: $line" 2
|
||||
cpuinfo="$cpuinfo$line\n"
|
||||
unset line
|
||||
done
|
||||
while [ "$cpuinfo" != "${cpuinfo%\\n}" ]; do
|
||||
cpuinfo="${cpuinfo%\\n}"
|
||||
done
|
||||
echo -e "$cpuinfo" >> "$_optout"
|
||||
fi
|
||||
for i in $(seq $_opttopitems); do
|
||||
echo "\${color8}\${top name $i}\$color\$alignr\${top cpu $i}%" >> "$_optout"
|
||||
done
|
||||
|
||||
# Memory info
|
||||
cat <<- 'EOF' >> "$_optout"
|
||||
${color3}$hr$color
|
||||
${font IBM Plex Sans:style=Medium:size=9}Memory$font: $mem / $memmax used$alignr$memperc%
|
||||
EOF
|
||||
if (( _optgraph > 0 )); then
|
||||
echo -e '${color9}${memgraph}$color' >> "$_optout"
|
||||
fi
|
||||
if (( _optbar > 0 )); then
|
||||
echo -e 'Memory$alignr$memeasyfree ${color9}${membar}$color' >> "$_optout"
|
||||
if [ -n "$(swapon)" ]; then
|
||||
echo "Swap\$alignr\$swapfree \${color9}\${swapbar}\$color" >> "$_optout"
|
||||
fi
|
||||
fi
|
||||
for i in $(seq $_opttopitems); do
|
||||
echo "\${color9}\${top_mem name $i}\$color\$alignr\${top_mem mem $i}%" >> "$_optout"
|
||||
done
|
||||
|
||||
# Disk info
|
||||
cat <<- 'EOF' >> "$_optout"
|
||||
${color3}$hr$color
|
||||
${font IBM Plex Sans:style=Medium:size=9}Disk$font (R/W):$alignr${diskio /dev/sda}
|
||||
EOF
|
||||
if (( _optgraph > 0 )); then
|
||||
echo '${color7}${diskiograph_read /dev/sda 36,200} ${diskiograph_write /dev/sda 36,200}$color' >> "$_optout"
|
||||
fi
|
||||
# Mountpoint detection
|
||||
if (( _optbar > 0 )); then
|
||||
for mountpoint in / /home /var /usr /opt /boot /boot/efi; do
|
||||
if mountpoint $mountpoint > /dev/null 2>&1; then
|
||||
echo "$mountpoint\$alignr\${fs_free $mountpoint} \${color7}\${fs_bar $mountpoint}\$color" >> "$_optout"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
for i in $(seq $_opttopitems); do
|
||||
echo "\${color7}\${top_io name $i}\$color\$alignr\${top_io io_perc $i}%" >> "$_optout"
|
||||
done
|
||||
|
||||
# Networking
|
||||
cat <<-'EOF' >>"$_optout"
|
||||
${color3}$hr$color
|
||||
${font IBM Plex Sans:style=Medium:size=9}Network$font:${alignr}Default $gw_iface${if_up wlp1s0}
|
||||
EOF
|
||||
for interface in $(iw dev | awk '$1=="Interface"{print $2}'); do
|
||||
echo "$interface (U/D): \$alignr\${addr $interface} / \${wireless_essid $interface}" >> "$_optout"
|
||||
if (( _optgraph > 0 )); then
|
||||
echo "\${color6}\${upspeedgraph $interface 36,200} \${downspeedgraph $interface 36,200}\$color" >> "$_optout"
|
||||
fi
|
||||
done
|
||||
echo "]]" >> "$_optout"
|
||||
}
|
||||
genconfig() {
|
||||
log "Generating config: $_optout"
|
||||
step_header
|
||||
step_config
|
||||
step_text
|
||||
}
|
||||
|
||||
# Main
|
||||
main() {
|
||||
# Parse out arguments
|
||||
while [ -n "$1" ]; do
|
||||
# Parse out flags
|
||||
while getopts ":bgho:t:v" opt; do
|
||||
case $opt in
|
||||
b)
|
||||
_optbar=0
|
||||
;;
|
||||
g)
|
||||
_optgraph=0
|
||||
;;
|
||||
o)
|
||||
_optout="$OPTARG"
|
||||
;;
|
||||
h)
|
||||
_opthelp=1
|
||||
;;
|
||||
t)
|
||||
_opttopitems="$OPTARG"
|
||||
;;
|
||||
v)
|
||||
_optverbose+=1
|
||||
;;
|
||||
:)
|
||||
error "Option requires argument: -$OPTARG" 2
|
||||
;;
|
||||
*)
|
||||
error "Invalid option: -$OPTARG" 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# Store arguments
|
||||
shift $((OPTIND - 1))
|
||||
if [ -n "$1" ]; then
|
||||
_args+=("$1")
|
||||
shift
|
||||
fi
|
||||
unset OPTIND
|
||||
done
|
||||
# Early hook for help
|
||||
[ -n "$_opthelp" ] && printhelp && exit 0
|
||||
# Validate critical options
|
||||
if ! (( _opttopitems >= 0 )); then
|
||||
error "Option -t requires non-negative integer as argument" 2
|
||||
fi
|
||||
# Validate core program dependencies
|
||||
log "Validating dependencies" 2
|
||||
if ! has awk basename iw seq; then
|
||||
error "Failed to find program: $_return" 1
|
||||
fi
|
||||
|
||||
# Do the do
|
||||
genconfig
|
||||
exit 0
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
321
desktop-gruvbox/.config/dunst/dunstrc
Normal file
321
desktop-gruvbox/.config/dunst/dunstrc
Normal file
@@ -0,0 +1,321 @@
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "600x8-8+64"
|
||||
corner_radius = 0
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 4
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 12
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 12
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 6
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#f2e5bc"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
#font = Monospace 8
|
||||
font = IBM Plex Sans 12
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# Markup is allowed
|
||||
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Merge multiple notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of merged notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = right
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 48
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/rofi -dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = mod1+shift+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = mod1+shift+enter
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = mod1+shift+d
|
||||
|
||||
# Context menu.
|
||||
context = mod1+shift+o
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#fbf1c7"
|
||||
foreground = "#3c3836"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#fbf1c7"
|
||||
foreground = "#3c3836"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#fbf1c7"
|
||||
foreground = "#fb4934"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||
# "background", "new_icon" and "format".
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
# vim: ft=cfg
|
321
desktop-gruvbox/.config/dunst/dunstrc-light
Normal file
321
desktop-gruvbox/.config/dunst/dunstrc-light
Normal file
@@ -0,0 +1,321 @@
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "500x8-6+50"
|
||||
corner_radius = 0
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 4
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 12
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 12
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 4
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#32302f"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
#font = Monospace 8
|
||||
font = Roboto 10
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# Markup is allowed
|
||||
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Merge multiple notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of merged notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = right
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 48
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Papirus-Dark/48x48/status/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/apps
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/rofi -dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = mod1+shift+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = mod1+shift+enter
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = mod1+shift+d
|
||||
|
||||
# Context menu.
|
||||
context = mod1+shift+o
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#282828"
|
||||
foreground = "#ebdbb2"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#282828"
|
||||
foreground = "#ebdbb2"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#282828"
|
||||
foreground = "#fabd2f"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||
# "background", "new_icon" and "format".
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
# vim: ft=cfg
|
@@ -3,8 +3,6 @@
|
||||
:
|
||||
command -v unagi
|
||||
unagi
|
||||
command -v picom
|
||||
picom
|
||||
command -v compton
|
||||
compton
|
||||
command -v xcompmgr
|
16
desktop-gruvbox/.config/gtk-3.0/settings.ini
Normal file
16
desktop-gruvbox/.config/gtk-3.0/settings.ini
Normal file
@@ -0,0 +1,16 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Materia-Gruvbox
|
||||
gtk-icon-theme-name=Papirus-Dark-Gruvbox
|
||||
gtk-font-name=IBM Plex Sans Medium 10
|
||||
gtk-cursor-theme-name=Breeze_Snow
|
||||
gtk-cursor-theme-size=0
|
||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-menu-images=1
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=1
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=rgb
|
78
desktop-gruvbox/.config/oomox/colors/Gruvbox/Dark
Normal file
78
desktop-gruvbox/.config/oomox/colors/Gruvbox/Dark
Normal file
@@ -0,0 +1,78 @@
|
||||
ACCENT_BG=83a598
|
||||
ARC_TRANSPARENCY=True
|
||||
ARC_WIDGET_BORDER_COLOR=59554a
|
||||
BASE16_GENERATE_DARK=False
|
||||
BASE16_INVERT_TERMINAL=False
|
||||
BASE16_MILD_TERMINAL=False
|
||||
BG=282828
|
||||
BTN_BG=282828
|
||||
BTN_FG=610a7a
|
||||
BTN_OUTLINE_OFFSET=-3
|
||||
BTN_OUTLINE_WIDTH=1
|
||||
CARET1_FG=cac10f
|
||||
CARET2_FG=cac10f
|
||||
CARET_SIZE=0.04
|
||||
CINNAMON_OPACITY=1.0
|
||||
FG=ebdbb2
|
||||
GRADIENT=0.01
|
||||
GTK3_GENERATE_DARK=True
|
||||
HDR_BG=32302f
|
||||
HDR_BTN_BG=282828
|
||||
HDR_BTN_FG=01bf9b
|
||||
HDR_FG=ebdbb2
|
||||
ICONS_ARCHDROID=d2f000
|
||||
ICONS_DARK=282828
|
||||
ICONS_LIGHT=bc8ef4
|
||||
ICONS_LIGHT_FOLDER=83a598
|
||||
ICONS_MEDIUM=458588
|
||||
ICONS_NUMIX_STYLE=0
|
||||
ICONS_STYLE=papirus_icons
|
||||
ICONS_SYMBOLIC_ACTION=ebdbb2
|
||||
ICONS_SYMBOLIC_PANEL=ebdbb2
|
||||
MATERIA_PANEL_OPACITY=0.6
|
||||
MATERIA_SELECTION_OPACITY=0.32
|
||||
MATERIA_STYLE_COMPACT=True
|
||||
MENU_BG=12afaf
|
||||
MENU_FG=01bf9b
|
||||
NAME="Gruvbox/Dark"
|
||||
OUTLINE_WIDTH=1
|
||||
ROUNDNESS=6
|
||||
SEL_BG=83a598
|
||||
SEL_FG=282828
|
||||
SPACING=3
|
||||
SPOTIFY_PROTO_BG=282828
|
||||
SPOTIFY_PROTO_FG=ebdbb2
|
||||
SPOTIFY_PROTO_SEL=b8bb26
|
||||
SURUPLUS_GRADIENT1=21826e
|
||||
SURUPLUS_GRADIENT2=f728dd
|
||||
SURUPLUS_GRADIENT_ENABLED=False
|
||||
TERMINAL_ACCENT_COLOR=f728dd
|
||||
TERMINAL_BACKGROUND=237095
|
||||
TERMINAL_BASE_TEMPLATE=material
|
||||
TERMINAL_COLOR0=36868b
|
||||
TERMINAL_COLOR1=ffec53
|
||||
TERMINAL_COLOR10=acffb8
|
||||
TERMINAL_COLOR11=fff453
|
||||
TERMINAL_COLOR12=91ffff
|
||||
TERMINAL_COLOR13=bd68aa
|
||||
TERMINAL_COLOR14=36faed
|
||||
TERMINAL_COLOR15=fcffff
|
||||
TERMINAL_COLOR2=9bff9d
|
||||
TERMINAL_COLOR3=ffff5a
|
||||
TERMINAL_COLOR4=13fdff
|
||||
TERMINAL_COLOR5=f972b6
|
||||
TERMINAL_COLOR6=10eadb
|
||||
TERMINAL_COLOR7=dfffff
|
||||
TERMINAL_COLOR8=479ba2
|
||||
TERMINAL_COLOR9=fffba0
|
||||
TERMINAL_FOREGROUND=d2f000
|
||||
TERMINAL_THEME_ACCURACY=128
|
||||
TERMINAL_THEME_AUTO_BGFG=True
|
||||
TERMINAL_THEME_EXTEND_PALETTE=False
|
||||
TERMINAL_THEME_MODE=smarty
|
||||
THEME_STYLE=materia
|
||||
TXT_BG=282828
|
||||
TXT_FG=d2f000
|
||||
UNITY_DEFAULT_LAUNCHER_STYLE=False
|
||||
WM_BORDER_FOCUS=f728dd
|
||||
WM_BORDER_UNFOCUS=c158ce
|
315
desktop-gruvbox/.config/polybar/config
Normal file
315
desktop-gruvbox/.config/polybar/config
Normal file
@@ -0,0 +1,315 @@
|
||||
# vim:ft=dosini
|
||||
# _ _
|
||||
# _ __ ___ | |_ _| |__ __ _ _ __
|
||||
# | '_ \ / _ \| | | | | '_ \ / _` | '__|
|
||||
# | |_) | (_) | | |_| | |_) | (_| | |
|
||||
# | .__/ \___/|_|\__, |_.__/ \__,_|_|
|
||||
# |_| |___/
|
||||
#
|
||||
# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li>
|
||||
# Distributed under the terms of the MIT License
|
||||
#
|
||||
|
||||
## VARIABLES
|
||||
[res/colors]
|
||||
red = #fb4934
|
||||
green = #b8bb26
|
||||
yellow = #fabd2f
|
||||
blue = #83a598
|
||||
magenta = #de869b
|
||||
cyan = #8ec07c
|
||||
white = #ebdbb2
|
||||
black = #282828
|
||||
gray = #32302f
|
||||
|
||||
bg = ${env:PB_COLOR_BG:#282828}
|
||||
fg = ${env:PB_COLOR_FG:#ebdbb2}
|
||||
border = ${env:PB_COLOR_BORDER:#32302f}
|
||||
selection = #83a598
|
||||
|
||||
[res/config]
|
||||
bar-width = 50
|
||||
bar-fill = |
|
||||
bar-empty = |
|
||||
bar-indicator =
|
||||
border-size = 6
|
||||
padding = 2
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
format-padding = ${res/config.padding}
|
||||
format-background = ${res/colors.bg}
|
||||
|
||||
## BARS
|
||||
[template/bar]
|
||||
bottom = false
|
||||
wm-restack = ${env:PB_WM_RESTACK:i3}
|
||||
tray-maxsize = 24
|
||||
background = ${res/colors.bg}
|
||||
foreground = ${res/colors.fg}
|
||||
border-color = ${res/colors.border}
|
||||
tray-background = ${res/colors.bg}
|
||||
height = 48
|
||||
width = 100%:-16
|
||||
offset-x = 8
|
||||
padding = 2
|
||||
border-size = ${res/config.border-size}
|
||||
font-0 = "IBM Plex Sans:style=Medium:size=12;2"
|
||||
font-1 = "Deja Vu Sans Mono:style=Regular:size=12;2"
|
||||
font-2 = "IBM Plex Sans:style=Bold:size=12;2"
|
||||
font-3 = "Fork Awesome:style=Regular:size=12;2"
|
||||
font-4 = "Font Awesome 5 Free:style=Regular:size=12;2"
|
||||
font-5 = "Font Awesome 5 Brands:style=Regular:size=12;2"
|
||||
|
||||
[bar/primary]
|
||||
monitor = ${env:PB_MONITOR:eDP-1}
|
||||
inherit = template/bar
|
||||
tray-position = right
|
||||
modules-left = i3 bspwm service-ansible service-backup reboot-required
|
||||
modules-center = date
|
||||
modules-right = xkeyboard backlight pulse battery battery-bat1 |
|
||||
border-top-size = 0
|
||||
|
||||
[bar/secondary]
|
||||
monitor= ${env:PB_MONITOR:HDMI-A-0}
|
||||
inherit = template/bar
|
||||
modules-left = i3 bspwm
|
||||
modules-right = xkeyboard pulse wlan-desktop-stats mpd | date
|
||||
border-top-size = 0
|
||||
|
||||
## MODULES
|
||||
[module/|]
|
||||
type = custom/text
|
||||
content = |
|
||||
content-foreground = ${res/colors.border}
|
||||
|
||||
[module/backlight]
|
||||
type = internal/xbacklight
|
||||
format = <bar>
|
||||
format-prefix = "BRI: "
|
||||
format-prefix-foreground = ${res/colors.blue}
|
||||
bar-width = ${res/config.bar-width}
|
||||
bar-fill = ${res/config.bar-fill}
|
||||
bar-fill-foreground = ${res/colors.blue}
|
||||
bar-empty = ${res/config.bar-empty}
|
||||
bar-empty-foreground = ${res/colors.border}
|
||||
bar-indicator = ${res/config.bar-indicator}
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 100
|
||||
time-format = %H:%M
|
||||
interval = 60
|
||||
|
||||
format-charging = <ramp-capacity> <label-charging>
|
||||
format-charging-foreground = ${res/colors.green}
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
format-full = <ramp-capacity> <label-full>
|
||||
format-full-foreground = ${res/colors.green}
|
||||
label-charging = %percentage%%
|
||||
label-discharging = %percentage%%
|
||||
label-full = %percentage%%
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-0-foreground = ${res/colors.yellow}
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
|
||||
[module/battery-bat1]
|
||||
type = internal/battery
|
||||
inherit = module/battery
|
||||
battery = BAT1
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
format = <label-state> <label-mode>
|
||||
format-padding = 0
|
||||
enable-scroll = false
|
||||
pin-workspaces = true
|
||||
|
||||
label-mode-padding = 4
|
||||
label-mode-background = ${res/colors.red}
|
||||
label-focused = %name%
|
||||
label-focused-padding = 4
|
||||
label-focused-font = 3
|
||||
label-focused-foreground = ${res/colors.bg}
|
||||
label-focused-background = ${res/colors.selection}
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 4
|
||||
label-occupied-font = 3
|
||||
label-urgent = %name%
|
||||
label-urgent-padding = 4
|
||||
label-urgent-font = 3
|
||||
label-urgent-foreground = ${res/colors.bg}
|
||||
label-urgent-background = ${res/colors.yellow}
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${res/colors.border}
|
||||
label-empty-padding = 4
|
||||
label-monocle =
|
||||
label-monocle-padding = 4
|
||||
label-monocle-background = ${res/colors.red}
|
||||
label-pseudotiled =
|
||||
label-pseudotiled-padding = ${self.label-monocle-padding}
|
||||
label-pseudotiled-background = ${res/colors.border}
|
||||
label-floating =
|
||||
label-floating-padding = ${self.label-monocle-padding}
|
||||
label-floating-background = ${res/colors.border}
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 1
|
||||
format = <bar-load>
|
||||
format-prefix = "CPU: "
|
||||
format-prefix-foreground = ${res/colors.blue}
|
||||
bar-load-width = ${res/config.bar-width}
|
||||
bar-load-fill = ${res/config.bar-fill}
|
||||
bar-load-fill-foreground = ${res/colors.blue}
|
||||
bar-load-empty = ${res/config.bar-empty}
|
||||
bar-load-empty-foreground = ${res/colors.border}
|
||||
bar-load-indicator = ${res/config.bar-indicator}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
date = %a %b %d
|
||||
time = %I:%M %p
|
||||
interval = 5
|
||||
format = <label>
|
||||
label = %{T3}%date% %time%%{T-}
|
||||
|
||||
[module/fshome]
|
||||
type = internal/fs
|
||||
mount-0 = /home
|
||||
format-mounted = <bar-used> <label-mounted>
|
||||
format-mounted-prefix = "Home: "
|
||||
format-mounted-prefix-foreground = ${res/colors.yellow}
|
||||
format-unmounted =
|
||||
label-mounted = %free% free
|
||||
bar-used-width = ${res/config.bar-width}
|
||||
bar-used-fill = ${res/config.bar-fill}
|
||||
bar-used-fill-foreground = ${res/colors.yellow}
|
||||
bar-used-empty = ${res/config.bar-empty}
|
||||
bar-used-empty-foreground = ${res/colors.border}
|
||||
bar-used-indicator = ${res/config.bar-indicator}
|
||||
|
||||
[module/fsroot]
|
||||
type = internal/fs
|
||||
mount-0 = /
|
||||
format-mounted = <bar-used> <label-mounted>
|
||||
format-mounted-prefix = "Root: "
|
||||
format-mounted-prefix-foreground = ${res/colors.yellow}
|
||||
label-mounted = %free% free
|
||||
bar-used-width = ${res/config.bar-width}
|
||||
bar-used-fill = ${res/config.bar-fill}
|
||||
bar-used-fill-foreground = ${res/colors.yellow}
|
||||
bar-used-empty = ${res/config.bar-empty}
|
||||
bar-used-empty-foreground = ${res/colors.border}
|
||||
bar-used-indicator = ${res/config.bar-indicator}
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
format = <label-state> <label-mode>
|
||||
format-padding = 0
|
||||
enable-scroll = false
|
||||
pin-workspaces = true
|
||||
|
||||
label-mode-padding = 4
|
||||
label-mode-background = ${res/colors.red}
|
||||
label-focused = %name%
|
||||
label-focused-padding = 4
|
||||
label-focused-foreground = ${res/colors.bg}
|
||||
label-focused-background = ${res/colors.selection}
|
||||
label-unfocused = %name%
|
||||
label-unfocused-background = ${res/colors.bg}
|
||||
label-unfocused-padding = 4
|
||||
label-visible = %name%
|
||||
label-visible-background = ${res/colors.border}
|
||||
label-visible-padding = 4
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
format = <bar-used> <label>
|
||||
format-prefix = "Memory: "
|
||||
format-prefix-foreground = ${res/colors.magenta}
|
||||
label = %gb_free:8%
|
||||
bar-used-width = ${res/config.bar-width}
|
||||
bar-used-fill = ${res/config.bar-fill}
|
||||
bar-used-fill-foreground = ${res/colors.magenta}
|
||||
bar-used-empty = ${res/config.bar-empty}
|
||||
bar-used-empty-foreground = ${res/colors.border}
|
||||
bar-used-indicator = ${res/config.bar-indicator}
|
||||
|
||||
[module/mpd]
|
||||
type=internal/mpd
|
||||
format-online=<label-song> <label-time>
|
||||
label-song=%artist% - %title%
|
||||
label-time=%elapsed% / %total%
|
||||
|
||||
[module/pulse]
|
||||
type = internal/pulseaudio
|
||||
format-volume = <label-volume>
|
||||
format-volume-prefix = " "
|
||||
format-muted = <label-muted>
|
||||
format-muted-prefix = " "
|
||||
format-muted-foreground = ${res/colors.border}
|
||||
|
||||
[module/reboot-required]
|
||||
type = custom/script
|
||||
interval = 300
|
||||
exec = "echo Reboot required"
|
||||
exec-if = "[ -f /var/run/reboot-required ]"
|
||||
format-foreground = ${res/colors.yellow}
|
||||
|
||||
[module/service-ansible]
|
||||
type = custom/script
|
||||
interval = 300
|
||||
exec = "echo "
|
||||
exec-if = "systemctl is-failed --quiet ansible-pull.service"
|
||||
format-foreground = ${res/colors.red}
|
||||
|
||||
[module/service-backup]
|
||||
type = custom/script
|
||||
interval = 300
|
||||
exec = "echo "
|
||||
exec-if = "systemctl is-failed --quiet backup.service"
|
||||
format-foreground = ${res/colors.red}
|
||||
|
||||
[module/wlan-laptop]
|
||||
type = internal/network
|
||||
interface = wlp0s20f3
|
||||
format-connected-prefix = "WLAN: "
|
||||
format-connected-prefix-foreground = ${res/colors.green}
|
||||
format-disconnected-prefix = "WLAN: "
|
||||
format-disconnected-prefix-foreground = ${res/colors.green}
|
||||
label-connected = %essid%
|
||||
label-disconnected = Disconnected
|
||||
|
||||
[module/wlan-desktop]
|
||||
type = internal/network
|
||||
interface = wlp5s0
|
||||
format-connected-prefix = "WLAN: "
|
||||
format-connected-prefix-foreground = ${res/colors.green}
|
||||
format-disconnected-prefix = "WLAN: "
|
||||
format-disconnected-prefix-foreground = ${res/colors.green}
|
||||
label-connected = %essid%
|
||||
label-disconnected = Disconnected
|
||||
|
||||
[module/wlan-desktop-stats]
|
||||
type = internal/network
|
||||
interface = wlp5s0
|
||||
label-connected = U %upspeed% D %downspeed%
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
format = <label-indicator>
|
||||
label-indicator-on = %icon%
|
||||
label-indicator-off = %icon%
|
||||
label-indicator-on-capslock =
|
||||
label-indicator-on-capslock-padding = 4
|
||||
label-indicator-on-capslock-background = ${res/colors.yellow}
|
||||
label-indicator-on-capslock-foreground = ${res/colors.black}
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title%
|
||||
label-maxlen = 100
|
82
desktop-gruvbox/.config/polybar/launch.sh
Executable file
82
desktop-gruvbox/.config/polybar/launch.sh
Executable file
@@ -0,0 +1,82 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# launch.sh
|
||||
# A Polybar launch script with a heck of a lot of compat
|
||||
# Copyright (C) 2019 Vintage Salt <rehashedsalt@cock.li>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
|
||||
log() {
|
||||
[ -z "$1" ] && return 1
|
||||
printf "$1\\n"
|
||||
}
|
||||
|
||||
# Trap our exit
|
||||
die() {
|
||||
kill $(jobs -p)
|
||||
}
|
||||
trap die EXIT
|
||||
|
||||
# Steps
|
||||
step_fallback() {
|
||||
if ! command -v polybar > /dev/null 2>&1; then
|
||||
if command -v tint2 > /dev/null 2>&1; then
|
||||
log "Executing fallback"
|
||||
exec tint2
|
||||
fi
|
||||
log "No valid bars found"
|
||||
exit 51
|
||||
fi
|
||||
}
|
||||
step_configure() {
|
||||
# Restack compatibility
|
||||
if pgrep -U "$UID" bspwm > /dev/null 2>&1; then
|
||||
export PB_WM_RESTACK="bspwm"
|
||||
elif pgrep -U "$UID" i3 > /dev/null 2>&1; then
|
||||
export PB_WM_RESTACK="i3"
|
||||
fi
|
||||
# Light theme
|
||||
if [ "$THEME" == "light" ]; then
|
||||
export PB_COLOR_BG="#fbf1c7"
|
||||
export PB_COLOR_FG="#3c3836"
|
||||
export PB_COLOR_BORDER="#f2e5bc"
|
||||
fi
|
||||
}
|
||||
step_spawn_primary() {
|
||||
# Spawn bars on the primary monitor
|
||||
log "Spawning primary bars"
|
||||
export PB_MONITOR=$(xrandr -q | awk '/primary/{print $1}')
|
||||
polybar -r primary &
|
||||
polybar -r primary-2 &
|
||||
}
|
||||
step_spawn_secondary() {
|
||||
# Spawn more for each secondary
|
||||
log "Spawning secondary bars"
|
||||
export secondary_monitors=$(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}')
|
||||
if [ "$secondary_monitors" == "" ]; then
|
||||
return 0
|
||||
fi
|
||||
for monitor in $secondary_monitors; do
|
||||
PB_MONITOR=$monitor
|
||||
polybar -r secondary &
|
||||
polybar -r secondary-2 &
|
||||
done
|
||||
}
|
||||
step_wait() {
|
||||
# And wait
|
||||
log "Waiting"
|
||||
wait
|
||||
}
|
||||
|
||||
# Main
|
||||
main() {
|
||||
step_fallback
|
||||
step_configure
|
||||
step_spawn_primary
|
||||
step_spawn_secondary
|
||||
step_wait
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
129
desktop-gruvbox/.config/rofi/config.rasi
Normal file
129
desktop-gruvbox/.config/rofi/config.rasi
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* config.rasi
|
||||
* Copyright (C) 2020 Vintage Salt <rehashedsalt@cock.li>
|
||||
*
|
||||
* Distributed under terms of the MIT License
|
||||
*
|
||||
* See rofi-theme(5) for documentation
|
||||
*/
|
||||
|
||||
configuration {
|
||||
matching: "normal";
|
||||
show-icons: true;
|
||||
icon-theme: "Papirus-Gruvbox-Dark";
|
||||
modi: "drun,ssh,window";
|
||||
}
|
||||
|
||||
* {
|
||||
background: #282828;
|
||||
background-alt: #32302f;
|
||||
foreground: #ebdbb2;
|
||||
foreground-alt: #fb4934;
|
||||
yellow: #fabd2f;
|
||||
blue: #83a598;
|
||||
cyan: #8ec07c;
|
||||
|
||||
text-color: @foreground;
|
||||
background-color: @background;
|
||||
font: "IBM Plex Sans 10";
|
||||
}
|
||||
|
||||
#window {
|
||||
location: southwest;
|
||||
anchor: southwest;
|
||||
|
||||
border-color: @background-alt;
|
||||
background-color: @background;
|
||||
|
||||
border: 4px 4px 0 0;
|
||||
height: 60%;
|
||||
width: 30%;
|
||||
padding: 0em;
|
||||
}
|
||||
#inputbar {
|
||||
background-color: @background-alt;
|
||||
padding: 1em;
|
||||
}
|
||||
#case-indicator {
|
||||
enabled: false;
|
||||
}
|
||||
#prompt {
|
||||
enabled: false;
|
||||
}
|
||||
#textbox-prompt-colon {
|
||||
enabled: false;
|
||||
}
|
||||
#entry {
|
||||
background-color: inherit;
|
||||
font: "IBM Plex Sans 12";
|
||||
padding: 0.5em;
|
||||
}
|
||||
#num-filtered-rows {
|
||||
background-color: inherit;
|
||||
font: "IBM Plex Sans 12";
|
||||
padding: 0.5em;
|
||||
}
|
||||
#textbox-num-sep {
|
||||
background-color: inherit;
|
||||
font: "IBM Plex Sans 12";
|
||||
padding: 0.5em 0em;
|
||||
}
|
||||
#num-rows {
|
||||
background-color: inherit;
|
||||
font: "IBM Plex Sans 12";
|
||||
padding: 0.5em;
|
||||
}
|
||||
#message {
|
||||
padding: 4px;
|
||||
}
|
||||
#textbox {
|
||||
padding: 4px 12px 4px 12px;
|
||||
font-color: @foreground-alt;
|
||||
}
|
||||
|
||||
#listview {
|
||||
padding: 1em;
|
||||
border: none;
|
||||
}
|
||||
#scrollbar {
|
||||
handle-color: @background-alt;
|
||||
enabled: false;
|
||||
}
|
||||
#element {
|
||||
padding: 1em;
|
||||
}
|
||||
#element alternate.normal {
|
||||
background-color: @background;
|
||||
}
|
||||
#element normal active {
|
||||
text-color: @cyan;
|
||||
}
|
||||
#element normal urgent {
|
||||
text-color: @yellow;
|
||||
}
|
||||
#element selected normal {
|
||||
background-color: @blue;
|
||||
text-color: @background;
|
||||
}
|
||||
#element selected active {
|
||||
background-color: @cyan;
|
||||
text-color: @background;
|
||||
}
|
||||
#element selected urgent {
|
||||
background-color: @yellow;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
}
|
||||
|
||||
#button {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#button selected {
|
||||
background-color: @background-alt;
|
||||
}
|
||||
|
||||
/* vim:ft=css
|
||||
*/
|
74
desktop-gruvbox/.config/sxhkd/sxhkdrc
Normal file
74
desktop-gruvbox/.config/sxhkd/sxhkdrc
Normal file
@@ -0,0 +1,74 @@
|
||||
# vim:ft=bash
|
||||
|
||||
## GENERAL HOTKEYS
|
||||
alt + Return
|
||||
$TERMINAL
|
||||
alt + space
|
||||
rofi -show drun
|
||||
alt + backslash
|
||||
rofi -show ssh
|
||||
alt + Tab
|
||||
rofi -show window
|
||||
alt + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
ctrl + alt + l
|
||||
/usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet
|
||||
|
||||
## APPLICATION TOGGLES
|
||||
alt + p
|
||||
killall pavucontrol-qt || pavucontrol-qt
|
||||
alt + shift + m
|
||||
killall compton || ~/.firestarter/firestarter start compositor
|
||||
|
||||
## HARDWARE CONTROLS
|
||||
XF86Audio{Raise,Lower}Volume
|
||||
pactl set-sink-volume 0 {+,-}5%
|
||||
XF86AudioMute
|
||||
pactl set-sink-mute 0 toggle
|
||||
XF86MonBrightness{Up,Down}
|
||||
xbacklight {-inc,-dec} 5
|
||||
|
||||
## BSPWM
|
||||
# Reload configs
|
||||
alt + shift + r
|
||||
~/.config/bspwm/bspwmrc
|
||||
# Close or kill node
|
||||
alt + {_,shift + }q
|
||||
bspc node -{c,k}
|
||||
# Focus or move the node in the given direction
|
||||
alt + {_,shift + }{h,j,k,l}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
# Focus or send to the given desktop
|
||||
alt + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '{1-9,10}'
|
||||
# Toggle monocle mode
|
||||
alt + m
|
||||
bspc desktop -l next
|
||||
# Switch current node with biggest on current desktop
|
||||
alt + g
|
||||
bspc node -s biggest.local --follow
|
||||
# Focus the node for the given path jump
|
||||
alt + {a,c}
|
||||
bspc node -f {@parent,biggest.descendant_of}
|
||||
# Rotate, equalize, or balance selection
|
||||
alt + {r,e,u}
|
||||
bspc node -{R 90,E,B @/}
|
||||
# Set window states
|
||||
alt + {t,shift + t,f,shift + f}
|
||||
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
# Set node flags
|
||||
alt + ctrl + {x,y,z}
|
||||
bspc node -g {locked,sticky,private}
|
||||
# Focus the next/previous node in the current desktop
|
||||
alt + {_,shift + }c
|
||||
bspc node -f {next,prev}.local
|
||||
# Focus the next/previous desktop in the current monitor
|
||||
alt + {comma,period}
|
||||
bspc desktop -f {prev,next}.local
|
||||
# Expand a window by moving one of its side outward
|
||||
super + alt + {h,j,k,l}
|
||||
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||
# Contract a window by moving one of its side inward
|
||||
super + alt + shift + {h,j,k,l}
|
||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||
|
7
desktop-gruvbox/.gtkrc-2.0
Normal file
7
desktop-gruvbox/.gtkrc-2.0
Normal file
@@ -0,0 +1,7 @@
|
||||
# Managed manually
|
||||
# If overwritten by lxappearance, assume it will be overwritten AGAIN by dot management scripts
|
||||
gtk-theme-name="Materia-Gruvbox"
|
||||
gtk-icon-theme-name="Papirus-Dark-Gruvbox"
|
||||
gtk-font-name="IBM Plex Sans Medium 10"
|
||||
gtk-cursor-theme-name="Breeze_Snow"
|
||||
|
@@ -21,10 +21,6 @@ case $(hostname) in
|
||||
vm-*)
|
||||
xrandr --output Virtual-1 --mode 1920x1080 --rate 60 --primary
|
||||
;;
|
||||
dsk-cstm-0*)
|
||||
xrandr --output DisplayPort-1 --mode 2560x1440 --rate 144 --primary
|
||||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --pos 2560x360
|
||||
;;
|
||||
esac
|
||||
# Wallpaper generation because why not
|
||||
#if [ -x "$HOME/.wpgen/wpgen" ]; then
|
@@ -21,7 +21,7 @@ case $(hostname) in
|
||||
vm-*)
|
||||
xrandr --output Virtual-1 --mode 1920x1080 --rate 60 --primary
|
||||
;;
|
||||
dsk-cstm-0*)
|
||||
dsk-ryzen-0*)
|
||||
xrandr --output DisplayPort-1 --mode 2560x1440 --rate 144 --primary
|
||||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --pos 2560x360
|
||||
;;
|
Submodule firestarter/.firestarter deleted from bcf9c80efb
@@ -1,3 +1,9 @@
|
||||
[user]
|
||||
email = rehashedsalt@cock.li
|
||||
name = Salt
|
||||
email = jacob@babor.tech
|
||||
name = Jacob Babor
|
||||
[pull]
|
||||
rebase = true
|
||||
[push]
|
||||
autoSetupRemote = true
|
||||
[init]
|
||||
defaultBranch = master
|
||||
|
68
hyprland-work/.config/dunst/dunstrc
Normal file
68
hyprland-work/.config/dunst/dunstrc
Normal file
@@ -0,0 +1,68 @@
|
||||
# vim: set ft=cfg:
|
||||
[global]
|
||||
## BEHAVIOR
|
||||
follow = mouse # Notifications follow the monitor with the mouse
|
||||
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
|
||||
hide_duplicate_count = false # Hide count of stacked notifs
|
||||
ignore_newline = false # Ignore \n (for some reason)
|
||||
indicate_hidden = true # Show how many messages are currently hidden
|
||||
idle_threshold = 120 # Time in seconds before user is considered idle
|
||||
markup = full # Whether to disable markup features (see manpage)
|
||||
show_age_threshold = 60 # Shows age if message is older than this (in sec)
|
||||
show_indicators = true # Show hints for interactable notifs
|
||||
sort = true # Sort messages by urgency.
|
||||
stack_duplicates = true
|
||||
timeout = 10 # Time in seconds before the thing fades
|
||||
|
||||
## MISC CONFIGURATION
|
||||
always_run_script = true # Runs scripts for rules even if they're hidden
|
||||
browser = xdg-open
|
||||
dmenu = /usr/bin/wofi --dmenu -p dunst:
|
||||
|
||||
## WINDOW CONFIGURATION
|
||||
title = Dunst
|
||||
class = Dunst
|
||||
|
||||
## HISTORY
|
||||
sticky_history = yes # Notifs pulled from history stay onscreen
|
||||
history_length = 20 # Buffer size
|
||||
|
||||
## LOOKS
|
||||
# COLORS
|
||||
# Note that rules defined later on can and will override these
|
||||
# All colors must be quoted so as to not misinterpret as comments
|
||||
background= "#fbf1c7cc" # Background of the notification
|
||||
frame_color = "#f2e5bccc"
|
||||
separator_color = frame
|
||||
foreground = "#3c3836" # Font color, for body and title
|
||||
highlight = "#b8bb26" # Progress bars
|
||||
# SIZE AND POSITIONING
|
||||
width = 400
|
||||
height = 300
|
||||
offset = 8x8 # This takes into account any bars
|
||||
corner_radius = 8
|
||||
transparency = 0
|
||||
# PROGRESS BAR
|
||||
progress_bar = true
|
||||
progress_bar_corner_radius = 8
|
||||
progress_bar_horizontal_alignment = left
|
||||
progress_bar_frame_width = 2
|
||||
progress_bar_height = 8
|
||||
# INTERIOR FORMATTING
|
||||
frame_width = 6 # Defines width in pixels of frame
|
||||
horizontal_padding = 12 # Horizontal padding.
|
||||
padding = 12 # Padding between text and separator.
|
||||
separator_height = 4
|
||||
# TEXT
|
||||
alignment = left
|
||||
font = IBM Plex Sans 10
|
||||
line_height = 0
|
||||
word_wrap = yes
|
||||
# ICONS
|
||||
icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps
|
||||
icon_position = right
|
||||
icon_corner_radius = 8
|
||||
max_icon_size = 48
|
||||
|
||||
[urgency_critical]
|
||||
foreground = "#fb4934"
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user