Compare commits

...

156 Commits

Author SHA1 Message Date
fanyx 7644c63dd0 vim: use different monokai theme 2024-09-25 10:52:50 +02:00
fanyx 7f55c3e0d3 remove unused aliases 2024-09-25 10:51:15 +02:00
fanyx 866479f479 zsh: switch and update .alias 2024-09-25 10:50:14 +02:00
fanyx d95d444ded bashrc: enable pass extensions 2024-09-19 16:55:57 +02:00
fanyx 3ba7674c3a editorconfig: sanitize 2024-09-19 16:55:57 +02:00
fanyx 887b34f708 starship: add python venv information 2024-09-19 11:22:33 +02:00
fanyx 76181e3fe7 git: new aliases; list options 2024-09-19 11:22:33 +02:00
fanyx 845cdd62c9 void-packages: pre-commit hook 2024-06-26 12:14:43 +02:00
fanyx 040ad03e33 editor: vim 2024-06-26 12:14:17 +02:00
fanyx 2c947f2022 create pre-commit hook for xlint 2024-04-22 11:00:48 +02:00
fanyx 21479030d5 vim: disable lazy loading, remove yaml stuff, add new plugins 2024-04-17 15:31:27 +02:00
fanyx 68b46c4db8 Add yaml and py to editorconfig 2024-03-26 17:12:56 +01:00
fanyx 7b098b83ae modern bashhistsize 2024-03-26 10:19:44 +01:00
fanyx c92e992f56 update nvim config, remove unused plugins 2024-03-26 10:19:44 +01:00
fanyx a32043a1ee customer files get their own subdirectory 2024-03-26 10:19:44 +01:00
fanyx 2c90146c17 vimrc: autocmd yaml 2024-02-28 16:27:23 +01:00
fanyx d356617460 Add kitty image previewer' 2024-02-22 09:44:36 +01:00
fanyx 2876aa3991 Create lf config 2024-02-22 09:40:04 +01:00
fanyx 16a4c365b4 Remove sock file on finish 2024-02-21 14:57:21 +01:00
fanyx d22ed57969 Add XDG_RUNTIME_DIR to void-install 2024-02-21 14:54:03 +01:00
fanyx 07823387dc Update current workstation packages 2024-02-21 14:17:40 +01:00
fanyx 7c2eabe85c Install zoxide 2024-02-21 14:17:40 +01:00
fanyx bf43ddb8e4 Move shell sourcing up 2024-02-21 14:17:40 +01:00
fanyx 2a9338a410 Cleanup mandatory source files, PS1 migrated to starship anyways 2024-02-21 14:17:40 +01:00
fanyx fac9598c3f Cleanup 2024-02-21 14:17:40 +01:00
fanyx a6560c03dd Use eza instead of exa 2024-02-21 14:17:40 +01:00
fanyx 948e49df35 nvim-tree updates 2023-10-12 12:30:05 +02:00
fanyx fb37ba1ad7 Add editorconfig 2023-10-12 12:30:05 +02:00
fanyx 309450a926 Add autosquash to interactive rebases 2023-10-12 12:02:41 +02:00
fanyx a5066d8e67 Add fixup alias 2023-10-12 12:00:05 +02:00
fanyx fbb1849b72 ignore nvim lazy-lock 2023-09-21 19:34:18 +02:00
fanyx 892794025d Link csgo config from csgo folder instead of cs2 2023-09-21 19:32:02 +02:00
fanyx 23e3838148 Add column at 80 characters 2023-09-21 19:31:05 +02:00
fanyx d8bbd3de43 neovim config 2023-09-21 19:01:37 +02:00
fanyx ccdb107703 use git/dotfiles instead of git/.dotfiles 2023-09-21 19:00:42 +02:00
fanyx ffc77f8a9c prepend PATH instead of appending 2023-09-15 10:57:58 +02:00
fanyx 8b0f506f0b Use Fira Sans/Code for everything 2023-09-11 18:15:46 +02:00
fanyx bd368a2801 Add ulimit and max_map_count 2023-09-11 09:56:54 +02:00
fanyx 8f3ff99972 Update starship config 2023-09-10 10:55:29 +02:00
fanyx 486cd4a291 one line custom completions 2023-09-09 11:52:27 +02:00
fanyx 26aa8d9636 Use /home/hendrik instead of absolute path 2023-09-09 11:50:39 +02:00
fanyx eede5d54af Use .vimrc for NeoVim 2023-09-09 11:46:46 +02:00
fanyx 6d936ccfd4 Update manually installed package list 2023-09-09 11:42:39 +02:00
fanyx 8d37111d1e csgo configs in new steam install dir 2023-09-09 11:06:07 +02:00
fanyx 55d49c17d6 Add Starship 2023-09-09 10:56:29 +02:00
fanyx 8a37195442 idk why, prefer dark switches all the time 2023-09-09 10:29:45 +02:00
fanyx 4db0fc3f10 Normalize git config 2023-09-09 10:28:47 +02:00
fanyx becb1ceca1 force x11 to have window decorations on wayland 2023-08-07 12:45:20 +02:00
fanyx 4a997818a4 force enable wayland on nvidia gpus 2023-08-07 12:44:39 +02:00
fanyx c51d31363c mpd: config and playlists 2023-08-07 12:41:43 +02:00
fanyx 9c301b3c73 sv: ashuffle 2023-08-07 12:38:30 +02:00
fanyx 7ae4986ef7 mpd: changes 2023-06-08 17:17:17 +02:00
fanyx 6c14f34484 Remove stupid default gnome keybindings 2023-06-08 17:11:39 +02:00
fanyx 7dc0c5cb23 fixes to void-install runsvdir templates 2023-06-08 16:54:24 +02:00
fanyx 20cc076a54 Update some stuff 2023-06-08 12:47:14 +02:00
fanyx 9472c48a09 small update 2023-05-31 09:56:17 +02:00
fanyx ae40d4bd0f Add Void Linux logos 2023-05-31 09:54:04 +02:00
fanyx c2897c1610 Add new install-home.sh 2023-05-23 10:03:44 +02:00
fanyx 2a0e0b81bc prettify xun output 2023-05-22 12:43:36 +02:00
fanyx 8d94bab5ef Updates from my work laptop 2023-05-22 10:06:01 +02:00
fanyx bf5b529e05 explicit flags 2023-04-27 16:49:54 +02:00
fanyx 67694ea05b mpd: add user sv 2023-04-27 16:49:31 +02:00
fanyx ccea220ab4 Link csgo configs to git/game-configs 2023-04-27 12:01:36 +02:00
fanyx 3f7a93a949 Enable .local/share/applications 2023-04-27 12:01:36 +02:00
fanyx fb388da615 Remove custom discord 2023-04-27 12:01:36 +02:00
fanyx ee459b2172 Sv: Remove pipewire and unnecessary other services 2023-04-27 12:01:36 +02:00
fanyx fc44a98990 Firefox: Enable Wayland 2023-04-27 12:01:36 +02:00
fanyx 3f84acd935 Add packages for server operations 2023-03-20 15:57:01 +01:00
fanyx a48c6fbc67 use tabs instead of 4x space 2023-03-09 10:28:36 +01:00
fanyx 400aeb7696 kitty theming, maybe 2023-03-09 10:22:33 +01:00
fanyx a5368f4471 Switch capture card loopback to pipewire config 2023-03-09 10:22:33 +01:00
fanyx 958d176334 add PROMPT_DIRTRIM=2 2023-03-09 10:22:33 +01:00
fanyx 429430a1ea Set dependencies for pipewire and pipewire-pulse 2023-03-09 10:22:33 +01:00
fanyx 236c387875 change git email 2023-03-01 19:03:09 +01:00
fanyx fb0fc16f3d Create list of pkgs for WSL 2023-03-01 18:55:20 +01:00
fanyx c8d12cc9ba bash_completion additions 2022-10-17 15:15:09 +02:00
fanyx 4dc445c411 correct sed 2022-10-16 13:53:50 +02:00
fanyx dbd38ff226 set noexpandtab 2022-10-16 13:53:50 +02:00
fanyx 29fb1a20f5 add co and cn aliases 2022-10-16 13:53:50 +02:00
fanyx 689b9d2d3c add SSH_AUTH_SOCK 2022-10-16 12:45:06 +02:00
fanyx d71391fdb6 read correct pkgs without versions from xpkg -m 2022-10-16 12:45:06 +02:00
fanyx 7bda825c1a correct exit status handling 2022-10-16 12:45:06 +02:00
fanyx 9ae4f36397 use XDG_RUNTIME_DIR 2022-10-16 12:45:06 +02:00
fanyx 741f3c9ffb idk, changes 2022-10-16 12:45:06 +02:00
fanyx f9e329cede fix piping again 2022-10-01 14:10:14 +02:00
fanyx 09f96c2a3a Add git config 2022-09-29 09:57:52 +02:00
fanyx 70dd1ee423 fix piping 2022-09-23 13:34:28 +02:00
fanyx a1b8c0429e Updates to .profile 2022-09-19 14:21:30 +02:00
fanyx 8f25c3c57b Create initial user.js 2022-07-15 15:10:45 +02:00
fanyx 242ca84a24 dont export dbus_session_bus_address, use xsession to launch dbus instead 2022-07-14 10:21:32 +02:00
fanyx f63cdede52 add nautilus and firefox shortcuts 2022-07-14 10:20:04 +02:00
fanyx 9941db523a remove picom and sxhkd log sv 2022-07-14 10:19:49 +02:00
fanyx 7c9ac6355e some changes 2022-07-14 10:19:03 +02:00
fanyx af267888d9 gtk themes and cursors 2022-07-14 10:17:58 +02:00
fanyx 3c6ef17c89 change border color 2022-07-14 10:17:28 +02:00
fanyx 3368693b85 Fix to open links in firefox 2022-07-14 10:04:52 +02:00
fanyx 8dfef28552 disable dbus-session, breaks opening links from discord 2022-07-14 10:03:34 +02:00
fanyx 81cb7b9bf4 Set xroot cursor to left_ptr again 2022-07-14 10:01:19 +02:00
fanyx c8fef9cf7e change launch flags for syncthing sv 2022-07-13 11:50:12 +02:00
fanyx 041ae84621 Add cursor and GTK2/3 theme 2022-07-13 11:24:21 +02:00
fanyx 35b1196c04 move polybar to user runsv service 2022-07-13 09:41:00 +02:00
fanyx 811a851842 changes 2022-07-12 17:01:56 +02:00
fanyx c974498c72 remove README.md from sv dir completions 2022-07-12 16:59:32 +02:00
fanyx c1718db3f0 fix sxhkd running in sv dir instead of home dir 2022-07-12 16:59:17 +02:00
fanyx 533f58b559 create sxhkd, picom as user runsv service 2022-07-12 16:49:59 +02:00
fanyx 7a015e96c8 add execline 2022-07-12 12:34:22 +02:00
fanyx 9114675526 start dbus-session separated from xsession 2022-07-12 12:33:26 +02:00
fanyx 36e27be41c move .profile to .void.profile 2022-07-12 12:32:52 +02:00
fanyx 3c99819ce2 Update some user-runsv services 2022-07-12 12:30:59 +02:00
fanyx c8a2a19a5b add .profile 2022-07-12 11:26:19 +02:00
fanyx 96f4189db8 Fix install-root.sh, add pipewire to bspwmrc 2022-07-12 10:25:08 +02:00
fanyx 28f778427d Update 2022-06-28 2022-06-28 10:41:14 +02:00
fanyx 16eea121b1 Remove accidental screenshots 2022-06-12 19:36:53 +02:00
fanyx ea39007adc Initial Rofi config
Adds Screenshot Applet
2022-06-12 19:35:34 +02:00
fanyx e02c4e1fba change polybar colors again xd 2022-06-12 09:23:44 +02:00
fanyx 4d8157befe lighter colors for polybar widgets 2022-06-11 10:07:55 +02:00
fanyx 2adf20987a remove powermenu from polybar 2022-06-11 09:47:07 +02:00
fanyx 40f311b343 Add xbps-pkgdb shortcut 2022-06-10 18:20:33 +02:00
fanyx 5beff9732c Change bspwm colors 2022-06-10 16:33:24 +02:00
fanyx afe58a5677 Add xwindow module and some font changes 2022-06-10 14:24:40 +02:00
fanyx dd7a70dd59 xcln actually does clean up now 2022-06-10 14:24:01 +02:00
fanyx 3b95e458c1 Remove NVim config 2022-06-10 14:23:29 +02:00
fanyx 4cf3d4deb9 Add some border colors 2022-06-10 14:23:04 +02:00
fanyx 2280b43179 Fix misc and tmp icons 2022-06-10 12:36:10 +02:00
fanyx baabf00301 Fonts and Icons 2022-06-10 12:32:16 +02:00
fanyx fe8d832892 Add bspwm patch to use dbus 2022-06-09 18:22:03 +02:00
fanyx de627105df Add feh background 2022-06-09 15:52:42 +02:00
fanyx e1a5d59b06 Create install.sh for root files (runsvdir-user) 2022-06-09 14:10:43 +02:00
fanyx 1cb0647e44 Add pipewire/-pulse and ssh-agent 2022-06-09 13:56:03 +02:00
fanyx 00e1b15521 Update bspwm, sxhkd setup 2022-06-09 13:53:30 +02:00
fanyx 05f42e9d6e Add custom completions to bash 2022-06-09 13:53:09 +02:00
fanyx 8d27594354 Remove set shell 2022-06-09 13:51:55 +02:00
fanyx 62d271966d Default to Fira Sans and JetBrainsCode Nerd Fonts 2022-06-09 13:51:30 +02:00
fanyx 8c3b300da8 move git alias to git file 2022-06-09 13:50:46 +02:00
fanyx cc452f6a9e add void pkglist 2022-06-09 13:49:22 +02:00
fanyx 58673db4b5 lil cleanup 2022-02-19 16:05:55 +01:00
fanyx 676ca432b1 Add Pulseaudio 2022-01-29 13:11:54 +01:00
fanyx f0a0de87e5 Add kitty config 2022-01-28 14:11:58 +01:00
fanyx 31b67f5e82 added mpd config 2022-01-28 14:10:45 +01:00
fanyx af4938c6c3 Added mpd 2022-01-28 14:08:27 +01:00
fanyx 12b550638a Update 2022-01-13 2022-01-13 14:11:59 +01:00
fanyx c51169b2ee Add basic vim config 2021-10-20 01:58:24 +02:00
fanyx 47835f39fe Add wallpapers 2021-10-05 13:26:37 +02:00
fanyx ea21b2466d Add fontconfig => Monospace and Helvetica alias 2021-10-05 13:04:54 +02:00
fanyx 47b048d0ec Add syncthing-quick-status 2021-10-04 15:03:31 +02:00
fanyx c79bed2fb3 switched to bspwm + fonts + pywal auto theming 2021-10-04 15:00:37 +02:00
fanyx cfd299287f Save sv directory 2021-09-27 16:24:01 +02:00
fanyx b3ba1aacb8 Update autoexec.cfg 2021-09-27 16:20:09 +02:00
fanyx 9e00d7b651 Add syncthing user service 2021-09-27 16:13:22 +02:00
fanyx 8fbedeb948 practice cfg, more additions to autoexec 2021-09-23 18:13:28 +02:00
fanyx 22d5e2f80e Move autoexec.cfg to .local path 2021-09-23 16:12:22 +02:00
fanyx 2372b44401 Persist csgo crosshair 2021-09-23 16:10:10 +02:00
fanyx b8a35d17f7 Some env vars and comments 2021-09-23 12:46:32 +02:00
fanyx 2638f4a240 Create xr script - xbps-remove 2021-09-13 09:49:55 +02:00
fanyx b6906e65a9 Update to void 2021-09-12 09:19:35 +02:00
fanyx ac9fc68c54 add csgo autoexec.cfg 2021-06-11 09:45:22 +02:00
95 changed files with 3514 additions and 43 deletions

