commit ecce53d833714fbbe80dca960e0780f27587c96e
parent 381f5f81db9d4fa8a72f806297d7585a89b41d82
Author: mtmn <miro@haravara.org>
Date: Tue, 23 Jun 2026 20:56:25 +0200
void: setup khal, nb, etc.
Diffstat:
13 files changed, 44 insertions(+), 76 deletions(-)
diff --git a/hosts/void/default.nix b/hosts/void/default.nix
@@ -44,6 +44,7 @@
geesefs
ouch
xan
+ nb
];
vcs = [
diff --git a/hosts/void/overlays/bin/khaln_cron b/hosts/void/overlays/bin/khaln_cron
@@ -0,0 +1,9 @@
+#!/bin/sh
+pid=$(pgrep -u "$(id -u)" -x river | head -1)
+
+if [ -n "$pid" ]; then
+ DBUS_SESSION_BUS_ADDRESS=$(tr '\0' '\n' </proc/"$pid"/environ | grep '^DBUS_SESSION_BUS_ADDRESS=' | cut -d= -f2-)
+ export DBUS_SESSION_BUS_ADDRESS
+fi
+
+WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 /home/miro/bin/khal_notifier "$@"
diff --git a/hosts/void/overlays/config/magdalena/config.json.nix b/hosts/void/overlays/config/magdalena/config.json.nix
Binary files differ.
diff --git a/hosts/work/overlays/bin/nota b/hosts/work/overlays/bin/nota
Binary files differ.
diff --git a/hosts/work/overlays/config/shell/rc/todo b/hosts/work/overlays/config/shell/rc/todo
Binary files differ.
diff --git a/modules/mixins/dotfiles/bin/nota b/modules/mixins/dotfiles/bin/nota
@@ -1,73 +1,38 @@
-#!/bin/bash
+#!/usr/bin/env bash
-shopt -s nullglob
-
-config=${XDG_CONFIG_HOME:-"$HOME/.config"}/nota
-[[ -f "$config" ]] && . "$config"
-
-data_base_dir=${XDG_DATA_HOME:-"$HOME/misc/notes"}
-data_dir=$data_base_dir/nota
-
-mkdir -p "$data_dir"
-cd -- "$data_dir" || exit
+set -euo pipefail
+notebook=${NOTA_NOTEBOOK:-notes}
+nb_dir=${NB_DIR:-"$HOME/.nb"}
+dir=$nb_dir/$notebook
: "${NOTA_READ_ONLY=0}"
-: "${GPG=0}"
-
-editor=${EDITOR:-${VISUAL:-vi}}
-((GPG)) && editor=${PGP_EDITOR:-"$editor"}
-if ((NOTA_READ_ONLY)); then
- # The linter is wrong here, we don't want to do $(cat).
- # shellcheck disable=SC2209
- editor=cat
- ((GPG)) && editor='gpg -q -d'
-fi
-
-unsanitised_basename=${1:-"$(date +%F)"}
+case ${1:-} in
+git)
+ shift
+ exec nb "$notebook:git" "$@"
+ ;;
+ls)
+ exec nb "$notebook:list"
+ ;;
+esac
-case $unsanitised_basename in
-git | ls) exec "$@" ;;
+unsanitised_name=${1:-today}
+case $unsanitised_name in
*' days ago' | yesterday | tomorrow | today)
- unsanitised_basename=$(date -d "$unsanitised_basename" +%F)
+ unsanitised_name=$(date -d "$unsanitised_name" +%F)
;;
esac
-basename=${unsanitised_basename//\//_}
-file=$data_dir/$basename
-((GPG)) && file=$file.gpg
-((MARKDOWN)) && file=$file.md
-
-lock_base="$file.lock"
-lock="$lock_base.$$"
-
-if ! ((NOTA_READ_ONLY)); then
- for existing_lock_file in "$lock_base".*; do
- pid=${existing_lock_file##*.}
- if [[ -d "/proc/$pid" ]]; then
- printf 'Refusing to open %s as it is locked\n' "$file" >&2
- exit 6
- else
- printf 'Removing stale lock %s\n' "$existing_lock_file" >&2
- rmdir -- "$existing_lock_file"
- fi
- done
+name=${unsanitised_name//\//_}
+file=$name.org
- trap 'rmdir -- "$lock"' EXIT
- mkdir -- "$lock"
+if ((NOTA_READ_ONLY)); then
+ exec cat -- "$dir/$file"
fi
-$editor -- "$file"
-
-((NOTA_READ_ONLY)) && exit 0
-
-if ! [[ -f "$file" ]]; then
- printf 'Not committing as %s is missing\n' "$unsanitised_basename" >&2
- exit 5
+if [[ -e "$dir/$file" ]]; then
+ exec nb "$notebook:edit" "$file"
+else
+ exec nb "$notebook:add" --filename "$file"
fi
-
-git init
-git add "$file"
-rmdir -- "$lock"
-trap - EXIT
-git commit -m "Updated $unsanitised_basename"
diff --git a/modules/mixins/dotfiles/bin/todo-notify b/modules/mixins/dotfiles/bin/todo-notify
@@ -1,6 +1,6 @@
#!/bin/bash
-TODO_FILE="$HOME/misc/notes/nota/todo.txt"
+TODO_FILE="$HOME/.nb/notes/todo.txt"
current_date=""
while IFS= read -r line || [[ -n "$line" ]]; do
diff --git a/modules/mixins/dotfiles/bin/todomenu b/modules/mixins/dotfiles/bin/todomenu
@@ -1,6 +1,6 @@
#!/bin/bash
-TODO_FILE="$HOME/misc/notes/nota/todo.txt"
+TODO_FILE="$HOME/.nb/notes/todo.txt"
[ ! -f "$TODO_FILE" ] && exit 1
diff --git a/modules/mixins/dotfiles/bin/yank-to-todo b/modules/mixins/dotfiles/bin/yank-to-todo
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-todo_file=~/misc/notes/nota/todo.txt
+todo_file=~/.nb/notes/todo.txt
if [[ -n "$1" ]]; then
url="$1"
diff --git a/modules/mixins/dotfiles/config/magdalena/config.json.nix b/modules/mixins/dotfiles/config/magdalena/config.json.nix
@@ -35,7 +35,8 @@
"${homeDir}/misc/llm",
"${homeDir}/misc/books",
"${homeDir}/misc/notes",
- "${homeDir}/misc/notes/nota",
+ "${homeDir}/.nb/notes",
+ "${homeDir}/.nb/work",
"${homeDir}/misc/screenshots",
"${homeDir}/misc/recordings",
"${homeDir}/misc/random",
diff --git a/modules/mixins/dotfiles/config/nota b/modules/mixins/dotfiles/config/nota
@@ -1,3 +0,0 @@
-GPG=0
-MARKDOWN=1
-EDITOR=nvim
diff --git a/modules/mixins/dotfiles/config/shell/rc/aliased-short-names b/modules/mixins/dotfiles/config/shell/rc/aliased-short-names
@@ -79,7 +79,7 @@ alias bnp='backup -t git:nota -p'
alias brr='backup -t git:releases -p'
alias nr='newsraft'
-alias nre='$EDITOR ~/src/sr.ht/nix/modules/mixins/dotfiles/config/newsraft/feeds'
+alias nre='vim ~/src/sr.ht/nix/modules/mixins/dotfiles/config/newsraft/feeds'
alias cbd='cargo build'
alias cbr='cargo build --release'
@@ -95,13 +95,8 @@ alias apc='ansible-playbook --check --diff'
alias yt_dlp_audio_url='yt-dlp -f bestaudio -g'
alias yt_dlp_audio='yt-dlp --embed-thumbnail --write-thumbnail --extract-audio --audio-format mp3 --audio-quality 0'
-alias nb='nix build'
-alias nd='nix develop'
-
-alias np='nix profile'
-alias npa='nix profile add'
-alias npl='nix profile list'
-alias npu='nix profile upgrade'
+alias nbd='nix build'
+alias nds='nix develop'
alias hms='just --justfile ~/src/sr.ht/nix/justfile home'
alias hmd='just --justfile ~/src/sr.ht/nix/justfile diff'
diff --git a/modules/mixins/dotfiles/config/shell/rc/todo b/modules/mixins/dotfiles/config/shell/rc/todo
@@ -1,6 +1,6 @@
#!/bin/sh
-f=~/misc/notes/nota/todo.txt
+f=~/.nb/notes/todo.txt
t=${TMPDIR:-/tmp}/ta.$$
alias tt='rg -N -B 1 "^todo:" "$f"'