Compare commits

...

105 Commits

Author SHA1 Message Date
ad02049329 fix: rework error code writing / simplify it 2025-11-19 10:00:01 +01:00
dcb30d0bea fix: POSIX compatibility case written incorrectly 2025-11-19 10:00:01 +01:00
945536a29c rework bash scripts to be completely, or mostly POSIX-compliant 2025-11-19 10:00:01 +01:00
76dadcf5d9 remove a bunch of crap I don't use 2025-11-19 10:00:01 +01:00
25adad8c1c move alias definitions to a seperate file to decrease clutter 2025-11-19 10:00:01 +01:00
07a9418459 remove vcpkg crap we no longer use 2025-11-19 10:00:01 +01:00
84778882e8 rework the bash PS1 prompt 2025-11-19 10:00:01 +01:00
c98c6eb1ec fix: shbangs in bash configuration files 2025-11-19 10:00:01 +01:00
d14e4c3cd9 remove git modules 2025-11-19 10:00:01 +01:00
ffd9a441fd update nvim 2025-11-18 12:50:11 +01:00
f7916cb9db add another arch ascii art, but with lower resolution to be usable in a tty 2025-11-18 12:50:11 +01:00
96d02aae9e flip flop java prime 2025-11-18 12:50:11 +01:00
7e14d394f7 define an alias for info 2025-11-18 12:50:11 +01:00
54fbef9b9e use command for detection over which 2025-11-18 12:50:11 +01:00
2584c9384e write comment 2025-11-18 12:45:16 +01:00
4731b849ee add shrug to xcompose 2025-11-18 12:45:07 +01:00
11bd26b123 add indentical to sybol to xcompose 2025-11-18 12:45:02 +01:00
0b7fff402a rework volume control 2025-11-18 12:44:46 +01:00
286357aa72 edit editorconfig to have JSON have tab width of eight 2025-11-13 12:13:35 +01:00
547ff80288 fix keybind to open 2025-11-13 10:48:52 +01:00
57b8fd050f update submodules 2025-11-12 12:10:06 +01:00
8672c1710a update lazygit 2025-11-12 12:09:58 +01:00
d89afea793 add LF configuration 2025-11-12 12:09:40 +01:00
f36f089d83 add roman numerals to xcompose 2025-10-17 12:16:38 +02:00
5a0b23c862 update i3 2025-10-17 12:16:32 +02:00
12124fd9aa add W.I.P. projection for europe. 2025-10-16 23:31:06 +02:00
2d779645f5 update i3 2025-10-16 23:30:51 +02:00
9d68e5b149 fix typo in satalite wp update 2025-10-16 23:30:48 +02:00
d4c61e5fbc update nvim 2025-10-16 23:30:27 +02:00
e14e17e340 comment out rando lines in actrc 2025-10-13 14:33:27 +02:00
5c1a53fc17 add lines to fastfetch 2025-10-13 14:33:17 +02:00
6388ef5e14 set a font size in kitty to what I am comfortable with
Kitty did not have a font size set, and I kept accedentally zooming in,
and then not knowing what it was set as and what I was comfortable with.
This ensures the window always opens with my preffered scale.
2025-10-13 14:33:07 +02:00
b954326d72 update i3 2025-10-13 14:32:11 +02:00
6bab7c7dc8 update nvim 2025-10-13 14:32:06 +02:00
41cc28dc03 update clang-format to be more in line with my current preferences / guidelines 2025-10-13 14:31:59 +02:00
932ce683af show the cursor in the the shell prompt 2025-10-13 14:31:20 +02:00
9e766b53af fix: spelling 2025-10-13 14:31:06 +02:00
b7ed739b2f fix: MULTI+.+= does not give DOT OPERATOR, as I expected, but BULLET. BULLET has been moved to ** and DOT OPERATOR set at .= 2025-10-13 14:30:58 +02:00
cd8e5fd322 fix: OMEGA is using the wrong UTF code 2025-10-13 14:30:07 +02:00
d22940e0db minor symbol name fixes 2025-10-13 14:29:56 +02:00
d1283e2e0a expand the greek alphabet, now all symbols have been added.
note: I thought I did this last time.
2025-10-13 14:29:22 +02:00
2ff35a55ef set NVIDIA as primary gpu 2025-09-18 14:19:38 +02:00
0553463958 modify inputrc to have completions to be coloured, and case-insensitive. 2025-09-18 14:19:27 +02:00
39a83a3398 remove setting the tab width for makefile to four 2025-09-18 14:18:48 +02:00
da521004c0 comment out the java-prime exported envs, since we're now running on just dedicated graphics 2025-09-18 14:18:34 +02:00
19e0dab102 update nvim 2025-09-18 14:17:52 +02:00
e3040bde7b rewrite polybar networks once again 2025-09-18 14:17:47 +02:00
21814db5b3 removal of hyfetch, and preferring to use a more customised fastfetch configuration 2025-09-03 13:32:13 +02:00
b2720b485e add lls alias 2025-08-28 16:05:11 +02:00
57785b6bab modify history settings 2025-08-28 10:02:59 +02:00
d6cc49e142 update submodules 2025-08-27 10:37:40 +02:00
c5ddc45f58 fix: polybar ethernet connections 2025-08-24 12:31:35 +02:00
ad29f488c9 update cpusetcores binary 2025-08-23 22:13:39 +02:00
22aa216945 update nvim 2025-08-23 22:13:32 +02:00
4160333b7d update feh on errors with satalite-wp-update 2025-08-23 22:13:26 +02:00
67d6dc8b14 add another definition for USB ethernet device 2025-08-13 13:43:51 +02:00
a4cd6d8f47 update submodules 2025-08-13 13:42:45 +02:00
9f076891a5 fix double comment 2025-08-13 12:47:35 +02:00
caef66b501 add an alias for rm to set -I, which is less intruisive than -i 2025-08-11 11:34:40 +02:00
e8f7f5fb37 fix: formatting 2025-08-11 10:38:24 +02:00
5304603970 enable globstar in bashrc 2025-08-11 10:37:41 +02:00
b37fe4cded update i3 2025-08-05 22:19:19 +02:00
cf34e15de2 fix: submodule paths were incorrect 2025-08-05 22:19:15 +02:00
30aa878adf fix: git modules url's weren't reflective of what they actually are 2025-08-05 22:19:15 +02:00
369cd2cd49 change projection settings to be better parameterised 2025-08-05 14:17:37 +02:00
8ef17d634d update nvim 2025-08-05 14:17:18 +02:00
84b9538547 make UTF-8 and LF uppercase 2025-08-02 01:28:53 +02:00
85123cc3cd add some extra languages around the C-based languages 2025-08-02 01:28:41 +02:00
147a26986a remove redundant indent_size=tab 2025-08-02 01:28:15 +02:00
7ee6cb61ae add comments 2025-08-02 01:28:03 +02:00
5a3dedb5eb update nvim 2025-08-02 01:01:07 +02:00
27f3e12eb2 add cs to the forcibly use category 2025-08-02 01:00:59 +02:00
5b9dd92c6f add a comment for a forces 4 spaces catagory 2025-08-02 01:00:44 +02:00
a68e286e1c correct definition order 2025-08-02 00:58:39 +02:00
24753d9d0c split apart the web languages into it's own definition 2025-08-02 00:54:31 +02:00
b990c56e44 remove markdown from the json/jsonc/css/scss column 2025-08-02 00:53:35 +02:00
680b94d2eb set tab width to 4 for those that were <4 2025-08-02 00:52:47 +02:00
5283050311 edit clang-format to be on-par with my current preferred style 2025-07-24 12:50:14 +02:00
d51ce2986f add notifications for audio (they're rubbish, but eh) 2025-07-21 14:38:29 +02:00
1bd89db726 move some desktop i3 behaviour into different shell scripts 2025-07-21 13:20:38 +02:00
9b51e31f1a make shell scripts more POSIX-compatible, and use tabs instead of spaces 2025-07-21 12:49:11 +02:00
aefe0e6dce we don't need to specify user 2025-07-18 11:07:17 +02:00
28877b9e9e remove include header warnings, as they're often incorrect 2025-07-18 11:06:43 +02:00
b34c71a440 add some clang-tidy options to clangd config 2025-07-18 11:06:13 +02:00
4178678640 add parameters to be able to fill the whole screen 2025-07-15 22:59:04 +02:00
1192fff9c6 modify parameters to fit within my monitor 2025-07-15 22:55:15 +02:00
0a18c01d69 parameterise the projection settings 2025-07-15 22:55:15 +02:00
84fad656ab set the output directory to static due to cronnie problems 2025-07-15 21:47:24 +02:00
5fed9922fb update submodules 2025-07-15 21:47:24 +02:00
8023ecebe9 make background image transparent 2025-07-14 15:58:01 +02:00
6ad8382023 convert is deprecated, use magick 2025-07-14 15:44:27 +02:00
cb80d0f1d8 add background removal 2025-07-14 13:58:00 +02:00
c9e06bfc28 update satalite-wp-update script to use the proper API ends 2025-07-14 13:56:38 +02:00
3a84c55afc update nvim 2025-07-14 11:43:38 +02:00
4041a9bd39 add jsonc to editorconfig 2025-07-14 11:41:56 +02:00
6ecd64652f change default tab_width to 8 2025-07-14 11:41:25 +02:00
05e375dd5b remove inconsistent tab widths form editorconfig 2025-07-14 11:41:11 +02:00
e8855a231d add gitea key to SSH_AUTH_SOCK 2025-07-14 11:40:51 +02:00
3e9446dc89 configure gitconfig to only use gpgSign on tags. 2025-07-07 15:36:11 +02:00
e52d797f42 update nvim 2025-07-03 14:08:18 +02:00
e124e07715 update clang format formatting rules to be up to par with my current preferences 2025-07-03 10:43:21 +02:00
2e82fc5ff4 strip end of line comments from clang-format 2025-07-03 10:07:31 +02:00
f8c8caa447 include xprofile 2025-07-03 10:02:47 +02:00
ba471b2ee5 remove localtmp 2025-07-03 10:02:36 +02:00
f79789fd27 write satalite connect script 2025-06-27 11:40:20 +02:00
51 changed files with 1024 additions and 428 deletions

View File

@@ -4,32 +4,56 @@ include "%L"
# greek alphabet small
<Multi_key> <a> <l> <p> : "α" U03B1 # GREEK SMALL LETTER ALPHA
<Multi_key> <b> <e> <t> : "β" U03B2 # GREEK SMALL LETTER BETA
<Multi_key> <g> <a> <m> : "γ" U03B3 # GREEK SMALL GAMMA
<Multi_key> <d> <e> <l> : "δ" U03B4 # GREEK SMALL DELTA
<Multi_key> <g> <a> <m> : "γ" U03B3 # GREEK SMALL LETTER GAMMA
<Multi_key> <d> <e> <l> : "δ" U03B4 # GREEK SMALL LETTER DELTA
<Multi_key> <e> <p> <s> : "ε" U03B5 # GREEK SMALL LETTER EPSILON
<Multi_key> <z> <e> <t> : "ζ" U03B6 # GREEK SMALL LETTER ZETA
<Multi_key> <e> <t> <a> : "η" U03B7 # GREEK SMALL LETTER ETA
<Multi_key> <t> <h> <e> : "θ" U03B8 # GREEK SMALL LETTER THETA
<Multi_key> <i> <o> <t> : "ι" U03B9 # GREEK SMALL LETTER IOTA
<Multi_key> <k> <a> <p> : "κ" U03BA # GREEK SMALL LETTER KAPPA
<Multi_key> <l> <a> <m> : "λ" U03BB # GREEK SMALL LETTER LAMBDA
<Multi_key> <m> <u> : "μ" U03BC # GREEK SMALL LETTER MU
<Multi_key> <n> <u> : "ν" U03BD # GREEK SMALL LETTER NU
<Multi_key> <x> <i> : "ξ" U03BE # GREEK SMALL LETTER XI
<Multi_key> <o> <m> <i> : "ο" U03BF # GREEK SMALL LETTER OMICRON
<Multi_key> <p> <i> : "π" U03C0 # GREEK SMALL LETTER PI
<Multi_key> <r> <h> <o> : "ρ" U03C1 # GREEK SMALL LETTER RHO
<Multi_key> <s> <i> <g> : "σ" U03C3 # GREEK SMALL LETTER SIGMA
<Multi_key> <t> <a> <u> : "τ" U03C4 # GREEK SMALL LETTER TAU
<Multi_key> <u> <p> <s> : "υ" U03C5 # GREEK SMALL LETTER UPSILON
<Multi_key> <p> <h> <i> : "φ" U03C6 # GREEK SMALL LETTER PHI
<Multi_key> <c> <h> <i> : "χ" U03C7 # GREEK SMALL LETTER CHI
<Multi_key> <p> <s> <i> : "ψ" U03C8 # GREEK SMALL LETTER PSI
<Multi_key> <o> <m> <e> : "ω" U02C9 # GREEK SMALL LETTER OMEGA
<Multi_key> <o> <m> <e> : "ω" U03C9 # GREEK SMALL LETTER OMEGA
# greek alphabet capital
<Multi_key> <A> <L> <P> : "Α" U0391 # GREEK CAPITAL LETTER ALPHA
<Multi_key> <B> <E> <T> : "Β" U0392 # GREEK CAPITAL LETTER BETA
<Multi_key> <G> <A> <M> : "Γ" U0393 # GREEK CAPITAL GAMMA
<Multi_key> <D> <E> <L> : "Δ" U0394 # GREEK CAPITAL DELTA
<Multi_key> <G> <A> <M> : "Γ" U0393 # GREEK CAPITAL LETTER GAMMA
<Multi_key> <D> <E> <L> : "Δ" U0394 # GREEK CAPITAL LETTER DELTA
<Multi_key> <E> <P> <S> : "Ε" U0395 # GREEK CAPITAL LETTER EPSILON
<Multi_key> <Z> <E> <T> : "Ζ" U0396 # GREEK CAPITAL LETTER ZETA
<Multi_key> <E> <T> <A> : "Η" U0397 # GREEK CAPITAL LETTER ETA
<Multi_key> <T> <H> <E> : "Θ" U0398 # GREEK CAPITAL LETTER THETA
<Multi_key> <M> <U> : "Μ" U039C # GREEK SMALL LETTER MU
<Multi_key> <I> <O> <T> : "Ι" U0399 # GREEK CAPITAL LETTER IOTA
<Multi_key> <K> <A> <P> : "Κ" U039A # GREEK CAPITAL LETTER KAPPA
<Multi_key> <L> <A> <M> : "Λ" U039B # GREEK CAPITAL LETTER LAMBDA
<Multi_key> <M> <U> : "Μ" U039C # GREEK CAPITAL LETTER MU
<Multi_key> <N> <U> : "Ν" U039D # GREEK CAPITAL LETTER NU
<Multi_key> <X> <I> : "Ξ" U039E # GREEK CAPITAL LETTER XI
<Multi_key> <O> <M> <I> : "Ο" U039F # GREEK CAPITAL LETTER OMICRON
<Multi_key> <P> <I> : "∏" U03A0 # GREEK CAPITAL LETTER PI
<Multi_key> <R> <H> <O> : "Ρ" U03A1 # GREEK CAPITAL LETTER RHO
<Multi_key> <S> <I> <G> : "∑" U03A3 # GREEK CAPITAL LETTER SIGMA
<Multi_key> <T> <A> <U> : "Τ" U03A4 # GREEK CAPITAL LETTER TAU
<Multi_key> <U> <P> <S> : "Υ" U03A5 # GREEK CAPITAL LETTER UPSILON
<Multi_key> <P> <H> <I> : "Φ" U03A6 # GREEK CAPITAL LETTER PHI
<Multi_key> <C> <H> <I> : "Χ" U0000 # GREEK CAPITAL LETTER CHI
<Multi_key> <P> <S> <I> : "Ψ" U03A8 # GREEK CAPITAL LETTER PSI
<Multi_key> <O> <M> <E> : "Ω" U03A9 # GREEK CAPITAL LETTER OMEGA
# misc mathematical symbols
# misc mathematical/scientific symbols
<Multi_key> <i> <n> <t> : "∫" U222B # INTEGRAL
<Multi_key> <s> <q> <r> <t> : "√" U221A # SQUARE ROOT
<Multi_key> <asciitilde> <equal> : "≈" U2248 # ALMOST EQUAL TO
@@ -39,6 +63,7 @@ include "%L"
<Multi_key> <r> <c> <e> : "⌉" U2309 # RIGHT CEILING
<Multi_key> <l> <f> <l> : "⌊" U230A # LEFT FLOOR
<Multi_key> <r> <f> <l> : "⌋" U230B # RIGHT FLOOR
<Multi_key> <equal> <equal> : "≡" U2261 # IDENTICAL TO
# superscript
<Multi_key> <asciicircum> <2> : "²" U00B2 # SUPERSCRIPT TWO
@@ -104,5 +129,23 @@ include "%L"
<Multi_key> <underscore> <t> : "ₜ" U209C # LATIN SUBSCRIPT SMALL LETTER T
<Multi_key> <underscore> <j> : "ⱼ" U2C7C # LATIN SUBSCRIPT SMALL LETTER J
# roman numerals
<Multi_key> <r> <1> : "" U2160 # ROMAN NUMERAL ONE
<Multi_key> <r> <2> : "Ⅱ" U2161 # ROMAN NUMERAL TWO
<Multi_key> <r> <3> : "Ⅲ" U2162 # ROMAN NUMERAL THREE
<Multi_key> <r> <4> : "Ⅳ" U2163 # ROMAN NUMERAL FOUR
<Multi_key> <r> <5> : "" U2164 # ROMAN NUMERAL FIVE
<Multi_key> <r> <6> : "Ⅵ" U2165 # ROMAN NUMERAL SIX
<Multi_key> <r> <7> : "Ⅶ" U2166 # ROMAN NUMERAL SEVEN
<Multi_key> <r> <8> : "Ⅷ" U2167 # ROMAN NUMERAL EIGHT
<Multi_key> <r> <9> : "Ⅸ" U2168 # ROMAN NUMERAL NINE
<Multi_key> <r> <0> : "" U2169 # ROMAN NUMERAL TEN
<Multi_key> <r> <minus> : "Ⅺ" U216A # ROMAN NUMERAL ELEVEN
<Multi_key> <r> <equal> : "Ⅻ" U216B # ROMAN NUMERAL TWELVE
<Multi_key> <period> <equal> : "⋅" U22C5 # DOT OPERATOR
<Multi_key> <asterisk> <asterisk> : "•" U2219 # BULLET
<Multi_key> <space> <space> : "\x09" U0009 # CHARACTER TABULATION
<Multi_key> <s> <h> <r> <u> <g> : "¯\_(ツ)_/¯"

42
.bash_aliases Normal file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
#
# ~/.bash_aliases
# this file is sourced in ~/.bashrc and defines aliases used by the shell.
#
# replace some default tools with different ones
alias grep='rg'
alias ls='eza -Abhg --colour=auto'
# set default options
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias diff='diff --color'
alias info='info --vi-keys'
alias make='make -j'
alias ip='ip -c'
# aliases to avoid mistakes
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -I'
# aliases for quitting
alias :qa='exit'
alias :q='exit'
alias qa='exit'
alias q='exit'
alias quit='exit'
# alternate versions of writing the same thing
alias lls='ls -l'
alias ll='ls -l'
# aliases basically for things that I am too lazy to type fully
alias py3='python3'
alias batman='bat -l man'
alias icat='kitten icat'
alias ..='cd ..'
alias ....='cd ../..'
alias ......='cd ../../..'
alias ........='cd ../../../..'

View File

@@ -1,4 +1,4 @@
# shellcheck shell=bash
#!/bin/sh
#
# ~/.bash_logout
# sourced when an interactive login shell exits, or a non-interactive login shell executes `exit`

View File

@@ -1,4 +1,4 @@
# shellcheck shell=bash
#!/bin/sh
# shellcheck disable=1091
#
# ~/.bash_profile
@@ -10,10 +10,10 @@ export XDG_CONFIG_HOME="$HOME/etc" # configuration files are stored (defaul
export XDG_DATA_HOME="$HOME/usr/share" # data files are stored (default: ~/.local/share)
export XDG_BIN_HOME="$HOME/usr/bin" # binary executable files, not within the specification, but added for consistency
export XDG_STATE_HOME="$HOME/var/lib" # state data that should persist between (application) restarts, but not important enough to be stored in XDG_DATA_HOME (default: ~/.local/state)
export XDG_CACHE_HOME="$HOME/var/cache" # TODO: comment
export XDG_CACHE_HOME="$HOME/var/cache" # user-specific non-essential (cached) data.
export PATH="$XDG_BIN_HOME:$PATH" # add our bin in front of PATH, making it take precedence
if which nvim 1>/dev/null; then
if command -v nvim >/dev/null; then
export EDITOR=nvim # use neovim as an editor
export VISUAL=nvim # use neovim for visual-based editors
export MANPAGER='nvim +Man!' # use neovim as a manual pager
@@ -22,14 +22,17 @@ fi
# coloured GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# # export Microsoft's bullshit outta here
# Microsoft bullshit
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export VCPKG_DISABLE_METRICS=1
export VCPKG_ROOT="$XDG_DATA_HOME/vcpkg"
export PATH+=":$VCPKG_ROOT"
export PATH="$PATH:$VCPKG_ROOT"
# if executing interactively
# execute .bashrc in the current login context
[[ $- != *i* ]] && return
[[ -z ${PS1-} ]] && retrun
[[ -f $HOME/.bashrc ]] && . "$HOME/.bashrc"
case $- in
*i*) ;;
*) return ;;
esac
[ -z "${PS1-}" ] && return
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"