44
.alias
View File

@ -1,26 +1,38 @@
# exa and ls
alias ls="exa --group-directories-first -gm"
alias ll="ls -lhF"
alias lt="ll -TL $1"
alias ld="ll -d"
alias la="ll -a"
# utils
eza_params=(
'--git' '--icons' '--group' '--group-directories-first'
'--time-style=long-iso' '--color-scale=all' '--modified'
'--classify=auto'
)
eza_params_long=(
'--long' '--header'
)
[[ ! -z $_EZA_PARAMS ]] && eza_params=($_EZA_PARAMS)
# applications
alias code="codium"
alias ls="eza $eza_params"
alias l="eza --git-ignore $eza_params"
alias ll="eza $eza_params_long $eza_params"
alias la="eza --all $eza_params_long $eza_params"
alias lt="eza $eza_params_long $eza_params --level"
# git
alias gs="git status --short"
alias cat="bat -p"
# dotfiles
alias dot="/usr/bin/git --git-dir=$HOME/git/dotfiles/ --work-tree=$HOME"
# sane mkdir
alias mkdir="mkdir -p"
alias dot="git --git-dir=$HOME/git/dotfiles/ --work-tree=$HOME"
# k8s
alias k="kubectl"
complete -F __start_kubectl k
alias kga="k get all"
alias kgp="k get pod"
alias kgsc="k get secrets"
alias kgsv="k get services"
which kubectx kubens >/dev/null && \
# kx, kn
command -v kubectx kubens &>/dev/null && \
alias kx="kubectx" && \
alias kn="kubens"
# docker
alias dc="docker-compose"
alias dps='docker ps --format '\''table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Networks}}'\'''

61
.config/bspwm/bspwmrc Executable file
View File

@ -0,0 +1,61 @@
#! /bin/bash
# Set outputs
xrandr --output DP-0 --primary --mode 2560x1440 --rate 165.08 --left-of DP-4 --output DP-4 --mode 2560x1440 --rate 74.92
# Monitor description
bspc monitor DP-0 -d term browser game code misc
bspc monitor DP-4 -d browser2 comm music server mail tmp
# Restore wallpaper
~/.fehbg
# Autolaunch
pgrep -x Discord >/dev/null || Discord &
pgrep -x steam >/dev/null || steam &
# Utilities
xsetroot -cursor_name left_ptr &
setxkbmap -model evdev -layout eu
# Configuration
bspc config border_width 3
bspc config window_gap 18
bspc config normal_border_color '#21201E'
bspc config active_border_color '#21201E'
bspc config focused_border_color '#C93B59'
bspc config split_ratio 0.5
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config focus_follows_pointer false
# -------------------------------------------------------- Rules
#
#---------------------------------------------- Default to float
bspc rule -a \* state=floating
#---------------------------------------------- Terminal / Kitty
bspc rule -a kitty state=tiled
#------------------------------------------------------- Firefox
bspc rule -a Firefox state=tiled
bspc rule -a "Firefox:*:Save Image" state=floating
bspc rule -a "Firefox:*:File Upload" state=floating
# ------------------------------------ Discord => Workspace Comm
bspc rule -a discord state=tiled desktop=comm
# -------------------------------------- Steam => Workspace Game
bspc rule -a Steam state=tiled desktop=game
bspc rule -a "Steam:Friends List" split_ratio=0.3
# ------------------------------------- Coding => Workspace Code
bspc rule -a "Code - OSS" state=tiled desktop=code
# ------------------------------------------------------- Hydrus
bspc rule -a "Hydrus Client:*:main" state=tiled desktop=misc
bspc rule -a "Hydrus Client:*:main - hydrus 488" state=tiled desktop=misc
bspc rule -a "Hydrus Client:*:hydrus client media viewer" state=tiled

5
.config/completions/k Normal file
View File

@ -0,0 +1,5 @@
# alias for kubectl to k
command -v 2>&1 >/dev/null kubectl && source <(kubectl completion bash)
complete -o default -F __start_kubectl k

28
.config/completions/sv Normal file
View File

@ -0,0 +1,28 @@
# bash completion for runit sv(1)
_sv()
{
local cur prev words cword commands
_init_completion || return
commands='up down status once pause cont hup alarm interrupt 1 2 term kill exit start stop restart shutdown force-stop force-reload force-restart force-shutdown'
case $prev in
-w)
return
;;
-* | sv)
COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) )
return
;;
*)
COMPREPLY=( /var/service/* )
COMPREPLY+=( ${HOME}/sv/* )
COMPREPLY=( ${COMPREPLY[@]##*/} )
COMPREPLY=( "${COMPREPLY[@]/README.md}" )
COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- ${cur}) )
return
;;
esac
}
complete -F _sv sv

