This commit is contained in:
Till 2026-02-12 15:28:48 +01:00
parent 40539ae163
commit 9fdeb99a61
11 changed files with 122 additions and 251 deletions

View file

@ -5,4 +5,10 @@
aichat aichat
glow glow
]; ];
programs.fish.shellAliases = {
vibe = "aichat -c";
clank = "aichat -e";
slop = "aichat";
};
} }

View file

@ -3,7 +3,7 @@
let let
myRemote = slug: { myRemote = slug: {
passwordCommand = [ "pass" "ktiu/radicale" ]; passwordCommand = [ "pass" "accounts/ktiu-radicale" ];
userName = "ktiu"; userName = "ktiu";
type = "caldav"; type = "caldav";
url = "https://kalender.ktiu.net/ktiu/${slug}"; url = "https://kalender.ktiu.net/ktiu/${slug}";
@ -127,7 +127,7 @@ in
remote = { remote = {
type = "caldav"; type = "caldav";
url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/"; url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
passwordCommand = [ "pass" "grid/nextcloud" ]; passwordCommand = [ "pass" "uni/grid-caldav-nextcloud" ];
userName = "till"; userName = "till";
}; };
}; };

View file

@ -1,25 +1,18 @@
# Navigation # Navigation
bind pager k previous-entry bind pager k previous-entry
bind pager j next-entry bind pager j next-entry
# bind index,pager \Cu half-up
# bind index,pager \Cd half-down
# bind pager gg top
# bind index gg first-entry
# bind pager G bottom
# bind index G last-entry
# bind index,pager N search-opposite
bind index <return> display-message bind index <return> display-message
bind index <space> collapse-thread bind index <space> collapse-thread
bind index,pager gf change-folder bind index,pager gf change-folder
# Read HTML # Read HTML
bind index,pager V noop bind index,pager V noop
macro index,pager V "<view-attachments><search>html<enter><view-mailcap><exit>" macro index,pager V "<view-attachments><search>html<enter><view-mailcap><exit>" "View as HTML"
# compose # compose
bind compose p postpone-message bind compose p postpone-message
bind compose P pgp-menu bind compose P pgp-menu
# macro compose I "<attach-file>`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > "$tmpfile" && echo "$tmpfile"`<enter>" "attach image from clipboard" macro compose I "<attach-file>\`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > \"$tmpfile\" && echo \"$tmpfile\"\`<enter>" "attach image from clipboard"
bind editor <Tab> complete-query bind editor <Tab> complete-query
bind editor ^T complete bind editor ^T complete
@ -28,58 +21,47 @@ bind index,pager m noop
macro index,pager mar "<tag-pattern>new<enter><tag-prefix-cond><clear-flag>n<enter><tag-prefix-cond><clear-flag>*<enter>" "Mark all read" macro index,pager mar "<tag-pattern>new<enter><tag-prefix-cond><clear-flag>n<enter><tag-prefix-cond><clear-flag>*<enter>" "Mark all read"
# compose with signature management # compose with signature management
macro index,pager @ "<enter-command>set signature=$my_signature<enter><compose-to-sender>" "Compose to sender"
macro index,pager c "<enter-command>set signature=$my_signature<enter><mail>" "Compose new message" macro index,pager c "<enter-command>set signature=$my_signature<enter><mail>" "Compose new message"
macro index,pager r "<enter-command>unset signature<enter><reply>" "Reply to message" macro index,pager r "<enter-command>unset signature<enter><reply>" "Reply to message"
macro index,pager a "<enter-command>unset signature<enter><group-reply>" "Reply all" macro index,pager a "<enter-command>unset signature<enter><group-reply>" "Reply all"
macro index,pager f "<enter-command>unset signature<enter><forward-message>" "Forward message" macro index,pager f "<enter-command>unset signature<enter><forward-message>" "Forward message"
# moving messages # moving messages
macro index,pager J ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$my_junk<enter>" \ macro index,pager J ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$my_junk<enter>" "Move to junk"
"Move to junk folder" macro index,pager y ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$mbox<enter>" "Move to archive"
macro index,pager y ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$mbox<enter>" \ macro index,pager I "<save-message>$spoolfile<enter>" "Move to inbox"
"Move message to the archive"
macro index,pager I "<save-message>$spoolfile<enter>" "Move message to the inbox"
# switch folders # switch folders
macro index,pager g! "<change-folder>$spoolfile<enter><refresh>" "Go to inbox" macro index,pager g! "<change-folder>$spoolfile<enter><refresh>" "Go to inbox"
macro index,pager gd "<change-folder>$postponed<enter><refresh>" "Go to drafts" macro index,pager gd "<change-folder>$postponed<enter><refresh>" "Go to drafts"
macro index,pager g< "<change-folder>$record<enter><refresh>" "Go to sent" macro index,pager g< "<change-folder>$record<enter><refresh>" "Go to sent"
macro index,pager ga "<change-folder>$mbox<enter>" "Go to archive"
macro index,pager g> "<change-folder>$mbox<enter><refresh>" "Go to archive" macro index,pager g> "<change-folder>$mbox<enter><refresh>" "Go to archive"
macro index,pager gt "<change-folder>$trash<enter><refresh>" "Go to trash" macro index,pager gt "<change-folder>$trash<enter><refresh>" "Go to trash"
macro index,pager gj "<change-folder>$my_junk<enter><refresh>" "Go to junk" macro index,pager gj "<change-folder>$my_junk<enter><refresh>" "Go to junk"
# accounts # accounts
macro index,pager gu "<change-folder>~/.local/share/mail/gu/Inbox<enter><refresh>" "Go to GU" macro index,pager gu "<change-folder>~/.local/share/mail/gu/Inbox<enter><refresh>" "Go to gu"
# macro index,pager gp "<change-folder>+systemli/IMAP/Inbox<enter><refresh>" "Go to Systemli"
macro index,pager gm "<change-folder>~/.local/share/mail/t9e/Inbox<enter><refresh>" "Go to t9e" macro index,pager gm "<change-folder>~/.local/share/mail/t9e/Inbox<enter><refresh>" "Go to t9e"
# macro index,pager gm "<change-folder>+gmail/IMAP/Inbox<enter><refresh>" "Go to Gmail" macro index,pager gk "<change-folder>~/.local/share/mail/ksh/Inbox<enter><refresh>" "Go to ksh"
macro index,pager gk "<change-folder>~/.local/share/mail/ksh/Inbox<enter><refresh>" "Go to KSH"
macro index,pager gi "<change-folder>~/.local/share/mail/ktiu/Inbox<enter><refresh>" "Go to ktiu" macro index,pager gi "<change-folder>~/.local/share/mail/ktiu/Inbox<enter><refresh>" "Go to ktiu"
# macro index,pager gf "<change-folder>~/.local/share/mail/dkg/Inbox<enter><refresh>" "Go to DKG"
macro index,pager L "<limit>all\n" "Show all messages (undo limit)" macro index,pager L "<limit>all\n" "Show all messages (undo limit)"
# macro index,pager go "<shell-escape>mbsync -c ~/.config/mbsync/mbsyncrc $my_mbsync_acct && notmuch new &<enter>" \ macro index,pager go "<shell-escape>mbsync $my_account && notmuch new<enter>" "Sync this account"
# "Run mbsync to sync mail for this account" macro index,pager gO "<shell-escape>mbsync -a && notmuch new<enter>" "Sync all accounts"
macro index,pager go "<shell-escape>mbsync $my_mbsync_acct && notmuch new<enter>" \ bind index,pager / noop
macro index,pager // "<vfolder-from-query-readonly>folder:/$my_account/" "Find in account"
macro index,pager g/ "<vfolder-from-query-readonly>" "Find in all accounts"
macro index,pager /! "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_spoolfile" "Find in inbox"
macro index,pager /< "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_record" "Find in sent"
macro index,pager /> "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_mbox" "Find in archive"
macro index,pager /d "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_postponed" "Find in drafts"
macro index,pager /t "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_trash" "Find in trash"
macro index,pager /j "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_junk" "Find in junk"
macro index,pager g/ "<vfolder-from-query-readonly>" "find in nm" macro index,pager A "<pipe-message>khard add-email --vcard-version=4.0<return>" "Add sender to khard"
macro index,pager A \ macro index,pager S "<pipe-message> ripmime -i - -d ~/tmp && rm ~/tmp/textfile*" "Save all attachments"
"<pipe-message>khard add-email --vcard-version=4.0<return>" \
"add the sender email address to khard"
macro index,pager S \ macro index,pager gb "<pipe-message> urlscan<enter>" "Extract URLs"
"<pipe-message> ripmime -i - -d ~/tmp && rm ~/tmp/textfile*" \
"save all non-text attachments using ripmime"
macro index,pager gb \
"<pipe-message> urlscan<enter>" \
"extract URLs out of a message"
macro index,pager gO \
"<shell-escape>mbsync -a && notmuch new<enter>" \
"run mbsync to sync all mail"