129
.bashrc
View File

@@ -1,107 +1,78 @@
# shellcheck shell=bash
# shellcheck disable=SC1090,SC1091
#!/bin/bash
# shellcheck disable=SC1091,SC2155
#
# ~/.bashrc
# sourced upon launch of an interactive shell, which isn't a login shell has been executed
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
[[ -z "${PS1-}" ]] && return
# wrapper for lazily loading __git_ps1 whenever it is actually needed
_lazy_git_ps1() {
if [[ -z $__GIT_PROMPT_SOURCED ]]; then
. /usr/share/bash-completion/completions/git &>/dev/null
. /usr/share/git/completion/git-prompt.sh &>/dev/null
if [ -d .git ] || git worktree list &>/dev/null; then
export __GIT_PROMPT_SOURCED=1
__git_ps1 "$@"
fi
else
__git_ps1 "$@"
fi
}
case $- in
*i*) ;;
*) return ;;
esac
[ -z "${PS1-}" ] && return
# lazy loading of ssh agents
_lazy_ssh() {
if [[ -z $SSH_AUTH_SOCK ]]; then
eval "$(ssh-agent -s)" &>/dev/null
ssh-add "$HOME/.ssh/github" &>/dev/null
ssh-add "$HOME/.ssh/admin@homeserver" &>/dev/null
if [ -z "$SSH_AUTH_SOCK" ]; then
eval "$(ssh-agent -s)" >/dev/null
ssh-add "$HOME/.ssh/github" >/dev/null
ssh-add "$HOME/.ssh/gitea" >/dev/null
ssh-add "$HOME/.ssh/admin@homeserver" >/dev/null
fi
}
# aliases so the function is called beforehand
alias ssh='_lazy_ssh; ssh'
alias sudo='_lazy_ssh; sudo'
# alias to colourize make output
# alias to colourise make output
_make() {
make "$@" 2> >(sed -E \
-e "s/^([Mm]akefile:[0-9]+:.*)/\x1b[33m\1\x1b[0m/" \
-e "s/^.*error.*$/\x1b[31m&\x1b[0m/I" >&2)
}
alias make='_make'
#
# envs
#
# set PS1
PS1=
PS1="$PS1"'\[\033[01;35m\]\u@\h' # user@host
PS1="$PS1"'\[\033[00m\]:' # separator
PS1="$PS1"'\[\033[01;34m\]\w' # working directory
PS1="$PS1"'\[\033[01;93m\]$(_lazy_git_ps1)' # github branch
PS1="$PS1"'\[\033[00m\]\$ ' # shell sign
# lazily loads the git utilities, to prevent slowdowns
__lazy_git_ps1() {
if [ -z "$__GIT_PROMPT_SOURCED__" ]; then
if [ -d .git ] || git worktree list &>/dev/null; then
. /usr/share/bash-completion/completions/git &>/dev/null
. /usr/share/git/completion/git-prompt.sh &>/dev/null
export __GIT_PROMPT_SOURCED__=1
__git_ps1
fi
else __git_ps1; fi
return 0
}
# regenerates the PS1 prompt
__regenprompt() {
local err=$? # acquire the error code of the last executed command
local git=$(__lazy_git_ps1)
if [ $err -ne 0 ]; then
err="\[\033[$((COLUMNS - 4))G\033[01;31m\]${err}\[\033[0G\]"
else unset err; fi
PS1="$err" # error code
PS1="$PS1\[\033[?25h\]" # show cursor
PS1="$PS1\[\033[01;35m\]\u@\h" # user@host
PS1="$PS1\[\033[00m\]:" # separator
PS1="$PS1\[\033[01;34m\]\w" # working directory
PS1="$PS1\[\033[01;93m\]${git}" # git branch
PS1="$PS1\[\033[00m\]\$ " # shell sign
}
PROMPT_COMMAND=__regenprompt
# history settings
HISTSIZE=2048
HISTFILESIZE=2048
HISTCONTROL=erasedups:ignoredups:ignorespace
HISTIGNORE='exit*:clear*:\:*:echo*'
#
# bash completion
#
. /home/user/.local/share/vcpkg/scripts/vcpkg_completion.bash &>/dev/null # fucking vcpkg
shopt -s checkwinsize # check the window size after each command (and if necessary, the values of LINES and COLUMNS)
shopt -s globstar # enable globstar (**/*)
# check the window size after each command (and if necessary, the values of LINES and COLUMNS)
shopt -s checkwinsize
#
# aliases
#
# aliases for colour
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias ls='eza -Abhg --colour=auto'
alias grep='rg'
alias diff='diff --color'
alias ip='ip -c'
# application aliases
alias ncdu='ncdu --color=dark -t 16'
alias hyfetch='hyfetch --ascii-file $XDG_CONFIG_HOME/hyfetch-ascii --config-file $XDG_CONFIG_HOME/hyfetch.json'
alias bat='bat --wrap never --tabs 4 --theme gruvbox-dark'
alias make='_make -j'
# aliases to avoid mistakes
alias cp='cp -i'
alias mv='mv -i'
#alias rm='rm -i'
alias :qa='exit'
alias qa='exit'
alias :q='exit'
alias q='exit'
alias py3='python3'
alias batman='bat -l man'
# quality of life short-hands
alias ..='cd ..'
alias ....='cd ../..'
alias ......='cd ../../..'
alias ........='cd ../../../..'
alias ll="ls -l"
[ -f "$HOME/.bash_aliases" ] && . .bash_aliases
# cute lil hyfetch :3
[[ $TERM == "xterm-kitty" ]] && hyfetch
[ "$TERM" == "xterm-kitty" ] && fastfetch