133
.config/completions/xbps Normal file
View File

@ -0,0 +1,133 @@
_xbps_parse_help() {
local IFS line word
$1 --help 2>&1 | while IFS=$'\n' read -r line; do
[[ $line == *([ $'\t'])-* ]] || continue
IFS=$' \t,='
for word in $line; do
[[ $word == -* ]] || continue
printf -- '%s\n' $word
done
done | sort | uniq
}
_xbps_all_packages() {
xbps-query -Rs "$1*" | sed 's/^... \([^ ]*\)-.* .*/\1/'
}
_xbps_installed_packages() {
xbps-query -l | sed 's/^.. \([^ ]*\)-.* .*/\1/'
}
_xbps_all_reply() {
COMPREPLY=( $( compgen -W '$(_xbps_all_packages "$1")' -- "$1") )
}
_xbps_installed_reply() {
COMPREPLY=( $( compgen -W '$(_xbps_installed_packages)' -- "$1") )
}
_xbps_complete() {
local cur prev words cword
_init_completion || return
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '$( _xbps_parse_help "$1" )' -- "$cur") )
return
fi
local common='C|-config|r|-rootdir'
local morecommon="$common|c|-cachedir"
local modes='auto manual hold unhold'
local props='architecture
archive-compression-type
automatic-install
build-options
conf_files
conflicts
filename-sha256
filename-size
homepage
install-date
install-msg
install-script
installed_size
license
maintainer
metafile-sha256
packaged-with
pkgver
preserve
provides
remove-msg
remove-script
replaces
repository
shlib-provides
shlib-requires
short_desc
source-revisions
state'
case $1 in
xbps-dgraph)
if [[ $prev != -@(c|o|r) ]]; then
_xbps_installed_reply $cur
return
fi
;;
xbps-install | xi)
if [[ $prev != -@($morecommon) ]]; then
_xbps_all_reply $cur
return
fi
;;
xbps-pkgdb)
if [[ $prev == -@(m|-mode) ]]; then
COMPREPLY=( $( compgen -W "$modes" -- "$cur") )
return
fi
if [[ $prev != -@($common) ]]; then
_xbps_installed_reply $cur
return
fi
;;
xbps-query)
if [[ $prev == -@(p|-property) ]]; then
COMPREPLY=( $( compgen -W "$props" -- "$cur") )
return
fi
if [[ $prev != -@($morecommon|o|-ownedby) ]]; then
local w
for w in "${words[@]}"; do
if [[ "$w" == -@(R|-repository) ]]; then
_xbps_all_reply $cur
return
fi
done
_xbps_installed_reply $cur
return
fi
;;
xbps-reconfigure)
if [[ $prev != -@($common) ]]; then
_xbps_installed_reply $cur
return
fi
;;
xbps-remove | xr)
if [[ $prev != -@($morecommon) ]]; then
_xbps_installed_reply $cur
return
fi
;;
esac
_filedir
}
complete -F _xbps_complete xbps-checkvers xbps-create xbps-dgraph xbps-install \
xbps-pkgdb xbps-query xbps-reconfigure xbps-remove xbps-rindex xi xr

1
.config/firefox/user.js Normal file
View File

@ -0,0 +1 @@
user_pref("media.suspend-bkgnd-video.enabled", false);

View File

@ -0,0 +1,75 @@
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Alias Helvetica and Courier New -->
<alias>
<family>Helvetica</family>
<prefer><family>sans-serif</family></prefer>
</alias>
<alias>
<family>Helvetica Neue</family>
<prefer><family>sans-serif</family></prefer>
</alias>
<alias>
<family>Courier New</family>
<prefer><family>monospace</family></prefer>
</alias>
<alias>
<family>Arial</family>
<prefer><family>sans-serif</family></prefer>
</alias>
<alias>
<family>Times New Roman</family>
<prefer><family>serif</family></prefer>
</alias>
<alias>
<family>Liberation Mono</family>
<prefer><family>monospace</family></prefer>
</alias>
<!-- Fuck Helvetica -->
<match>
<test name="family"><string>Helvetica</string></test>
<edit binding="same" mode="assign" name="family">
<string>Fira Sans</string>
</edit>
</match>
<!-- Set default fonts -->
<match target="pattern">
<test name="family" qual="any">
<string>monospace</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Fira Code</string>
<string>JetBrains Mono</string>
</edit>
</match>
<match>
<test name="family" qual="any">
<string>regular</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Fira Sans</string>
</edit>
</match>
<match>
<test name="family" qual="any">
<string>sans-serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Fira Sans</string>
</edit>
</match>
<match>
<test name="family" qual="any">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Fira Sans</string>
</edit>
</match>
</fontconfig>

55
.config/git/config Normal file
View File

@ -0,0 +1,55 @@
[user]
email = fanyx@posteo.net
name = fanyx
[includeIf "gitdir:~/b1/"]
path = ~/b1/.config/git/config
[includeIf "gitdir:~/b1/customer/sap/"]
path = ~/b1/customer/sap/.config/git/config
[alias]
# branches
branches = branch -a
sb = switch
sc = switch -c
# commits
cm = commit -m
fixup = "!git log -n50 --pretty='format:%h %s' --no-merges | fzf | cut -c -7 | xargs -o git commit --fixup"
ri = "rebase -i"
# push
pushf = "push --force-with-lease"
# log
l = log --pretty='format:%h %G? %s%d' -n20 --graph --color
fzs = "!git log -n50 --pretty='format:%h %s' --no-merges | fzf | cut -c -7 | xargs -o git show"
# status
s = status -sb
ss = s -uno
# other
tags = tag -l
remotes = remote -v
[color]
diff = auto
[column]
ui = auto
[init]
defaultBranch = main
[branch]
sort = -committerdate
[rebase]
autosquash = true
[credential]
helper = store
[core]
editor = vim

View File

@ -0,0 +1,15 @@
#!/bin/bash
# xlint all changed templates
# xgensum all changed templates
EX_ERR=1
FILES=$(git diff --name-only --staged | grep template)
for FILE in ${FILES}; do
stat "${FILE}" &> /dev/null || continue
echo "linting ${FILE}:"
xlint $FILE || exit $EX_ERR
xgensum -i $FILE || exit $EX_ERR
echo "all clear."
done

View File

@ -0,0 +1,16 @@
[Settings]
gtk-theme-name=Orchis-Pink-Dark
gtk-icon-theme-name=la-capitaine-icon-theme
gtk-font-name=Sans 10
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-cursor-theme-name=Qogir
gtk-application-prefer-dark-theme=1

View File

@ -0,0 +1,21 @@
background #1e1e1e
foreground #b8bcb9
cursor #eee
selection_background #efcc00
color0 #3a3c43
color8 #888987
color1 #be3e48
color9 #fb001e
color2 #869a3a
color10 #0e712e
color3 #c4a535
color11 #c37033
color4 #4e76a1
color12 #176ce3
color5 #855b8d
color13 #fb0067
color6 #568ea3
color14 #2d6f6c
color7 #b8bcb9
color15 #fcffb8
selection_foreground #1e1e1e

View File

@ -0,0 +1,54 @@
background #1E1C31
foreground #CBE3E7
cursor #A1EFD3
selection_background #3E3859
selection_foreground #CBE3E7
# black
color0 #1E1C31
color8 #585273
# red
color1 #F48FB1
color9 #F02E6E
# green
color2 #A1EFD3
color10 #7FE9C3
# yellow
color3 #FFE6B3
color11 #F2B482
# blue
color4 #91DDFF
color12 #78A8FF
# magenta
color5 #D4BFFF
color13 #7676FF
# cyan
color6 #ABF8F7
color14 #63F2F1
# white
color7 #CBE3E7
color15 #8A889D
active_border_color #A1EFD3
inactive_border_color #585273
bell_border_color #F56574
active_tab_foreground #2D2B40
active_tab_background #63F2F1
active_tab_font_style bold
inactive_tab_foreground #CBE3E7
inactive_tab_background #585273
inactive_tab_font_style normal
url_color #D4BFFF

1245
.config/kitty/kitty.conf Normal file

File diff suppressed because it is too large Load Diff

3
.config/lf/lf_kitty_clean Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty

13
.config/lf/lf_kitty_preview Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env bash
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( file -Lb --mime-type "$file")" =~ ^image ]]; then
kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
# pistol "$file"

51
.config/lf/lfrc Normal file
View File

@ -0,0 +1,51 @@
# kitty previewer
set previewer ~/.config/lf/lf_kitty_preview
set cleaner ~/.config/lf/lf_kitty_clean
# extract the current file with the right command
# (xkcd link: https://xkcd.com/1168/)
cmd extract ${{
set -f
case $f in
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
*.tar.gz|*.tgz) tar xzvf $f;;
*.tar.xz|*.txz) tar xJvf $f;;
*.zip) unzip $f;;
*.rar) unrar x $f;;
*.7z) 7z x $f;;
esac
}}
# compress current file or selected files with tar and gunzip
cmd tar ${{
set -f
mkdir $1
cp -r $fx $1
tar czf $1.tar.gz $1
rm -rf $1
}}
# compress current file or selected files with zip
cmd zip ${{
set -f
mkdir $1
cp -r $fx $1
zip -r $1.zip $1
rm -rf $1
}}
# zoxide
cmd cd %{{
result="$(zoxide query --exclude $PWD $@ | sed 's/\\/\\\\/g;s/"/\\"/g')"
lf -remote "send $id cd \"$result\""
}}
cmd cdi ${{
result="$(zoxide query -i | sed 's/\\/\\\\/g;s/"/\\"/g')"
lf -remote "send $id cd \"$result\""
}}
cmd on-cd &{{
zoxide add "$PWD"
}}

16
.config/mpd/mpd.conf Normal file
View File

@ -0,0 +1,16 @@
db_file "~/.config/mpd/mpd.db"
pid_file "~/.config/mpd/mpd.pid"
state_file "~/.config/mpd/state"
sticker_file "~/.config/mpd/sticker.sql"
log_file "syslog"
music_directory "~/Sync/Public/Music"
playlist_directory "~/.config/mpd/playlists"
auto_update "yes"
audio_output {
type "pulse"
name "pulse"
}

