commit - 2df4f000bf82f199df629615f6247492cead1040
commit + 1d434cf63b09f46667894a977873fca5122c465c
blob - c9e58d59e2762508ed0afd3d768fad4c62e67283
blob + bb906d8c5ab9ec57d39fbbd42bd542b191dfb7e1
--- flake.lock
+++ flake.lock
]
},
"locked": {
- "lastModified": 1785496534,
- "narHash": "sha256-EASdusMYLuPhOCrE3LmsAGOvGhX3vnKBLxFvj9lI8tU=",
+ "lastModified": 1785531816,
+ "narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "e8827fbbb12015a8dd9f66285aec79d655bcb9f6",
+ "rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe",
"type": "github"
},
"original": {
blob - b9615e049e99230b5e7020acf2ce5351ff90868e
blob + b18bbe3e9e719b5c5c7d424c78f08865c61e1e1b
--- hosts/void/default.nix
+++ hosts/void/default.nix
trusted-users = "miro";
};
+ home.activation.stunnelCertificate = lib.hm.dag.entryAfter ["writeBoundary"] ''
+ dataDir="$HOME/.local/share/stunnel"
+ certDir="$dataDir/void"
+ certFile="$certDir/cert.pem"
+ keyFile="$certDir/key.pem"
+
+ if [[ ! -s "$certFile" || ! -s "$keyFile" ]]; then
+ run mkdir -p "$dataDir"
+ run bash -c 'cd "$1" && exec "$2" -domains "$3" -ip-addresses "$4"' \
+ _ "$dataDir" "${lib.getExe pkgs.minica}" "void,void.local,localhost" "127.0.0.1,::1"
+ run chmod 600 "$keyFile"
+ fi
+ '';
+
home.packages = lib.concatLists (lib.attrValues (with pkgs; {
web = [
aerc
oha
rathole
winbox
+ stunnel
+ minica
];
media = [
blob - d56619723e330745b665ea3dd0d30b973d8cd654 (mode 644)
blob + /dev/null
--- hosts/void/overlays/bin/foot
+++ /dev/null
-#!/bin/sh
-if [ -n "${XDG_RUNTIME_DIR:-}" ] && [ -n "${WAYLAND_DISPLAY:-}" ]; then
- sock="$XDG_RUNTIME_DIR/foot-$WAYLAND_DISPLAY.sock"
-fi
-
-if [ -n "${sock:-}" ] && [ -S "$sock" ]; then
- exec footclient "$@"
-else
- exec foot "$@"
-fi
blob - 649dfb40d2bb0a2e812d1ce4cd72f6a375b12b40
blob + ecbf720129e459075185bf4f4f9e2f30390a3d2b
--- hosts/void/overlays/config/shepherd/init.d/foot-server.scm
+++ hosts/void/overlays/config/shepherd/init.d/foot-server.scm
;; -*- mode: scheme; -*-
(use-modules (helpers))
-(exec-service 'foot-server '("foot" "--server"))
+(exec-service 'foot-server '("/usr/bin/foot" "--server"))
blob - /dev/null
blob + 541596cd5aba01df0559215a264a9a709d369e46 (mode 644)
--- /dev/null
+++ hosts/void/overlays/config/shepherd/init.d/stunnel.scm
+;; -*- mode: scheme; -*-
+(use-modules (helpers))
+(exec-service 'stunnel
+ (list "stunnel"
+ (string-append %user-config-dir "/stunnel/stunnel.conf")))
blob - /dev/null
blob + fbb3d2ea0fbd66fc505cfad3171de03b4198d7ca (mode 644)
--- /dev/null
+++ hosts/void/overlays/config/stunnel/stunnel.conf.nix
+{homeDir, ...}: ''
+ foreground = yes
+ pid =
+
+ [app]
+ accept = 127.0.0.1:8443
+ connect = 127.0.0.1:8087
+ cert = ${homeDir}/.local/share/stunnel/void/cert.pem
+ key = ${homeDir}/.local/share/stunnel/void/key.pem
+
+ sslVersionMin = TLSv1.2
+ ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
+ options = NO_RENEGOTIATION
+''
blob - cb2683ba5ae3ac50e33702496653d07de6cd341b
blob + fb4bffd227f8807839b17ea2b88841e8e2d60890
--- hosts/void/overlays/config/volare/config
+++ hosts/void/overlays/config/volare/config
set $mod Mod1
set $alt Mod4
-set $term foot
+set $term footclient
set $menu dmenu_run $dmenu_args
set $wobsock $XDG_RUNTIME_DIR/wob.sock
blob - 1ec1889d667f69364669c19566013fc6f2bf9a8d
blob + a753c28e323e82f1ba5bb12fc4b102cf32aa3a94
--- modules/mixins/dotfiles/config/mpv/mpv.conf
+++ modules/mixins/dotfiles/config/mpv/mpv.conf
+hwdec=auto-safe
+vo=gpu
+gpu-api=opengl
+
sub-font="DejaVu Sans"
sub-font-size=60
save-watch-history
resume-playback
+save-position-on-quit
+resume-playback
+
# This makes things safer for F1 and similar videos with common titles after
# https://github.com/mpv-player/mpv/commit/e143966a7
resume-playback-check-mtime
script-opts=ytdl_hook-ytdl_path=yt-dlp
-ytdl-format=bestvideo[height<=?720][fps<=?60][vcodec!=?vp9]+bestaudio/best
+ytdl-format=bestvideo[height<=?1080][fps<=?60][vcodec!=?vp9][vcodec!=?av1]+bestaudio/best
# Without downmix sometimes speech is really drowned out by environmental
# noise.
vd-lavc-threads=4
demuxer-thread=yes
-# There was a bunch of odd amdgpu kernel panics recently, remove later.
+[dv]
+vo=gpu-next
+gpu-api=vulkan
hwdec=no
-vo=wlshm
+tone-mapping=bt.2446a
+tone-mapping-mode=luma
blob - 36e0ffa4d28093a815f0a526a9ae609970d7a78f
blob + d38061197ee3e9d6bf2dee7dea06563481115b9c
--- modules/mixins/dotfiles/config/shell/rc/aliased-short-names
+++ modules/mixins/dotfiles/config/shell/rc/aliased-short-names
alias sa='sshs'
alias h='histdb'
-alias rnj='just run'
-alias dfj='just diff'
-alias chj='just check'
-alias bdj='just build'
-alias dpj='just deploy'
+alias rnj='make run'
+alias dfj='make diff'
+alias chj='make check'
+alias bdj='make build'
+alias dpj='make deploy'
alias bexec='bundle exec'
alias brake='bexec rake'
blob - e9cf5dffd607b19698aa6c1b17c460d4a7bd7449
blob + d7aca74f440faba8e74f210ba4af680d07e432b3
--- modules/mixins/dotfiles/config/shell/rc/prompt-functions
+++ modules/mixins/dotfiles/config/shell/rc/prompt-functions
# vim: ft=sh
-_SNOWFLAKE=$(printf '\342\235\204')
-_C_RESET=$(tput sgr0)
-_C_1=$(tput setaf 1)
-_C_2=$(tput setaf 7)
-_C_3=$(tput setaf 244)
-_C_4=$(tput setaf 2)
-_C_6=$(tput setaf 6)
-colour_part() {
- colour_val=''
- msg="$2"
- delim="${3- }"
- [ "$msg" ] || return 1
- case $1 in
- 1) colour_val=$_C_1 ;;
- 2) colour_val=$_C_2 ;;
- 3) colour_val=$_C_3 ;;
- 4) colour_val=$_C_4 ;;
- 6) colour_val=$_C_6 ;;
+_ESC=$(printf '\033')
+if [ -n "${ZSH_VERSION-}" ]; then
+ _prompt_np_open='%{'
+ _prompt_np_close='%}'
+else
+ _prompt_np_open='\['
+ _prompt_np_close='\]'
+fi
+
+_color() { printf '%s%s[%sm%s' "$_prompt_np_open" "$_ESC" "$1" "$_prompt_np_close"; }
+
+C_RESET=$(_color 0)
+C_1=$(_color 31)
+C_3=$(_color '38;5;244')
+C_4=$(_color 32)
+C_6=$(_color 36)
+
+if [ -n "${ZSH_VERSION-}" ]; then
+ _prompt_percent='%%'
+else
+ _prompt_percent='%'
+fi
+
+_seg() { printf '%s%s%s' "$1" "$2" "$C_RESET"; }
+
+_CORNER_TL=$(_seg "$C_3" '┌')
+_CORNER_BL=$(_seg "$C_3" '└')
+_MARKER_OK=$(_seg "$C_4" "$_prompt_percent")
+_MARKER_ERROR=$(_seg "$C_1" "$_prompt_percent")
+
+_HOSTNAME=$(hostname 2>/dev/null) || _HOSTNAME=''
+_HOSTNAME=${_HOSTNAME%%.*}
+_UID_USER=$(id -un 2>/dev/null) || _UID_USER=''
+
+_prompt_pwd() {
+ case "$PWD" in
+ "$HOME") _seg "$C_4" '~' ;;
+ "$HOME"/*) _seg "$C_4" "~${PWD#"$HOME"}" ;;
+ *) _seg "$C_4" "$PWD" ;;
esac
- if [ "$BASH" ]; then
- printf '%s ' "$msg"
- elif [ "$ZSH_VERSION" ]; then
- printf '%%{%s%%}%s%%{%s%%}'"${delim}" "$colour_val" "$msg" "$_C_RESET"
- fi
}
-_virt_prompt() {
- if [ "$_VIRT" ]; then
- :
- elif [ "${JUNEST_ENV:-0}" -eq 1 ]; then
- _VIRT=junest
- else
- _VIRT=$(systemd-detect-virt 2>/dev/null)
- [ "$_VIRT" = none ] && unset _VIRT
- fi
- colour_part 6 "$_VIRT"
-}
-
-_hostname_prompt() {
- [ "$SSH_CLIENT" ] || return
- if ! [ "$_HOSTNAME" ]; then
- _HOSTNAME=$(hostname)
- _HOSTNAME="${_HOSTNAME%%.*}"
- fi
- colour_part 3 "$_HOSTNAME"
-}
-
-_devshell_prompt() {
- [ "$IN_NIX_SHELL" ] || [ "$DEVSHELL_ROOT" ] || return
- colour_part 6 " $_SNOWFLAKE"
-}
-
-_user_prompt() {
- if ! [ "${_USER+x}" ]; then
- user=$(id -un)
- case $user in
- miro) _USER='' ;;
- *) _USER=$user ;;
+_prompt_git() {
+ head=${GIT_DIR:-.git}/HEAD
+ if [ -r "$head" ]; then
+ IFS= read -r ref <"$head" || return
+ case "$ref" in
+ refs/heads/*) _seg "$C_6" "[${ref#refs/heads/}]" ;;
+ *) return ;;
esac
+ else
+ return
fi
- colour_part 3 "${_USER:+"$_USER@"}" ''
}
-_pwd_prompt() {
- [ "$PWD" = "$HOME" ] && return
- colour_part 4 "${PWD##*/}"
+_prompt_host() {
+ _seg "$C_3" "$_HOSTNAME"
}
+_prompt_takeover() {
+ owner=$(stat -c %U . 2>/dev/null) || return
+ if [ "$owner" = "$_UID_USER" ]; then
+ return
+ fi
+ _seg "$C_1" "$owner"
+ printf ' '
+ _seg "$C_1" "took"
+}
+
+_prompt_time() {
+ _seg "$C_3" "$(date +%H:%M)"
+}
+
_get_ps1() {
- if [ "$ZSH_VERSION" ]; then
- prompt_ender="%(?:%%:%{${_C_1}%}%%%{${_C_RESET}%})"
+ exit_status=$?
+ sep=' '
+ pwd=$(_prompt_pwd)
+ git=$(_prompt_git)
+ time=$(_prompt_time)
+ host=$(_prompt_host)
+ take=$(_prompt_takeover)
+
+ l1="$_CORNER_TL$pwd"
+ if [ -n "$git" ]; then
+ l1="$l1$sep$git"
+ fi
+
+ l2="$_CORNER_BL$time"
+ if [ -n "$host" ]; then
+ l2="$l2$sep$host"
+ fi
+ if [ -n "$take" ]; then
+ l2="$l2$sep$take"
+ fi
+ if [ "$exit_status" -eq 0 ]; then
+ marker=$_MARKER_OK
else
- prompt_ender=%
+ marker=$_MARKER_ERROR
fi
- printf '%s%s%s%s%s%s ' \
- "$(_devshell_prompt)" \
- "$(_user_prompt)" \
- "$(_hostname_prompt)" \
- "$(_pwd_prompt)" \
- "$(_virt_prompt)" \
- "$prompt_ender"
+ l2="$l2$sep$marker"
+
+ # POSIX-compatible printf
+ printf '%s\n%s ' "$l1" "$l2"
}
blob - 0fb9485d54d7010fa5ccaa292755d9b5cd50cb3e
blob + 5f7d3d57de7935f41c7d9835d2a3cb5647c6836e
--- modules/mixins/dotfiles/config/zsh/rc/plugins
+++ modules/mixins/dotfiles/config/zsh/rc/plugins
. $HOME/.config/zsh/plugins/zsh-autopair/autopair.zsh
fi
-# https://github.com/zsh-users/zsh-autosuggestions
-export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#eca28f,bold"
-
-if [[ -f $HOME/.config/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then
- . $HOME/.config/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
-fi
-
# https://github.com/larkery/zsh-histdb
source $HOME/.config/zsh/plugins/zsh-histdb/sqlite-history.zsh
source $HOME/.config/zsh/plugins/zsh-histdb/histdb-interactive.zsh