This commit is contained in:
kento2 2026-09-05 12:12:35 +02:00
parent ef3e97c79e
commit 0086cdbded
10 changed files with 51 additions and 677 deletions

56
README
View file

@ -1,50 +1,18 @@
SETUP
-----
/etc/doas.conf:
permit nopass keepenv :wheel
do it in the order: BASICS, (if using laptop), ALSA, POWER MANAGEMENT, SERVICES.
Follow the knowledge section in any order.
* SETUP
-----
$ xbps-install -Su xbps
$ xbps-install xtools
$ xi git make lr
$ xi tlp # if using laptop (for power management)
$ git clone git://kentoj.de/d.git ~/dots
$ cd ~/dots
$ xi $(cat pkgs.txt)
$ make
$ chsh -s /bin/zsh
$ su -c "echo 'permit nopass keepenv :wheel' > /etc/doas.conf"
* ALSA
----
$ usermod -aG audio <username>
$ # relogin
$ mkdir -p /etc/alsa/conf.d
$ ln -s /usr/share/alsa.conf.d/50-pipewire.conf .
$ ln -s /usr/share/alsa.conf.d/99-pipewire-default.conf
=> now relogin
* POWER MANAGEMENT
----------------
my /etc/tlp.conf:
/etc/tlp.conf:
# Battery charge level below which charging will begin.
START_CHARGE_THRESH_BAT0=75
# Battery charge level above which charging will stop.
STOP_CHARGE_THRESH_BAT0=80
* SERVICES
--------
run the following command to register the services:
$ for sv in dbus tlp socklog-unix turnstiled; do
doas ln -vs "/etc/sv/$sv" /var/service
done
it will fail for `tlp` if you skipped the POWER MANAGEMENT section but that's
fine.
KNOWLEDGE
---------
@ -53,31 +21,23 @@ KNOWLEDGE
- tlp for power management
- nsxiv for image viewing
- dooble for browser
- links for quick html rendering
- zathura and zathura-pdf-mupdf as pdf viewer
- pcmanfm as a file manager
* non-packaged packages
---------------------
keep source in ~/opt/<project>.
have a makefile with an install and uninstall target in each
directory.
* autologin voidlinux tty1 to x11
-------------------------------
you can do this if u want:
$ cp /etc/sv
$ cp -r agetty-tty1 agetty-autologin-tty1
(naming is important)
in /etc/sv/agetty-autologin-tty1/conf:
/etc/sv/agetty-autologin-tty1/conf:
GETTY_ARGS="--autologin <username> --noclear"
BAUD_RATE=38400
TERM_NAME=linux
now enable the service and disable the agetty-tty1 service.
now enable the agetty-autologin-tty1 service and disable
the agetty-tty1 service.
* no beep
-------
@ -101,6 +61,4 @@ TODO
* backups
* some MUA, mblaze?
* rnnoise/noise-suppression
* cupload script
* set user dirs + delete redundant
* platinum9/nineicons for icons

View file