View File

View File

@ -0,0 +1,49 @@
Final Fantasy/Final Fantasy I & II - Dawn of Souls/203 Battle Scene 1.flac
Final Fantasy/Final Fantasy I & II - Dawn of Souls/224 Battle Scene A.flac
Final Fantasy/Final Fantasy I & II - Dawn of Souls/226 Battle Scene 2.flac
Final Fantasy/Final Fantasy I Original Soundtrack/16 Battle.ogg
Final Fantasy/Final Fantasy II Original Soundtrack/01 Battle Theme 1.ogg
Final Fantasy/Final Fantasy II Original Soundtrack/16 Battle Theme 2.ogg
Final Fantasy/Final Fantasy III - DS Original Soundtrack/04 Battle 1.ogg
Final Fantasy/Final Fantasy III - DS Original Soundtrack/27 Battle 2.ogg
Final Fantasy/Final Fantasy III - DS Original Soundtrack/56 The Final Battle -3-.ogg
Final Fantasy/Final Fantasy III Original Soundtrack/03 Battle 1.ogg
Final Fantasy/Final Fantasy III Original Soundtrack/26 Battle 2.ogg
Final Fantasy/Final Fantasy III Original Soundtrack/55 This is the Last Battle -3-.ogg
Final Fantasy/Final Fantasy IV - DS Original Soundtrack/09 Battle 1.ogg
Final Fantasy/Final Fantasy IV - DS Original Soundtrack/14 Big Battle 2.ogg
Final Fantasy/Final Fantasy IV - DS Original Soundtrack/04 Battle with Golbeza's Four Kings.ogg
Final Fantasy/Final Fantasy IV - DS Original Soundtrack/19 Final Battle.ogg
Final Fantasy/Final Fantasy IV Original Soundtrack/08 Fight 1.ogg
Final Fantasy/Final Fantasy IV Original Soundtrack/13 Fight 2.ogg
Final Fantasy/Final Fantasy IV Original Soundtrack/28 The Dreadful Fight.ogg
Final Fantasy/Final Fantasy IV Original Soundtrack/43 The Final Battle.ogg
Final Fantasy/Final Fantasy IX Original Soundtrack/18 Battle.ogg
Final Fantasy/Final Fantasy IX Original Soundtrack/21 Boss Battle.ogg
Final Fantasy/Final Fantasy IX Original Soundtrack/15 Dark Messenger.ogg
Final Fantasy/Final Fantasy IX Original Soundtrack/16 Final Battle.ogg
Final Fantasy/Final Fantasy V Original Soundtrack/07 The Battle.ogg
Final Fantasy/Final Fantasy V Original Soundtrack/19 The Fierce Battle.ogg
Final Fantasy/Final Fantasy V Original Soundtrack/03 Battle with Gilgamesh.ogg
Final Fantasy/Final Fantasy V Original Soundtrack/16 The Decisive Battle.ogg
Final Fantasy/Final Fantasy V Original Soundtrack/17 The Last Battle.ogg
Final Fantasy/Final Fantasy VI Original Soundtrack/05 Battle Theme.ogg
Final Fantasy/Final Fantasy VI Original Soundtrack/24 The Decisive Battle.ogg
Final Fantasy/Final Fantasy VI Original Soundtrack/03 The Fierce Battle.ogg
Final Fantasy/Final Fantasy VI Original Soundtrack/14 Dancing Mad (part 5).ogg
Final Fantasy/Final Fantasy VII Original Soundtrack/10 Fighting.ogg
Final Fantasy/Final Fantasy VII Original Soundtrack/20 Still More Fighting.ogg
Final Fantasy/Final Fantasy VII Original Soundtrack/22 Crazy Motorcycle Chase.ogg
Final Fantasy/Final Fantasy VII Original Soundtrack/14 J-E-N-O-V-A.ogg
Final Fantasy/Final Fantasy VII Original Soundtrack/15 The Birth of God.ogg
Final Fantasy/Final Fantasy VII Original Soundtrack/16 One-Winged Angel.ogg
Final Fantasy/Final Fantasy VIII Original Soundtrack/04 Don't Be Afraid.ogg
Final Fantasy/Final Fantasy VIII Original Soundtrack/10 Force Your Way.ogg
Final Fantasy/Final Fantasy VIII Original Soundtrack/19 The Man With the Machine Gun.ogg
Final Fantasy/Final Fantasy VIII Original Soundtrack/09 The Extreme.ogg
Final Fantasy/Final Fantasy X Original Soundtrack/05 Other World (Alternate 3).ogg
Final Fantasy/Final Fantasy X Original Soundtrack/09 Battle.ogg
Final Fantasy/Final Fantasy X Original Soundtrack/16 Enemy Attack.ogg
Final Fantasy/Final Fantasy X Original Soundtrack/10 Challenge.ogg
Final Fantasy/Final Fantasy X Original Soundtrack/15 Seymour Battle.ogg
Final Fantasy/Final Fantasy X Original Soundtrack/18 Decisive Battle.ogg

37
.config/nvim/init.lua Normal file
View File

@ -0,0 +1,37 @@
vim.cmd('source ~/.vimrc')
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
vim.g.mapleader = " "
require("lazy").setup("plugins", {
defaults = { lazy = false },
install = { colorscheme = { "tokyonight" } },
checker = { enabled = false },
change_detection = { notify = false },
performance = {
rtp = {
disabled_plugins = {
"gzip",
"matchit",
"matchparen",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})
require("config")

View File

@ -0,0 +1,13 @@
require("config.settings")
-- require("config.yaml")
-- Remaps
vim.keymap.set("n", "<leader><C-e>", vim.cmd.Ex)
-- Telescope
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.git_files, {})
-- Nvim-Tree

View File

@ -0,0 +1,21 @@
vim.o.tabstop = 4
vim.o.expandtab = true
vim.o.softtabstop = 4
vim.o.shiftwidth = 4
vim.o.number = true
vim.o.relativenumber = true
vim.o.swapfile = false
vim.o.backup = false
vim.o.hlsearch = false
vim.o.incsearch = true
vim.o.termguicolors = true
vim.o.scrolloff = 8
vim.o.updatetime = 50
vim.opt.colorcolumn = '80'

View File

@ -0,0 +1,4 @@
return {
"MunifTanjim/nui.nvim",
"nvim-lua/plenary.nvim",
}

View File

@ -0,0 +1,6 @@
local fugitive = {
'tpope/vim-fugitive',
}
return fugitive

View File

@ -0,0 +1,6 @@
local gitsigns = {
'lewis6991/gitsigns.nvim',
}
return gitsigns

View File

@ -0,0 +1,9 @@
local monokai = {
'loctvl842/monokai-pro.nvim',
config = function()
vim.cmd([[colorscheme monokai-pro]])
end
}
return { monokai }

View File

@ -0,0 +1,9 @@
local telescope = {
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-lua/plenary.nvim"
}
}
return { telescope }

239
.config/polybar/config.ini Normal file
View File

@ -0,0 +1,239 @@
[colors]
background = #21201E
foreground = #EAD17F
primary = #F0C674
secondary = #8ABEB7
yellow = #d79921
blue = #458588
purple = #b16286
eggplant = #3E2441
red = #E01D4D
white = #ebdbb2
aqua = #689d6a
alert = #A54242
disabled = #76573A
; character clothing colors
color-1 = #C5A55C
color-2 = #B43F1C
color-3 = #D0C0AD
color-4 = #88748F
; deep crystal colors
crystal-1 = #BA3320
crystal-2 = #CDB648
crystal-3 = #568125
crystal-4 = #4048A4
; light crystal colors
; crystal-1 = #D57F5E
; crystal-2 = #E7D570
; crystal-3 = #B4D175
; crystal-4 = #A3B3CA
[fonts]
font-0 = Font Awesome 5 Free:style=solid:size=13;3
font-1 = FiraCode Nerd Font Mono:style=bold:size=13;3
font-2 = JetBrainsMono Nerd Font Mono:style=bold:size=11;3
font-3 = JetBrainsMono Nerd Font Mono:style=bold:size=10;3
[bar/primary]
monitor = DP-0
width = 100%
height = 32
padding-right = 2
enable-ipc = true
fixed-center = true
wm-restack = bspwm
override-redirect = false
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
font-0 = ${fonts.font-0}
font-1 = ${fonts.font-1}
font-2 = ${fonts.font-2}
font-3 = ${fonts.font-3}
modules-left = bspwm xwindow
modules-center = mpd
modules-right = pulseaudio cpu memory eth sep date
[bar/secondary]
monitor = DP-4
width = 100%
height = 30
fixed-center = true
wm-restack = bspwm
tray-position = right
override-redirect = false
background = ${colors.background}
foreground = ${colors.foreground}
font-0 = ${fonts.font-0}
font-1 = ${fonts.font-1}
font-2 = ${fonts.font-2}
font-3 = ${fonts.font-3}
modules-left = bspwm
# modules-center = date
modules-right = date sep
[module/bspwm]
type = internal/bspwm
pin-workspaces = true
enable-click = true
ws-icon-0 = term;
ws-icon-1 = browser;
ws-icon-2 = game;
ws-icon-3 = code;
ws-icon-4 = mail;
ws-icon-5 = browser2;
ws-icon-6 = comm;
ws-icon-7 = music;
ws-icon-8 = server;
ws-icon-9 = misc;
ws-icon-10 = tmp;
format = <label-state>
format-font = 1
label-focused = %icon%
label-focused-background = ${colors.eggplant}
label-focused-padding = 2
label-occupied = %icon%
label-occupied-padding = 2
label-urgent = %icon%
label-urgent-padding = 2
label-urgent-background = ${colors.alert}
label-empty = %icon%
label-empty-padding = 2
label-empty-foreground = ${colors.disabled}
label-separator = |
label-separator-foreground = ${colors.disabled}
[module/sep]
type = custom/text
content = |
content-foreground = ${colors.disabled}
content-padding = 1
[module/xwindow]
type = internal/xwindow
format = <label>
format-padding = 2
format-font = 4
label = %title%
label-maxlen = 50
[module/pulseaudio]
type = internal/pulseaudio
use-ui-max = false
format-volume = <ramp-volume> <label-volume>
format-volume-foreground = ${colors.foreground}
format-volume-underline = ${colors.crystal-1}
format-volume-padding = 1
ramp-volume-0 = " "
ramp-volume-1 = " "
ramp-volume-2 = " "
ramp-volume-font = 1
ramp-volume-foreground = ${colors.foreground}
label-volume = %percentage%%
label-volume-font = 3
format-muted-padding = 1
label-muted = ""
label-muted-foreground = ${colors.disabled}
click-middle = pavucontrol
[module/cpu]
type = internal/cpu
interval = 2
format-padding = 1
format-prefix = " "
format-prefix-font = 1
format-prefix-foreground = ${colors.foreground}
format-prefix-underline = ${colors.crystal-2}
label = %percentage:2%%
label-underline = ${colors.crystal-2}
label-font = 3
[module/memory]
type = internal/memory
interval = 2
format-padding = 1
format-prefix = " "
format-prefix-font = 1
format-prefix-foreground = ${colors.underline}
format-prefix-underline = ${colors.crystal-3}
label = %percentage_used:2%%
label-underline = ${colors.crystal-3}
label-font = 3
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-connected-padding = 1
format-connected-prefix-padding-right = 1
format-connected-prefix-font = 1
format-connected-prefix-foreground = ${colors.foreground}
format-connected-prefix-underline = ${colors.crystal-4}
label-connected-font = 3
label-connected-underline = ${colors.crystal-4}
format-disconnected = <label-disconnected>
format-disconnected-foreground = ${colors.disabled}
format-disconnected-padding = 2
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
label-disconnected-font = 3
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
[module/eth]
inherit = network-base
interface-type = wired
format-connected-prefix = " "
label-connected = "%local_ip%"
[module/date]
type = internal/date
interval = 1
date-alt = %H:%M
# date = %Y-%m-%d %H:%M:%S
date = %a %e %b %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
label-font = 3
format =  <label>
format-underline = ${colors.foreground}
format-padding = 1
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini

8
.config/polybar/launch.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/env bash
pkill polybar >/dev/null
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
polybar primary &
polybar secondary &

5
.config/rofi/config.rasi Normal file
View File

@ -0,0 +1,5 @@
configuration {
show-icons: true;
icon-theme: "Papirus";
}
@theme "/usr/share/rofi/themes/gruvbox-dark.rasi"

13
.config/rofi/scripts/launcher Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
rofi \
-show drun \
-modi run,drun \
-no-lazy-grab \
-scroll-method 0 \
-drun-match-fields all \
-drun-display-format "{name}" \
-no-drun-show-actions \
-terminal kitty
# -theme "${HOME}/.config/rofi/themes/launcher.rasi"

44
.config/rofi/scripts/screenshot Executable file
View File

@ -0,0 +1,44 @@
#!/bin/bash
DIR="$HOME/.config/rofi"
rofi_command="rofi -theme $DIR/themes/screenshot.rasi"
time=`date +%Y-%m-%d-%H-%M-%S`
dir="$HOME/Pictures/Screenshots"
file="Screenshot_${time}.png"
screenleft="< "
area=""
screenright=" >"
shotscreenleft() {
cd ${dir} && sleep 0.5 && maim -u -f png -g 2560x1440+0+0 | tee "$file" | xclip -selection clipboard -t image/png
}
shotscreenright() {
cd ${dir} && sleep 0.5 && maim -u -f png -g 2560x1440+2560+0 | tee "$file" | xclip -selection clipboard -t image/png
}
shotarea() {
cd ${dir} && sleep 0.5 && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | tee "$file" | xclip -selection clipboard -t image/png
}
if [[ ! -d "$dir" ]]; then
mkdir -p "$dir"
fi
options="$screenleft\n$area\n$screenright"
chosen="$(echo -e "$options" | $rofi_command -dmenu -selected-row 1)"
case $chosen in
$screenleft)
shotscreenleft
;;
$area)
shotarea
;;
$screenright)
shotscreenright
;;
esac

