omniflake/home/default.nix

172 lines
3 KiB
Nix

{ config, pkgs, inputs, lib, ... }:
{
home.username = "till";
home.homeDirectory = "/home/till";
home.stateVersion = "22.11";
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
};
programs.home-manager.enable = true;
xdg.userDirs = {
enable = true;
createDirectories = true;
download = "${config.home.homeDirectory}/tmp";
music = "${config.home.homeDirectory}/media/music";
pictures = "${config.home.homeDirectory}/media/img";
videos = "${config.home.homeDirectory}/media/vid";
documents = "${config.home.homeDirectory}/misc";
};
services.syncthing.enable = true;
home.file.".npmrc".text = ''
prefix = ${config.xdg.dataHome}/npm/packages
'';
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
home.packages = with pkgs; [
# commandline
file
fzf
nnn
jq
silver-searcher
tmux
tree
unzip
wl-clipboard
# admin
dig.dnsutils
pwgen
# messenger
mattermost-desktop
signal-desktop
tdesktop
element-desktop
whatsapp-for-linux
# email
msmtp
notmuch
# isync
w3m
openssl
gnupg
urlscan
# office
khal
khard
taskopen
gnome.gnome-sound-recorder
# zoom-us
okular
xournalpp
evolution
# publishing
hunspell
hunspellDicts.de_DE
hunspellDicts.th_TH
hyphen
pandoc
poppler_utils
libreoffice
zotero
zathura
# graphics
inkscape
gimp
godot_4
scrcpy
# web
qutebrowser
nyxt
chromium
mullvad-vpn
# media
vlc
rhythmbox
freetube
yt-dlp
castget
# development
bundler
bundix
nodejs
# ruby
android-studio
netlify-cli
# secrets
libsecret
keepassxc
];
imports = [
./desktop
./nvim
./foot.nix
./fish.nix
./calendars
./mail
./tex.nix
./openconnect.nix
./R.nix
];
home.shellAliases = {
ls = "exa";
tree = "exa --tree";
v = "nvim";
};
programs.nix-index = {
enable = true;
enableFishIntegration = true;
};
programs.git = {
enable = true;
userName = "Till";
userEmail = "till@ktiu.net";
lfs = {
enable = true;
};
extraConfig = {
init = {
defaultBranch = "main";
};
};
};
programs.taskwarrior = {
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
";
};
}