View File

@@ -2,35 +2,38 @@
# ---------------------------
# general style settings
# ---------------------------
BasedOnStyle: '' # (LLVM,Google,Chromium,Mozilla,WebKit,Microsoft,GNU,InheritParentConfig)
Standard: Auto # automatically detect the language version
ColumnLimit: 0 # 0: disable column limit
LineEnding: LF # use LF line endings
UseTab: ForContinuationAndIndentation # (Never,ForIndentation,ForContinuationAndIndentation,Always)
TabWidth: 4 # recommended to set this equal to IndentWidth
IndentWidth: 4 # how wide each indent is
ContinuationIndentWidth: 4 # width for a line continuation
BasedOnStyle: GNU
Standard: Auto
ColumnLimit: 0
LineEnding: LF
UseTab: ForContinuationAndIndentation
TabWidth: 8
IndentWidth: 8
ContinuationIndentWidth: 8
AccessModifierOffset: -4
# ---------------------------
# alignment options
# ---------------------------
AlignAfterOpenBracket: DontAlign # (Align,DontAlign,AlwaysBreak,BlockIndent)
AlignArrayOfStructures: Left # (Left,Right,None)
AlignConsecutiveMacros: AcrossEmptyLines # (None,Consecutive,AcrossEmptyLines,AcrossComments,AcrossEmptyLinesAndComments)
AlignConsecutiveAssignments: None # (None,Consecutive,AcrossEmptyLines,AcrossComments,AcrossEmptyLinesAndComments)
AlignConsecutiveBitFields: AcrossEmptyLines # (None,Consecutive,AcrossEmptyLines,AcrossComments,AcrossEmptyLinesAndComments)
AlignConsecutiveDeclarations: None # (None,Consecutive,AcrossEmptyLines,AcrossComments,AcrossEmptyLinesAndComments)
AlignEscapedNewlines: Left # (DontAlign,Left,LeftWithLastLine,Right)
AlignOperands: DontAlign # (DontAlign,Align,AlignAfterOperator)
AlignTrailingComments: Always # (Leave,Always,Never)
AlignAfterOpenBracket: DontAlign
AlignOperands: DontAlign
AlignTrailingComments: true
AlignConsecutiveMacros: AcrossEmptyLines
AlignEscapedNewlines: Left
AlignArrayOfStructures: Left
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveBitFields: AcrossEmptyLines
AlignConsecutiveDeclarations: Consecutive
AlignConsecutiveShortCaseStatements:
Enabled: true
# ---------------------------
# short constructs on a single line
# ---------------------------
AllowShortBlocksOnASingleLine: Always # (Never,Empty,Always)
AllowShortFunctionsOnASingleLine: All # (None,InlineOnly,Empty,All)
AllowShortLambdasOnASingleLine: All # (None,Empty,Inline,All)
AllowShortIfStatementsOnASingleLine: AllIfsAndElse # (Never,WithoutElse,OnlyFirstIf,AllIfsAndElse)
AllowShortBlocksOnASingleLine: Always
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
@@ -38,26 +41,24 @@ AllowShortLoopsOnASingleLine: true
# ---------------------------
# break and wrapping options
# ---------------------------
AlwaysBreakBeforeMultilineStrings: true # when defining multi-line strings, linebreak should be inserted
BreakAfterReturnType: Automatic # is decided by PenaltyReturnTypeOnItsOwnLine
BreakTemplateDeclarations: MultiLine # (Leave,No,MultiLine,Yes)
BreakBeforeBinaryOperators: None # (None,NonAssignment,All)
BreakBeforeConceptDeclarations: Never # (Never,Allowed,Always)
BreakBeforeBraces: Attach # (Attach,Linux,Mozilla,Stroustrup,Allman,Whitesmiths,GNU,WebKit,Custom)
BreakInheritanceList: BeforeColon # (BeforeColon,BeforeComma,AfterColon)
BreakConstructorInitializers: BeforeColon # (BeforeColon,BeforeComma,AfterColon)
BreakBeforeTernaryOperators: true
BreakStringLiterals: true
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakAfterReturnType: Automatic
BreakTemplateDeclarations: false
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Never
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: false
BreakStringLiterals: false
# ---------------------------
# brace wrapping configuration
# ---------------------------
BraceWrapping:
AfterControlStatement: Never # (Never,MultiLine,Always)
AfterControlStatement: Never
AfterCaseLabel: false
AfterClass: false
AfterEnum: false
AfterFunction: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
@@ -68,104 +69,73 @@ BraceWrapping:
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
# ---------------------------
# constructor initializer and parameter packing options
# ---------------------------
ConstructorInitializerIndentWidth: 4
PackConstructorInitializers: BinPack # (Never,BinPack,CurrentLine,NextLine,NextLineOnly)
BinPackParameters: true # use bin-packing for paramter lists
BinPackArguments: false # false: function calls either on one line or one per line
ConstructorInitializerIndentWidth: 8
PackConstructorInitializers: NextLine
BinPackParameters: true
BinPackArguments: true
# ---------------------------
# pointer alignment
# ---------------------------
DerivePointerAlignment: false # automatically detect pointer alignment
PointerAlignment: Right # (Left,Right,Middle)
ReferenceAlignment: Pointer # (Pointer,Left,Right,Middle)
QualifierAlignment: Right # (Leave,Left,Right,Custom)
DerivePointerAlignment: false
PointerAlignment: Right
ReferenceAlignment: Pointer
QualifierAlignment: Left
# ---------------------------
# include settings and sorting
# ---------------------------
IncludeIsMainSourceRegex: '' # only [*.{c,cc,cpp,c++,cxx,m,mm}] are considered to be "main"
IncludeIsMainRegex: '([-_](test|unittest))?$' # regex used for identifying an include as "main", to assign catagory 0
IncludeBlocks: Regroup # (Preserve,Merge,Regroup)
IncludeIsMainSourceRegex: ''
IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<.*\.h>' # system headers
- Regex: '^<.*\.h>'
Priority: 2
SortPriority: 0
CaseSensitive: true
- Regex: '^".*' # custom headers
- Regex: '^".*'
Priority: 3
SortPriority: 0
CaseSensitive: true
# ---------------------------
# macro and language-specific settings
# ---------------------------
AttributeMacros:
- __capability
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
WhitespaceSensitiveMacros:
- STRINGIZE
- PP_STRINGIZE
- BOOST_PP_STRINGIZE
- NS_SWIFT_NAME
- CF_SWIFT_NAME
# ---------------------------
# additional formatting and sorting details
# ---------------------------
FixNamespaceComments: false
MaxEmptyLinesToKeep: 2
ReflowComments: true
RemoveBracesLLVM: false
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
EmptyLineAfterAccessModifier: Never # (Never,Leave,Always)
EmptyLineBeforeAccessModifier: LogicalBlock # (Never,Leave,LogicalBlock,Always)
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true # adds comments at namespace delimiters
MaxEmptyLinesToKeep: 4 # what the maximum amount of empty lines that we're allowed to keep
ReflowComments: true # reflow comment text to match column limits
RemoveBracesLLVM: false # don't automatically remove braces
SeparateDefinitionBlocks: Leave # (Leave,Always.Never)
ShortNamespaceLines: 1 # how many lines a namespaces can be to be regarded "short"
SortIncludes: CaseSensitive # (Never,CaseSensitive,CaseInsensitive)
SortJavaStaticImport: Before # (After,Before)
SortUsingDeclarations: LexicographicNumeric # (Never,Lexicographic,LexicographicNumeric)
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: false
# ---------------------------
# spacing options
# ---------------------------
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
Cpp11BracedListStyle: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements # (ControlStatements,ControlStatementsExceptControlMacros,NonEmptyParentheses,Always,Custom)
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
BeforeNonEmptyParentheses: false
SpaceAroundPointerQualifiers: Default # (Default,Before,After,Both) recommend to use Default and let PointerAlignment decide
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: true
SpacesInParens: Custom
@@ -175,16 +145,28 @@ SpacesInParensOptions:
InCStyleCasts: false
Other: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never # (Never,Always,Leave)
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: 1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
BitFieldColonSpacing: Both # (Both,None,Before,After)
BitFieldColonSpacing: Both
# ---------------------------
# penalty settings
# ---------------------------
PenaltyBreakAssignment: 10
PenaltyBreakBeforeFirstCallParameter: 30
PenaltyBreakComment: 10
PenaltyBreakFirstLessLess: 0
PenaltyBreakString: 10
PenaltyExcessCharacter: 100
PenaltyReturnTypeOnItsOwnLine: 60
# ---------------------------
# indentation details
@@ -193,19 +175,8 @@ IndentAccessModifiers: false
IndentCaseLabels: false
IndentCaseBlocks: false
IndentGotoLabels: false
IndentExternBlock: AfterExternBlock # (AfterExternBlock,NoIndent,Indent)
IndentExternBlock: AfterExternBlock
IndentRequiresClause: false
IndentPPDirectives: None # preprocessor indent style (None,AfterHash,BeforeHash)
IndentPPDirectives: None
PPIndentWidth: 1
---
# ---------------------------
# Objective-C specific settings
# ---------------------------
Language: ObjC
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
...