View File

@ -0,0 +1,9 @@
* {
background: #21201E;
foreground: #EAD17F;
selected: #F0C674;
highlight: #8ABEB7;
urgent: #BF616A;
on: #3E2441;
off: #76573A;
}

View File

@ -0,0 +1,3 @@
configuration {
sidebar-mode: true;
}

View File

@ -0,0 +1,86 @@
configuration {
font: "Font Awesome 5 Free 20";
show-icons: false;
disable-history: false;
click-to-exit: true;
}
@import "colors.rasi"
* {
background-color: @background;
text-color: @foreground;
}
window {
transparency: "real";
border-radius: 0px;
location: center;
width: 500px;
x-offset: -15px;
y-offset: -45px;
}
listview {
columns: 3;
lines: 1;
spacing: 12px;
cycle: true;
dynamic: true;
layout: vertical;
}
mainbox {
background-color: @background;
children: [ listview ];
spacing: 12px;
margin: 12px;
}
element {
background-color: @background;
text-color: @foreground;
orientation: vertical;
border-radius: 0px;
}
element-text {
background-color: inherit;
text-color: inherit;
font: "Font Awesome 5 Free 20";
expand: true;
horizontal-align: 0.5;
vertical-align: 0.5;
margin: 48px 0px 48px 0px;
}
element normal.urgent,
element alternate.urgent {
background-color: @off;
text-color: @background;
border-radius: 0px;
}
element normal.active,
element alternate.active {
background-color: @on;
text-color: @background;
}
element selected {
background-color: @selected;
text-color: @background;
border: 0px;
border-radius: 0px;
border-color: @highlight;
}
element selected.urgent {
background-color: @on;
text-color: @background;
}
element selected.active {
background-color: @off;
color: @background;
}

41
.config/starship.toml Normal file
View File

@ -0,0 +1,41 @@
"$schema" = 'https://starship.rs/config-schema.json'
add_newline = false
format = '''\[[$username $hostname](bold green)\] $directory$python$fill$time$fill$container$git_branch$git_commit$git_state$git_status
$character[\$](bold green) '''
right_format = '''$elixir$elm$cmd_duration'''
[username]
show_always = true
format = '[$user]($style) @'
style_user = 'bold green'
[hostname]
ssh_only = false
format = '[$hostname]($style)'
style = 'bold green'
[character]
success_symbol = '[✔](bold green)'
# success_symbol = '[\$](bold green)'
error_symbol = '[✗](bold red)'
# error_symbol = '[\$](bold red)'
[container]
style = 'bold blue dimmed'
[directory]
truncation_symbol = '.../'
truncate_to_repo = false
before_repo_root_style = 'bold cyan'
repo_root_style = 'bold bright-cyan'
repo_root_format = '[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($repo_root_style)[$read_only]($read_only_style) '
[fill]
symbol = ' '
[time]
disabled = false
format = '[$time]($style)'

1
.config/sv/ashuffle/conf Normal file
View File

@ -0,0 +1 @@
OPTS=

0
.config/sv/ashuffle/down Normal file
View File

5
.config/sv/ashuffle/run Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
[ -r conf ] && source conf
exec 2>&1
exec ashuffle ${OPTS}

3
.config/sv/dbus-session/check Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
exec >/dev/null 2>&1
exec dbus-send --session / org.freedesktop.DBus.Peer.Ping

4
.config/sv/dbus-session/run Executable file
View File

@ -0,0 +1,4 @@
#!/bin/execlineb -P
importas -i XDG_RUNTIME_DIR XDG_RUNTIME_DIR
dbus-daemon --session --nofork --nopidfile --address=unix:path=${XDG_RUNTIME_DIR}/bus

0
.config/sv/mpd/down Normal file
View File

3
.config/sv/mpd/run Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
exec 2>&1
exec mpd --no-daemon

View File

@ -0,0 +1,3 @@
#!/bin/sh
svlogd -tt .

5
.config/sv/polybar-primary/run Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
export DISPLAY=:0
exec 2>&1
polybar primary

View File

@ -0,0 +1,3 @@
#!/bin/sh
svlogd -tt .

View File

@ -0,0 +1,5 @@
#!/bin/bash
export DISPLAY=:0
exec 2>&1
polybar secondary

3
.config/sv/ssh-agent/finish Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
rm -f "${XDG_RUNTIME_DIR}/ssh-agent" && exit 0

2
.config/sv/ssh-agent/run Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
exec ssh-agent -D -a "${XDG_RUNTIME_DIR}/ssh-agent"

8
.config/sv/sxhkd/run Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
export DISPLAY=:0
export SHELL=/bin/bash
cd /home/hendrik
exec 2>&1
exec sxhkd

4
.config/sv/syncthing/log/run Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
exec 2>&1
exec svlogd -tt .

3
.config/sv/syncthing/run Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
exec 2>&1
exec /usr/bin/syncthing --logflags 0 --no-restart --home="$HOME/.config/syncthing"

118
.config/sxhkd/sxhkdrc Normal file
View File

@ -0,0 +1,118 @@
# wm independent hotkeys
# terminal emulator
super + Return
kitty
super + e
nautilus
super + f
firefox
# program launcher
# super + space
# dmenu_run
super + space
~/.config/rofi/scripts/launcher
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
# bspwm hotkeys
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
super + {w,q}
bspc node -{c,k}
# alternate between the tiled and monocle layout
# super + m
# bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest window
super + g
bspc node -s biggest.window
super + shift + s
~/.config/rofi/scripts/screenshot
#
# state/flags
#
# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}
# send node to left tree and rotate 90 degrees
ctrl + alt + {h,j,k,l}
bspc node -n {west,south,north,east}
ctrl + alt + r
bspc node -r 90
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus paired desktop
super + {1-5}
select={1-5}; \
current="$(bspc query -M -m focused)"; \
opposite="$(bspc query -M -m 'any.!focused')"; \
bspc desktop -f "$opposite:^$select"; \
bspc desktop -f "$current:^$select"
# focus or move node to single desktop
super + ctrl + {1-9,0}
bspc desktop -f "^{1-9,0}"
# send note to single desktop
super + shift + {1-9,0}
bspc node -d "^{1-9,0}" --follow
# swap current desktop with target desktop and switch to paired desktop afterwards
super + alt + {1-5}
select={1-5}; \
current="$(bspc query -M -m focused)"; \
opposite="$(bspc query -M -m 'any.!focused')"; \
bspc desktop -s "$current:^$select" --follow; \
bspc desktop -f "$opposite:^$select"
# move current window to tmp desktop // or recall tmp windows
super + m
bspc node -d "tmp"
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
# super + ctrl + shift + space
# bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel

View File

@ -0,0 +1 @@
/home/hendrik/git/game-configs/csgo/autoexec.cfg

View File

@ -0,0 +1 @@
/home/hendrik/git/game-configs/csgo/practice.cfg

15
.editorconfig Normal file
View File

@ -0,0 +1,15 @@
root = true
[*]
# charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
indent_size = 4
indent_style = space
[*.{yml,yaml}]
indent_size = 2
indent_style = space

2
.fehbg Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
feh --no-fehbg --bg-scale '/mnt/win/d/Sync/Pictures/Public/Wallpapers/365242.jpg'

Binary file not shown.

BIN
.fonts/rodin.otf Normal file

Binary file not shown.

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.config/nvim/lazy-lock.json

18
.gtkrc-2.0 Normal file
View File

@ -0,0 +1,18 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/hendrik/.gtkrc-2.0.mine"
gtk-theme-name="Orchis-Pink-Dark"
gtk-icon-theme-name="la-capitaine-icon-theme"
gtk-font-name="Sans 10"
gtk-cursor-theme-name="Qogir"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"

5
.local/bin/README.md Normal file
View File

@ -0,0 +1,5 @@
# Custom binary files
sqs is not created by me, please take a look at the original creator's repository:
[syncthing-quick-status](https://github.com/serl/syncthing-quick-status)

215
.local/bin/sqs Executable file
View File

@ -0,0 +1,215 @@
#!/bin/bash
if ((BASH_VERSINFO[0] < 4)); then
echo "This script needs at least bash 4."
missing_deps=1
fi
for dep in curl jq; do
if ! command -v $dep &>/dev/null; then
echo "$dep is required but not found."
missing_deps=1
fi
done
[[ $missing_deps ]] &&
exit 1
if [[ -z $SYNCTHING_API_KEY ]]; then
: "${SYNCTHING_CONFIG_FILE:="$HOME/.config/syncthing/config.xml"}"
apikey_regex='^\s+<apikey>([^<]+)</apikey>$'
apikey_line="$(grep -E "$apikey_regex" "$SYNCTHING_CONFIG_FILE")"
[[ $apikey_line =~ $apikey_regex ]] &&
SYNCTHING_API_KEY=${BASH_REMATCH[1]}
fi
if [[ -z $SYNCTHING_API_KEY ]]; then
echo "No API key in env. Set one of the variables SYNCTHING_API_KEY or SYNCTHING_CONFIG_FILE and try again..."
exit 1
fi
: "${SYNCTHING_ADDRESS:="localhost:8384"}"
COLOR_PURPLE='\e[95m'
COLOR_GRAY='\e[90m'
COLOR_GREEN='\e[92m'
COLOR_BLUE='\e[34m'
COLOR_RED='\e[31m'
COLOR_RESET='\e[0m'
RECENT_CHANGES_LIMIT=5
LOG_ENTRIES_LIMIT=15
LOG_MAX_AGE=300 # seconds
declare -A api_cache=()
function get_api_response() { # $0 api_name
if [[ -z ${api_cache["$1"]} ]]; then
[[ $DEBUG ]] && echo -e "${COLOR_GRAY}CALLING API: $1${COLOR_RESET}" >&2
api_cache["$1"]="$(curl --silent --insecure -L -H "X-API-Key: $SYNCTHING_API_KEY" "http://$SYNCTHING_ADDRESS/rest/$1")"
fi
RESULT="${api_cache["$1"]}"
# using stdout and piping directly to jq would jump over the cache... not sure why :/
[[ $RESULT == "CSRF Error" ]] && return 1
return 0
}
function jq_arg() {
echo "$1" | jq -r "$2"
}
function call_jq() { # $0 api_name jq_commands
get_api_response "$1" &&
RESULT="$(jq_arg "$RESULT" "$2")"
}
function format_time() {
echo "${COLOR_GRAY}$(echo "$1" | cut -d'.' -f1)${COLOR_RESET}"
}
function get_messages() { # $0 api_name jq_commands message_color_control_code max_age_in_seconds
call_jq "$1" "$2"
RESULT="$(jq_arg "$RESULT" '.when + " " + .message' | tail -n "$LOG_ENTRIES_LIMIT")"
local message_color="$3"
local max_age="${4:-0}"
local min_timestamp="$(($(date +%s) - max_age))"
local result=
local formatted_line=
while IFS= read -r line; do
[[ -z $line ]] && continue
when="$(echo "$line" | cut -d' ' -f1)"
message="$(echo "$line" | cut -d' ' -f2-)"
timestamp="$(date --date="$when" +%s)"
formatted_line="$(format_time "$when") ${message_color}$message${COLOR_RESET}"$'\n'
[[ $max_age -gt 0 ]] && [[ $timestamp -lt $min_timestamp ]] &&
continue
result+="$formatted_line"
done <<< "$RESULT"
[[ -z $result ]] &&
result="$formatted_line" # take the last log line in any case
RESULT="${result%$'\n'}"
}
[[ $1 == -v ]] && VERBOSE=true
if ! call_jq "system/status" '.myID'; then
echo "Error from Syncthing API: $RESULT"
echo "You should probably check and change the variables SYNCTHING_API_KEY or SYNCTHING_CONFIG_FILE."
exit 1
elif [[ -z $RESULT ]]; then
echo "Empty response from Syncthing API."
echo "You should probably check and change the variables SYNCTHING_ADDRESS, SYNCTHING_API_KEY or SYNCTHING_CONFIG_FILE."
exit 1
fi
local_device_id="$RESULT"
call_jq "system/config" '.devices | map(select(.deviceID == "'"$local_device_id"'"))[] | .name'
local_device_name="$RESULT"
echo -n "Local device: $local_device_name"
[[ $VERBOSE ]] && echo -en " ${COLOR_GRAY}($local_device_id)${COLOR_RESET}"
echo $'\n'
echo "Devices:"
call_jq "system/config" '.devices[] | .deviceID'
for device_id in $RESULT; do
[[ $device_id == "$local_device_id" ]] && continue
call_jq "system/config" '.devices | map(select(.deviceID == "'"$device_id"'"))[]'
device_config="$RESULT"
device_name="$(jq_arg "$device_config" '.name')"
echo -n "$device_name: "
call_jq "system/connections" '.connections["'"$device_id"'"]'
device_status="$RESULT"
status="${COLOR_PURPLE}disconnected${COLOR_RESET}"
if [ "$(jq_arg "$device_status" '.paused')" == "true" ]; then
status="${COLOR_GRAY}paused${COLOR_RESET}"
elif [ "$(jq_arg "$device_status" '.connected')" == "true" ]; then
status="${COLOR_GREEN}$(jq_arg "$device_status" '.type')${COLOR_RESET}"
fi
echo -en "$status"
[[ $VERBOSE ]] && echo -en " ${COLOR_GRAY}($device_id)${COLOR_RESET}"
echo
done
echo -e "\nFolders:"
call_jq "system/config" '.folders[] | .id'
for folder_id in $RESULT; do
call_jq "system/config" '.folders | map(select(.id == "'"$folder_id"'"))[]'
folder_config="$RESULT"
folder_label="$(jq_arg "$folder_config" '.label')"
if [ "$folder_label" ]; then
[[ $VERBOSE ]] && folder_label+=" ${COLOR_GRAY}($folder_id)${COLOR_RESET}"
else
folder_label="$folder_id"
fi
echo -en "$folder_label: "
folder_status=
need_bytes=0
folder_paused="$(jq_arg "$folder_config" '.paused')"
[[ $folder_paused == true ]] && folder_status="paused"
if [[ -z $folder_status ]]; then
call_jq "db/status?folder=$folder_id" '.state'
folder_status="$RESULT"
call_jq "db/status?folder=$folder_id" '.needBytes'
need_bytes="$RESULT"
need_bytes_formatted=
[[ $need_bytes -gt 0 ]] &&
need_bytes_formatted="$(numfmt --to=iec-i --suffix=B "$need_bytes")"
fi
case "$folder_status" in
paused)
folder_status="${COLOR_GRAY}$folder_status${COLOR_RESET}"
;;
idle)
[[ $need_bytes -eq 0 ]] &&
folder_status="${COLOR_GREEN}up to date${COLOR_RESET}" ||
folder_status="${COLOR_RED}out of sync${COLOR_RESET}"
;;
scanning|syncing)
folder_status="${COLOR_BLUE}$folder_status${COLOR_RESET}"
;;
esac
[[ $need_bytes -gt 0 ]] && folder_status+=" ($need_bytes_formatted)"
echo -e "$folder_status"
done
echo -e "\nRecent changes:"
call_jq "events/disk?limit=$RECENT_CHANGES_LIMIT&timeout=1" '.[] | .id'
for event_id in $RESULT; do
call_jq "events/disk?limit=$RECENT_CHANGES_LIMIT&timeout=1" '. | map(select(.id == '"$event_id"'))[]'
event="$RESULT"
when="$(jq_arg "$event" '.time')"
path="$(jq_arg "$event" '.data.path')"
folder_id="$(jq_arg "$event" '.data.folderID')"
call_jq "system/config" '.folders | map(select(.id == "'"$folder_id"'"))[].label'
folder_label="${RESULT:-$folder_id}"
action="$(jq_arg "$event" '.data.action')"
action_color='?'
case "$action" in
added) action_color=${COLOR_GREEN}+ ;;
deleted) action_color=${COLOR_RED}- ;;
modified) action_color=${COLOR_BLUE}\# ;;
esac
device_id_prefix="$(jq_arg "$event" '.data.modifiedBy')"
call_jq "system/config" '.devices | map(select(.deviceID | startswith("'"$device_id_prefix"'")))[].name'
device_name="${RESULT:-$device_id_prefix}"
echo -e "$(format_time "$when") ${COLOR_GRAY}$device_name${COLOR_RESET} $folder_label ${action_color}$path${COLOR_RESET}"
done
if [[ $VERBOSE ]]; then
get_messages "system/log" '.messages[]?' '' "$LOG_MAX_AGE"
echo -e "\nLast log entries:"
echo -e "$RESULT"
fi
get_messages "system/error" '.errors[]?' "$COLOR_RED"
if [[ $RESULT ]]; then
echo -e "\nERRORS:"
echo -e "$RESULT"
fi
if [[ $DEBUG ]]; then
echo -e "\ncached responses:"
for k in "${!api_cache[@]}"; do
echo "$k"
done
fi

