summaryrefslogtreecommitdiff
path: root/accounts/gkleen@sif/zshrc
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2024-08-15 13:08:00 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2024-08-15 13:08:00 +0200
commita8056c5575e22c814fce2a87f5b1b0d71c8fc402 (patch)
treefa34d6c813e816590edf57ee80b8ee8742599ed5 /accounts/gkleen@sif/zshrc
parent8094ac39153017239eb7cd2525b2df7e93550490 (diff)
downloadnixos-a8056c5575e22c814fce2a87f5b1b0d71c8fc402.tar
nixos-a8056c5575e22c814fce2a87f5b1b0d71c8fc402.tar.gz
nixos-a8056c5575e22c814fce2a87f5b1b0d71c8fc402.tar.bz2
nixos-a8056c5575e22c814fce2a87f5b1b0d71c8fc402.tar.xz
nixos-a8056c5575e22c814fce2a87f5b1b0d71c8fc402.zip
...
Diffstat (limited to 'accounts/gkleen@sif/zshrc')
-rw-r--r--accounts/gkleen@sif/zshrc175
1 files changed, 4 insertions, 171 deletions
diff --git a/accounts/gkleen@sif/zshrc b/accounts/gkleen@sif/zshrc
index 83e86270..82e66337 100644
--- a/accounts/gkleen@sif/zshrc
+++ b/accounts/gkleen@sif/zshrc
@@ -1,106 +1,3 @@
1filebin() {
2 basePath=/srv/www/files
3 ssh ymir find /srv/www/files -type f -printf "$'%T@ %TY-%Tm-%TdT%TH:%TM %P\\\\0'" | sort -zn | cut -z -d ' ' -f 2- \
4 | while IFS= read -r -d $'\0' l; do
5 IFS=' ' read -r t p <<<"${l}"
6 printf "%s https://f.141.li/%s\n" "${t}" "${p}"
7 done
8}
9
10push2bin() {
11 if [[ ${#@} -eq 1 && ! -r ${1} ]]; then
12 uux -p 'ymir!push2bin' $(echo -n "${1:t}" | tr -c $'[:alnum:]+-=.' '_')
13 else
14 for f (${@}); do
15 uux -p 'ymir!push2bin' $(echo -n "${f:t}" | tr -c $'[:alnum:]+-=.' '_') <${f}
16 done
17 fi
18}
19
20genmail() {
21 local baseName=""
22 local target=""
23 if [[ ${#@} -ge 1 ]]; then
24 target=${1}
25 shift
26 fi
27
28 if [[ ${#@} -ge 1 ]]; then
29 baseName=$(pwgen ${@})
30 else
31 baseName=$(pwgen -v -A -0 16 1)
32 fi
33 baseName=$(tr -cd $'[:alnum:]!#$%&*+-/=?^_{|}~.' <<<${baseName})
34 address=${baseName}@141.li
35 insertAddr() {
36 echo "${baseName} gkleen" | ssh ymir tee -a /srv/mail/spm 1>/dev/null \
37 }
38
39 printf "%s\n" ${address}
40 read -q 'cont?Continue [y/N]? ' || return
41
42 insertAddr
43}
44
45s() {
46 dir=$(pwd)
47 [[ ${#@} -ge 1 ]] && dir=$1
48
49 shellFile=$(findNix ${@})
50 [[ ${#@} -ge 1 ]] && shift
51
52 typeset -a cmd
53 if [[ -d ${dir}/.nix-gc-roots ]]; then
54 cmd=(persistent-nix-shell ${shellFile} ${S_EXTRA_ARGS} ${@})
55 else
56 cmd=(nix-shell ${shellFile} ${S_EXTRA_ARGS} ${@})
57 fi
58
59 if [[ -n "${S_SYSTEMD}" ]]; then
60 systemd-run --user --slice=development.slice --collect -E PATH=${PATH} -p WorkingDirectory=${dir} -- ${cmd}
61 else
62 (
63 cd ${dir}
64
65 exec ${cmd}
66 )
67 fi
68}
69
70sz() {
71 typeset -a S_EXTRA_ARGS
72 S_EXTRA_ARGS=(--run "env __ETC_ZSHENV_SOURCED=1 zsh") s ${@}
73}
74st() {
75 typeset -a S_EXTRA_ARGS
76 S_EXTRA_ARGS=(--run "tmux new-session env __ETC_ZSHENV_SOURCED=1 zsh") s ${@}
77}
78stt() {
79 typeset -a S_EXTRA_ARGS
80 S_SYSTEMD=true S_EXTRA_ARGS=(--run "urxvt -e tmux -S .tmux.sock new-session env __ETC_ZSHENV_SOURCED=1 zsh") s ${@}
81}
82se() {
83 typeset -a S_EXTRA_ARGS
84 S_SYSTEMD=true S_EXTRA_ARGS=(--run "emacs") s ${@}
85}
86
87findNix() {
88 if [[ $#@ -eq 0 ]]; then
89 findNix $(pwd)
90 elif [[ -f "$1" ]]; then
91 print ${1:a}
92 elif [[ -d "$1" && -f "$1"/shell.nix ]]; then
93 print ${1:a}/shell.nix
94 elif [[ -d "$1" && -f "$1"/default.nix ]]; then
95 print ${1:a}/default.nix
96 elif [[ -d "$1" && "$1" != "/" ]]; then
97 findNix ${1:h}
98 else
99 printf "Traversed directories to ‘/’ and found no shell specification\n" >&2
100 return 1
101 fi
102}
103
104dir() { 1dir() {
105 curlArchive=false 2 curlArchive=false
106 templateArchive="" 3 templateArchive=""
@@ -231,60 +128,9 @@ dir() {
231 fi 128 fi
232 129
233 130
234 # if [[ -n ${notmuchMsg} ]]; then
235 # getMimeTypes() {
236 # nix-shell -p mailcap --run "find \${buildInputs} -path '*/etc/mime.types' | head -n 1 | xargs -- cat"
237 # }
238
239 # typeset -a messages
240 # messages=(${(z)$(notmuch search --output=messages ${notmuchMsg})})
241
242 # for message (${messages}); do
243 # typeset -A notmuchAtts
244 # notmuchAtts=()
245
246 # while IFS= read -r -d $'\n' line; do
247 # [[ ${line} =~ '(attachment|part)\{ ID: ([0-9]+)' ]] || continue
248 # attId=${match[2]}
249
250 # [[ ${line} =~ 'Content-type: multipart/' ]] && continue
251
252 # fName="part_${attId}"
253 # [[ ${line} =~ 'Filename: (([^,]|,[^ ])+)' ]] && fName=${match[1]}
254
255 # if [[ ${#messages} -gt 1 ]]; then
256 # fName="${message}/${fName}"
257 # fi
258
259 # fExt="${fName:e}"
260 # [[ -n "${fExt}" ]] && fName="${fName:r}"
261
262 # if [[ -z "${fExt}" && ${line} =~ 'Content-type: (([^,]|,[^ ])+)$' ]]; then
263 # fExt=$(getMimeTypes | grep ${match[1]}$'\t' | head -n 1 | awk '{ print $2; }')
264 # fi
265
266 # mkdir -p ${fName:h}
267 # if [[ -n "${fExt}" ]]; then
268 # fName=$(mktemp -p . "${fName}.XXXXXX.${fExt}")
269 # else
270 # fName=$(mktemp -p . "${fName}.XXXXXX")
271 # fi
272
273 # notmuchAtts[${attId}]=${fName}
274 # done <<(notmuch show --decrypt=false -- ${message} | tr -d $'\f')
275
276 # for attId fName in ${(kv)notmuchAtts}; do
277 # [[ -d ${fName:h} ]] || mkdir -p ${fName:h}
278 # printf "#%d → ‘%s’\n" "${attId}" "${fName}" >&2
279
280 # notmuch show --decrypt=false --part=${attId} -- ${message} | pv -W -D 2 -i 0.1 >${fName}
281 # done
282 # done
283 # fi
284
285
286 ${wormhole} && wormhole receive 131 ${wormhole} && wormhole receive
287 132
133
288 if ${quickserve}; then 134 if ${quickserve}; then
289 quickserve --root . --upload . --show-hidden --tar gz 135 quickserve --root . --upload . --show-hidden --tar gz
290 fi 136 fi
@@ -370,16 +216,6 @@ tmpdir() {
370 ) 216 )
371} 217}
372 218
373inhibit-sleep() {
374 if systemctl --user is-active prevent-suspend.service 1>/dev/null; then
375 echo "Allowing suspend"
376 systemctl --user stop prevent-suspend.service
377 else
378 echo "Inhibiting suspend"
379 systemctl --user start prevent-suspend.service
380 fi
381}
382
383qr() { 219qr() {
384 qrencode -l M -o - -t ANSIUTF8 $@ 220 qrencode -l M -o - -t ANSIUTF8 $@
385} 221}
@@ -422,7 +258,7 @@ swap() {
422} 258}
423 259
424ls() { 260ls() {
425 exa --all --group-directories-first --colour=always $@ | less --mouse -FR 261 eza --all --group-directories-first --colour=always $@ | less --mouse -FR
426} 262}
427 263
428l() { 264l() {
@@ -437,10 +273,6 @@ ure() {
437 systemctl --user --restart $@ 273 systemctl --user --restart $@
438} 274}
439 275
440u2wdb() {
441 ssh -t postgres@uniworxdb2 psql uni2work
442}
443
444ssh-installer() { 276ssh-installer() {
445 ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o IdentityFile=~/.ssh/gkleen@sif.midgard.yggdrasil $@ 277 ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o IdentityFile=~/.ssh/gkleen@sif.midgard.yggdrasil $@
446} 278}
@@ -483,4 +315,5 @@ bindkey -e
483bindkey ';5C' emacs-forward-word 315bindkey ';5C' emacs-forward-word
484bindkey ';5D' emacs-backward-word 316bindkey ';5D' emacs-backward-word
485bindkey '^[[1;5C' emacs-forward-word 317bindkey '^[[1;5C' emacs-forward-word
486bindkey '^[[1;5D' emacs-backward-word \ No newline at end of file 318bindkey '^[[1;5D' emacs-backward-word
319bindkey '^H' backward-kill-word