View File

@@ -15,6 +15,7 @@ Checks:
- '-bugprone-switch-missing-default-case'
- '-bugprone-easily-swappable-parameters'
- '-clang-analyzer-security.insecureAPI.*'
- '-misc-include-cleaner'
WarningsAsErrors: ''
HeaderFileExtensions:
- ''
@@ -29,7 +30,6 @@ ImplementationFileExtensions:
- cxx
HeaderFilterRegex: ''
FormatStyle: none
User: user
CheckOptions:
cert-dcl16-c.NewSuffixes: 'L;LL;LU;LLU'
cert-err33-c.AllowCastToVoid: 'true'

View File

@@ -1,29 +1,38 @@
# specifies that the editor needn't look further, since this is the furthest
# .editorconfig file
root = true
# global settings, good/sane defaults for any file.
# where we follow UNIX formatted plain text, and use tabs over spaces
[*]
charset = utf-8
end_of_line = lf
charset = UTF-8
end_of_line = LF
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab
indent_size = tab
tab_width = 4
[*.{sh,bash,bashrc,bash_profile,md,json,css,scss}]
tab_width = 2
[{makefile,Makefile}]
tab_width = 2
[*.{c,cpp,h,hpp}]
tab_width = 8
[*.{py,rs}]
[*.{S,s,asm}]
tab_width = 8
[*.{c,h,cpp,hpp}]
tab_width = 8
[*.{glsl}]
tab_width = 8
# forces the usage of 4 spaces
[*.{py,rs,cs}]
indent_style = space
indent_size = tab
tab_width = 4
[*.{json,jsonc}]
tab_width = 8
[*.{yaml,toml}]
indent_style = space
indent_size = tab
tab_width = 2
tab_width = 4
[*.{html,css,scss}]
tab_width = 8