3
.local/bin/xlocalpkg Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
xpkg -L

25
.local/bin/xp Executable file
View File

@ -0,0 +1,25 @@
#!/bin/sh
# xp PKGS... - like xbps-pkgdb, but take sudo/su into account
which_sudo() {
if command -v sudo >/dev/null && sudo -l | grep -q -e ' ALL$' -e xbps-pkgdb; then
echo sudo
elif command -v doas >/dev/null && [ -f /etc/doas.conf ]; then
echo doas
elif [ "$(id -u)" != 0 ]; then
echo su
fi
}
do_pkgdb() {
if [ "$SUDO" = su ]; then
su root -c 'xbps-pkgdb "$@"' -- sh "$@"
else
$SUDO xbps-pkgdb "$@"
fi
}
SUDO=$(which_sudo)
do_remove "$@"
exit $?

31
.local/bin/xr Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
# xr PKGS... - like xbps-remove -o, but take sudo/su into account
which_sudo() {
if command -v sudo >/dev/null && sudo -l | grep -q -e ' ALL$' -e xbps-remove; then
echo sudo
elif command -v doas >/dev/null && [ -f /etc/doas.conf ]; then
echo doas
elif [ "$(id -u)" != 0 ]; then
echo su
fi
}
do_remove() {
if [ "$SUDO" = su ]; then
su root -c 'xbps-remove "$@"' -- sh "$@"
else
$SUDO xbps-remove "$@"
fi
}
SUDO=$(which_sudo)
do_remove -R "$@"
status=$?
if [ $status -eq 16 ]; then
do_install -u xbps &&
do_install -S "$@"
else
exit $status
fi

3
.local/bin/xremotepkg Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
xpkg -m | grep -v -f <(xpkg -L)

View File

@ -0,0 +1 @@
/home/hendrik/git/game-configs/csgo/autoexec.cfg

View File

@ -0,0 +1 @@
/home/hendrik/git/game-configs/csgo/practice.cfg

6
.ps1
View File

@ -10,8 +10,10 @@ SMILEY="${GREEN}:)${NC}"
FROWNY="${RED}:(${NC}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"
GIT_BRANCH="$(__git_ps1 ' [%s]')"
export PROMPT_DIRTRIM=2
export PROMPT_DIRTRIM=2
# actually export PS1
PS1="${GREEN}\u@\h${NC}:${BLUE}\w${YELLOW}\$(__git_ps1 ' [%s]')${NC} \`${SELECT}\` \$ "
PS1="${GREEN}\u@\h${NC}:${BLUE}\w${YELLOW}\$(__git_ps1 ' [%s]')${NC}\`${SELECT}\` \$ "

59
.vimrc Normal file
View File

@ -0,0 +1,59 @@
" Numbers
set number
set relativenumber
" Indentation
set autoindent
" set filetype indent on
" Tab width
" set expandtab
set noexpandtab
set smarttab
set tabstop=4
set shiftwidth=4
set shiftround
" Search
set hlsearch
set ignorecase
set incsearch
set smartcase
" Performance
set complete-=i
set lazyredraw
" Rendering
set display+=lastline
set encoding=utf-8
set linebreak
set scrolloff=3
set sidescrolloff=5
set wrap
syntax on
" Interface
set laststatus=2
set wildmenu
set tabpagemax=50
set noerrorbells
" set visualbell
" set mouse=a
set title
" Folding
set foldmethod=indent
set foldnestmax=3
set nofoldenable
set autoread
set backspace=indent,eol,start
set confirm
set formatoptions+=j
set nomodeline
set noswapfile
set nrformats-=octal
set wildignore+=.pyc,.swp
autocmd FileType yaml setlocal ai ts=2 sw=2 et cuc nu

View File

@ -4,21 +4,13 @@
[[ -r ~/.alias ]] && . ~/.alias
# xbps-install
alias xin="doas xbps-install -S"
alias xup="doas xbps-install -Su"
# use xtools instead
# alias xin="doas xbps-install -S"
alias xup="xi -Su"
alias xun="xi -S && xi -un | awk '{print \$2 \"\t- \" \$1}' | sed \"s/-\([^- ]*_.*\)/ -> \1/\""
complete -F _xbps_complete xi
# xbps-query
alias xq="xbps-query"
alias xs="xq -Rs"
alias xqs="xq -S"
alias xqm="xq -m"
alias xql="xq -l"
alias xqq="xql | grep ${1}"
alias xqr="xbps-query"
# xbps-remove
alias xr="doas xbps-remove -R"
alias xcln="xr -o"
# config edits
alias cb="vim $HOME/.config/bspwm/bspwmrc"
alias csx="vim $HOME/.config/sxhkd/sxhkdrc"

View File