View file

@ -3,10 +3,10 @@ source $alias_file
set mailcap_path = ~/.config/neomutt/mailcap set mailcap_path = ~/.config/neomutt/mailcap
# source ./smime.neomuttrc
set my_download_folder = ~/tmp set my_download_folder = ~/tmp
set shell = /bin/sh
# Caching and tmp # Caching and tmp
set header_cache = $XDG_CACHE_HOME/neomutt/headers set header_cache = $XDG_CACHE_HOME/neomutt/headers
set message_cachedir = $XDG_CACHE_HOME/neomutt/bodies set message_cachedir = $XDG_CACHE_HOME/neomutt/bodies
@ -16,43 +16,25 @@ set tmpdir = $XDG_CACHE_HOME/neomutt/tmp
# Basic options # Basic options
unset wait_key unset wait_key
set mbox_type = Maildir set mbox_type = Maildir
# set delete
set mail_check_stats set mail_check_stats
unset confirm_append unset confirm_append
unset beep unset beep
unset mark_old unset mark_old
set sleep_time = 0 set sleep_time = 0
# set shell = /bin/bash
# Sending # Sending
set use_envelope_from set use_envelope_from
unset reverse_realname unset reverse_real_name
# Searching # Searching
set nm_default_url = "notmuch:///home/till/.local/share/mail/" set nm_default_url = "notmuch:///home/till/.local/share/mail/"
set my_nm_spoolfile = 'Inbox'
# Multi-account setup set my_nm_postponed = 'Drafts'
# source ~/.config/neomutt/accounts/dkg.neomuttrc set my_nm_record = 'Sent'
# source ~/.config/neomutt/accounts/gu.neomuttrc set my_nm_trash = 'Trash'
# bind index,pager g noop
# folder-hook $folder/gu/ source ~/.config/neomutt/accounts/gu.neomuttrc
# folder-hook $folder/systemli/ source ~/.config/neomutt/accounts/systemli.neomuttrc
# folder-hook $folder/ks/ source ~/.config/neomutt/accounts/ks.neomuttrc
# folder-hook $folder/gmail/ source ~/.config/neomutt/accounts/gmail.neomuttrc
# folder-hook $folder/ktiu/ source ~/.config/neomutt/accounts/ktiu.neomuttrc
# folder-hook $folder/dkg/ source ~/.config/neomutt/accounts/dkg.neomuttrc
# folder-hook $folder/papa/ source ~/.config/neomutt/accounts/papa.neomuttrc
folder-hook . source ~/.config/neomutt/bindings.neomuttrc folder-hook . source ~/.config/neomutt/bindings.neomuttrc
# # Source config
# source ~/.config/neomutt/views.neomuttrc
# source ~/.config/neomutt/sidebar.neomuttrc
# source ~/.config/neomutt/colors.neomuttrc
# source ~/.config/neomutt/smime.neomuttrc
# source ~/.config/neomutt/pgp.neomuttrc
# Compose # Compose
set editor = "nvim -c 'call woof#init#Init()'" set editor = "nvim -c 'call woof#init#Init()'"
set edit_headers set edit_headers
@ -118,13 +100,6 @@ color header brightgreen default "^(Subject)"
color header yellow default "^(From|To|CC|BCC)" color header yellow default "^(From|To|CC|BCC)"
color header blue default "^Date" color header blue default "^Date"
## Status
# color status yellow default '\[ ↻ \]'
# color status green default '\[ ✔ \]'
# color status magenta default '\[ ٪ \]'
# color status black default '\[ [0-9]+ new \]'
# color status red default '\[ [0-9]+ to delete \]'
## Mutt ## Mutt
color message cyan default color message cyan default
color error red default color error red default

