commit 9caa17625e1fb37023c3a2af111cddbc50e787a1 parent baab4ad9956124e610d6593db3900f00821b69dc Author: mtmn <miro@haravara.org> Date: Fri, 3 Jul 2026 19:53:07 +0200 nix: cleanup, move soju, pimsync setup, etc. Diffstat:
21 files changed, 197 insertions(+), 420 deletions(-)
diff --git a/flake.lock b/flake.lock @@ -162,11 +162,11 @@ ] }, "locked": { - "lastModified": 1783024095, - "narHash": "sha256-oE+TNK98Pl7nHW4VU1oBvUKD5JR45U+py/NJmLoTNHI=", + "lastModified": 1783099620, + "narHash": "sha256-prQSM9PGnrfSaqknJOZ3DCQKbpMiXAWLVC5SHbjLcJ4=", "owner": "nix-community", "repo": "home-manager", - "rev": "a4d410db95a6416d1008049330bd86b85b5db45a", + "rev": "b2e4390ff35319c52935d6a700b615da4c0f204d", "type": "github" }, "original": { diff --git a/hosts/nixaran/configuration.nix b/hosts/nixaran/configuration.nix Binary files differ. diff --git a/hosts/void/default.nix b/hosts/void/default.nix @@ -15,13 +15,13 @@ aerc monolith newsraft - vdirsyncer khal tiny khard chawan discordo toot + pimsync ]; data = [ @@ -46,6 +46,7 @@ xan nb yq + jdupes ]; vcs = [ @@ -54,7 +55,6 @@ git-bug prek hut - got prr tig dura @@ -69,7 +69,6 @@ lftp nmap knot-dns - aria2 yt-dlp awscli2 syncthing @@ -80,7 +79,6 @@ iperf3 sshuttle sshs - flyctl bore-cli ldns bind @@ -143,7 +141,6 @@ fswatch lf elvish - jdupes tealdeer ]; diff --git a/hosts/void/overlays/config/shell/rc/void b/hosts/void/overlays/config/shell/rc/void Binary files differ. diff --git a/hosts/void/overlays/config/tiny/config.yml b/hosts/void/overlays/config/tiny/config.yml @@ -1,9 +1,9 @@ servers: - - addr: irc.haravara.org + - addr: localhost alias: libera autoconnect: true port: 6697 - tls: true + tls: false user: mtmn realname: mtmn nicks: [mtmn] @@ -12,7 +12,7 @@ servers: sasl: username: mtmn/libera@void password: - command: 'pass show "nixaran/soju-mtmn"' + command: 'plass cat irc' defaults: nicks: [mtmn] diff --git a/modules/mixins/dotfiles/bin/backup b/modules/mixins/dotfiles/bin/backup @@ -1,143 +1,159 @@ -#!/usr/bin/env bb -;; vim: ft=clojure - -(ns backup - (:require [clojure.string :as str] - [clojure.tools.cli :refer [parse-opts]] - [babashka.process :refer [shell]])) - -(defn- ts [] - (.format (java.time.ZonedDateTime/now) - (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd'T'HH:mm:ssZ"))) - -(defn- log-msg [msg] - (println (format "[%s]: %s" (ts) msg))) - -(defn- err-msg [msg] - (binding [*out* *err*] - (println (format "[%s]: %s" (ts) msg)))) - -(defn- fatal [msg] - (err-msg msg) - (System/exit 1)) - -(def ^:private failures (atom [])) - -(defn- record-failure [msg] - (swap! failures conj msg) - (err-msg (str "ERROR: " msg))) - -(defn- check [msg result] - (or (zero? (:exit result)) - (do (record-failure msg) false))) - -(def ^:private home (or (System/getenv "HOME") (fatal "HOME not set"))) - -(defn- in-home [m] (update-vals m #(str home %))) - -(def git-dirs - (in-home {"mpd" "/.config/mpd" - "nix" "/src/sr.ht/nix" - "nota" "/.nb/notes" - "pass" "/.password-store" - "releases" "/src/mtmn.name/releases" - "bandcamp" "/misc/music/backlog/_todo"})) - -(def tarsnap-dirs - (in-home {"password-store" "/.password-store" - "releases" "/src/mtmn.name/releases" - "mpd" "/.config/mpd" - "nota" "/.nb/notes"})) - -(defn- run-cmd [verbose & args] - (apply shell - (if verbose - {:continue true :out :inherit :err :inherit} - {:continue true :out :string :err :string}) - args)) - -(defn- git [verbose dir & args] - (apply run-cmd verbose "git" - (str "--git-dir=" dir "/.git") (str "--work-tree=" dir) args)) - -(defn- commit-changes [verbose dir] - (let [staged (git false dir "diff" "--cached" "--name-only")] - (when (check (str "Failed to list staged changes in " dir) staged) - (when (check (str "Failed to commit changes in " dir) - (git verbose dir "commit" "-m" - (str/join " " (map str/trim (str/split-lines (:out staged)))))) - (log-msg (str "Committed changes in " dir)) - true)))) - -(defn- push-changes [dir] - (log-msg (str "Pushing changes from " dir)) - (let [result (git false dir "push")] - (condp = (:exit result) - 0 (log-msg (str "Done pushing " dir)) - 128 (log-msg (str "No push destination for " dir " (skipped)")) - (record-failure (str "Push failed for " dir " (exit " (:exit result) "): " - (str/trim (:err result))))))) - -(defn- sync-repo [{:keys [verbose push]} name dir] - (log-msg (str "git/" name)) - (when (check (str "Failed to stage changes in " dir) - (git verbose dir "add" "-A")) - (let [ok (if (zero? (:exit (git false dir "diff" "--cached" "--quiet"))) - (do (log-msg (str "Nothing to commit in " dir)) true) - (commit-changes verbose dir))] - (when (and push ok) - (push-changes dir))))) - -(defn- tarsnap-archive [{:keys [verbose]} name dir] - (let [stamp (.format (java.time.LocalDateTime/now) - (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd_HH:mm:ss"))] - (log-msg (format "Archiving tarsnap/%s from %s" name dir)) - (when (check (format "tarsnap failed for %s" name) - (run-cmd verbose "tarsnap" "-c" "-f" (str name "-" stamp) "-C" dir ".")) - (log-msg (format "Done tarsnap/%s" name))))) - -(def backends - {"git" {:dirs git-dirs :run sync-repo} - "tarsnap" {:dirs tarsnap-dirs :run tarsnap-archive}}) - -(defn- list-targets [] - (doseq [bname (sort (keys backends))] - (println bname) - (doseq [k (sort (keys (get-in backends [bname :dirs])))] - (println (str " " k))))) - -(defn- backup-target [opts target] - (let [[bname name] (str/split target #":" 2) - {:keys [dirs run]} (or (backends bname) - (fatal (str "Unknown target: " target)))] - (if name - (run opts name (or (dirs name) - (fatal (str "Unknown " bname " target: " name)))) - (doseq [[name dir] dirs] - (run opts name dir))))) - -(def cli-options - [["-t" "--target TARGET" "git, tarsnap, <backend>:<name>"] - ["-p" "--push" "Push changes after commit"] - ["-q" "--quiet" "Suppress command output"] - ["-l" "--list" "List all configured backup targets"] - ["-h" "--help"]]) - -(defn -main [& args] - (let [{:keys [options errors summary]} (parse-opts args cli-options)] - (when errors - (run! println errors) - (System/exit 1)) - (when (or (:help options) - (not (or (:list options) (:target options)))) - (println "Usage: backup [options]") - (println summary) - (System/exit 0)) - (if (:list options) - (list-targets) - (backup-target {:verbose (not (:quiet options)) :push (:push options)} - (:target options))) - (when (seq @failures) - (fatal (format "%d backup target(s) failed" (count @failures)))))) - -(apply -main *command-line-args*) +#!/usr/bin/env ruby +# frozen_string_literal: true +# vim: ft=ruby + +require "optparse" +require "open3" + +module Backup + @failures = [] + + def self.ts = Time.now.strftime("%Y-%m-%dT%H:%M:%S%z") + def self.log(msg) = puts("[#{ts}]: #{msg}") + def self.err(msg) = warn("[#{ts}]: #{msg}") + + def self.fatal(msg) + err(msg) + exit(1) + end + + def self.record_failure(msg) + @failures << msg + err("ERROR: #{msg}") + end + + def self.check(msg, status) + return true if status.success? + record_failure(msg) + false + end + + HOME = ENV.fetch("HOME") { fatal "HOME not set" } + + GIT_DIRS = { + "mpd" => "#{HOME}/.config/mpd", + "nix" => "#{HOME}/src/sr.ht/nix", + "nota" => "#{HOME}/.nb/notes", + "pass" => "#{HOME}/.password-store", + "releases" => "#{HOME}/src/mtmn.name/releases", + "bandcamp" => "#{HOME}/misc/music/backlog/_todo" + }.freeze + + TARSNAP_DIRS = { + "password-store" => "#{HOME}/.password-store", + "releases" => "#{HOME}/src/mtmn.name/releases", + "mpd" => "#{HOME}/.config/mpd", + "nota" => "#{HOME}/.nb/notes" + }.freeze + + def self.run_cmd(verbose, *args) + if verbose + system(*args, out: $stdout, err: $stderr) + [$?, "", ""] + else + out, err, status = Open3.capture3(*args) + [status, out, err] + end + end + + def self.git(dir, *args, verbose:) + run_cmd(verbose, "git", "--git-dir=#{dir}/.git", "--work-tree=#{dir}", *args) + end + + def self.commit_changes(dir, verbose:) + status, out, = git(dir, "diff", "--cached", "--name-only", verbose: false) + return unless check("Failed to list staged changes in #{dir}", status) + files = out.lines.map(&:strip).reject(&:empty?).join(" ") + status2, = git(dir, "commit", "-m", files, verbose: verbose) + return unless check("Failed to commit changes in #{dir}", status2) + log("Committed changes in #{dir}") + true + end + + def self.push_changes(dir) + log("Pushing changes from #{dir}") + status, _, err = git(dir, "push", verbose: false) + if status.success? + log("Done pushing #{dir}") + else + record_failure("Push failed for #{dir} (exit #{status.exitstatus}): #{err.strip}") + end + end + + def self.sync_repo(opts, name, dir) + log("git/#{name}") + status, = git(dir, "add", "-A", verbose: opts[:verbose]) + return unless check("Failed to stage changes in #{dir}", status) + diff, = git(dir, "diff", "--cached", "--quiet", verbose: false) + ok = if diff.success? + log("Nothing to commit in #{dir}") + true + else + commit_changes(dir, verbose: opts[:verbose]) + end + + push_changes(dir) if opts[:push] && ok + end + + def self.tarsnap_archive(opts, name, dir) + stamp = Time.now.strftime("%Y-%m-%d_%H:%M:%S") + log("Archiving tarsnap/#{name} from #{dir}") + status, = run_cmd(opts[:verbose], "tarsnap", "-c", "-f", "#{name}-#{stamp}", "-C", dir, ".") + return unless check("tarsnap failed for #{name}", status) + log("Done tarsnap/#{name}") + end + + BACKENDS = { + "git" => {dirs: GIT_DIRS, run: :sync_repo}, + "tarsnap" => {dirs: TARSNAP_DIRS, run: :tarsnap_archive} + }.freeze + + def self.list_targets + BACKENDS.keys.sort.each do |bname| + puts(bname) + BACKENDS[bname][:dirs].keys.sort.each { |k| puts(" #{k}") } + end + end + + def self.backup_target(opts, target) + bname, name = target.split(":", 2) + backend = BACKENDS[bname] || fatal("Unknown target: #{target}") + dirs = backend[:dirs] + if name + dir = dirs[name] || fatal("Unknown #{bname} target: #{name}") + send(backend[:run], opts, name, dir) + else + dirs.each { |n, d| send(backend[:run], opts, n, d) } + end + end + + def self.main(args) + options = {verbose: true, push: false, list: false} + parser = OptionParser.new do |o| + o.banner = "Usage: backup [options]" + o.on("-t", "--target TARGET", "git, tarsnap, <backend>:<name>") { |v| options[:target] = v } + o.on("-p", "--push", "Push changes after commit") { options[:push] = true } + o.on("-q", "--quiet", "Suppress command output") { options[:verbose] = false } + o.on("-l", "--list", "List all configured backup targets") { options[:list] = true } + o.on("-h", "--help") { + puts(o) + exit(0) + } + end + + parser.parse!(args) + unless options[:list] || options[:target] + puts(parser) + exit(0) + end + + list_targets if options[:list] + if options[:target] + backup_target({verbose: options[:verbose], push: options[:push]}, options[:target]) + end + + fatal("#{@failures.size} backup target(s) failed") unless @failures.empty? + end +end + +Backup.main(ARGV) diff --git a/modules/mixins/dotfiles/bin/khal_notifier b/modules/mixins/dotfiles/bin/khal_notifier @@ -17,21 +17,21 @@ (catch Exception e {:status :error :reason e}))) -(defn sync-vdirsyncer [] - (println "[INFO] Syncing calendars with vdirsyncer") - (let [result (run-cmd "vdirsyncer" ["sync"] :timeout 60000)] +(defn sync-pimsync [] + (println "[INFO] Syncing calendars with pimsync") + (let [result (run-cmd "pimsync" ["sync"] :timeout 60000)] (cond (and (= :ok (:status result)) (zero? (:code result))) - (do (println "[INFO] vdirsyncer sync complete") true) + (do (println "[INFO] pimsync sync complete") true) (= :ok (:status result)) - (do (println (format "[WARN] vdirsyncer exited with code %d: %s" + (do (println (format "[WARN] pimsync exited with code %d: %s" (:code result) (str/trim (or (:out result) "")))) false) - (= :enoent (:reason result)) (do (println "[ERROR] vdirsyncer not found") false) - (= :timeout (:reason result)) (do (println "[ERROR] vdirsyncer timed out") false) - :else (do (println (format "[ERROR] vdirsyncer failed: %s" (ex-message (:reason result)))) + (= :enoent (:reason result)) (do (println "[ERROR] pimsync not found") false) + (= :timeout (:reason result)) (do (println "[ERROR] pimsync timed out") false) + :else (do (println (format "[ERROR] pimsync failed: %s" (ex-message (:reason result)))) false)))) (defn parse-event-line [line] @@ -112,7 +112,7 @@ (defn run-once [lookahead skip-sync] (when-not skip-sync - (when-not (sync-vdirsyncer) + (when-not (sync-pimsync) (println "[WARN] Sync failed — continuing with local calendar data"))) (let [events (get-upcoming-events lookahead) filtered (filter-events events)] @@ -138,7 +138,7 @@ (println) (println "Options:") (println " --lookahead TIME How far ahead to check (default: 60m)") - (println " --skip-sync Skip vdirsyncer sync") + (println " --skip-sync Skip pimsync sync") (println " --help Show this help")) (defn -main [& args] diff --git a/modules/mixins/dotfiles/config/aerc/aerc.conf b/modules/mixins/dotfiles/config/aerc/aerc.conf @@ -30,4 +30,4 @@ text/html=pandoc -f html -t plain x-scheme-handler/http*=printf '%s' {} | wl-copy [hooks] -mail-received=vdirsyncer sync contacts >/dev/null 2>&1 & [ "$AERC_ACCOUNT" = "fastmail" ] && [ "$AERC_FOLDER" != "Spam" ] && [ "$AERC_FOLDER" != "Trash" ] && [ "$AERC_FROM_ADDRESS" != "notifications@github.com" ] && notify-send -a aerc "$AERC_FROM_ADDRESS" "$AERC_SUBJECT" || true +mail-received=pimsync sync contacts >/dev/null 2>&1 & [ "$AERC_ACCOUNT" = "fastmail" ] && [ "$AERC_FOLDER" != "Spam" ] && [ "$AERC_FOLDER" != "Trash" ] && [ "$AERC_FROM_ADDRESS" != "notifications@github.com" ] && notify-send -a aerc "$AERC_FROM_ADDRESS" "$AERC_SUBJECT" || true diff --git a/modules/mixins/dotfiles/config/dunst/dunstrc b/modules/mixins/dotfiles/config/dunst/dunstrc @@ -18,30 +18,30 @@ show_indicators = no stack_duplicates = no [urgency_low] - background = "#424381" - foreground = "#dde0f8" + background = "#0d1612" + foreground = "#d6deeb" timeout = 30 [urgency_normal] - background = "#424381" - foreground = "#dde0f8" + background = "#0d1612" + foreground = "#d6deeb" timeout = 30 [urgency_critical] - background = "#4a1e2e" - foreground = "#dde0f8" + background = "#1a0d0d" + foreground = "#d6deeb" timeout = 0 [khal_notifier] appname = khal_notifier urgency = normal - background = "#424381" - foreground = "#dde0f8" + background = "#0d1612" + foreground = "#d6deeb" timeout = 0 [aerc] appname = aerc urgency = normal - background = "#424381" - foreground = "#dde0f8" + background = "#0d1612" + foreground = "#d6deeb" timeout = 0 diff --git a/modules/mixins/dotfiles/config/elvish/lib/aliases.elv b/modules/mixins/dotfiles/config/elvish/lib/aliases.elv @@ -1,124 +0,0 @@ -fn ls { |@rest| e:eza -a --sort=modified $@rest } -fn eza { |@rest| e:eza -a --sort=modified $@rest } -fn fd { |@rest| e:fd --color never --hidden --exclude .git --exclude $E:HOME/misc/mnt --exclude /nix $@rest } -fn rg { |@rest| e:rg --hidden -i $@rest } -fn vim { |@rest| e:nvim $@rest } -fn less { |@rest| e:less -R $@rest } -fn cp { |@rest| e:cp --backup=numbered --reflink=auto --sparse=always $@rest } -fn mv { |@rest| e:mv --backup=numbered $@rest } -fn ln { |@rest| e:ln --backup=numbered $@rest } -fn sudo { |@rest| e:sudo $@rest } -fn watch { |@rest| e:watch $@rest } -fn bazel { |@rest| e:bazelisk $@rest } -fn wl-copy { |@rest| e:wl-copy -n $@rest } -fn wl-paste { |@rest| e:wl-paste -n $@rest } - -fn l { |@rest| ls $@rest } -fn la { |@rest| ls -a $@rest } -fn ll { |@rest| ls -l $@rest } - -fn f { |@rest| magdalena look-file $@rest } -fn m { |@rest| mntmenu $@rest } -fn p { |@rest| pmn $@rest } -fn q { |@rest| sudo $@rest } - -fn tst { |@rest| e:tmux set status $@rest } -fn tls { e:tmux list-sessions } -fn tms { e:tmux display-message -p '#{session_name}' } - -fn mgr { |@rest| magdalena grep $@rest } -fn mrd { magdalena recent-dirs } -fn mrf { magdalena recent-files } - -fn alt { |@rest| aaltomuoto $@rest } -fn vrt { |@rest| virittaa $@rest } -fn hkn { |@rest| hakuna $@rest } - -fn mach { |@rest| matcha $@rest } -fn machp { |@rest| matcha --playlist $@rest } - -fn duh { |@rest| du -hs $@rest } -fn dfh { df -h } - -fn lopri { |@rest| nice -n 19 ionice -c2 -n7 $@rest } - -fn pps { podman ps } -fn plo { |@rest| podman logs $@rest } -fn pst { podman stats } -fn pbu { |@rest| podman build $@rest } -fn pcu { |@rest| podman-compose up $@rest } -fn pcd { |@rest| podman-compose down $@rest } -fn pcs { |@rest| podman-compose stop $@rest } - -fn mpva { |@rest| mpv --no-video $@rest } -fn pp { mpc toggle } -fn qq { mpc playlist } -fn mpa { |@rest| mpc add $@rest } - -fn n { |@rest| nota $@rest } -fn no { |@rest| nota $@rest } -fn to { nota today } -fn ye { nota yesterday } -fn tom { nota tomorrow } -fn todo { nota todo } -fn wish { nota wishlist } - -fn kat { |@rest| khal at $@rest } -fn khi { khal interactive } -fn khl { |@rest| khal list $@rest } -fn khlw { khal list now 7d } - -fn bpp { backup -t git:pass -p } -fn bnp { backup -t git:nota -p } -fn brr { backup -t git:releases -p } - -fn nr { newsraft } -fn nre { e:nvim ~/src/sr.ht/nix/modules/mixins/dotfiles/config/newsraft/feeds } - -fn cbd { |@rest| cargo build $@rest } -fn cbr { |@rest| cargo build --release $@rest } -fn cip { |@rest| cargo install --path $@rest } -fn cup { |@rest| cargo update --recursive $@rest } - -fn ap { |@rest| ansible-playbook --diff $@rest } -fn apc { |@rest| ansible-playbook --check --diff $@rest } - -fn nd { |@rest| nix develop $@rest } -fn hms { just --justfile ~/src/sr.ht/nix/justfile home } -fn hmd { just --justfile ~/src/sr.ht/nix/justfile diff } -fn nmdr { just --justfile ~/src/sr.ht/nix/justfile diffr } -fn ndpj { just --justfile ~/src/sr.ht/nix/justfile deploy } - -fn ju { |@rest| just $@rest } -fn rnj { just run } -fn dfj { just diff } -fn chj { just check } -fn bdj { just build } -fn dpj { just deploy } - -fn amsp { mpv --no-video https://radio.stereoscenic.com/asp-s --no-resume-playback } -fn nts1 { mpv --no-video https://stream-relay-geo.ntslive.net/stream --no-resume-playback } -fn nts2 { mpv --no-video https://stream-relay-geo.ntslive.net/stream2 --no-resume-playback } - -fn mf { monofetch } -fn sr { |@rest| speedread -w 400 $@rest } -fn jlr { |@rest| jless --mode line $@rest } - -fn chop { perl -pe chop } -fn chomp { perl -pe chomp } - -fn bexec { |@rest| bundle exec $@rest } -fn brake { |@rest| bexec rake $@rest } - -fn chav { |@rest| cha --visual $@rest } -fn pwc { pwd | wl-copy -n } - -fn tt { rg -N -B 1 "^todo:" ~/.nb/notes/todo.txt } -fn tn { todo-notify } - -fn tww { |channel| e:mpv https://twitch.tv/$channel --no-terminal --no-resume-playback & } - -fn dmesg { e:dmesg -T --color=always | e:less -R +G } -fn ncdu { e:sudo ncdu -x --exclude /nix --exclude $E:HOME/misc/mnt / } -fn gdb { |@rest| e:gdb -q $@rest } -fn ipython { |@rest| e:ipython --no-banner $@rest } diff --git a/modules/mixins/dotfiles/config/elvish/lib/git.elv b/modules/mixins/dotfiles/config/elvish/lib/git.elv @@ -1,50 +0,0 @@ -fn cdg { cd (git rev-parse --show-toplevel) } -fn gst { |@rest| git status $@rest } -fn ng { e:nvim -c :Neogit } - -fn gprl { |@rest| git-prole $@rest } -fn gprla { |@rest| git-prole add $@rest } -fn gprlc { |@rest| git-prole convert $@rest } - -fn gn { |@rest| git number --column $@rest } -fn ga { |@rest| git number add $@rest } -fn gc { |@rest| git commit -v $@rest } -fn gcp { |@rest| git cherry-pick --strategy=recursive --strategy-option=diff-algorithm=histogram $@rest } -fn gd { |@rest| git diff --no-prefix $@rest } -fn gl { |@rest| git gol $@rest } -fn gm { |@rest| git merge $@rest } -fn gmc { |@rest| git merge --no-ff $@rest } -fn gp { |@rest| git push $@rest } -fn gs { |@rest| git show --no-prefix $@rest } -fn gref { git reflog --date=iso } - -fn grr { |@rest| git rebase -r $@rest } -fn gri { |@rest| grr -i $@rest } -fn grrm { grr master@{u} } -fn gru { grr @{u} } -fn gabs { git absorb --and-rebase } - -fn gdm { git diff --no-prefix (git merge-base master@{u} HEAD)..HEAD } -fn gdma { git diff --no-prefix (git merge-base main@{u} HEAD)..HEAD } -fn gdd { git diff --no-prefix (git merge-base develop@{u} HEAD)..HEAD } -fn gdu { git diff --no-prefix @{u}.. } -fn gdc { git diff --no-prefix --cached } -fn gdw { git diff --no-prefix --color-words } - -fn ghr { |@rest| git history reword $@rest } -fn ghs { |@rest| git history split $@rest } - -fn gco { |@rest| git checkout $@rest } -fn gsw { |@rest| git switch $@rest } - -fn glm { gl master@{u}.. } -fn glma { gl main@{u}.. } -fn glu { gl @{u}.. } - -fn gap { ga -p } -fn gca { |@rest| gc -a $@rest } -fn gcaa { gca --amend } -fn grh { |@rest| git reset --hard $@rest } -fn grhu { grh @{u} } -fn gpf { gp -f } -fn gcl { git clean -dffx } diff --git a/modules/mixins/dotfiles/config/elvish/rc.elv b/modules/mixins/dotfiles/config/elvish/rc.elv @@ -1,66 +0,0 @@ -use path -use str - -# env -set E:LC_COLLATE = C -set E:EDITOR = nvim -set E:PAGER = less -set E:LESS = -R -set E:VISUAL = nvim -set E:PYTHONDONTWRITEBYTECODE = 1 -set E:PYTHONSTARTUP = $E:HOME/.pythonrc -set E:BROWSER = firefox -set E:NSS_DEFAULT_DB_TYPE = sql -set E:BC_ENV_ARGS = $E:HOME/.config/bcrc -set E:SSH_AUTH_SOCK = $E:XDG_RUNTIME_DIR/ssh-agent.socket -set E:GOPATH = $E:HOME/src/misc/go -set E:MPD_HOST = 127.0.0.1 -set E:MPD_PORT = 6695 -set E:CARGO_TERM_COLOR = always -set E:ZVM_INSTALL = $E:HOME/.zvm/self -set E:MANPAGER = 'nvim +Man!' -set E:FZF_DEFAULT_OPTS = '--highlight-line --ansi --layout=reverse --border=rounded - --color=bg+:#1d3b2e,bg:-1,spinner:#7fdbca,hl:#7fdbca - --color=fg:#d6deeb,header:#637777,info:#637777,pointer:#7fdbca - --color=marker:#7fdbca,fg+:#d6deeb,prompt:#7fdbca,hl+:#7fdbca - --color=border:#0d1612' - -set paths = [ - $E:HOME/.local/share/tools - $E:HOME/.local/share/gem/ruby/3.4.0/bin - $E:HOME/src/go/bin - $E:HOME/.zvm/bin - $E:HOME/.zvm/self - $E:HOME/src/misc/go/bin - $E:HOME/.node_modules/bin - /usr/bin/vendor_perl - /usr/bin/core_perl - /usr/bin/site_perl - $E:HOME/bin - $E:HOME/.local/bin - $E:HOME/.cargo/bin - $E:HOME/go/bin - /usr/local/sbin - /usr/local/bin - /usr/sbin - /usr/bin - /sbin - /bin - /usr/share/bcc - /nix/var/nix/profiles/default/bin - $E:HOME/.nix-profile/bin - $@paths -] - -# load aliases and functions into current namespace -fn -load { |f| eval (slurp < $f) } - -var lib = $E:HOME/.config/elvish/lib --load $lib/aliases.elv --load $lib/git.elv - -# stty -try { e:stty -ixon -ixoff } catch { } - -# zoxide -eval (zoxide init elvish | slurp) diff --git a/modules/mixins/dotfiles/config/halloy/config.toml b/modules/mixins/dotfiles/config/halloy/config.toml Binary files differ. diff --git a/modules/mixins/dotfiles/config/khal/config.nix b/modules/mixins/dotfiles/config/khal/config.nix @@ -14,5 +14,5 @@ longdatetimeformat = %Y-%m-%d %H:%M [default] - default_calendar = 23b7b447-b99f-43a2-ab19-705212272b751 + default_calendar = Calendar '' diff --git a/modules/mixins/dotfiles/config/shell/rc/aliased-short-names b/modules/mixins/dotfiles/config/shell/rc/aliased-short-names @@ -128,3 +128,9 @@ alias bexec='bundle exec' alias brake='bexec rake' alias chav='cha --visual' + +alias boli='boring list' +alias boro='boring open' +alias borc='boring close' +alias borog='boring open -g' +alias borcog='boring close -g' diff --git a/modules/mixins/dotfiles/config/shell/rc/functions b/modules/mixins/dotfiles/config/shell/rc/functions @@ -126,7 +126,7 @@ make() { kana() { khal new --alarms "$@" - vdirsyncer sync + pimsync sync } mpas() { @@ -145,7 +145,7 @@ mpa() { kan() { khal new "$@" - vdirsyncer sync + pimsync sync } ae() { diff --git a/secrets.nix b/secrets.nix @@ -13,8 +13,6 @@ in { "secrets/miniflux-secrets.age".publicKeys = allKeys; "secrets/listenbrainz-token.age".publicKeys = allKeys; "secrets/lastfm-password.age".publicKeys = allKeys; - "secrets/mpd-host.age".publicKeys = allKeys; "secrets/corpus.age".publicKeys = allKeys; "secrets/smtp-alerts-password.age".publicKeys = allKeys; - "secrets/shirts-auth-token.age".publicKeys = allKeys; } diff --git a/secrets/mpd-host.age b/secrets/mpd-host.age Binary files differ. diff --git a/secrets/mpd-port.age b/secrets/mpd-port.age Binary files differ. diff --git a/secrets/shirts-auth-token.age b/secrets/shirts-auth-token.age Binary files differ. diff --git a/secrets/syncthing-s3-credentials.age b/secrets/syncthing-s3-credentials.age Binary files differ.