laptop
This commit is contained in:
parent
d8032cc35d
commit
e945735fa1
61 changed files with 344 additions and 550 deletions
14
home/desktop-full/aichat.nix
Normal file
14
home/desktop-full/aichat.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
aichat
|
||||
glow
|
||||
];
|
||||
|
||||
programs.fish.shellAliases = {
|
||||
vibe = "aichat -c";
|
||||
clank = "aichat -e";
|
||||
slop = "aichat";
|
||||
};
|
||||
}
|
||||
138
home/desktop-full/calendars.nix
Normal file
138
home/desktop-full/calendars.nix
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
|
||||
myRemote = slug: {
|
||||
passwordCommand = [ "pass" "accounts/ktiu-radicale" ];
|
||||
userName = "ktiu";
|
||||
type = "caldav";
|
||||
url = "https://kalender.ktiu.net/ktiu/${slug}";
|
||||
};
|
||||
|
||||
calDefaults = {
|
||||
khal.type = "calendar";
|
||||
local = {
|
||||
type = "filesystem";
|
||||
fileExt = ".ics";
|
||||
};
|
||||
vdirsyncer = {
|
||||
enable = true;
|
||||
conflictResolution = "local wins";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
services.vdirsyncer.enable = true;
|
||||
programs.vdirsyncer.enable = true;
|
||||
|
||||
programs.khal = {
|
||||
enable = true;
|
||||
locale = {
|
||||
timeformat = "%H:%M";
|
||||
dateformat = "%d %b";
|
||||
longdateformat = "%d %b %Y";
|
||||
datetimeformat = "%d %b %H:%M";
|
||||
longdatetimeformat = "%d %b %Y %H:%M";
|
||||
weeknumbers = "left";
|
||||
};
|
||||
settings = {
|
||||
default = {
|
||||
timedelta = "5d";
|
||||
print_new = "event";
|
||||
};
|
||||
keybindings.external_edit = "ctrl e";
|
||||
view = {
|
||||
agenda_event_format = "{calendar-color}{cancelled}{start-end-time-style} {title}{repeat-symbol} {location} {url}{reset}";
|
||||
event_format = "{calendar-color}{cancelled}{start}-{end} {title}{repeat-symbol} {location} {url}{reset}";
|
||||
"blank_line_before_day" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
accounts.calendar.basePath = "${config.xdg.dataHome}/calendars";
|
||||
accounts.calendar.accounts = {
|
||||
|
||||
till = calDefaults // {
|
||||
khal.enable = true;
|
||||
primary = true;
|
||||
khal.color = "light blue";
|
||||
remote = myRemote "personal";
|
||||
};
|
||||
|
||||
mitlisa = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "light magenta";
|
||||
remote = myRemote "lisa-und-till";
|
||||
};
|
||||
|
||||
family = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "dark magenta";
|
||||
remote = myRemote "family";
|
||||
};
|
||||
|
||||
bdays = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "yellow";
|
||||
remote = myRemote "geburtstage";
|
||||
};
|
||||
|
||||
polit = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "dark gray";
|
||||
remote = myRemote "polit";
|
||||
};
|
||||
|
||||
ihg = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "dark cyan";
|
||||
remote = {
|
||||
type = "http";
|
||||
url = "https://geocom.uni-frankfurt.de/radicale/ihg/5012a739-dbaf-334b-f093-8db1860bc26e/";
|
||||
};
|
||||
};
|
||||
|
||||
"eintracht_m" = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "light red";
|
||||
remote = {
|
||||
type = "http";
|
||||
url = "http://i.cal.to/ical/257/eintrachtfrankfurt/spielplan/28ae0d30.f781380b-e6f28bd4.ics";
|
||||
};
|
||||
};
|
||||
|
||||
"eintracht_f" = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "dark red";
|
||||
remote = {
|
||||
type = "http";
|
||||
url = "http://i.cal.to/ical/5940/eintrachtfrankfurt/spielplan-frauen-profis/28ae0d30.f781380b-1763bff2.ics";
|
||||
};
|
||||
};
|
||||
|
||||
"feiertage" = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "dark green";
|
||||
remote = {
|
||||
type = "http";
|
||||
url = "https://ics.tools/Feiertage/hessen.ics";
|
||||
};
|
||||
};
|
||||
|
||||
"grid" = calDefaults // {
|
||||
khal.enable = true;
|
||||
khal.color = "light green";
|
||||
remote = {
|
||||
type = "caldav";
|
||||
# url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
|
||||
# passwordCommand = [ "pass" "uni/grid-caldav-nextcloud" ];
|
||||
# userName = "till";
|
||||
url = "https://kalender.humangeographie.de/grid/96dedda9-cc91-c2fe-3bd8-020296904489/";
|
||||
userName = "grid";
|
||||
passwordCommand = [ "pass" "uni/grid-kalender-radicale" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
42
home/desktop-full/default.nix
Normal file
42
home/desktop-full/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../desktop-slim
|
||||
|
||||
./aichat.nix
|
||||
./calendars.nix
|
||||
./khard-dump.nix
|
||||
./mail.nix
|
||||
./messaging.nix
|
||||
./office-gui.nix
|
||||
./r.nix
|
||||
./tasks.nix
|
||||
./tex.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
ghostscript
|
||||
hunspell
|
||||
hunspellDicts.de_DE
|
||||
hunspellDicts.en_US
|
||||
hunspellDicts.th_TH
|
||||
hyphen
|
||||
hyphenDicts.de_DE
|
||||
hyphenDicts.en_US
|
||||
imagemagick
|
||||
khal
|
||||
khard
|
||||
msmtp
|
||||
notmuch
|
||||
openssl
|
||||
pandoc
|
||||
pdftk
|
||||
quarto
|
||||
ripmime
|
||||
urlscan
|
||||
visidata
|
||||
w3m
|
||||
];
|
||||
}
|
||||
29
home/desktop-full/khard-dump.nix
Normal file
29
home/desktop-full/khard-dump.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
systemd.user.timers = {
|
||||
khard-dump = {
|
||||
Unit = {
|
||||
Description = "Timer to run khard-dump service";
|
||||
};
|
||||
Timer = {
|
||||
OnCalendar = "*:00/10";
|
||||
Unit = "khard-dump.service";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services = {
|
||||
khard-dump = {
|
||||
Unit = {
|
||||
Description = "Dumps contact info to custom cache file";
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.writeScript "khard-dump" ''
|
||||
#! ${pkgs.stdenv.shell}
|
||||
${pkgs.khard.outPath}/bin/khard email --parsable --remove-first-line | awk 'BEGIN{FS=OFS="\t"}{print $2, $1}\' > ${config.xdg.cacheHome}/khard-dump
|
||||
''}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
283
home/desktop-full/mail.nix
Normal file
283
home/desktop-full/mail.nix
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
|
||||
makeConfig = accountName:
|
||||
''
|
||||
unset reverse_name
|
||||
unset smime_is_default
|
||||
set my_account='${ accountName }'
|
||||
macro index,pager / "<vfolder-from-query>tag:${ accountName } "
|
||||
unalternates *
|
||||
set nm_record_tags = "+sent -inbox -unread +${ accountName }";
|
||||
set my_signature = ${ pkgs.writeText "signature.txt" config.accounts.email.accounts.${accountName}.signature.text }
|
||||
set status_format = "— [ %r ] $my_account %f (%lB) %>— %m messages%?n? [ %n new ]?%?d? [ %d to delete ]?%?t? [ %t tagged ]? —"
|
||||
source colors.neomuttrc
|
||||
'';
|
||||
|
||||
makeAccount = accountName: {
|
||||
signature.showSignature = "append";
|
||||
smtp.tls.useStartTls = true;
|
||||
msmtp.enable = true;
|
||||
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
|
||||
neomutt = {
|
||||
enable = true;
|
||||
sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ accountName }";
|
||||
};
|
||||
|
||||
notmuch = {
|
||||
enable = true;
|
||||
neomutt = {
|
||||
virtualMailboxes = [
|
||||
{ name = "Inbox"; query = "tag:${ accountName } and tag:inbox"; }
|
||||
{ name = "Archive"; query = "tag:${ accountName } and not tag:sent and not tag:draft"; }
|
||||
{ name = "Sent"; query = "tag:${ accountName } and tag:sent"; }
|
||||
{ name = "Drafts"; query = "tag:${ accountName } and tag:draft"; }
|
||||
{ name = "Spam"; query = "tag:${ accountName } and tag:spam"; }
|
||||
{ name = "Trash"; query = "tag:${ accountName } and tag:trash"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mailcap_path = pkgs.writeText "neomutt_mailcap" ''
|
||||
application/pdf; zathura %s
|
||||
multipart; xdg-open %s
|
||||
text/html; firefox %s; description=HTML Text; nametemplate=%s.html; needsterminal
|
||||
text/html; w3m -v -F -T text/html -dump %s; copiousoutput
|
||||
text/calendar; khal import %s
|
||||
text; neomutt %s
|
||||
application; xdg-open %s
|
||||
image; xdg-open %s
|
||||
video; xdg-open %s
|
||||
audio; xdg-open %s
|
||||
message; xdg-open %s
|
||||
model; xdg-open %s
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
programs.mu.enable = true;
|
||||
|
||||
accounts.email = {
|
||||
maildirBasePath = "${config.xdg.dataHome}/mail";
|
||||
accounts = {
|
||||
gu = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||
primary = true;
|
||||
address = "straube@geo.uni-frankfurt.de";
|
||||
realName = "Till Straube";
|
||||
imap.host = "imap.server.uni-frankfurt.de";
|
||||
smtp.host = "smtpauth.rz.uni-frankfurt.de";
|
||||
userName = "tstraube";
|
||||
passwordCommand = "pass uni/hrz";
|
||||
signature = {
|
||||
text = ''
|
||||
Dr. Till Straube (he/him)
|
||||
Dept. of Human Geography
|
||||
Goethe University Frankfurt
|
||||
'';
|
||||
};
|
||||
neomutt = {
|
||||
extraConfig = ''
|
||||
color status blue default
|
||||
color index blue default '~N'
|
||||
alternates ^tstraube@(em|rz)?.uni-frankfurt.de$
|
||||
set smime_is_default
|
||||
'' + makeConfig name;
|
||||
};
|
||||
};
|
||||
|
||||
t9e = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||
address = "till.straube@t9e.me";
|
||||
realName = "Till Straube";
|
||||
imap.host = "arielle.ktiu.net";
|
||||
smtp.host = "arielle.ktiu.net";
|
||||
userName = "till.straube@t9e.me";
|
||||
signature.text = ''
|
||||
Till Straube (he/him)
|
||||
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
|
||||
'';
|
||||
neomutt = {
|
||||
extraConfig = makeConfig name + ''
|
||||
color status green default
|
||||
color index green default '~N'
|
||||
alternates @t9e.me$ @ktiu.net$ ^(tillkowski|till.straube)@gmail.com$
|
||||
set reverse_name
|
||||
'';
|
||||
};
|
||||
msmtp.extraConfig.port = "587";
|
||||
passwordCommand = "pass accounts/ktiu-imap";
|
||||
};
|
||||
|
||||
ksh = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||
address = "kein_schlussstrich_hessen@systemli.org";
|
||||
realName = "Kein Schlussstrich Hessen";
|
||||
imap.host = "mail.systemli.org";
|
||||
smtp.host = "mail.systemli.org";
|
||||
userName = "kein_schlussstrich_hessen@systemli.org";
|
||||
signature.text = ''
|
||||
Kein Schlussstrich Hessen
|
||||
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
|
||||
'';
|
||||
neomutt = {
|
||||
extraConfig = makeConfig name + ''
|
||||
color status red default
|
||||
color index red default '~N'
|
||||
'';
|
||||
};
|
||||
passwordCommand = "pass ksh/systemli";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.msmtp.enable = true;
|
||||
|
||||
programs.mbsync.enable = true;
|
||||
|
||||
programs.notmuch = {
|
||||
enable = true;
|
||||
search.excludeTags = [ "trash" "spam" ];
|
||||
new.tags = [ "new" "unread" ];
|
||||
hooks = {
|
||||
preNew = ''
|
||||
notmuch tag +draft -- 'folder:"/\/Drafts$/"'
|
||||
mbsync --all
|
||||
'';
|
||||
postNew = ''
|
||||
notmuch tag +gu -- tag:new path:gu/**
|
||||
notmuch tag +t9e -- tag:new path:t9e/**
|
||||
notmuch tag +ksh -- tag:new path:ksh/**
|
||||
notmuch tag +inbox -- tag:new 'folder:"/\/Inbox$/"'
|
||||
notmuch tag +sent -unread -- tag:new 'folder:"/\/Sent$/"'
|
||||
notmuch tag +trash -unread -- tag:new 'folder:"/\/Trash$/"'
|
||||
notmuch tag +draft -unread -- tag:new 'folder:"/\/Drafts$/"'
|
||||
notmuch tag +spam -- tag:new 'folder:"/\/Spam$/"'
|
||||
notmuch tag +spam -- tag:new 'folder:"/\/Junk$/"'
|
||||
notmuch tag -new -- tag:new
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
programs.neomutt = {
|
||||
enable = true;
|
||||
|
||||
vimKeys = true;
|
||||
changeFolderWhenSourcingAccount = true;
|
||||
editor = "nvim -c 'call woof#init#Init()'";
|
||||
sort = "reverse-date-received";
|
||||
unmailboxes = true;
|
||||
|
||||
settings = {
|
||||
abort_noattach = "ask-yes";
|
||||
abort_noattach_regex = "\"(attach|enclosed|anbei|anhängen|angehängt|anhang|anhänge|hängt an)\"";
|
||||
auto_edit = "no";
|
||||
beep = "no";
|
||||
confirm_append = "no";
|
||||
crypt_auto_sign = "yes";
|
||||
crypt_replyencrypt = "yes";
|
||||
crypt_replysign = "yes";
|
||||
crypt_replysignencrypted = "yes";
|
||||
crypt_verify_sig = "yes";
|
||||
edit_headers = "yes";
|
||||
forward_attachments = "yes";
|
||||
forward_format = "\"Fwd: %s\"";
|
||||
forward_quote = "yes";
|
||||
help = "no";
|
||||
include = "yes";
|
||||
mail_check_stats = "yes";
|
||||
mailcap_path = "${ mailcap_path }";
|
||||
mark_old = "no";
|
||||
markers = "no";
|
||||
mbox_type = "Maildir";
|
||||
menu_scroll = "yes";
|
||||
mime_type_query_command = "\"file -b --mime-type %s\"";
|
||||
nm_record = "yes";
|
||||
pager_context = "3";
|
||||
pager_index_lines = "5";
|
||||
pager_stop = "yes";
|
||||
query_command= "\"khard email --parsable '%s'\"";
|
||||
recall = "no";
|
||||
resume_draft_files = "yes";
|
||||
reverse_real_name = "no";
|
||||
shell = "/bin/sh";
|
||||
sleep_time = "0";
|
||||
smart_wrap = "yes";
|
||||
status_chars = "✔↻٪A";
|
||||
tilde = "yes";
|
||||
use_envelope_from = "yes";
|
||||
virtual_spool_file = "yes";
|
||||
wait_key = "no";
|
||||
};
|
||||
|
||||
binds = [
|
||||
{ key = "m"; map = [ "index" "pager" ]; action = "noop"; }
|
||||
{ key = "k"; map = [ "pager" ]; action = "previous-entry"; }
|
||||
{ key = "j"; map = [ "pager" ]; action = "next-entry"; }
|
||||
{ key = "<return>"; map = [ "index" ]; action = "display-message"; }
|
||||
{ key = "<space>"; map = [ "index" ]; action = "entire-thread"; }
|
||||
{ key = "gf"; map = [ "index" "pager" ]; action = "change-folder"; }
|
||||
{ key = "<Tab>"; map = [ "editor" ]; action = "complete-query"; }
|
||||
{ key = "P"; map = [ "compose" ]; action = "pgp-menu"; }
|
||||
{ key = "p"; map = [ "compose" ]; action = "postpone-message"; }
|
||||
];
|
||||
|
||||
macros = [
|
||||
{ key = "gu"; map = [ "index" "pager" ]; action = "<vfolder-from-query>tag:dummy<enter>:source ${config.xdg.configHome}/neomutt/gu<enter>g!"; }
|
||||
{ key = "gm"; map = [ "index" "pager" ]; action = "<vfolder-from-query>tag:dummy<enter>:source ${config.xdg.configHome}/neomutt/t9e<enter>g!"; }
|
||||
{ key = "gk"; map = [ "index" "pager" ]; action = "<vfolder-from-query>tag:dummy<enter>:source ${config.xdg.configHome}/neomutt/ksh<enter>g!"; }
|
||||
|
||||
{ key = "Y"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>"; }
|
||||
{ key = "y"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>-inbox -unread -spam -trash<enter><sync-mailbox>"; }
|
||||
{ key = "J"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>+spam -inbox -unread -trash<enter><sync-mailbox>"; }
|
||||
{ key = "I"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>+inbox -old -spam -trash<enter><sync-mailbox>"; }
|
||||
{ key = "Y"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>"; }
|
||||
{ key = "dd"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>+trash -inbox -unread -spam<enter><sync-mailbox>"; }
|
||||
|
||||
{ key = "g!"; map = [ "index" "pager" ]; action = "<change-vfolder>Inbox<enter>"; }
|
||||
{ key = "g<"; map = [ "index" "pager" ]; action = "<change-vfolder>Sent<enter>"; }
|
||||
{ key = "g>"; map = [ "index" "pager" ]; action = "<change-vfolder>Archive<enter>"; }
|
||||
{ key = "gj"; map = [ "index" "pager" ]; action = "<change-vfolder>Spam<enter>"; }
|
||||
{ key = "gd"; map = [ "index" "pager" ]; action = "<change-vfolder>Drafts<enter>"; }
|
||||
{ key = "gt"; map = [ "index" "pager" ]; action = "<change-vfolder>Trash<enter>"; }
|
||||
|
||||
{ key = "go"; map = [ "index" "pager" ]; action = "<shell-escape>notmuch new<enter>"; }
|
||||
{ key = "V"; map = ["index" "pager"]; action = "<view-attachments><search>html<enter><view-mailcap><exit>"; }
|
||||
{ key = "mar"; map = [ "index" "pager" ]; action = "<tag-pattern>new<enter><tag-prefix-cond><clear-flag>n<enter><tag-prefix-cond><clear-flag>*<enter>"; }
|
||||
{ key = "A"; map = [ "index" "pager" ]; action = "<pipe-message>khard add-email --vcard-version=4.0<return>"; }
|
||||
{ key = "S"; map = [ "index" "pager" ]; action = "<pipe-message>ripmime -i - -d ~/tmp && rm ~/tmp/textfile*"; }
|
||||
{ key = "gb"; map = [ "index" "pager" ]; action = "<pipe-message>urlscan<enter>"; }
|
||||
{ key = "I"; map = [ "compose" ]; action = "<attach-file>`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > \"$tmpfile\" && echo \"$tmpfile\"`<enter>"; }
|
||||
{ key = "p"; map = [ "compose" ]; action = "<postpone-message>"; }
|
||||
|
||||
{ key = "c"; map = [ "index" "pager" ]; action = "<enter-command>set signature=$my_signature<enter><mail>"; }
|
||||
{ key = "r"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><reply>"; }
|
||||
{ key = "a"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><group-reply>"; }
|
||||
{ key = "f"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><forward-message>"; }
|
||||
{ key = "l"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><list-reply>"; }
|
||||
];
|
||||
|
||||
extraConfig = builtins.readFile ../dotfiles/neomutt/config.neomuttrc;
|
||||
};
|
||||
|
||||
xdg.configFile."neomutt/colors.neomuttrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/home/dotfiles/neomutt/colors.neomuttrc";
|
||||
xdg.configFile."neomutt/bindings.neomuttrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/home/dotfiles/neomutt/bindings.neomuttrc";
|
||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = vim-pathogen;
|
||||
config = "execute pathogen#infect()";
|
||||
}
|
||||
];
|
||||
|
||||
xdg.configFile."nvim/bundle/woof-vim" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/till/devel/woof-vim";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
}
|
||||
9
home/desktop-full/messaging.nix
Normal file
9
home/desktop-full/messaging.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
signal-desktop
|
||||
# telegram-desktop
|
||||
simplex-chat-desktop
|
||||
];
|
||||
}
|
||||
4
home/desktop-full/office-cli.nix
Normal file
4
home/desktop-full/office-cli.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
}
|
||||
20
home/desktop-full/office-gui.nix
Normal file
20
home/desktop-full/office-gui.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
chromium
|
||||
eduvpn-client
|
||||
gimp
|
||||
gnome-solanum
|
||||
inkscape
|
||||
libreoffice
|
||||
lorem
|
||||
pdfpc
|
||||
poppler-utils
|
||||
typst
|
||||
xournalpp
|
||||
zotero
|
||||
];
|
||||
|
||||
programs.obs-studio.enable = true;
|
||||
}
|
||||
63
home/desktop-full/r.nix
Normal file
63
home/desktop-full/r.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
customPackages = with pkgs.rPackages; [
|
||||
bookdown
|
||||
catmaply
|
||||
clipr
|
||||
DAAG
|
||||
devtools
|
||||
dplyr
|
||||
eurostat
|
||||
extrafont
|
||||
ggplot2
|
||||
ggridges
|
||||
jsonlite
|
||||
kableExtra
|
||||
knitr
|
||||
languageserver
|
||||
magrittr
|
||||
mapproj
|
||||
openxlsx
|
||||
osmdata
|
||||
plotly
|
||||
progress
|
||||
purrr
|
||||
qrcode
|
||||
quarto
|
||||
RColorBrewer
|
||||
readODS
|
||||
revealjs
|
||||
rlist
|
||||
rmarkdown
|
||||
rnaturalearth
|
||||
rnaturalearthdata
|
||||
roxygen2
|
||||
rvest
|
||||
sf
|
||||
stringr
|
||||
testthat
|
||||
tidyr
|
||||
tidyverse
|
||||
tmap
|
||||
tufte
|
||||
xlsx
|
||||
yaml
|
||||
];
|
||||
|
||||
R-packed = pkgs.rWrapper.override { packages = customPackages; };
|
||||
RStudio-packed = pkgs.rstudioWrapper.override { packages = customPackages; };
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
R-packed
|
||||
RStudio-packed
|
||||
];
|
||||
|
||||
home.shellAliases = {
|
||||
r = "R --no-save --no-restore";
|
||||
R = "R --no-save --no-restore";
|
||||
};
|
||||
}
|
||||
22
home/desktop-full/tasks.nix
Normal file
22
home/desktop-full/tasks.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
taskopen
|
||||
];
|
||||
|
||||
programs.taskwarrior = {
|
||||
enable = true;
|
||||
package = pkgs.taskwarrior3;
|
||||
dataLocation = "${config.xdg.dataHome}/taskwarrior/tasks";
|
||||
colorTheme = "no-color";
|
||||
config = {
|
||||
report.list.columns = ["id" "depends.indicator" "priority" "project" "recur.indicator" "scheduled.countdown" "due" "until.age" "status.short" "description.count" "tags"];
|
||||
report.list.labels= ["ID" "D" "Prio" "Proj" "R" "Scheduled" "Due" "Until" "S" "Description" "Tags"];
|
||||
};
|
||||
extraConfig = "
|
||||
hooks.location=${config.xdg.dataHome}/taskwarrior/hooks
|
||||
verbose=affected,context,edit,label,header,new-id,project,special,sync,recur
|
||||
";
|
||||
};
|
||||
}
|
||||
69
home/desktop-full/tex.nix
Normal file
69
home/desktop-full/tex.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
tex = (pkgs.texlive.combine {
|
||||
inherit (pkgs.texlive)
|
||||
adjustbox
|
||||
arydshln
|
||||
bbding
|
||||
blindtext
|
||||
changepage
|
||||
csquotes
|
||||
currfile
|
||||
dashrule
|
||||
enotez
|
||||
enumitem
|
||||
environ
|
||||
footmisc
|
||||
framed
|
||||
gensymb
|
||||
graphbox
|
||||
hanging
|
||||
idxlayout
|
||||
ifmtarg
|
||||
imakeidx
|
||||
lastpage
|
||||
lipsum
|
||||
ltablex
|
||||
ly1
|
||||
makecell
|
||||
multirow
|
||||
needspace
|
||||
nowidow
|
||||
pdfcol
|
||||
pdfpages
|
||||
pdfx
|
||||
pgf
|
||||
qrcode
|
||||
scheme-medium
|
||||
sourcesanspro
|
||||
stringstrings
|
||||
svg
|
||||
tabu
|
||||
tabulary
|
||||
tcolorbox
|
||||
threeparttable
|
||||
threeparttablex
|
||||
tikzfill
|
||||
titlesec
|
||||
titling
|
||||
tocloft
|
||||
translations
|
||||
transparent
|
||||
was
|
||||
wrapfig
|
||||
xmpincl
|
||||
xpatch
|
||||
xstring
|
||||
xtab
|
||||
xurl
|
||||
zref
|
||||
;
|
||||
});
|
||||
in
|
||||
{ # home-manager
|
||||
home.packages = with pkgs; [
|
||||
texlab
|
||||
tex
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue