Nixos: Various cleanups
This commit is contained in:
138
flake.lock
generated
138
flake.lock
generated
@ -21,7 +21,7 @@
|
|||||||
},
|
},
|
||||||
"devshell_2": {
|
"devshell_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
@ -78,6 +78,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
@ -91,7 +106,7 @@
|
|||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_3": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
@ -183,6 +198,24 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_4": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1701680307,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||||
@ -199,7 +232,7 @@
|
|||||||
},
|
},
|
||||||
"git-hooks": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_3",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
@ -302,6 +335,32 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-alien": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nix-filter": "nix-filter",
|
||||||
|
"nix-index-database": "nix-index-database",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-alien",
|
||||||
|
"nix-index-database",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715754082,
|
||||||
|
"narHash": "sha256-2hAydsdMk6QmDar+16ryyn+pVksxudwC5vRiatJbysM=",
|
||||||
|
"owner": "thiagokokada",
|
||||||
|
"repo": "nix-alien",
|
||||||
|
"rev": "ea6ebda03c5537eebbb93af57ca6f2c2979981be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "thiagokokada",
|
||||||
|
"repo": "nix-alien",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-darwin": {
|
"nix-darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -323,6 +382,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-filter": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710156097,
|
||||||
|
"narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "nix-filter",
|
||||||
|
"rev": "3342559a24e85fc164b295c3444e8a139924675b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "nix-filter",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711997201,
|
"lastModified": 1711997201,
|
||||||
@ -339,6 +413,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-index-database": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715483403,
|
||||||
|
"narHash": "sha256-WMDuQj7J5jbpXI/X/E6FZRKgBFGcaSTvYyVxPnKE6KU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"rev": "f9027322f48b427da23746aa359a6510dfcd0228",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704161960,
|
"lastModified": 1704161960,
|
||||||
@ -388,6 +480,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715266358,
|
||||||
|
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f1010e0469db743d14519a1efd37e23f8513d714",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717196966,
|
"lastModified": 1717196966,
|
||||||
"narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=",
|
"narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=",
|
||||||
@ -403,7 +511,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716769173,
|
"lastModified": 1716769173,
|
||||||
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
|
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
|
||||||
@ -422,13 +530,13 @@
|
|||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell_2",
|
"devshell": "devshell_2",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"flake-root": "flake-root",
|
"flake-root": "flake-root",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -467,8 +575,9 @@
|
|||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"nix-alien": "nix-alien",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"nur": "nur"
|
"nur": "nur"
|
||||||
}
|
}
|
||||||
@ -518,6 +627,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
devshell.url = "github:numtide/devshell";
|
devshell.url = "github:numtide/devshell";
|
||||||
nixvim.url = "github:nix-community/nixvim";
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||||
|
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||||
# musnix.url = "github:musnix/musnix";
|
# musnix.url = "github:musnix/musnix";
|
||||||
# nixified-ai.url = "github:nixified-ai/flake";
|
# nixified-ai.url = "github:nixified-ai/flake";
|
||||||
# nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor";
|
# nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor";
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
# This is a module
|
# This is a module
|
||||||
# Because no imports/options/config is defined explicitly, everything is treated as config
|
# Because no imports/options/config is defined explicitly, everything is treated as config
|
||||||
# { inputs, lib, ... }: { ... } gets turned into { inputs, lib, ... }: { config = { ... }; } implicitly
|
# { inputs, lib, ... }: { ... } gets turned into { inputs, lib, ... }: { config = { ... }; } implicitly
|
||||||
|
# TODO: Add nixified.ai module
|
||||||
rec {
|
rec {
|
||||||
# Every module is a nix expression, specifically a function { inputs, lib, ... }: { ... }
|
# Every module is a nix expression, specifically a function { inputs, lib, ... }: { ... }
|
||||||
# Every module (/function) is called with the same arguments as this module (home.nix)
|
# Every module (/function) is called with the same arguments as this module (home.nix)
|
||||||
@ -131,10 +132,13 @@ rec {
|
|||||||
"jetbrains-idea"
|
"jetbrains-idea"
|
||||||
"jetbrains-pycharm"
|
"jetbrains-pycharm"
|
||||||
"jetbrains-rustrover"
|
"jetbrains-rustrover"
|
||||||
|
"jetbrains-rider"
|
||||||
"code-url-handler"
|
"code-url-handler"
|
||||||
];
|
];
|
||||||
"3" = [
|
"3" = [
|
||||||
"obsidian"
|
"obsidian"
|
||||||
|
"unityhub"
|
||||||
|
"Unity"
|
||||||
];
|
];
|
||||||
"4" = [
|
"4" = [
|
||||||
"firefox"
|
"firefox"
|
||||||
@ -172,6 +176,7 @@ rec {
|
|||||||
"jetbrains-idea"
|
"jetbrains-idea"
|
||||||
"jetbrains-pycharm"
|
"jetbrains-pycharm"
|
||||||
"jetbrains-rustrover"
|
"jetbrains-rustrover"
|
||||||
|
"jetbrains-rider"
|
||||||
"code-url-handler"
|
"code-url-handler"
|
||||||
"neovide"
|
"neovide"
|
||||||
];
|
];
|
||||||
@ -179,37 +184,12 @@ rec {
|
|||||||
|
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
|
|
||||||
misc = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
keepass = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false; # TODO: This option should use hyprland module
|
|
||||||
};
|
|
||||||
|
|
||||||
protonmail = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false; # TODO: This option should use hyprland module
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alias = true;
|
alias = true;
|
||||||
neovide = true;
|
neovide = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# lazyvim = {
|
|
||||||
# enable = true;
|
|
||||||
# alias = true;
|
|
||||||
# neovide = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
nextcloud = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false; # TODO: This option should use hyprland module
|
|
||||||
};
|
|
||||||
|
|
||||||
nnn.enable = true;
|
nnn.enable = true;
|
||||||
|
|
||||||
# ranger = {
|
# ranger = {
|
||||||
@ -230,51 +210,23 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
manual.manpages.enable = true;
|
manual = {
|
||||||
manual.html.enable = true;
|
manpages.enable = true;
|
||||||
|
html.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
# Make fonts installed through user packages available to applications
|
# Make fonts installed through user packages available to applications
|
||||||
# NOTE: I don't think I need this anymore as all fonts are installed through the system config but let's keep this just in case
|
# NOTE: I don't think I need this anymore as all fonts are installed through the system config but let's keep this just in case
|
||||||
fonts.fontconfig.enable = true; # Also updates the font-cache
|
fonts.fontconfig.enable = true; # Also updates the font-cache
|
||||||
|
|
||||||
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
xdg = {
|
||||||
home.file.".local/share/current-user-packages".text = let
|
mime.enable = true;
|
||||||
packages = builtins.map (p: "${p.name}") home.packages;
|
mimeApps = {
|
||||||
sortedUnique = builtins.sort builtins.lessThan (lib.unique packages);
|
enable = true;
|
||||||
formatted = builtins.concatStringsSep "\n" sortedUnique;
|
associations.added = nixosConfig.xdg.mime.addedAssociations;
|
||||||
in
|
associations.removed = nixosConfig.xdg.mime.removedAssociations;
|
||||||
formatted;
|
inherit (nixosConfig.xdg.mime) defaultApplications; # Equal to "defaultApplications = nixosConfig.xdg.mime.defaultApplications"
|
||||||
|
};
|
||||||
home.file.".config/mpv" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ../../config/mpv;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Latex module
|
|
||||||
home.file."texmf/tex/latex/custom/christex.sty".source = ../../config/latex/christex.sty;
|
|
||||||
home.file."Notes/Obsidian/Chriphost/christex.sty".source = ../../config/latex/christex.sty; # For obsidian notes
|
|
||||||
home.file.".indentconfig.yaml".source = ../../config/latex/.indentconfig.yaml;
|
|
||||||
home.file.".indentsettings.yaml".source = ../../config/latex/.indentsettings.yaml;
|
|
||||||
# TODO: Use mkLink
|
|
||||||
# home.file."Notes/Obsidian/Chriphost/latex_snippets.json".source = ../../config/obsidian/latex_snippets.json;
|
|
||||||
home.file."Notes/Obsidian/Chriphost/.obsidian/snippets/latex_preview.css".source = ../../config/obsidian/css_snippets/latex_preview.css;
|
|
||||||
|
|
||||||
# TODO: If navi enabled
|
|
||||||
# TODO: Symlink this, so the config doesn't have to be rebuilt every time
|
|
||||||
home.file.".local/share/navi/cheats/christoph.cheat".source = ../../config/navi/christoph.cheat;
|
|
||||||
|
|
||||||
home.activation = {
|
|
||||||
linkObsidianLatexSnippets =
|
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
||||||
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mime.enable = true;
|
|
||||||
xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
associations.added = nixosConfig.xdg.mime.addedAssociations;
|
|
||||||
associations.removed = nixosConfig.xdg.mime.removedAssociations;
|
|
||||||
inherit (nixosConfig.xdg.mime) defaultApplications; # Equal to "defaultApplications = nixosConfig.xdg.mime.defaultApplications"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
@ -306,147 +258,162 @@ rec {
|
|||||||
# WINEFSYNC = 1;
|
# WINEFSYNC = 1;
|
||||||
# WINEPREFIX = "/home/christoph/.wine";
|
# WINEPREFIX = "/home/christoph/.wine";
|
||||||
|
|
||||||
# NOTE: GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS are set by HomeManager fcitx5 module
|
# GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS are set by HomeManager fcitx5 module
|
||||||
};
|
};
|
||||||
|
|
||||||
|
file = {
|
||||||
|
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
||||||
|
".local/share/current-user-packages".text = let
|
||||||
|
packages = builtins.map (p: "${p.name}") home.packages;
|
||||||
|
sortedUnique = builtins.sort builtins.lessThan (lib.unique packages);
|
||||||
|
formatted = builtins.concatStringsSep "\n" sortedUnique;
|
||||||
|
in
|
||||||
|
formatted;
|
||||||
|
|
||||||
|
".config/mpv" = {
|
||||||
|
recursive = true;
|
||||||
|
source = ../../config/mpv;
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: Latex module
|
||||||
|
"texmf/tex/latex/custom/christex.sty".source = ../../config/latex/christex.sty;
|
||||||
|
"Notes/Obsidian/Chriphost/christex.sty".source = ../../config/latex/christex.sty; # For obsidian notes
|
||||||
|
".indentconfig.yaml".source = ../../config/latex/.indentconfig.yaml;
|
||||||
|
".indentsettings.yaml".source = ../../config/latex/.indentsettings.yaml;
|
||||||
|
# TODO: Use mkLink
|
||||||
|
# "Notes/Obsidian/Chriphost/latex_snippets.json".source = ../../config/obsidian/latex_snippets.json;
|
||||||
|
"Notes/Obsidian/Chriphost/.obsidian/snippets/latex_preview.css".source = ../../config/obsidian/css_snippets/latex_preview.css;
|
||||||
|
|
||||||
|
# TODO: If navi enabled
|
||||||
|
# TODO: Symlink this, so the config doesn't have to be rebuilt every time
|
||||||
|
".local/share/navi/cheats/christoph.cheat".source = ../../config/navi/christoph.cheat;
|
||||||
|
};
|
||||||
|
|
||||||
|
activation = {
|
||||||
|
linkObsidianLatexSnippets =
|
||||||
|
lib.hm.dag.entryAfter ["writeBoundary"]
|
||||||
|
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: Make a module for standard UNIX replacements
|
||||||
|
# Add stuff for your user as you see fit:
|
||||||
|
packages = with pkgs; [
|
||||||
|
# Shell utils
|
||||||
|
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
|
||||||
|
gdu # Alternative to du-dust (I like it better)
|
||||||
|
duf # Disk usage analyzer (for all disk overview)
|
||||||
|
sd # sed alternative
|
||||||
|
fclones # duplicate file finder
|
||||||
|
tealdeer # very fast tldr (so readable man)
|
||||||
|
atool # Archive preview
|
||||||
|
ffmpegthumbnailer # Video thumbnails
|
||||||
|
mediainfo
|
||||||
|
tree # Folder preview
|
||||||
|
unrar
|
||||||
|
p7zip
|
||||||
|
unzip
|
||||||
|
progress
|
||||||
|
tokei # Text file statistics in a project
|
||||||
|
appimage-run
|
||||||
|
nvd # nix rebuild diff
|
||||||
|
file
|
||||||
|
# spotdl # TODO: Borked
|
||||||
|
|
||||||
|
# Hardware/Software info
|
||||||
|
pciutils # lspci
|
||||||
|
glxinfo # opengl info
|
||||||
|
wayland-utils # wayland-info
|
||||||
|
aha # ansi html adapter? TODO: Why did I install this?
|
||||||
|
clinfo # OpenCL info
|
||||||
|
vulkan-tools # vulkaninfo
|
||||||
|
libva-utils # vainfo
|
||||||
|
vdpauinfo
|
||||||
|
hwloc
|
||||||
|
lm_sensors
|
||||||
|
acpica-tools # Dump ACPI tables etc.
|
||||||
|
|
||||||
|
# Video/Image utils
|
||||||
|
ffmpeg_5-full # I love ffmpeg (v5, including ffplay)
|
||||||
|
ffmpeg-normalize
|
||||||
|
imagemagick # Convert image (magic)
|
||||||
|
ueberzugpp # Display images in terminal (alacritty)
|
||||||
|
|
||||||
|
# Document utils
|
||||||
|
# TODO: Latex module with individual packages or HomeManager
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
poppler_utils # pdfunite
|
||||||
|
graphviz # generate graphs from code
|
||||||
|
plantuml
|
||||||
|
gnuplot # generate function plots
|
||||||
|
pdf2svg
|
||||||
|
pandoc # document converting madness
|
||||||
|
inkscape # for latex
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
dig
|
||||||
|
tcpdump
|
||||||
|
traceroute
|
||||||
|
wireshark
|
||||||
|
gping # ping with graph
|
||||||
|
curlie # curl a'la httpie
|
||||||
|
wget # download that shit
|
||||||
|
dogdns # dns client
|
||||||
|
rsync # cp on steroids
|
||||||
|
rclone # Rsync for cloud
|
||||||
|
httpie # Cool http client
|
||||||
|
# suricata
|
||||||
|
cifs-utils # Mount samba shares
|
||||||
|
nfs-utils
|
||||||
|
sshfs
|
||||||
|
protonvpn-cli
|
||||||
|
|
||||||
|
# GUI apps
|
||||||
|
vlc
|
||||||
|
cool-retro-term
|
||||||
|
ventoy-full # Bootable USB for many ISOs
|
||||||
|
sqlitebrowser # To modify tables
|
||||||
|
dbeaver-bin # To import/export data + diagrams
|
||||||
|
hoppscotch # Test APIs
|
||||||
|
# decker # TODO: Build failure
|
||||||
|
signal-desktop
|
||||||
|
filezilla
|
||||||
|
anki
|
||||||
|
# octave # GNU matlab basically
|
||||||
|
font-manager
|
||||||
|
nextcloud-client
|
||||||
|
keepassxc
|
||||||
|
protonmail-bridge
|
||||||
|
|
||||||
|
# Office
|
||||||
|
wacomtablet # For xournalpp/krita
|
||||||
|
xournalpp # Write with a pen, like old people
|
||||||
|
# libreoffice-qt
|
||||||
|
hunspell # I cna't type
|
||||||
|
hunspellDicts.en_US
|
||||||
|
hunspellDicts.de_DE
|
||||||
|
obsidian # knowledge-base
|
||||||
|
# logseq # knowledge-base
|
||||||
|
|
||||||
|
# TODO: Module, I need to add python packages from multiple modules to the same interpreter
|
||||||
|
python312
|
||||||
|
jetbrains.clion
|
||||||
|
jetbrains.rust-rover
|
||||||
|
jetbrains.pycharm-professional
|
||||||
|
jetbrains.idea-ultimate
|
||||||
|
|
||||||
|
AusweisApp2
|
||||||
|
|
||||||
|
# Use NixCommunity binary cache
|
||||||
|
cachix
|
||||||
|
|
||||||
|
# Generate documentation
|
||||||
|
# modules-options-doc
|
||||||
|
];
|
||||||
|
|
||||||
# Do not change
|
# Do not change
|
||||||
stateVersion = "22.05";
|
stateVersion = "22.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Split this more between laptop and desktop...
|
|
||||||
# TODO: Make a module for standard UNIX replacements
|
|
||||||
# Add stuff for your user as you see fit:
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# Shell utils
|
|
||||||
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
|
|
||||||
gdu # Alternative to du-dust (I like it better)
|
|
||||||
duf # Disk usage analyzer (for all disk overview)
|
|
||||||
sd # sed alternative
|
|
||||||
fclones # duplicate file finder
|
|
||||||
tealdeer # very fast tldr (so readable man)
|
|
||||||
atool # Archive preview
|
|
||||||
ffmpegthumbnailer # Video thumbnails
|
|
||||||
mediainfo
|
|
||||||
tree # Folder preview
|
|
||||||
unrar
|
|
||||||
p7zip
|
|
||||||
unzip
|
|
||||||
progress
|
|
||||||
tokei # Text file statistics in a project
|
|
||||||
appimage-run
|
|
||||||
nvd # nix rebuild diff
|
|
||||||
file
|
|
||||||
# spotdl # TODO: Borked
|
|
||||||
|
|
||||||
# Hardware/Software info
|
|
||||||
pciutils # lspci
|
|
||||||
glxinfo # opengl info
|
|
||||||
wayland-utils # wayland-info
|
|
||||||
aha # ansi html adapter? TODO: Why did I install this?
|
|
||||||
clinfo # OpenCL info
|
|
||||||
vulkan-tools # vulkaninfo
|
|
||||||
libva-utils # vainfo
|
|
||||||
vdpauinfo
|
|
||||||
hwloc
|
|
||||||
lm_sensors
|
|
||||||
acpica-tools # Dump ACPI tables etc.
|
|
||||||
|
|
||||||
# Video/Image utils
|
|
||||||
ffmpeg_5-full # I love ffmpeg (v5, including ffplay)
|
|
||||||
ffmpeg-normalize
|
|
||||||
x265
|
|
||||||
imagemagick # Convert image (magic)
|
|
||||||
ueberzugpp # Display images in terminal (alacritty)
|
|
||||||
|
|
||||||
# Document utils
|
|
||||||
# TODO: Latex module with individual packages or HomeManager
|
|
||||||
texlive.combined.scheme-full
|
|
||||||
poppler_utils # pdfunite
|
|
||||||
graphviz # generate graphs from code
|
|
||||||
plantuml
|
|
||||||
gnuplot # generate function plots
|
|
||||||
pdf2svg
|
|
||||||
pandoc # document converting madness
|
|
||||||
|
|
||||||
# Networking
|
|
||||||
dig
|
|
||||||
tcpdump
|
|
||||||
traceroute
|
|
||||||
wireshark
|
|
||||||
gping # ping with graph
|
|
||||||
curlie # curl a'la httpie
|
|
||||||
wget # download that shit
|
|
||||||
dogdns # dns client
|
|
||||||
rsync # cp on steroids
|
|
||||||
rclone # Rsync for cloud
|
|
||||||
httpie # Cool http client
|
|
||||||
# suricata
|
|
||||||
cifs-utils # Mount samba shares
|
|
||||||
nfs-utils
|
|
||||||
sshfs
|
|
||||||
protonvpn-cli
|
|
||||||
|
|
||||||
# GUI apps
|
|
||||||
vlc
|
|
||||||
cool-retro-term
|
|
||||||
ventoy-full # Bootable USB for many ISOs
|
|
||||||
# spotify # Uses flatpak
|
|
||||||
sqlitebrowser # To modify tables
|
|
||||||
dbeaver-bin # To import/export data + diagrams
|
|
||||||
hoppscotch # Test APIs
|
|
||||||
# decker # TODO: Build failure
|
|
||||||
signal-desktop
|
|
||||||
filezilla
|
|
||||||
# calibre # Do I even read
|
|
||||||
# virt-manager
|
|
||||||
# gource # Visualize git commit log, completely useless
|
|
||||||
# anki-bin # Use anki-bin as anki is some versions behind NOTE: anki-bin doesn't support fcitx5 :(
|
|
||||||
anki
|
|
||||||
# inputs.nixos-conf-editor.packages."x86_64-linux".nixos-conf-editor
|
|
||||||
# octave # GNU matlab basically
|
|
||||||
# logisim-evolution # Digital circuit simulator
|
|
||||||
# digital # Digital circuit simulator
|
|
||||||
# okteta # hex editor
|
|
||||||
# kdiff3 # diff/patch tool
|
|
||||||
font-manager
|
|
||||||
|
|
||||||
# Office
|
|
||||||
# sioyek # Scientific pdf reader # HM program
|
|
||||||
xournalpp # Write with a pen, like old people
|
|
||||||
# libreoffice-qt
|
|
||||||
hunspell # I cna't type
|
|
||||||
hunspellDicts.en_US
|
|
||||||
hunspellDicts.de_DE
|
|
||||||
obsidian # knowledge-base
|
|
||||||
# logseq # knowledge-base
|
|
||||||
|
|
||||||
# TODO: Module, I need to add python packages from multiple modules to the same interpreter
|
|
||||||
python312
|
|
||||||
jetbrains.clion
|
|
||||||
jetbrains.rust-rover
|
|
||||||
jetbrains.pycharm-professional
|
|
||||||
jetbrains.idea-ultimate
|
|
||||||
|
|
||||||
# Media
|
|
||||||
wacomtablet
|
|
||||||
# blender
|
|
||||||
# godot_4
|
|
||||||
obs-studio
|
|
||||||
# vlc # Addition to mpv without any shaders etc
|
|
||||||
kdenlive
|
|
||||||
krita
|
|
||||||
inkscape
|
|
||||||
# handbrake
|
|
||||||
# makemkv
|
|
||||||
AusweisApp2
|
|
||||||
|
|
||||||
# Use NixCommunity binary cache
|
|
||||||
cachix
|
|
||||||
|
|
||||||
# Generate documentation
|
|
||||||
# modules-options-doc
|
|
||||||
];
|
|
||||||
|
|
||||||
# home.file.".options-doc".source = "${pkgs.modules-options-doc}";
|
# home.file.".options-doc".source = "${pkgs.modules-options-doc}";
|
||||||
|
|
||||||
# Packages with extra options managed by HomeManager natively
|
# Packages with extra options managed by HomeManager natively
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Here goes the stuff that will only be enabled on the desktop
|
# Here goes the stuff that will only be enabled on the desktop
|
||||||
{...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
../../modules
|
../../modules
|
||||||
];
|
];
|
||||||
@ -48,53 +48,29 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# audio = {
|
# TODO: Also set the dunst monitor
|
||||||
# enable = false;
|
|
||||||
|
|
||||||
# carla.enable = false;
|
|
||||||
# bitwig.enable = true; # TODO: Check what happens when upgrade plan ends, do I need to pin the version then?
|
|
||||||
# tenacity.enable = true;
|
|
||||||
|
|
||||||
# faust.enable = true;
|
|
||||||
# bottles.enable = false;
|
|
||||||
# yabridge.enable = true;
|
|
||||||
# yabridge.autoSync = true;
|
|
||||||
|
|
||||||
# noisesuppression = {
|
|
||||||
# noisetorch.enable = false;
|
|
||||||
# noisetorch.autostart = false;
|
|
||||||
# easyeffects.enable = false;
|
|
||||||
# easyeffects.autostart = false;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# cardinal.enable = true;
|
|
||||||
# distrho.enable = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# gaming = {
|
|
||||||
# enable = false;
|
|
||||||
|
|
||||||
# prism.enable = true;
|
|
||||||
# bottles.enable = false;
|
|
||||||
# cemu.enable = true;
|
|
||||||
# # TODO: Webcord
|
|
||||||
# # discordChromium.enable = false;
|
|
||||||
# # discordElectron.enable = false; # This is the nixpkgs version, prefer the one from flatpak module
|
|
||||||
# # dwarffortress.enable = false;
|
|
||||||
|
|
||||||
# steam = {
|
|
||||||
# enable = true;
|
|
||||||
# gamescope = true;
|
|
||||||
# adwaita = false;
|
|
||||||
# protonup = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
waybar.monitor = "HDMI-A-1";
|
waybar.monitor = "HDMI-A-1";
|
||||||
};
|
};
|
||||||
|
|
||||||
# home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# quartus-prime-lite # Intel FPGA design software
|
# quartus-prime-lite # Intel FPGA design software
|
||||||
# ];
|
|
||||||
|
unityhub
|
||||||
|
jetbrains.rider
|
||||||
|
(with dotnetCorePackages;
|
||||||
|
combinePackages [
|
||||||
|
sdk_6_0_1xx
|
||||||
|
sdk_7_0_3xx
|
||||||
|
sdk_8_0_2xx
|
||||||
|
]) # For Rider/Unity
|
||||||
|
mono # For Rider/Unity
|
||||||
|
|
||||||
|
blender
|
||||||
|
# godot_4
|
||||||
|
obs-studio
|
||||||
|
kdenlive
|
||||||
|
krita
|
||||||
|
# makemkv
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./audio
|
# ./audio
|
||||||
./chromium
|
./chromium
|
||||||
./emacs
|
./emacs
|
||||||
./email
|
./email
|
||||||
./firefox
|
./firefox
|
||||||
./fish
|
./fish
|
||||||
./flatpak
|
# ./flatpak
|
||||||
./gaming
|
# ./gaming
|
||||||
./helix
|
./helix
|
||||||
./hyprland
|
./hyprland
|
||||||
./kitty
|
./kitty
|
||||||
./misc
|
# ./misc
|
||||||
./neovim
|
./neovim
|
||||||
./nextcloud
|
# ./nextcloud
|
||||||
./nnn
|
./nnn
|
||||||
./ranger
|
./ranger
|
||||||
./rofi
|
./rofi
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# Example: https://beb.ninja/post/email/
|
# Example: https://beb.ninja/post/email/
|
||||||
# Example: https://sbr.pm/configurations/mails.html
|
# Example: https://sbr.pm/configurations/mails.html
|
||||||
|
# TODO: Protonmail-bridge
|
||||||
|
# TODO: Change to use thunderbird only
|
||||||
# NOTE: The passwords must exist in kwallet
|
# NOTE: The passwords must exist in kwallet
|
||||||
# TODO: Emacs mail config
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
nixosConfig,
|
nixosConfig,
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
# TODO: Remove this module, put protonmail into the email module
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.misc;
|
cfg = config.modules.misc;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
# Changed from https://github.com/nix-community/home-manager/blob/master/modules/services/nextcloud-client.nix
|
# Changed from https://github.com/nix-community/home-manager/blob/master/modules/services/nextcloud-client.nix
|
||||||
# I use this instead of the HM module as the autostart wasn't working there
|
# I use this instead of the HM module as the autostart wasn't working there
|
||||||
|
# TODO: Remove this module
|
||||||
# TODO: Check the HM module again if anything changed, as this has also stopped working
|
# TODO: Check the HM module again if anything changed, as this has also stopped working
|
||||||
# Nextcloud immediately crashes on start, autostart isn't working either...
|
# Nextcloud immediately crashes on start, autostart isn't working either...
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,7 @@ in {
|
|||||||
|
|
||||||
# Make our inputs available to the configuration.nix (for importing modules)
|
# Make our inputs available to the configuration.nix (for importing modules)
|
||||||
# specialArgs are propagated to all modules
|
# specialArgs are propagated to all modules
|
||||||
specialArgs = {inherit inputs hostname username mylib;};
|
specialArgs = {inherit inputs hostname username mylib system;};
|
||||||
|
|
||||||
modules = builtins.concatLists [
|
modules = builtins.concatLists [
|
||||||
[
|
[
|
||||||
|
12
shell.nix
12
shell.nix
@ -62,12 +62,12 @@ pkgs.devshell.mkShell {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Nix Store
|
# Nix Store
|
||||||
{
|
# {
|
||||||
name = "store-gc";
|
# name = "store-gc";
|
||||||
help = "Run NixOS garbage collector";
|
# help = "Run NixOS garbage collector";
|
||||||
# command = "nix-store --gc && sudo nix-collect-garbage -d && flatpak uninstall --unused";
|
# # command = "nix-store --gc && sudo nix-collect-garbage -d && flatpak uninstall --unused";
|
||||||
command = "nh clean all";
|
# command = "nh clean all";
|
||||||
}
|
# }
|
||||||
{
|
{
|
||||||
name = "store-optimise";
|
name = "store-optimise";
|
||||||
help = "Run NixOS store optimization (slow)";
|
help = "Run NixOS store optimization (slow)";
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
mylib,
|
mylib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with mylib.networking; {
|
with mylib.networking; {
|
||||||
@ -317,6 +318,10 @@ with mylib.networking; {
|
|||||||
man-pages
|
man-pages
|
||||||
man-pages-posix
|
man-pages-posix
|
||||||
|
|
||||||
|
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld
|
||||||
|
# Start dynamically linked executable using "nix-alien-ld -- <Executable>"
|
||||||
|
inputs.nix-alien.packages.${system}.nix-alien
|
||||||
|
|
||||||
# egl-wayland
|
# egl-wayland
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -342,18 +347,13 @@ with mylib.networking; {
|
|||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
kdeconnect.enable = true; # Use this instead of HM for firewall setup
|
kdeconnect.enable = false; # Use this instead of HM for firewall setup
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
starship.enable = true;
|
starship.enable = true;
|
||||||
thefuck.enable = true;
|
thefuck.enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
|
nix-ld.enable = true; # Load dynamically linked executables
|
||||||
fuse.userAllowOther = true; # Allow users to mount e.g. samba shares (cifs)
|
hyprland.enable = true;
|
||||||
|
|
||||||
hyprland = {
|
|
||||||
enable = true;
|
|
||||||
# enableNvidiaPatches = false; # NOTE: Enabled only in nixinator config
|
|
||||||
};
|
|
||||||
|
|
||||||
nh = {
|
nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -362,6 +362,7 @@ with mylib.networking; {
|
|||||||
flake = "/home/christoph/NixFlake";
|
flake = "/home/christoph/NixFlake";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fuse.userAllowOther = true; # Allow users to mount e.g. samba shares (cifs)
|
||||||
# ausweisapp.openFirewall = true; # Directly set port in firewall
|
# ausweisapp.openFirewall = true; # Directly set port in firewall
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,10 +70,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.hyprland = {
|
|
||||||
# enableNvidiaPatches = true; # NOTE: Deprecated
|
|
||||||
};
|
|
||||||
|
|
||||||
# Low latency audio
|
# Low latency audio
|
||||||
# musnix = {
|
# musnix = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
|
@ -27,10 +27,6 @@
|
|||||||
|
|
||||||
programs.light.enable = true;
|
programs.light.enable = true;
|
||||||
|
|
||||||
programs.hyprland = {
|
|
||||||
# enableNvidiaPatches = false; # NOTE: Deprecated
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
xkb.layout = "de";
|
xkb.layout = "de";
|
||||||
|
Reference in New Issue
Block a user