View file

@ -1,37 +1,26 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
programs.msmtp = { programs.msmtp.enable = true;
enable = true;
configContent = lib.mkOrder 1200 ''
defaults
logfile ${config.xdg.stateHome}/msmtp/msmtp.log
port 587
account ktiu : t9e
from *@ktiu.net
'';
};
programs.mbsync.enable = true; programs.mbsync.enable = true;
programs.notmuch.enable = true;
programs.neomutt = { programs.neomutt = {
enable = true; enable = true;
vimKeys = true; vimKeys = true;
extraConfig = builtins.readFile ./config.neomuttrc; extraConfig = builtins.readFile ./config.neomuttrc;
}; };
programs.notmuch.enable = true;
xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc; xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc;
xdg.configFile."neomutt/smime.neomuttrc".source = ./smime.neomuttrc;
xdg.configFile."neomutt/mailcap".source = ./neomutt_mailcap; xdg.configFile."neomutt/mailcap".source = ./neomutt_mailcap;
accounts.email = { accounts.email = {
maildirBasePath = "${config.xdg.dataHome}/mail"; maildirBasePath = "${config.xdg.dataHome}/mail";
accounts = { accounts = {
gu = { gu = { name, ... }: {
primary = true; primary = true;
address = "straube@geo.uni-frankfurt.de"; address = "straube@geo.uni-frankfurt.de";
realName = "Till Straube"; realName = "Till Straube";
@ -39,7 +28,6 @@
smtp.host = "smtpauth.rz.uni-frankfurt.de"; smtp.host = "smtpauth.rz.uni-frankfurt.de";
smtp.tls.useStartTls = true; smtp.tls.useStartTls = true;
userName = "tstraube"; userName = "tstraube";
notmuch.enable = true;
passwordCommand = "pass uni/hrz"; passwordCommand = "pass uni/hrz";
signature = { signature = {
text = '' text = ''
@ -49,6 +37,7 @@
''; '';
showSignature = "append"; showSignature = "append";
}; };
notmuch.enable = true;
mbsync = { mbsync = {
enable = true; enable = true;
create = "maildir"; create = "maildir";
@ -57,11 +46,15 @@
msmtp.enable = true; msmtp.enable = true;
neomutt = { neomutt = {
enable = true; enable = true;
sendMailCommand = lib.getExe pkgs.msmtp; sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ name }";
extraConfig = '' extraConfig = ''
set my_account='${ name }'
set mbox='+Archive' set mbox='+Archive'
set my_nm_mbox='Archive'
set my_junk='+Spamverdacht' set my_junk='+Spamverdacht'
set my_mbsync_acct='gu' set my_nm_junk='Spamverdacht'
set crypt_auto_smime set crypt_auto_smime
unset crypt_auto_pgp unset crypt_auto_pgp
@ -71,10 +64,8 @@
set crypt_replysign set crypt_replysign
set crypt_replysignencrypted set crypt_replysignencrypted
set crypt_verify_sig set crypt_verify_sig
# set smime_default_key = "f1355556.0"
set smime_sign_as = "f1355556.0" set smime_sign_as = "f1355556.0"
set pgp_default_key = "" set pgp_default_key = ""
# unset crypt_use_gpgme
unalternates * unalternates *
alternates ^straube@em.uni-frankfurt.de$ \ alternates ^straube@em.uni-frankfurt.de$ \
@ -82,40 +73,37 @@
^tstraube@rz.uni-frankfurt.de$ \ ^tstraube@rz.uni-frankfurt.de$ \
^tstraube@uni-frankfurt.de$ ^tstraube@uni-frankfurt.de$
unset reverse_name unset reverse_name
set my_signature = ${
pkgs.writeText set my_signature = ${ pkgs.writeText "signature.txt" config.accounts.email.accounts.gu.signature.text }
"signature.txt"
config.accounts.email.accounts.gu.signature.text
}
color status blue default color status blue default
''; '';
}; };
}; };
t9e = { t9e = { name, ... }: {
address = "till.straube@t9e.me"; address = "till.straube@t9e.me";
realName = "Till Straube"; realName = "Till Straube";
imap.host = "arielle.ktiu.net"; imap.host = "arielle.ktiu.net";
smtp.host = "arielle.ktiu.net"; smtp.host = "arielle.ktiu.net";
smtp.tls.useStartTls = true; smtp.tls.useStartTls = true;
notmuch.enable = true;
userName = "till.straube@t9e.me"; userName = "till.straube@t9e.me";
signature.text = '' signature.text = ''
Till Straube (he/him) Till Straube (he/him)
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
''; '';
signature.showSignature = "append"; gpg.signByDefault = true;
gpg = { notmuch.enable = true;
key = "5FA6782F543D12ED07110780BA1B73F10BABF8E3";
signByDefault = true;
};
neomutt = { neomutt = {
enable = true; enable = true;
sendMailCommand = lib.getExe pkgs.msmtp; sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ name }";
extraConfig = '' extraConfig = ''
set my_mbsync_acct='t9e' set my_mbsync_account='${ name }'
set mbox='+Archive' set mbox='+Archive'
set my_nm_mbox='Archive'
set my_junk='+Junk' set my_junk='+Junk'
set my_nm_junk='Junk'
set crypt_auto_pgp set crypt_auto_pgp
unset crypt_auto_smime unset crypt_auto_smime
@ -124,11 +112,7 @@
alternates @t9e.me$ @ktiu.net$ alternates @t9e.me$ @ktiu.net$
set reverse_name set reverse_name
set my_signature = ${ set my_signature = ${ pkgs.writeText "signature.txt" config.accounts.email.accounts.t9e.signature.text }
pkgs.writeText
"signature.txt"
config.accounts.email.accounts.t9e.signature.text
}
color status green default color status green default
''; '';
}; };
@ -139,87 +123,37 @@
}; };
msmtp = { msmtp = {
enable = true; enable = true;
extraConfig.from = "*@t9e.me"; extraConfig.port = "587";
}; };
passwordCommand = "pass mail/arielle.ktiu.net"; passwordCommand = "pass accounts/ktiu-imap";
}; };
ktiu = { ksh = { name, ...}: {
address = "till@ktiu.net";
realName = "Till Straube";
imap.host = "shorbut.ktiu.net";
smtp.host = "shorbut.ktiu.net";
smtp.tls.useStartTls = true;
notmuch.enable = true;
userName = "till";
signature.text = ''
Till Straube (he/him)
PGP key: https://keys.openpgp.org/search?q=till@ktiu.net
'';
signature.showSignature = "append";
gpg = {
key = "5FA6782F543D12ED07110780BA1B73F10BABF8E3";
signByDefault = true;
};
neomutt = {
enable = true;
sendMailCommand = lib.getExe pkgs.msmtp;
extraConfig = ''
set my_mbsync_acct='ktiu'
set mbox='+Archive'
set my_junk='+Junk'
set crypt_auto_pgp
unset crypt_auto_smime
unalternates *
alternates @ktiu.net$
set reverse_name
set my_signature = ${
pkgs.writeText
"signature.txt"
config.accounts.email.accounts.ktiu.signature.text
}
color status green default
'';
};
mbsync = {
enable = true;
create = "maildir";
expunge = "both";
};
msmtp = {
enable = false;
# extraConfig.from = "*@ktiu.net";
};
passwordCommand = "secret-tool lookup server shorbut.ktiu.net account till";
};
ksh = {
address = "kein_schlussstrich_hessen@systemli.org"; address = "kein_schlussstrich_hessen@systemli.org";
realName = "Kein Schlussstrich Hessen"; realName = "Kein Schlussstrich Hessen";
imap.host = "mail.systemli.org"; imap.host = "mail.systemli.org";
smtp.host = "mail.systemli.org"; smtp.host = "mail.systemli.org";
smtp.tls.useStartTls = true; smtp.tls.useStartTls = true;
notmuch.enable = true;
userName = "kein_schlussstrich_hessen@systemli.org"; userName = "kein_schlussstrich_hessen@systemli.org";
signature.text = '' signature.text = ''
Kein Schlussstrich Hessen Kein Schlussstrich Hessen
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
''; '';
signature.showSignature = "append"; signature.showSignature = "append";
gpg.signByDefault = true;
notmuch.enable = true;
neomutt = { neomutt = {
enable = true; enable = true;
# sendMailCommand = "/home/till/.nix-profile/bin/msmtp"; sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ name }";
sendMailCommand = lib.getExe pkgs.msmtp;
extraConfig = '' extraConfig = ''
set my_mbsync_acct='ksh' set my_mbsync_account='${ name }'
set mbox='+Erledigt' set mbox='+Erledigt'
set my_nm_mbox='Erledigt'
set my_junk='+Junk' set my_junk='+Junk'
set postponed='+Drafts' set my_nm_junk='Junk'
set record='+Sent'
set trash='+Trash'
set crypt_auto_pgp set crypt_auto_pgp
unset crypt_auto_smime unset crypt_auto_smime
@ -238,11 +172,8 @@
create = "maildir"; create = "maildir";
expunge = "both"; expunge = "both";
}; };
msmtp = { msmtp.enable = true;
enable = true; passwordCommand = "pass ksh/systemli";
extraConfig.from = "kein_schlussstrich_hessen@systemli.org";
};
passwordCommand = "pass other/ksh_systemli";
}; };
}; };
}; };