@ -8,20 +8,41 @@
[[ $- != *i* ]] && return
#################################
# - bash_aliases
# Mandatory source files
# - bash-completion
# - bash-aliases
# - ps1 # replaced by starship, legacy
[[ -r /usr/share/bash-completion/bash_completion ]] && . /usr/share/bash-completion/bash_completion
# always bash-completion first
[[ -r /usr/share/bash-completion/bash_completion ]] &&\
source /usr/share/bash-completion/bash_completion
[[ -f /usr/share/git/git-prompt.sh ]] && . /usr/share/git/git-prompt.sh
# custom bash-completions
[[ -d ~/.config/completions ]] &&\
{ for i in ~/.config/completions/*; do source $i; done }
[[ -r ~/.bash_aliases ]] && . ~/.bash_aliases
# source distro and general purpose aliases
[[ -r ~/.bash_aliases ]] &&\
source ~/.bash_aliases
[[ -r ~/.ps1 ]] && . ~/.ps1
# set PS1 from file
# USE ONLY AFTER GIT PROMPT
[[ -r ~/.ps1 ]] &&\
source ~/.ps1
#################################
# Optional source files
# BEGIN_KITTY_SHELL_INTEGRATION
[[ -n "$KITTY_INSTALLATION_DIR" ]] &&\
[[ -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash" ]] &&\
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"
# END_KITTY_SHELL_INTEGRATION
# Google CLI
[[ -r ~/.googlerc ]] && source ~/.googlerc
#################################
# Debian Defaults
#
# don't put duplicate lines or lines starting with space in the history.
HISTCONTROL=ignoreboth
@ -29,8 +50,8 @@ HISTCONTROL=ignoreboth
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
HISTSIZE=50000
HISTFILESIZE=50000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
@ -39,4 +60,21 @@ shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
complete -cf doas
#################################
# Hooks
# - direnv
# - starship
# - zoxide
command -v direnv &>/dev/null && eval "$(direnv hook bash)"
command -v starship &>/dev/null && eval "$(starship init bash)"
command -v zoxide &>/dev/null && eval "$(zoxide init --cmd cd bash)"
#################################
# Environment variables
export XBPS_DISTDIR="$HOME/git/void-packages"
export SVDIR="$HOME/sv"
export PASSWORD_STORE_ENABLE_EXTENSIONS=true
export PASSWORD_STORE_EXTENSION_COMMANDS="tessen otp"

143
.void.pkgs Normal file
View File

@ -0,0 +1,143 @@
ImageMagick
ModemManager
NetworkManager
amdvlk
amdvlk-32bit
ansible
arandr
aws-cli
base-system
bash-completion
bat
bind-utils
borg
bpytop
bsdtar
chrome-gnome-shell
chromium
chrony
cri-tools
cryptsetup
dino
direnv
docker
docker-compose
easyeffects
easyrsa
elixir
elogind
eog
extension-manager
eza
fff
ffmpeg
firefox
font-awesome5
font-fira-otf
fprintd
gdm
git
gnome
gnome-boxes
go
grub-x86_64-efi
gtk-engine-murrine
gvfs-smb
hplip
htop
hydrus
jq
k9s
keepassxc
kitty
krita
kubectl
kubernetes
kubernetes-helm
lapce
lesspipe
libcanberra-gtk
libcgroup-utils
libdrm-32bit
libidn
libreoffice
libreoffice-gnome
libu2f-host
lightdm
linux5.19
linux5.19-headers
lvm2
mesa-dri-32bit
mesa-vaapi
mesa-vdpau
mesa-vulkan-radeon
mgba-qt
mpd
nautilus
ncmpcpp
neofetch
neovim
nerd-fonts
net-tools
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-ttf
noto-fonts-ttf-extra
nushell
openvpn
operator-sdk
papirus-folders
papirus-icon-theme
patch
pavucontrol
piper
pipewire
podman
powertop
pulseaudio-utils
python3
python3-ansible-lint
python3-pip
python3-psutil
python3-s-tui
rsync
sassc
socklog-void
squid
srain
starship
steam
strace
syncthing
syncthing-gtk
terraform
thefuck
thunderbird
tlp
tlp-rdw
tlpui
tmux
tuxedo-keyboard
unzip
v4l2loopback
vim
virt-manager
vlc
void-repo-multilib
void-repo-multilib-nonfree
void-repo-nonfree
vscode
vsv
vulkan-loader
wget
wireplumber
xclip
xdg-user-dirs
xdg-user-dirs-gtk
xmirror
xorg
xournalpp
xtools
yq
zoxide
zstd

2
.void.pkgs-src Normal file
View File

@ -0,0 +1,2 @@
discord
kubectx-bash

48
.void.profile Normal file
View File

@ -0,0 +1,48 @@
[ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ] && . $HOME/.bashrc
for x in \
"$HOME/.local/share" \
"/usr/share" \
"/usr/local/share" \
; do
[ -d "$x" ] || continue
case ":${XDG_DATA_DIRS}:" in
*":${x}:"*) ;;
*) XDG_DATA_DIRS="${XDG_DATA_DIRS:+$XDG_DATA_DIRS:}${x}" ;;
esac
done
export XDG_DATA_DIRS
export XDG_CACHE_HOME=$HOME/.cache
export XDG_CONFIG_HOME=$HOME/.config
export XDG_DATA_HOME=$HOME/.data
export BROWSER=firefox
export EDITOR=vim
export PAGER=less
export VISUAL=vim
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
: ${SSH_AUTH_SOCK:=$XDG_RUNTIME_DIR/ssh-agent}
export SSH_AUTH_SOCK
for x in \
"$HOME/bin" \
"$HOME/.local/bin" \
"/usr/local/sbin" \
"/usr/local/bin" \
"/usr/sbin" \
"/usr/bin" \
"/sbin" \
"/bin" \
; do
[ -d "$x" ] || continue
case ":${PATH}:" in
*":${x}:"*) ;;
*) PATH="${x:+$x:}${PATH}" ;;
esac
done

31
.void.server.pkgs Normal file
View File

@ -0,0 +1,31 @@
acl-progs
base-system
bash-completion
bind-utils
chrony
ddclient
direnv
docker
docker-compose
exa
fail2ban
git
grub-x86_64-efi
hdparm
htop
intel-ucode
kitty-terminfo
logrotate
lvm2
net-tools
radicale
rsync
rsyslog
runit-iptables
samba
snooze
syncthing
vim
void-repo-nonfree
xtools
zfs

23
.void.wslpkgs Normal file
View File

@ -0,0 +1,23 @@
bash-completion
bat
bind-utils
curl
direnv
exa
git
gitui
hugo
jq
lesspipe
net-tools
sassc
python
python3-pip
ripgrep
starship
unzip
vim
wget
xtools
zellij
zoxide

6
.void.zalias Normal file
View File

@ -0,0 +1,6 @@
# import generic aliases
[[ -r ~/.alias ]] && source ~/.alias
alias xup="xi -Su"
alias xqr="xbps-query"

48
.void.zprofile Normal file
View File

@ -0,0 +1,48 @@
for x in \
"$HOME/.local/share" \
"/usr/share" \
"/usr/local/share" \
; do
[ -d "$x" ] || continue
case ":${XDG_DATA_DIRS}:" in
*":${x}:"*) ;;
*) XDG_DATA_DIRS="${XDG_DATA_DIRS:+$XDG_DATA_DIRS:}${x}" ;;
esac
done
export XDG_DATA_DIRS
for x in \
"$HOME/bin" \
"$HOME/.local/bin" \
"/usr/local/bin" \
"/usr/local/sbin" \
"/usr/bin" \
"/usr/sbin" \
"/bin" \
"/sbin" \
; do
[ -d "$x" ] || continue
case ":${PATH}:" in
*:"${x}:"*) ;;
*) PATH="${x:+$x:}${PATH}" ;;
esac
done
export PATH
export XDG_CACHE_HOME=$HOME/.cache
export XDG_CONFIG_HOME=$HOME/.config
export XDG_DATA_HOME=$HOME/.data
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
export BROWSER=firefox
export EDITOR=vim
export VISUAL=vim
export PAGER=less
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
export MOZ_ENABLE_WAYLAND=1
fi

72
.void.zshrc Normal file
View File

@ -0,0 +1,72 @@
#!/bin/zsh
#
# .void.zshrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# Initialize zinit
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
[ ! -d "$ZINIT_HOME" ] && {
mkdir -p "$(dirname $ZINIT_HOME)"
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
}
source "${ZINIT_HOME}/zinit.zsh"
# Load plugins
autoload -U compinit && compinit
zinit light zsh-users/zsh-syntax-highlighting
zinit light zsh-users/zsh-completions
zinit light zsh-users/zsh-autosuggestions
zinit light Aloxaf/fzf-tab
# Keybindings
bindkey -e
bindkey '^p' history-search-backward
bindkey '^n' history-search-forward
bindkey '^[[1;3D' backward-word # ALT LeftArrowKey
bindkey '^[[1;3C' forward-word # ALT RightArrowKey
bindkey '^[[1;5D' backward-word # CTRL LeftArrowKey
bindkey '^[[1;5C' forward-word # CTRL RightArrowKey
bindkey '^[[3~' delete-char # DEL
# Command history
HISTSIZE=10000
SAVEHIST=$HISTSIZE
HISTFILE=~/.zsh_history
HISTDUP=erase
setopt appendhistory
setopt sharehistory
setopt hist_ignore_space
setopt hist_ignore_all_dups
setopt hist_save_no_dups
setopt hist_ignore_dups
setopt hist_find_no_dups
# FZF
export FZF_DEFAULT_OPTS='--height 40%'
# Completions
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
zstyle ':completion:*' menu no
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza --tree --level=2 --color=always $realpath'
# Aliases
# Shell integrations
eval "$(fzf --zsh)"
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
command -v direnv &>/dev/null && eval "$(direnv hook zsh)"
command -v direnv &>/dev/null && eval "$(zoxide init --cmd cd zsh)"
# Prompt
command -v direnv &>/dev/null && eval "$(starship init zsh)"
# Alias
[[ -r ~/.zalias ]] && source ~/.zalias

1
.zalias Symbolic link
View File

@ -0,0 +1 @@
/home/hendrik/.void.zalias

1
.zprofile Symbolic link
View File

@ -0,0 +1 @@
/home/hendrik/.void.zprofile

1
.zshrc Symbolic link
View File

@ -0,0 +1 @@
/home/hendrik/.void.zshrc

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

BIN
Pictures/void-wallpaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
Pictures/voidlinux-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -1,5 +1,8 @@
# dotfiles
`mkdir -p git/.dotfiles && git init --bare git/.dotfiles`
`cd $HOME && git --git-dir=$HOME/git/.dotfiles --work-tree`
Contains .dotfiles for my debian and void distros.
Clone and `ln -s` the applicable files to the distro agnotic filenames. e.g.:

5
sv/README.md Normal file
View File

@ -0,0 +1,5 @@
# My user services
I run a user-svdir in this directory and link services from my ~/.config/sv here.
The services will be enabled by my INSTALL script and point to `/home/<user>/sv`.

53
void-install/install-home.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/sh
: ${DOTFILES_HOME:=$HOME/git/dotfiles}
: ${XDG_CACHE_HOME:=$HOME/.cache}
: ${XDG_CONFIG_HOME:=$HOME/.config}
: ${XDG_DATA_HOME:=$HOME/.data}
: ${BIN_HOME:=$HOME/.local/bin}
: ${SV_HOME:=$HOME/.config/sv}
: ${SVDIR:=$HOME/sv}
cat <<! >&2
XDG_CACHE_HOME = ${XDG_CACHE_HOME}
XDG_CONFIG_HOME = ${XDG_CONFIG_HOME}
XDG_DATA_HOME = ${XDG_DATA_HOME}
BIN_HOME = ${BIN_HOME}
SV_HOME = ${SV_HOME}
SVDIR = ${SVDIR}
!
# symlink dirs
ln -sfn "${DOTFILES_HOME}"/.cache "${XDG_CACHE_HOME}"
ln -sfn "${DOTFILES_HOME}"/.config "${XDG_CONFIG_HOME}"
ln -sfn "${DOTFILES_HOME}"/.data "${XDG_DATA_HOME}"
ln -sfn "${DOTFILES_HOME}"/.bin "${BIN_HOME}"
ln -sfn "${DOTFILES_HOME}"/.config/sv "${SV_HOME}"
ln -sfn "${DOTFILES_HOME}"/sv "${SVDIR}"
# symlink files
_ln_home() {
[ -z "$2" ] && target="$HOME/$1" || target="$HOME/$2"
source="$PWD/$1"
ln -sfn "$source" "$target"
}
# environment
echo "${HOME}" >"${XDG_DATA_HOME}"/env/HOME
echo "${XDG_CACHE_HOME}" >"${XDG_DATA_HOME}"/env/XDG_CACHE_HOME
echo "${XDG_CONFIG_HOME}" >"${XDG_DATA_HOME}"/env/XDG_CONFIG_HOME
echo "${XDG_DATA_HOME}" >"${XDG_DATA_HOME}"/env/XDG_DATA_HOME
echo "${SVDIR}" >"${SVDIR}"/env/SVDIR
# gnome
for i in $(seq 1 9); do gsettings set org.gnome.shell.keybindings switch-to-application-$i []; done

23
void-install/install-root.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# install per-user-runsvdir in ~/sv
# drop available services in ~/.config/sv
# and link to ~/sv to enable them
zuser=
[ -z "$zuser" ] && echo "User is not set, please edit the script accordingly." && exit 1
install -d /etc/sv/runsvdir-$zuser
install -m755 sv/runsvdir/run /etc/sv/runsvdir-$zuser/run
sed -i -e "s/\@USER\@/$zuser/g" /etc/sv/runsvdir-$zuser/run
install -m755 sv/runsvdir/finish /etc/sv/runsvdir-$zuser/finish
sed -i -e "s/\@USER\@/$zuser/g" /etc/sv/runsvdir-$zuser/finish
ln -sf /run/runit/supervise.runsvdir-$zuser /etc/sv/runsvdir-$zuser/supervise
# force-enable Wayland on nvidia GPUs
ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
# Set ulimit and vm.max_map_count
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
echo "$zuser hard nofile 524288" >> /etc/security/limits.conf
echo "$zuser soft nofile 524288" >> /etc/security/limits.conf

View File

@ -0,0 +1,6 @@
#!/bin/sh
ZUSER=@USER@
sv -w600 force-stop /home/$ZUSER/sv/*
sv exit /home/$ZUSER/sv/*

16
void-install/sv/runsvdir/run Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
ZUSER=@USER@
ID=$(id -u $ZUSER)
GROUPS=$(id -Gn "$ZUSER" | tr ' ' ':')
export HOME="/home/$ZUSER"
SVDIR="$HOME/sv"
export XDG_RUNTIME_DIR="/run/user/$ID"
[ ! -d /run/user/$ID ] && \
mkdir -p $XDG_RUNTIMEDIR && \
chown $ZUSER:$ZUSER $XDG_RUNTIME_DIR
exec chpst -u "$ZUSER:$GROUPS" sh -l -c "exec runsvdir $SVDIR $ZUSER '...'" $ZUSER