View File

@@ -2,7 +2,7 @@
name = Quinn
email = quinnthepigeon@proton.me
signingkey = 47378BDBE5E29830
[commit]
[tag]
gpgSign = true
[init]
defaultBranch = main

6
.gitmodules vendored
View File

@@ -1,6 +0,0 @@
[submodule ".config/nvim"]
path = .config/nvim
url = git@github.com:thepigeongenerator/nvim-conf.git
[submodule ".config/i3"]
path = .config/i3
url = git@github.com:thepigeongenerator/i3-conf.git

View File

@@ -1,19 +0,0 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/furry/.gtkrc-2.0.mine"
gtk-theme-name="Gruvbox-Dark"
gtk-icon-theme-name="Gruvbox-Plus-Dark"
gtk-font-name="NotoSans Nerd Font 11"
gtk-cursor-theme-name="Breeze"
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="hintfull"
gtk-xft-rgba="none"

View File

@@ -1,3 +1,5 @@
"\e[A": history-search-backward
"\e[B": history-search-forward
set completion-ignore-case on
set colored-completion-prefix on

2
.nv/.gitignore vendored
View File

@@ -1,2 +0,0 @@
# do not track NVIDIA cache
/ComputeCache/

View File

@@ -1,45 +0,0 @@
{
"rules": [
{
"pattern": {
"feature": "true",
"matches": "java"
},
"profile": "games"
},
{
"pattern": {
"feature": "true",
"matches": "steam"
},
"profile": "games"
}
],
"profiles": [
{
"name": "games",
"settings": [
{
"key": "GLSyncToVblank",
"value": true
},
{
"key": "GLThreadedOptimizations",
"value": true
},
{
"key": "GLShaderDiskCache",
"value": true
},
{
"key": "GLGSYNCAllowed",
"value": true
},
{
"key": "GLAllowFXAAUsage",
"value": true
}
]
}
]
}

View File

@@ -1,45 +0,0 @@
{
"rules": [
{
"pattern": {
"feature": "true",
"matches": "Java"
},
"profile": "games"
},
{
"pattern": {
"feature": "true",
"matches": "steam"
},
"profile": "games"
}
],
"profiles": [
{
"name": "games",
"settings": [
{
"key": "GLSyncToVblank",
"value": true
},
{
"key": "GLThreadedOptimizations",
"value": true
},
{
"key": "GLShaderDiskCache",
"value": true
},
{
"key": "GLGSYNCAllowed",
"value": true
},
{
"key": "GLAllowFXAAUsage",
"value": true
}
]
}
]
}