View file

@ -1,24 +0,0 @@
# Locations
# set smime_ca_location="~/.keys/neomutt/smime/ca"
# set smime_certificates="~/.keys/neomutt/smime/public"
# set smime_keys="~/.keys/neomutt/smime/private"
# Commands (smime_keys)
set smime_pk7out_command="openssl smime -verify -in %f -noverify -pk7out"
set smime_get_cert_command="openssl pkcs7 -print_certs -in %f"
set smime_get_signer_cert_command="openssl smime -verify -in %f -noverify -signer %c -out /dev/null"
set smime_get_cert_email_command="openssl x509 -in %f -noout -email"
set smime_import_cert_command="smime_keys add_cert %f"
# Outgoing
set smime_encrypt_with="aes256"
set smime_encrypt_command="openssl smime -encrypt -%a -outform DER -in %f %c"
set smime_sign_digest_alg="sha256"
set smime_sign_command="openssl smime -sign -md %d -signer %c -inkey %k -passin stdin -in %f -certfile %i -outform DER"
# Incoming
set smime_decrypt_command="openssl smime -decrypt -passin stdin -inform DER -in %f -inkey %k -recip %c"
set smime_verify_command="openssl smime -verify -inform DER -in %s %C -content %f"
set smime_verify_opaque_command="\
openssl smime -verify -inform DER -in %s %C || \
openssl smime -verify -inform DER -in %s -noverify 2>/dev/null"