@ -1,142 +0,0 @@
## CWM config file
ignore xclock
# Sticky groups: uncomment to enable worskpace-like behavior
sticky yes
focusfollowsmouse no
# Default font
fontname "Iosevka:pixelsize=14:bold"
# Appearance
borderwidth 5
color activeborder "#845c68"
color inactiveborder "#343335"
color urgencyborder "#cc241d"
# Menu colors
color font "#eeeeee"
color selfont "#eeeeee"
color menubg "#161616"
color menufg "#5294E2"
#Gaps (top, bottom, left, right)
#gap 32 8 8 8
gap 18 8 8 8
# Size of manually tiled Windows in %
htile 55
vtile 55
# How many pixels a window gets moved by
moveamount 75
# Commands
command term /usr/bin/lxterminal
# Key bindings
## 4 = Super key
## S = shift
## M = meta key = alt
# Remove all default keybindings
unbind-key all
# Toggle visibility of group n, hiding all other groups
bind-key 4-Tab group-last
bind-key 4-1 group-only-1
bind-key 4-2 group-only-2
bind-key 4-3 group-only-3
bind-key 4-4 group-only-4
bind-key 4-5 group-only-5
bind-key 4-6 group-only-6
bind-key 4-7 group-only-7
bind-key 4-8 group-only-8
bind-key 4-9 group-only-9
# Toggle group n's visibility, without hiding active group
bind-key 4C-1 group-toggle-1
bind-key 4C-2 group-toggle-2
bind-key 4C-3 group-toggle-3
bind-key 4C-4 group-toggle-4
bind-key 4C-5 group-toggle-5
bind-key 4C-6 group-toggle-6
bind-key 4C-7 group-toggle-7
bind-key 4C-8 group-toggle-8
bind-key 4C-9 group-toggle-9
# Move window to group n
bind-key 4S-1 window-movetogroup-1
bind-key 4S-2 window-movetogroup-2
bind-key 4S-3 window-movetogroup-3
bind-key 4S-4 window-movetogroup-4
bind-key 4S-5 window-movetogroup-5
bind-key 4S-6 window-movetogroup-6
bind-key 4S-7 window-movetogroup-7
bind-key 4S-8 window-movetogroup-8
bind-key 4S-9 window-movetogroup-9
# Toggle visibility of all groups
bind-key 4-a group-toggle-all
# Add focused window to current group
#bind-key 4-g window-group
# What follows is rather self-explanatory
bind-key 4-r restart
bind-key 4MS-q quit
bind-key 4S-d window-close
bind-key 4-u window-hide
bind-key 4-g window-fullscreen
bind-key 4-m window-maximize
bind-key 4C-t window-htile
bind-key 4-t window-vtile
# Cycle/reverse cycle through windows
bind-key M-Tab window-cycle
bind-key MS-Tab window-rcycle
# Move windows
bind-key 4C-h window-move-left
bind-key 4C-j window-move-down
bind-key 4C-k window-move-up
bind-key 4C-l window-move-right
bind-key 4CS-h window-resize-left-big
bind-key 4CS-j window-resize-down-big
bind-key 4CS-k window-resize-up-big
bind-key 4CS-l window-resize-right-big
bind-mouse 4-1 window-move
bind-mouse 4-3 window-resize
# Snap windows
bind-key 4M-h window-snap-left
bind-key 4M-j window-snap-down
bind-key 4M-k window-snap-up
bind-key 4M-l window-snap-right
# Open programms
bind-key 4S-Return lxterminal
bind-key 4-s screenshot
# Open menus
bind-key 4-f menu-window
bind-key 4-d "dmenu_run -nb '#000000' -sb '#353047' -sf '#ffffff'"
bind-key 4-s "kfavmenu"
# Volume control
bind-key XF86AudioRaiseVolume "vol +"
bind-key XF86AudioLowerVolume "vol -"
bind-key XF86AudioMute "vol ."
bind-key XF86AudioMicMute "vol !"
bind-key 4-y "playerctl -p spotify play-pause 2>/dev/null || playerctl play-pause"
bind-key 4-less "playerctl previous"
bind-key 4-greater "playerctl next"
# Autogroup some apps
autogroup 5 "dooble,firefox,librewolf"

View file

@ -1,26 +0,0 @@
# ~/.foprc
# open in editor
\.(c|h|txt|md)$ : vis
# open images
\.(png|jpg|gif|webp)$ : nsxiv
\.svg$ : librewolf
# open videos
\.(avi|mp4|mkv|mp3|ogg|flac|mov|webm)$ : mpv
# open audios
\.(mp3|wav)$ : mpv
# open www
^https?:// : librewolf
# open documents
\.pdf$ : librewolf
\.html$ : netsurf
# open files with no extension
(^|/)\.?[^./]+$ : vis
. : vis

View file