View File

@@ -1,21 +0,0 @@
#
# /home/user/.nvidia-settings-rc
#
# Configuration file for nvidia-settings - the NVIDIA Settings utility
# Generated on Tue Apr 22 22:08:51 2025
#
# ConfigProperties:
RcFileLocale = C
DisplayStatusBar = Yes
SliderTextEntries = Yes
IncludeDisplayNameInConfigFile = No
UpdateRulesOnProfileNameChange = Yes
Timer = PowerMizer_Monitor_(GPU_0),Yes,1000
Timer = Thermal_Monitor_(GPU_0),Yes,1000
Timer = Memory_Used_(GPU_0),Yes,3000
# Attributes:
[GPU:0]/GPUPowerMizerMode=2

View File

@@ -9,10 +9,15 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
unset f
fi
#xrandr --setprovideroutputsource modesetting NVIDIA-G0 & # set NVIDIA as primary GPU
xrandr --setprivideroutputsource modesetting NVIDIA-0
xrandr --auto
nvidia-settings -l # apply nvidia-settings
export __GL_YIELD="USLEEP" # fix for awful diagonal screen tear
export __GL_THREADED_OPTIMIZATIONS=0 # allows gamescope to execute
export __GL_SYNC_TO_VBLANK=0 # disable vsync in driver, to aid with some screen tearing
#export __GL_MaxFramesAllowed=1 # can reduce lag and maybe stabilise things
#export __GL_NextGenCompiler=0 # legacy option, can help with shader compilation
numlockx on # ensure numlock is on before setting keymap

4
.xprofile Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
# shellcheck disable=1091
[[ -f $HOME/.bash_profile ]] && source "$HOME/.bash_profile"

View File

@@ -1,6 +1,7 @@
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04
#-P ubuntu-24.04-arm=catthehacker/ubuntu:act-latest
#-P windows-latest=catthehacker/ubuntu:act-latest
#-P windows-11-arm=catthehacker/ubuntu:act-latest
#-P macos-latest=catthehacker/ubuntu:act-latest
--artifact-server-path $PWD/.act/artifacts
--cache-server-path=$PWD/.act/cache

View File

@@ -5,5 +5,18 @@ Index:
Background: Build
StandardLibrary: true
Diagnostics:
UnusedIncludes: Strict
MissingIncludes: Strict
UnusedIncludes: None
MissingIncludes: None
ClangTidy:
FastCheckFilter: Strict
Add:
- clang-analyzer*
- bugprone*
- misc*
- performance*
Remove:
- bugprone-narrowing-conversions
- bugprone-integer-division
- bugprone-implicit-widening-of-multiplication-result
- bugprone-switch-missing-default-case
- bugprone-easily-swappable-parameters

View File

@@ -0,0 +1,19 @@
$1 ▄
▄█▄
▄███▄
▄█████▄
▄███████▄
$2 ▄ ▀▀██████▄
▄██▄▄ ▀█████▄
▄█████████████▄
▄███████████████▄
$3 ▄█████████████████▄
▄███████████████████▄
▄█████████▀▀▀▀████████▄
▄████████▀ ▀███████▄
▄█████████ ████▀▀██▄
$4 ▄██████████ █████▄▄▄
▄██████████▀ ▀█████████▄
▄██████▀▀▀ ▀▀██████▄
▄███▀▀ ▀▀███▄

View File

@@ -1,18 +1,18 @@
$1
▟█▙
▟███▙
▟█████▙
▟███████▙
▂▔▀▜██████▙
$2 ▂▔▀▜██████▙
▟██▅▂▝▜█████▙
▟█████████████▙
▟███████████████▙
▟█████████████████▙
$3 ▟█████████████████▙
▟███████████████████▙
▟█████████▛▀▀▜████████▙
▟████████▛ ▜███████▙
▟█████████ ████████▙
▟██████████ █████▆▅▄▃▂
$4 ▟██████████ █████▆▅▄▃▂
▟██████████▛ ▜█████████▙
▟██████▀▀▀ ▀▀██████▙
▟███▀▘ ▝▀███▙

View File

