omniflake/home/slim-desktop.nix
2026-01-13 22:03:03 +01:00

89 lines
1.6 KiB
Nix

{ config, pkgs, inputs, lib, ... }:
{
xdg.userDirs.createDirectories = true;
home.file.".npmrc".text = ''
prefix = ${config.xdg.dataHome}/npm/packages
'';
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
home.packages = with pkgs; [
usbutils
wl-clipboard
# email
msmtp
notmuch
w3m
openssl
gnupg
urlscan
ripmime
# office
khal
khard
taskopen
zathura
pdftk
imagemagick
feh
ghostscript
drawing
castget
# publishing
hunspell
hunspellDicts.de_DE
hunspellDicts.en_US
hunspellDicts.th_TH
hyphen
hyphenDicts.de_DE
hyphenDicts.en_US
pandoc
imagemagick
ghostscript
# media
rhythmbox
vlc
appimage-run
# secrets
libsecret
keepassxc
yubioath-flutter
];
imports = [
./minimal.nix
./devel.nix
./calendars.nix
./foot.nix
./mail
./openconnect.nix
];
programs.taskwarrior = {
package = pkgs.taskwarrior3;
enable = true;
dataLocation = "${config.xdg.dataHome}/taskwarrior/tasks";
colorTheme = "light-256";
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
";
};
services.syncthing.enable = true;
}