@ -1,352 +0,0 @@
# marker theme by tenner, www.tenr.de
# When testing changes, the easiest way to reload the theme is with /RELOAD.
# This reloads the configuration file too, so if you did any changes remember
# to /SAVE it first. Remember also that /SAVE overwrites the theme file with
# old data so keep backups :)
# TEMPLATES:
# The real text formats that irssi uses are the ones you can find with
# /FORMAT command. Back in the old days all the colors and texts were mixed
# up in those formats, and it was really hard to change the colors since you
# might have had to change them in tens of different places. So, then came
# this templating system.
# Now the /FORMATs don't have any colors in them, and they also have very
# little other styling. Most of the stuff you need to change is in this
# theme file. If you can't change something here, you can always go back
# to change the /FORMATs directly, they're also saved in these .theme files.
# So .. the templates. They're those {blahblah} parts you see all over the
# /FORMATs and here. Their usage is simply {name parameter1 parameter2}.
# When irssi sees this kind of text, it goes to find "name" from abstracts
# block below and sets "parameter1" into $0 and "parameter2" into $1 (you
# can have more parameters of course). Templates can have subtemplates.
# Here's a small example:
# /FORMAT format hello {colorify {underline world}}
# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; }
# When irssi expands the templates in "format", the final string would be:
# hello %G%Uworld%U%n
# ie. underlined bright green "world" text.
# and why "$0-", why not "$0"? $0 would only mean the first parameter,
# $0- means all the parameters. With {underline hello world} you'd really
# want to underline both of the words, not just the hello (and world would
# actually be removed entirely).
# COLORS:
# You can find definitions for the color format codes in docs/formats.txt.
# There's one difference here though. %n format. Normally it means the
# default color of the terminal (white mostly), but here it means the
# "reset color back to the one it was in higher template". For example
# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would
# print yellow "foo" (as set with %Y) but "bar" would be green, which was
# set at the beginning before the {foo} template. If there wasn't the %g
# at start, the normal behaviour of %n would occur. If you _really_ want
# to use the terminal's default color, use %N.
#############################################################################
# default foreground color (%N) - -1 is the "default terminal color"
default_color = "-1";
# print timestamp/servertag at the end of line, not at beginning
info_eol = "false";
# these characters are automatically replaced with specified color
# (dark grey by default)
replaces = { "[]=" = "%K$*%n"; };
abstracts = {
##
## generic
##
# text to insert at the beginning of each non-message line
#line_start = "%n";
line_start = "%K%K";
# timestamp styling, nothing by default
timestamp = "%K%%H%%M";
# any kind of text that needs hilighting, default is to bold
hilight = "%_$0-%_";
# any kind of error message, default is bright red
error = "%R$*%n";
# channel name is printed
#channel = "%_$*%_";
channel = "%K$0-";
# nick is printed
#nick = "%_$*%_";
nick = "%_$0-%_";
# nick host is printed
#nickhost = "[$*]";
nickhost = "%K(%K$0-%K)%K";
# server name is printed
server = "%_$*%_";
# some kind of comment is printed
#comment = "[$*]";
comment = "%K(%K$0-%K)%n";
# reason for something is printed (part, quit, kick, ..)
#reason = "{comment $*}";
reason = "{comment %K$0-}";
# mode change is printed ([+o nick])
#mode = "{comment $*}";
mode = "{comment $0-}";
##
## channel specific messages
##
# highlighted nick/host is printed (joins)
channick_hilight = "%K$*%n";
chanhost_hilight = "{nickhost %K$*%n}";
# nick/host is printed (parts, quits, etc.)
channick = "%K$*%n";
chanhost = "{nickhost $*}";
# highlighted channel name is printed
channelhilight = "%K$*%n";
# ban/ban exception/invite list mask is printed
ban = "%K$*%n";
##
## messages
##
# the basic styling of how to print message, $0 = nick mode, $1 = nick
msgnick = "%n$0$1-%K>%n %|";
# message from you is printed. "msgownnick" specifies the styling of the
# nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
# whole line.
# Example1: You want the message text to be green:
# ownmsgnick = "{msgnick $0 $1-}%g";
# Example2.1: You want < and > chars to be yellow:
# ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
# (you'll also have to remove <> from replaces list above)
# Example2.2: But you still want to keep <> grey for other messages:
# pubmsgnick = "%K{msgnick $0 $1-%K}%n";
# pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
# pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
# ownprivmsgnick = "%K{msgnick $*%K}%n";
# privmsgnick = "%K{msgnick %R$*%K}%n";
# $0 = nick mode, $1 = nick
ownmsgnick = "{msgnick $0 $1-}";
ownnick = "%Y$*%n";
# public message in channel, $0 = nick mode, $1 = nick
pubmsgnick = "{msgnick $0 $1-}";
pubnick = "%W$*%n";
# public message in channel meant for me, $0 = nick mode, $1 = nick
pubmsgmenick = "{msgnick $0 $1-}%y";
menick = "%Y$*%y";
# public highlighted message in channel
# $0 = highlight color, $1 = nick mode, $2 = nick
pubmsghinick = "{msgnick $1 $0$2-}%y";
# channel name is printed with message
msgchannel = "%K:%Y$*%n";
# private message, $0 = nick, $1 = host
privmsg = "[%Y$0%K(%r$1-%K)%n] ";
# private message from you, $0 = "msg", $1 = target nick
ownprivmsg = "[%W$0%K(%R$1-%K)%n] ";
# own private message in query
ownprivmsgnick = "{msgnick %g$*}";
ownprivnick = "%Y$*%n";
# private message in query
privmsgnick = "{msgnick %W$*%n}";
##
## Actions (/ME stuff)
##
# used internally by this theme
# action_core = "%W$[-9]0- * %w";
action_core = "%W$0-%w";
# generic one that's used by most actions
action = " %G*** %|{action_core %G$*} ";
# own action, both private/public
ownaction = "{action $*}";
# own action with target, both private/public
ownaction_target = "{action_core $0}%K:%c$1%w ";
# private action sent by others
pvtaction = "%W (*) $*%w ";
pvtaction_query = "{action $*}";
# public action sent by others
pubaction = "{action $*}";
##
## other IRC events
##
# whois
whois = "%# $[8]0 : $1-";
# notices
ownnotice = "[%r$0%K(%R$1-%K)]%n ";
notice = "%K-%M$*%K-%n ";
pubnotice_channel = "%K:%m$*";
pvtnotice_host = "%K(%m$*%K)";
servernotice = "%g!$*%n ";
# CTCPs
ownctcp = "[%r$0%K(%R$1-%K)] ";
ctcp = "%g$*%n";
# wallops
wallop = "%W$*%n: ";
wallop_nick = "%n$*";
wallop_action = "%W * $*%n ";
# netsplits
netsplit = "%r$*%n";
netjoin = "%g$*%n";
# /names list
names_prefix = "";
names_nick = "[%_$0%_$1-] ";
names_nick_op = "{names_nick $*}";
names_nick_halfop = "{names_nick $*}";
names_nick_voice = "{names_nick $*}";
names_users = "[%g$*%n]";
names_channel = "%g$*%n";
# DCC
dcc = "%g$*%n";
dccfile = "%_$*%_";
# DCC chat, own msg/action
dccownmsg = "[%r$0%K($1-%K)%n] ";
dccownnick = "%R$*%n";
dccownquerynick = "%W$*%n";
dccownaction = "{action $*}";
dccownaction_target = "{action_core $0}%K:%c$1%n ";
# DCC chat, others
dccmsg = "[%B$1-%K(%b$0%K)%n] ";
dccquerynick = "%G$*%n";
dccaction = "%W (*dcc*) $*%n %|";
##
## statusbar
##
# default background for all statusbars. You can also give
# the default foreground color for statusbar items.
sb_background = "%N";
# default backround for "default" statusbar group
#sb_default_bg = "%4";
# background for prompt / input line
sb_prompt_bg = "%n";
# background for info statusbar
sb_info_bg = "%8";
# background for topicbar (same default)
#sb_topic_bg = "%4";
# text at the beginning of statusbars. sb-item already puts
# space there,so we don't use anything by default.
sbstart = "";
# text at the end of statusbars. Use space so that it's never
# used for anything.
sbend = " ";
topicsbstart = "{sbstart $*}";
topicsbend = "{sbend $*}";
prompt = "%W$*%n>%n ";
sb = "%N$*%K%n ";
#sb = "%c(%n$*%c)%n";
sbmode = "%K/%K+%g$* %K%n";
sbaway = " ****%W$0%n****";
sbservertag = ":$0";
sbnickmode = "$0";
# ',' separator
sb_act_sep = "%K$*";
# normal text
sb_act_text = "%K$*";
# public message
sb_act_msg = "%W$*";
# hilight
sb_act_hilight = "%Y$*";
# hilight with specified color, $0 = color, $1 = text
sb_act_hilight_color = "$0$1-%n";
sbmore = "%_+++%_";
sb_usercount = "{sb %_$0%_ nicks ($1-)}";
sb_uc_ircops = "%_*%_$*";
sb_uc_ops = "%_@%_$*";
sb_uc_halfops = "%_%%%_$*";
sb_uc_voices = "%_+%_$*";
sb_uc_normal = "$*";
sb_uc_space = " ";
};
formats = {
"fe-common/core" = {
daychange = "%Y< %%d %%b %%Y %Y>";
nick_changed = " %K~:%w$0 %Y>> %W$1";
join = " %Kj:$0{channick_hilight}:{chanhost_hilight $1}";
part = " %Kp:$0{channick}%K:{chanhost $1}";
quit = " %Kq:$0{channick}%K:{chanhost $1}";
kick = " %rk%K:$0{channick}/%K{channel $1}/%K{nick $2}/%K{reason $3}";
topic_unset = " %KT:[%G{channel %G$1}%K]/{nick %W$0}: %|%w$2";
new_topic = " %KT:[%G{channel %G$1}%K]/{nick %W$0}: %|%w$2";
};
"fe-common/irc" = {
chanmode_change = " %Km:%w{%wmode $1}%K/%n{nick $2}";
whois = "%n·---%nWhois%n---<%n $0 {chanhost_hilight $1@$2}%w%:%n|%n {whois ircname $3}";
whois_idle = "%n|%n {whois idle %|$1d $2h $3m $4s}";
whois_idle_signon = "%n|%n {whois idle %|$1d $2h $3m $4s {comment signon: $5}}";
whois_server = "%n|%n {whois server %|$1 {comment $2}}";
whois_oper = "%n|%n {whois {hilight $1}}";
whois_registered = "%n|%n {whois has registered this nick}";
whois_help = "%n|%n {whois is available for help}";
whois_modes = "%n|%n {whois modes $1}";
whois_realhost = "%n|%n {whois hostname $1-}";
whois_usermode = "%n|%n {whois usermode $1}";
whois_channels = "%n|%n {whois channels %|$1}";
whois_away = "%n|%n {whois away %|$1}";
whois_special = "%n|%n {whois info %|$1}";
whois_extra = "%n|%n {whois extra %|$1}";
end_of_whois = "%n`---------------------------------------------------------";
whois_not_found = "%n>%w>%n>%n There is no such nick $0";
};
};