@@ -1,5 +1,15 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "$XDG_CONFIG_HOME/fastfetch/arch-custom.txt",
"type": "file",
"color": {
"1": "light_yellow",
"2": "light_white",
"3": "bright_magenta",
"4": "black"
}
},
"modules": [
"title",
"separator",
@@ -26,7 +36,9 @@
"cursor",
"icons",
"theme",
"font",
"terminal",
"terminalfont",
"locale"
],
"display": {

View File

@@ -1,16 +0,0 @@
{
"preset": "nonbinary",
"mode": "rgb",
"light_dark": "dark",
"lightness": 0.3,
"color_align": {
"mode": "horizontal",
"custom_colors": [],
"fore_back": null
},
"backend": "fastfetch",
"args": null,
"distro": null,
"pride_month_shown": [],
"pride_month_disable": false
}

1
etc/i3

Submodule etc/i3 deleted from 6b85cd340e

View File

@@ -10,6 +10,7 @@ background_opacity 0.90
# BEGIN_KITTY_FONTS
font_family family="JetBrainsMonoNL Nerd Font Mono"
font_size 11.0
bold_font auto
italic_font auto
bold_italic_font auto

View File

@@ -10,8 +10,8 @@ gui:
showCommandLog: false
git:
fetchAll: true
paging:
colorArg: always
pagers:
- colorArg: always
pager: diff-so-fancy
useConfig: false
overrideGpg: true

1
etc/lf/colors Symbolic link
View File

@@ -0,0 +1 @@
colours

168
etc/lf/colours Normal file
View File

@@ -0,0 +1,168 @@
# vim:ft=dircolors
# (This is not a dircolors file but it helps to highlight colors and comments)
#
# Set the colours to match EZA's default colours.
#
# file types
fi 00 # FILE
di 34;01 # DIR
ln 36 # LINK
pi 33 # FIFO
so 31;01 # SOCK
bd 33;01 # BLK
cd 33;01 # CHR
or 31 # ORPHAN
su 31;04 # SETUID
sg 33;04 # SETGID
tw 34;04 # STICKY_OTHER_WRITABLE
ow 34 # OTHER_WRITABLE
st 34;04 # STICKY
ex 32;01 # EXEC
# build files all lowercase
*makefile 33;04
*cmakelists.txt 33;04
*cargo.toml 33;04
*package.json 33;04
# build files case sensitive variation
*Makefile 33;04
*CMakeLists.txt 33;04
*Cargo.toml 33;04
# cryptographic files
*.pub 33
*.asc 33
*.enc 33
*.p12 33
# documents
*.pdf 02;32
*.docx 02;32
*.doc 02;32
*.dvi 02;32
# TODO: doesn't do anything?
# temporary files
*~ 02
*.tmp 02
*.swp 02
# archives or compressed
*.tar 31
*.tgz 31
*.arc 31
*.arj 31
*.taz 31
*.lha 31
*.lz4 31
*.lzh 31
*.lzma 31
*.tlz 31
*.txz 31
*.tzo 31
*.t7z 31
*.zip 31
*.z 31
*.dz 31
*.gz 31
*.lrz 31
*.lz 31
*.lzo 31
*.xz 31
*.zst 31
*.tzst 31
*.bz2 31
*.bz 31
*.tbz 31
*.tbz2 31
*.tz 31
*.deb 31
*.rpm 31
*.jar 31
*.war 31
*.ear 31
*.sar 31
*.rar 31
*.alz 31
*.ace 31
*.zoo 31
*.cpio 31
*.7z 31
*.rz 31
*.cab 31
*.wim 31
*.swm 31
*.dwm 31
*.esd 31
# image formats
*.jpg 35
*.jpeg 35
*.mjpg 35
*.mjpeg 35
*.gif 35
*.bmp 35
*.pbm 35
*.pgm 35
*.ppm 35
*.tga 35
*.xbm 35
*.xpm 35
*.tif 35
*.tiff 35
*.png 35
*.svg 35
*.svgz 35
*.mng 35
*.pcx 35
*.mov 35
*.mpg 35
*.mpeg 35
*.m2v 35
*.mkv 35
*.webm 35
*.ogm 35
*.mp4 35
*.m4v 35
*.mp4v 35
*.vob 35
*.qt 35
*.nuv 35
*.wmv 35
*.asf 35
*.rm 35
*.rmvb 35
*.flc 35
*.avi 35
*.fli 35
*.flv 35
*.gl 35
*.dl 35
*.xcf 35
*.xwd 35
*.yuv 35
*.cgm 35
*.emf 35
*.ogv 35
*.ogx 35
# audio formats
*.aac 36
*.au 36
*.flac 36
*.m4a 36
*.mid 36
*.midi 36
*.mka 36
*.mp3 36
*.mpc 36
*.ogg 36
*.ra 36
*.wav 36
*.oga 36
*.opus 36
*.spx 36
*.xspf 36

342
etc/lf/icons Normal file
View File

@@ -0,0 +1,342 @@
# vim:ft=conf
# file types (with matching order)
ln 󰌹 # LINK
or 󰌺 # ORPHAN
tw t # STICKY_OTHER_WRITABLE
ow  # OTHER_WRITABLE
st t # STICKY
di  # DIR
pi p # FIFO
so s # SOCK
bd b # BLK
cd c # CHR
su u # SETUID
sg g # SETGID
ex  # EXEC
fi  # FILE
# file extensions (vim-devicons)
*.styl 
*.sass 
*.scss 
*.htm 
*.html 
*.slim 
*.haml 
*.ejs 
*.css 
*.less 
*.md 
*.mdx 
*.markdown 
*.rmd 
*.json 
*.webmanifest 
*.js 
*.mjs 
*.jsx 
*.rb 
*.gemspec 
*.rake 
*.php 
*.py 
*.pyc 
*.pyo 
*.pyd 
*.coffee 
*.mustache 
*.hbs 
*.conf 
*.ini 
*.yml 
*.yaml 
*.toml 
*.bat 
*.mk 
*.jpg 
*.jpeg 
*.bmp 
*.png 
*.webp 
*.gif 
*.ico 
*.twig 
*.cpp 
*.c++ 
*.cxx 
*.cc 
*.cp 
*.c 
*.cs 󰌛
*.h 
*.hh 
*.hpp 
*.hxx 
*.hs 
*.lhs 
*.nix 
*.lua 
*.java 
*.sh 
*.fish 
*.bash 
*.zsh 
*.ksh 
*.csh 
*.awk 
*.ps1 
*.ml λ
*.mli λ
*.diff 
*.db 
*.sql 
*.dump 
*.clj 
*.cljc 
*.cljs 
*.edn 
*.scala 
*.go 
*.dart 
*.xul 
*.sln 
*.suo 
*.pl 
*.pm 
*.t 
*.rss 
'*.f#' 
*.fsscript 
*.fsx 
*.fs 
*.fsi 
*.rs 
*.rlib 
*.d 
*.erl 
*.hrl 
*.ex 
*.exs 
*.eex 
*.leex 
*.heex 
*.vim 
*.ai 
*.psd 
*.psb 
*.ts 
*.tsx 
*.jl 
*.pp 
*.vue 
*.elm 
*.swift 
*.xcplayground 
*.tex 󰙩
*.r 󰟔
*.rproj 󰗆
*.sol 󰡪
*.pem 
# file names (vim-devicons) (case-insensitive not supported in lf)
*gruntfile.coffee 
*gruntfile.js 
*gruntfile.ls 
*gulpfile.coffee 
*gulpfile.js 
*gulpfile.ls 
*mix.lock 
*dropbox 
*.ds_store 
*.gitconfig 
*.gitignore 
*.gitattributes 
*.gitlab-ci.yml 
*.bashrc 
*.zshrc 
*.zshenv 
*.zprofile 
*.vimrc 
*.gvimrc 
*_vimrc 
*_gvimrc 
*.bashprofile 
*favicon.ico 
*license 
*node_modules 
*react.jsx 
*procfile 
*dockerfile 
*docker-compose.yml 
*docker-compose.yaml 
*compose.yml 
*compose.yaml 
*rakefile 
*config.ru 
*gemfile 
*makefile 
*cmakelists.txt 
*robots.txt 󰚩
# file names (case-sensitive adaptations)
*Gruntfile.coffee 
*Gruntfile.js 
*Gruntfile.ls 
*Gulpfile.coffee 
*Gulpfile.js 
*Gulpfile.ls 
*Dropbox 
*.DS_Store 
*LICENSE 
*React.jsx 
*Procfile 
*Dockerfile 
*Docker-compose.yml 
*Docker-compose.yaml 
*Rakefile 
*Gemfile 
*Makefile 
*CMakeLists.txt 
# file patterns (vim-devicons) (patterns not supported in lf)
# .*jquery.*\.js$ 
# .*angular.*\.js$ 
# .*backbone.*\.js$ 
# .*require.*\.js$ 
# .*materialize.*\.js$ 
# .*materialize.*\.css$ 
# .*mootools.*\.js$ 
# .*vimrc.* 
# Vagrantfile$ 
# file patterns (file name adaptations)
*jquery.min.js 
*angular.min.js 
*backbone.min.js 
*require.min.js 
*materialize.min.js 
*materialize.min.css 
*mootools.min.js 
*vimrc 
Vagrantfile 
# archives or compressed (extensions from dircolors defaults)
*.tar 
*.tgz 
*.arc 
*.arj 
*.taz 
*.lha 
*.lz4 
*.lzh 
*.lzma 
*.tlz 
*.txz 
*.tzo 
*.t7z 
*.zip 
*.z 
*.dz 
*.gz 
*.lrz 
*.lz 
*.lzo 
*.xz 
*.zst 
*.tzst 
*.bz2 
*.bz 
*.tbz 
*.tbz2 
*.tz 
*.deb 
*.rpm 
*.jar 
*.war 
*.ear 
*.sar 
*.rar 
*.alz 
*.ace 
*.zoo 
*.cpio 
*.7z 
*.rz 
*.cab 
*.wim 
*.swm 
*.dwm 
*.esd 
# image formats (extensions from dircolors defaults)
*.jpg 
*.jpeg 
*.mjpg 
*.mjpeg 
*.gif 
*.bmp 
*.pbm 
*.pgm 
*.ppm 
*.tga 
*.xbm 
*.xpm 
*.tif 
*.tiff 
*.png 
*.svg 
*.svgz 
*.mng 
*.pcx 
*.mov 
*.mpg 
*.mpeg 
*.m2v 
*.mkv 
*.webm 
*.ogm 
*.mp4 
*.m4v 
*.mp4v 
*.vob 
*.qt 
*.nuv 
*.wmv 
*.asf 
*.rm 
*.rmvb 
*.flc 
*.avi 
*.fli 
*.flv 
*.gl 
*.dl 
*.xcf 
*.xwd 
*.yuv 
*.cgm 
*.emf 
*.ogv 
*.ogx 
# audio formats (extensions from dircolors defaults)
*.aac 
*.au 
*.flac 
*.m4a 
*.mid 
*.midi 
*.mka 
*.mp3 
*.mpc 
*.ogg 
*.ra 
*.wav 
*.oga 
*.opus 
*.spx 
*.xspf 
# other formats
*.pdf 

13
etc/lf/lfrc Normal file
View File

@@ -0,0 +1,13 @@
# enable hidden files by default
set hidden!
# set the displayed info
# TODO: also show file permissions/owner, if room or whatever
set info size
set icons
map <esc> quit
map <enter> open
map d delete
map x cut

Submodule etc/nvim deleted from fd3cc249b6

View File

@@ -19,7 +19,7 @@ separator = |
padding-left = 0
modules-left = workspaces window
modules-center = date time
modules-right = systray enpnative enpusbc wifi volume battery
modules-right = systray enp2s0 enp0s20f0u3u1 enp0s20f0u3 enp0s20f0u2 wifi volume battery
padding-right = 1
[settings]

View File

@@ -22,10 +22,18 @@ interface-type = wired
format-connected = 󰈀
format-disconnected =
[module/enpnative]
[module/enp2s0]
inherit = ethernet
interface = enp2s0
[module/enpusbc]
[module/enp0s20f0u3u1]
inherit = ethernet
interface = enp0s20f0u3u1
[module/enp0s20f0u3]
inherit = ethernet
interface = enp0s20f0u3
[module/enp0s20f0u2]
inherit = ethernet
interface = enp0s20f0u2

View File

@@ -1,2 +0,0 @@
D /home/furry/var/tmp 0750 furry furry -

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/bash
BUILD_CONFIG=

View File

@@ -1,2 +1,2 @@
#!/bin/sh
#!/usr/bin/sh
sudo "$XDG_DATA_HOME/cpusetcores" "$@" -v

View File

@@ -1,2 +1,2 @@
#!/bin/bash
#!/usr/bin/sh
"$HOME/.local/share/emsdk/upstream/emscripten/emcc" "$@"

View File

@@ -1,2 +1,2 @@
#!/bin/bash
#!/usr/bin/sh
"$HOME/.local/share/emsdk/emsdk" "$@"

View File

@@ -1,17 +1,11 @@
#!/bin/bash
#!/usr/bin/sh
if [ -z ${1+x} ]; then
echo -e "\033[91mdidn't include a file exstension. (eg. \".cs\")"
exit -1
printf "\033[91mdidn't include a file exstension. (eg. \".cs\")\n"
exit 1
fi
# get all the files with the file extension
git ls-files | grep -E ".*\\$1" |
# run git blame on each file, which shows the commit for each line
xargs -n 1 git blame --line-porcelain |
# aquire the authors of this output and sort it
grep "^author " | sort |
# count all the unique authors and sort by number
uniq -c | sort -nr
xargs -n 1 git blame --line-porcelain | # run git blame on each file, which shows the commit for each line
grep "^author " | sort | # aquire the authors of this output and sort it
uniq -c | sort -nr # count all the unique authors and sort by number

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/sh
export __NV_PRIME_RENDER_OFFLOAD=1
export __VK_LAYER_NV_optimus=NVIDIA_only
export __GLX_VENDOR_LIBRARY_NAME=nvidia

View File

@@ -1,2 +1,2 @@
#!/bin/bash
#!/usr/bin/sh
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia "$@"

62
usr/bin/satallite-wp-update Executable file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/bash
# shellcheck disable=SC1090,SC1091
# set -xv
EUMETSAT_KEY="jdBM1PsDQUm0tCZfk9VXD6IaJoUa"
EUMETSAT_SECRET="SumkiqFMU3MAGpt_azb1KXKgjdMa"
OUTDIR="$HOME/photos/eumetsat"
# full screen coverage
# PRJ=AUTO:42004,52,5,0
# BBOX=(-6400000 -100000 6400000 7700000)
# full disk
PRJ=AUTO:42003,0,0,0
BBOX=(-12800000 -7200000 12800000 7200000)
# europe
# PRJ=AUTO:42004,0,0,0
# BBOX=(22.5 -45 90 67.5)
# BBOX=(-45 -90 180 135)
# BBOX=(-4500000 2250000 6750000 9000000)
WIDTH=1920
HEIGHT=1080
error() {
printf "\033[31m%s\033[0m\n" "$1"
. "$HOME/.fehbg"
exit 1
}
# verify internet
ping -c1 1.1.1.1 >>/dev/null || error "couldn't establish an internet connection!"
# acquire the API key
key=$(
curl -k -d "grant_type=client_credentials" \
-H "Authorization: Basic $(printf "%s:%s" "$EUMETSAT_KEY" "$EUMETSAT_SECRET" | base64)" \
https://api.eumetsat.int/token | jq -r '.["access_token"]'
)
# set url
url="https://view.eumetsat.int/geoserver/wms?"
url+="&service=WMS"
url+="&request=GetMap"
url+="&version=1.3.0"
url+="&layers=mtg_fd:rgb_geocolour"
url+="&width=$WIDTH&height=$HEIGHT"
url+="&bbox=${BBOX[0]},${BBOX[1]},${BBOX[2]},${BBOX[3]}"
url+="&crs=$PRJ"
url+="&styles="
url+="&transparent=true"
url+="&format=image/png"
url+="&access_token=$key"
# process incoming data
[ ! -d "$OUTDIR" ] && { mkdir -p "$OUTDIR" || error "failed to access '$OUTDIR'!"; }
curl "$url" -o "$OUTDIR/tmp.png" || error "failed to download from url='$url'!"
mv -f "$OUTDIR/tmp.png" "$OUTDIR/curr.png"
# update the feh background
. "$HOME/.fehbg"

View File

@@ -1,13 +1,14 @@
#/bin/bash
#!/usr/bin/sh
if [ -z ${var+2} ]; then
echo -e "\033[91mno parameters were given!\033[0m"
printf "\033[91mno parameters were given!\033[0m\n"
fi
for i in $2; do
readonly fname="$(basename $i .*)"
readonly fname
fname="$(basename "$i" .*)"
mkdir "$fname"
cd "$fname"
cd "$fname" || return 1
unzip "../$i"
cd -
cd - || return 1
done

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/sh
while true; do
printf "owo "

4
usr/bin/x-brightness-down Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/sh
br=$(brightnessctl set 5%- |
grep '%' | awk '{print $4}' | sed 's/[^0-9]//g')
notify-send -u low -i display-brightness-symbolic -h int:value:"$br" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl' "brightness: $br%"

4
usr/bin/x-brightness-up Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/sh
br=$(brightnessctl set 5%+ |
grep '%' | awk '{print $4}' | sed 's/[^0-9]//g')
notify-send -i display-brightness-symbolic -u low -h int:value:"$br" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl' "brightness: $br%"

5
usr/bin/x-mic-mute Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/sh
vol_str=$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@)
vol_int="$(echo "$vol_str" | sed 's/[^0-9]*//g')"
notify-send -i microphone-sensitivity-muted -u low -h int:value:"$vol_int" -h string:x-dunst-stack-tag:'audioctl' -a 'audioctl' "$vol_str"

