Split home.nix into multiple files

Use dedicated files for files, packages and xdg.
This shortens the huge home.nix file.
This commit is contained in:
Daniel Siepmann 2022-05-20 12:45:42 +02:00
parent 5f66cd8f14
commit fb009d303d
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
4 changed files with 161 additions and 150 deletions

156
home.nix
View file

@ -25,80 +25,12 @@
# changes in each release.
stateVersion = "22.05";
packages = [
pkgs.nix
pkgs.cacert
# System tools
pkgs.dmenu
pkgs.networkmanager_dmenu
pkgs.dmenu-custom-scripts
pkgs.custom-update-system
pkgs.custom-push-etckeeper
pkgs.dunst
pkgs.i3blocks
pkgs.st
pkgs.ncdu
pkgs.tree
pkgs.rst2pdf
pkgs.espeak
pkgs.bc
pkgs.borgbackup
pkgs.keepassxc
pkgs.libreoffice
# Dev tools
pkgs.litecli
pkgs.sqlite
pkgs.mycli
# pkgs.mytop
pkgs.robo3t
pkgs.mkcert
pkgs.tig
pkgs.universal-ctags
pkgs.silver-searcher
pkgs.curl
pkgs.wget
pkgs.kcachegrind
pkgs.geckodriver
# In order to pull binaries from their.
# E.g. phps: https://github.com/fossar/nix-phps#how-to-use
pkgs.cachix
# Coding / Neovim
# Does not provide any autocompletion yet, don't know why
# Use in conjuncion with https://github.com/autozimu/LanguageClient-neovim
# pkgs.rnix-lsp
pkgs.custom-customer-project
# Communication
pkgs.signal-desktop
pkgs.thunderbird
# Media
pkgs.vlc
pkgs.yt-dlp
pkgs.spotdl
# Does not work for some reason, need installed via apt
# pkgs.sound-juicer
# pkgs.audacity
pkgs.ffmpeg
pkgs.python39Packages.mutagen
pkgs.darktable
];
file = {
".nix-channels".source = ./home/files/nix-channels;
".profile".source = ./home/files/profile;
".myclirc".source = ./home/files/myclirc;
".agignore".source = ./home/files/agignore;
packages = import ./home/packages.nix {
inherit pkgs;
};
file = import ./home/files.nix { };
};
nix = import ./home/programs/nix.nix {
@ -142,84 +74,8 @@
inherit config pkgs;
};
xdg = {
configFile = {
"ctags/config.ctags".source = ./home/files/ctags;
"litecli/config".source = ./home/files/litecli;
"phpactor".source = ./home/files/phpactor;
"yamllint/config".source = ./home/files/yamllint/config;
"tig/config".source = ./home/files/tig;
"cmus/smyckblue.theme".source = ./home/files/cmus/smyckblue.theme;
"cmus/rc".source = ./home/files/cmus/rc;
"i3blocks/config".source = ./home/files/i3-blocks;
"borg/exclude".source = ./home/files/borg-exclude;
};
dataFile = {
"xsd/xliff-core-1.2-strict.xsd".source = pkgs.fetchurl {
url = "https://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd";
sha256 = "nzevVk7NJ9X2kVTXz+e6jesfYgyBuUzw6rH0IFx01fg=";
};
"typo3-configuration".source = ./home/files/typo3-configuration;
};
desktopEntries = {
networkmanager-dmenu = {
type = "Application";
exec = "${pkgs.networkmanager_dmenu}/bin/networkmanager_dmenu";
name = "Networkmanager dmenu";
comment = "Networkmanaging using dmenu";
genericName = "Networkmanager Setting";
categories = [
"Network"
];
};
slack-typo3 = {
name = "Slack TYPO3";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --app=https://app.slack.com/client/T024TUMLZ/unreads";
};
slack-codappix = {
name = "Slack Codappix";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --app=https://app.slack.com/client/T2DPNS55W/unreads";
};
slack-sac = {
name = "Slack SAC";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --app=https://app.slack.com/client/T3FANTPL5/unreads";
};
microsoft-teams = {
name = "Microsoft Teams";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --user-agent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36\" --new-window --app=https://teams.microsoft.com/";
};
mattermost = {
name = "Mattermost werkraum-media";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --new-window --app=https://mattermost.werkraum-media.de/";
};
werkraum-jitsi = {
name = "Jitsi werkraum-media";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --new-window --app=https://jitsi.werkraum-media.de/codappix";
};
toggl = {
name = "Toggl Time Tracking";
type = "Application";
exec = "${pkgs.firefox}/bin/firefox --class=\"time-tracking\" --new-instance -P toggl https://track.toggl.com/timer";
};
mailhog-ui = {
name = "Mailhog";
type = "Application";
exec = "${pkgs.firefox}/bin/firefox --class=\"mailhog\" --new-instance -P mailhog https://mailhog.localhost";
};
};
xdg = import ./home/xdg.nix {
inherit pkgs;
};
services = {

8
home/files.nix Normal file
View file

@ -0,0 +1,8 @@
_:
{
".nix-channels".source = ./files/nix-channels;
".profile".source = ./files/profile;
".myclirc".source = ./files/myclirc;
".agignore".source = ./files/agignore;
}

68
home/packages.nix Normal file
View file

@ -0,0 +1,68 @@
{ pkgs }:
with pkgs; [
nix
cacert
# System tools
dmenu
networkmanager_dmenu
dmenu-custom-scripts
custom-update-system
custom-push-etckeeper
dunst
i3blocks
st
ncdu
tree
rst2pdf
espeak
bc
borgbackup
keepassxc
libreoffice
# Dev tools
litecli
sqlite
mycli
# mytop
robo3t
mkcert
tig
universal-ctags
silver-searcher
curl
wget
kcachegrind
geckodriver
# In order to pull binaries from their.
# E.g. phps: https://github.com/fossar/nix-phps#how-to-use
cachix
# Coding / Neovim
# Does not provide any autocompletion yet, don't know why
# Use in conjuncion with https://github.com/autozimu/LanguageClient-neovim
# rnix-lsp
custom-customer-project
# Communication
signal-desktop
thunderbird
# Media
vlc
yt-dlp
spotdl
# Does not work for some reason, need installed via apt
# sound-juicer
# audacity
ffmpeg
python39Packages.mutagen
darktable
]

79
home/xdg.nix Normal file
View file

@ -0,0 +1,79 @@
{ pkgs }:
{
configFile = {
"ctags/config.ctags".source = ./files/ctags;
"litecli/config".source = ./files/litecli;
"phpactor".source = ./files/phpactor;
"yamllint/config".source = ./files/yamllint/config;
"tig/config".source = ./files/tig;
"cmus/smyckblue.theme".source = ./files/cmus/smyckblue.theme;
"cmus/rc".source = ./files/cmus/rc;
"i3blocks/config".source = ./files/i3-blocks;
"borg/exclude".source = ./files/borg-exclude;
};
dataFile = {
"xsd/xliff-core-1.2-strict.xsd".source = pkgs.fetchurl {
url = "https://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd";
sha256 = "nzevVk7NJ9X2kVTXz+e6jesfYgyBuUzw6rH0IFx01fg=";
};
"typo3-configuration".source = ./files/typo3-configuration;
};
desktopEntries = {
networkmanager-dmenu = {
type = "Application";
exec = "${pkgs.networkmanager_dmenu}/bin/networkmanager_dmenu";
name = "Networkmanager dmenu";
comment = "Networkmanaging using dmenu";
genericName = "Networkmanager Setting";
categories = [
"Network"
];
};
slack-typo3 = {
name = "Slack TYPO3";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --app=https://app.slack.com/client/T024TUMLZ/unreads";
};
slack-codappix = {
name = "Slack Codappix";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --app=https://app.slack.com/client/T2DPNS55W/unreads";
};
slack-sac = {
name = "Slack SAC";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --app=https://app.slack.com/client/T3FANTPL5/unreads";
};
microsoft-teams = {
name = "Microsoft Teams";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --user-agent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36\" --new-window --app=https://teams.microsoft.com/";
};
mattermost = {
name = "Mattermost werkraum-media";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --new-window --app=https://mattermost.werkraum-media.de/";
};
werkraum-jitsi = {
name = "Jitsi werkraum-media";
type = "Application";
exec = "/snap/bin/chromium --class=\"chat\" --new-window --new-window --app=https://jitsi.werkraum-media.de/codappix";
};
toggl = {
name = "Toggl Time Tracking";
type = "Application";
exec = "${pkgs.firefox}/bin/firefox --class=\"time-tracking\" --new-instance -P toggl https://track.toggl.com/timer";
};
mailhog-ui = {
name = "Mailhog";
type = "Application";
exec = "${pkgs.firefox}/bin/firefox --class=\"mailhog\" --new-instance -P mailhog https://mailhog.localhost";
};
};
}