View file

@ -1,10 +0,0 @@
#!/bin/sh
set -e
if ! test "$(id -u)" = 0; then
>&2 echo "mkbackup has to be run as root"
exit 1
fi
export BORG_RSH="ssh -i '$HOME/.ssh/id_ed25519'"
borg create -e '*/.git/*' -e "$HOME/nfs" --verbose "backups@kentoj.de:$(hostname)::$(date -I)_$1" /etc /home /srv /var /usr

View file

@ -1,14 +0,0 @@
printf 'BAT %s%%\n' "$(cat /sys/class/power_supply/BAT0/capacity)"
ps_pwd() {
if test "$PWD" = "$HOME"; then
echo '~'
else
echo "$(basename "$PWD")"
fi
}
PS1='$(ps_pwd) % '
alias reload=". '$ENV'"
alias xi='xi -y'
alias xr='doas xbps-remove -y'

View file

@ -1,9 +0,0 @@
#!/bin/sh
set -e
rm -rf "$HOME"/.config/service-env
mkdir -p "$HOME"/.config/service-env
env | while read -r pair; do
turnstile-update-runit-env "$(cut -d= -f1 <<< "$pair")"
done
turnstile-update-runit-env 'DISPLAY=:0'
exec startx

View file

@ -1,18 +1 @@
export ENV="$HOME/.shrc"
export PATH="$HOME/.local/bin":"$PATH"
export MANPATH="/usr/local/man":"$MANPATH"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:/usr/lib/pkgconfig
export XKB_DEFAULT_LAYOUT=de
export XBPS_DISTDIR="$HOME/void-packages"
export GOPHER=/usr/local/bin/sacc
export EDITOR=/usr/bin/vis
export CHEZSCHEMELIBDIRS="/usr/local/lib/csv10.3.0/":"$CHEZSCHEMELIBDIRS"
if grep -q l <<< "$-" && test "$(tty)" = '/dev/tty1'; then
rm -rf "$HOME"/.config/service-env
cd
echo 'Press return to start gui'
read && exec startx
fi
. "$HOME/.profile"