56
usr/bin/x-volume Executable file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env sh
# the amount to increase / decrease each time
[ -z "$AMOUNT" ] && AMOUNT=5
# utility for sending notifications easily
notify() {
notify-send "$@" -h string:x-dunst-stack-tag:'audioctl' -a 'audioctl'
}
# get current volume information
vol_str="$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
# Remove leading non-numeric or zero characters, then remove remaining non-numeric characters.
# NOTE: if zero (0.00), the string will be empty. This is fine for arithmetic operations.
vol_int="$(echo "$vol_str" | sed 's/^[^1-9]*//; s/[^0-9]//g')"
# if the string contains MUTED, set the variable accordion
case "$vol_str" in
*MUTED*) vol_off=1 ;;
*) vol_off=0 ;;
esac
# handle what action to perform from the argument
echo $vol_off
case $1 in
up) vol_int=$((vol_int + AMOUNT)) ;;
down) vol_int=$((vol_int - AMOUNT)) ;;
mute) vol_off=$((!vol_off)) ;;
*)
echo 'E: could not decide what audio action to perform!' >&2
notify 'could not decide what audio action to perform!' -u critical -t 5000
exit 1
;;
esac
vol_int=$((vol_int - (vol_int % AMOUNT)))
vol_pcnt=$(echo "scale = 2; $vol_int / 100;" | bc)
echo $vol_off
wpctl set-volume @DEFAULT_AUDIO_SINK@ "$vol_pcnt"
wpctl set-mute @DEFAULT_AUDIO_SINK@ "$vol_off"
play -n synth 0.005 sine 1000 vol 0.2 2>/dev/null
if [ "$vol_int" -eq 0 ] || [ "$vol_off" -eq 1 ]; then
ico=audio-volume-muted
elif [ "$vol_int" -lt 33 ]; then
ico=audio-volume-low
elif [ "$vol_int" -lt 66 ]; then
ico=audio-volume-medium
else
ico=audio-volume-high
fi
str="volume: $vol_int% $([ $vol_off -eq 1 ] && printf '(MUTE)')"
notify -i "$ico" -u low -h "int:value:$vol_int" "$str"

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/sh
WIN=$(xdotool getwindowfocus)
STATE=$(xprop -id "$WIN" _NET_WM_STATE)

Binary file not shown.