omniflake/home/default.nix
2023-08-01 16:23:17 +02:00

155 lines
2.6 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
'';
home.packages = with pkgs; [
# commandline
exa
fzf
nnn
jq
silver-searcher
tmux
tree
unzip
wl-clipboard
# messenger
mattermost-desktop
signal-desktop
tdesktop
element-desktop
whatsapp-for-linux
# email
msmtp
notmuch
# isync
w3m
openssl
gnupg
urlscan
# office
khal
# vdirsyncer
khard
taskopen
gnome.gnome-sound-recorder
zoom-us
# publishing
pandoc
libreoffice
zotero
zathura
hunspell
hyphen
hunspellDicts.de_DE
hunspellDicts.th_TH
# graphics
inkscape
gimp
godot_4
# web
qutebrowser
nyxt
chromium
mullvad-vpn
# media
vlc
lollypop
freetube
yt-dlp
# deveolopment
bundix
nodejs
ruby
android-studio
# 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;
config = {
data.location = "${config.xdg.dataHome}/taskwarrior/tasks";
hooks.location = "${config.xdg.dataHome}/taskwarrior/tasks";
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"];
};
};
}