View file

@ -8,32 +8,23 @@ PS1='%B%m%(?.. %??)%(1j. %j&.)%b %2~%B%#%b '
# minimal usable history, 12nov2015 +leah+
setopt histignoredups histignorespace incappendhistory extendedhistory
SAVEHIST=9000 HISTSIZE=9000 HISTFILE=~/.zsh_history
# minimal functions, 08sep2017 +leah+
g() { LC_ALL=C grep --exclude "*~" -r -P ${@:?regexp missing}; }
sprunge() { cat $@ | curl -sF 'sprunge=<-' http://sprunge.us; }
# minimal functions, 02mar
# minimal functions, 02mar +kenshi+
mkcd() { mkdir -p "$1"; cd "$1"; }
set -o emacs
cdpath="$HOME"
# date +hostname+ [battery]
printf '%s +%s+ %s\n' \
"$(date +%d%b%Y | tr [:upper:] [:lower:])" "$(hostname)" \
"$((cat /sys/class/power_supply/BAT0/capacity 2>/dev/null && echo %) | tr -d '\n')"
test -d ~/Downloads && rmdir ~/Downloads
kcdp() {
name="`lr -A -t 'depth > 3 ? prune : print' -t 'type=d' "$HOME/src" -s | fzy`"
test $? -eq 0 && cd "$HOME/src/$name"
}
kmktags() { ctags `lr -A -t 'name=~".(ch)$"'`; }
alias xi='doas xi -y'
alias vi='vis'
alias xr='doas xbps-remove -y'
alias kpc='pass -c'
alias kp='pass'
alias nman='man -M /usr/local/netbsd-man'
alias kpc='pass -c'
alias xi='doas xi -y'
alias xr='doas xbps-remove'
alias strace='strace -f -s 256 -yy'
# print date +hostname+ [battery]
printf '%s +%s+ %s\n' \
"$(date +%d%b%Y | tr [:upper:] [:lower:])" \
"$(hostname)" \
"$((cat /sys/class/power_supply/BAT0/capacity 2>/dev/null && echo %) | tr -d '\n')"
test -d ~/Downloads && rmdir ~/Downloads

View file

@ -29,19 +29,14 @@ scrot
sct
seatd
socklog-void
terminus-font
turnstile
neovim
void-docs-browse
xarchiver
xclip
xf86-video-intel
xorg
xtools
zathura
zathura-pdf-mupdf
zsh
perl-Glib-Object-Introspection
perl-HTML-Parser
libnotify
irssi-perl