View file

@ -23,8 +23,8 @@ set splitright
set tabstop=2 set tabstop=2
set updatetime=300 set updatetime=300
" set foldmethod=expr set foldmethod=expr
" set foldexpr=nvim_treesitter#foldexpr() set foldexpr=nvim_treesitter#foldexpr()
let g:netrw_liststyle = 3 let g:netrw_liststyle = 3
let g:netrw_fastbrowse = 0 let g:netrw_fastbrowse = 0

View file

@ -1,4 +1,4 @@
{ lib, pkgs, ... }: { pkgs, lib, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
@ -115,7 +115,23 @@
''; '';
} }
(nvim-treesitter.withPlugins (p: [ p.nix p.lua p.r p.typescript ])) {
plugin = (nvim-treesitter.withPlugins (p: [ p.nix p.lua p.r p.typescript ]));
type = "lua";
config = ''
vim.api.nvim_create_autocmd('FileType', {
pattern = { 'nix', 'markdown', 'lua', 'r' },
callback = function()
-- Enable Tree-sitter-based folding
vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.o.foldmethod = 'expr'
-- Optional: configure fold behavior
vim.o.foldlevel = 99
vim.o.foldlevelstart = 99
end,
})
'';
}
{ {
plugin = papercolor-theme; plugin = papercolor-theme;
@ -154,7 +170,10 @@
''; '';
} }
vim-fish {
plugin = vim-fish;
}
vim-nix vim-nix
{ {

View file

@ -8,18 +8,15 @@ cmp.setup({
end, end,
}, },
window = { mapping = cmp.mapping.preset.insert(
-- completion = cmp.config.window.bordered(), {
-- documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4), ['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4), ['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(), ['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(), ['<C-e>'] = cmp.mapping.abort(),
['<Tab>'] = cmp.mapping.confirm({ select = true }), ['<Tab>'] = cmp.mapping.confirm({ select = false }),
}), }
),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'cmp_pandoc' }, { name = 'cmp_pandoc' },
@ -34,17 +31,6 @@ cmp.setup({
}) })
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
-- Set configuration for specific filetype.
--[[ cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'git' },
}, {
{ name = 'buffer' },
})
})
require("cmp_git").setup() ]]--
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, { cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
@ -66,8 +52,3 @@ cmp.setup.cmdline(':', {
-- Set up lspconfig. -- Set up lspconfig.
local capabilities = require('cmp_nvim_lsp').default_capabilities() local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
-- vim.lsp.config('<YOUR_LSP_SERVER>', {
-- capabilities = capabilities
-- })
-- vim.lsp.enable('<YOUR_LSP_SERVER>')

View file

@ -4,8 +4,9 @@
services.pcscd.enable = true; services.pcscd.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
yubikey-personalization
keymapp keymapp
yubikey-personalization
yubikey-manager
]; ];
services.udev = { services.udev = {

View file

@ -19,7 +19,7 @@ in {
{ {
id = "outline"; id = "outline";
name = "Outline Client"; name = "Outline Client";
redirectURIs = [ "https://${outline.hostname}/auth/oidc.callback" ]; redirectURIs = [ "https://${config.services.outline.hostname}/auth/oidc.callback" ];
secretFile = "/var/custom-access/outline-oidc-secret.txt"; secretFile = "/var/custom-access/outline-oidc-secret.txt";
} }
]; ];