Nixos: Various cleanups
This commit is contained in:
138
flake.lock
generated
138
flake.lock
generated
@ -21,7 +21,7 @@
|
||||
},
|
||||
"devshell_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"flake-utils": "flake-utils_4",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
@ -78,6 +78,21 @@
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
@ -91,7 +106,7 @@
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
@ -183,6 +198,24 @@
|
||||
"inputs": {
|
||||
"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": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
@ -199,7 +232,7 @@
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
@ -302,6 +335,32 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -323,6 +382,21 @@
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1711997201,
|
||||
@ -339,6 +413,24 @@
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1704161960,
|
||||
@ -388,6 +480,22 @@
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1717196966,
|
||||
"narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=",
|
||||
@ -403,7 +511,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1716769173,
|
||||
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
|
||||
@ -422,13 +530,13 @@
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell_2",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-root": "flake-root",
|
||||
"git-hooks": "git-hooks",
|
||||
"home-manager": "home-manager_2",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
@ -467,8 +575,9 @@
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"hardware": "hardware",
|
||||
"home-manager": "home-manager",
|
||||
"nix-alien": "nix-alien",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixvim": "nixvim",
|
||||
"nur": "nur"
|
||||
}
|
||||
@ -518,6 +627,21 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -21,6 +21,7 @@
|
||||
devshell.url = "github:numtide/devshell";
|
||||
nixvim.url = "github:nix-community/nixvim";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||
# musnix.url = "github:musnix/musnix";
|
||||
# nixified-ai.url = "github:nixified-ai/flake";
|
||||
# nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor";
|
||||
|
@ -15,6 +15,7 @@
|
||||
# This is a module
|
||||
# Because no imports/options/config is defined explicitly, everything is treated as config
|
||||
# { inputs, lib, ... }: { ... } gets turned into { inputs, lib, ... }: { config = { ... }; } implicitly
|
||||
# TODO: Add nixified.ai module
|
||||
rec {
|
||||
# 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)
|
||||
@ -131,10 +132,13 @@ rec {
|
||||
"jetbrains-idea"
|
||||
"jetbrains-pycharm"
|
||||
"jetbrains-rustrover"
|
||||
"jetbrains-rider"
|
||||
"code-url-handler"
|
||||
];
|
||||
"3" = [
|
||||
"obsidian"
|
||||
"unityhub"
|
||||
"Unity"
|
||||
];
|
||||
"4" = [
|
||||
"firefox"
|
||||
@ -172,6 +176,7 @@ rec {
|
||||
"jetbrains-idea"
|
||||
"jetbrains-pycharm"
|
||||
"jetbrains-rustrover"
|
||||
"jetbrains-rider"
|
||||
"code-url-handler"
|
||||
"neovide"
|
||||
];
|
||||
@ -179,37 +184,12 @@ rec {
|
||||
|
||||
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 = {
|
||||
enable = true;
|
||||
alias = 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;
|
||||
|
||||
# ranger = {
|
||||
@ -230,51 +210,23 @@ rec {
|
||||
};
|
||||
};
|
||||
|
||||
manual.manpages.enable = true;
|
||||
manual.html.enable = true;
|
||||
manual = {
|
||||
manpages.enable = true;
|
||||
html.enable = false;
|
||||
};
|
||||
|
||||
# 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
|
||||
fonts.fontconfig.enable = true; # Also updates the font-cache
|
||||
|
||||
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
||||
home.file.".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;
|
||||
|
||||
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"
|
||||
xdg = {
|
||||
mime.enable = true;
|
||||
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 = {
|
||||
@ -306,147 +258,162 @@ rec {
|
||||
# WINEFSYNC = 1;
|
||||
# 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
|
||||
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}";
|
||||
|
||||
# Packages with extra options managed by HomeManager natively
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Here goes the stuff that will only be enabled on the desktop
|
||||
{...}: {
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
../../modules
|
||||
];
|
||||
@ -48,53 +48,29 @@
|
||||
];
|
||||
};
|
||||
|
||||
# audio = {
|
||||
# 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;
|
||||
# };
|
||||
# };
|
||||
|
||||
# TODO: Also set the dunst monitor
|
||||
waybar.monitor = "HDMI-A-1";
|
||||
};
|
||||
|
||||
# home.packages = with pkgs; [
|
||||
# quartus-prime-lite # Intel FPGA design software
|
||||
# ];
|
||||
home.packages = with pkgs; [
|
||||
# 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, ...}: {
|
||||
imports = [
|
||||
./audio
|
||||
# ./audio
|
||||
./chromium
|
||||
./emacs
|
||||
./email
|
||||
./firefox
|
||||
./fish
|
||||
./flatpak
|
||||
./gaming
|
||||
# ./flatpak
|
||||
# ./gaming
|
||||
./helix
|
||||
./hyprland
|
||||
./kitty
|
||||
./misc
|
||||
# ./misc
|
||||
./neovim
|
||||
./nextcloud
|
||||
# ./nextcloud
|
||||
./nnn
|
||||
./ranger
|
||||
./rofi
|
||||
|
@ -1,7 +1,8 @@
|
||||
# Example: https://beb.ninja/post/email/
|
||||
# Example: https://sbr.pm/configurations/mails.html
|
||||
# TODO: Protonmail-bridge
|
||||
# TODO: Change to use thunderbird only
|
||||
# NOTE: The passwords must exist in kwallet
|
||||
# TODO: Emacs mail config
|
||||
{
|
||||
config,
|
||||
nixosConfig,
|
||||
|
@ -6,6 +6,7 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
# TODO: Remove this module, put protonmail into the email module
|
||||
with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.misc;
|
||||
|
@ -1,5 +1,6 @@
|
||||
# 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
|
||||
# TODO: Remove this module
|
||||
# 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...
|
||||
{
|
||||
|
@ -18,7 +18,7 @@ in {
|
||||
|
||||
# Make our inputs available to the configuration.nix (for importing modules)
|
||||
# specialArgs are propagated to all modules
|
||||
specialArgs = {inherit inputs hostname username mylib;};
|
||||
specialArgs = {inherit inputs hostname username mylib system;};
|
||||
|
||||
modules = builtins.concatLists [
|
||||
[
|
||||
|
12
shell.nix
12
shell.nix
@ -62,12 +62,12 @@ pkgs.devshell.mkShell {
|
||||
}
|
||||
|
||||
# Nix Store
|
||||
{
|
||||
name = "store-gc";
|
||||
help = "Run NixOS garbage collector";
|
||||
# command = "nix-store --gc && sudo nix-collect-garbage -d && flatpak uninstall --unused";
|
||||
command = "nh clean all";
|
||||
}
|
||||
# {
|
||||
# name = "store-gc";
|
||||
# help = "Run NixOS garbage collector";
|
||||
# # command = "nix-store --gc && sudo nix-collect-garbage -d && flatpak uninstall --unused";
|
||||
# command = "nh clean all";
|
||||
# }
|
||||
{
|
||||
name = "store-optimise";
|
||||
help = "Run NixOS store optimization (slow)";
|
||||
|
@ -8,6 +8,7 @@
|
||||
mylib,
|
||||
config,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
with mylib.networking; {
|
||||
@ -317,6 +318,10 @@ with mylib.networking; {
|
||||
man-pages
|
||||
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
|
||||
];
|
||||
|
||||
@ -342,18 +347,13 @@ with mylib.networking; {
|
||||
fish.enable = true;
|
||||
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
||||
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;
|
||||
starship.enable = true;
|
||||
thefuck.enable = true;
|
||||
xwayland.enable = true;
|
||||
|
||||
fuse.userAllowOther = true; # Allow users to mount e.g. samba shares (cifs)
|
||||
|
||||
hyprland = {
|
||||
enable = true;
|
||||
# enableNvidiaPatches = false; # NOTE: Enabled only in nixinator config
|
||||
};
|
||||
nix-ld.enable = true; # Load dynamically linked executables
|
||||
hyprland.enable = true;
|
||||
|
||||
nh = {
|
||||
enable = true;
|
||||
@ -362,6 +362,7 @@ with mylib.networking; {
|
||||
flake = "/home/christoph/NixFlake";
|
||||
};
|
||||
|
||||
fuse.userAllowOther = true; # Allow users to mount e.g. samba shares (cifs)
|
||||
# ausweisapp.openFirewall = true; # Directly set port in firewall
|
||||
};
|
||||
|
||||
|
@ -70,10 +70,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
programs.hyprland = {
|
||||
# enableNvidiaPatches = true; # NOTE: Deprecated
|
||||
};
|
||||
|
||||
# Low latency audio
|
||||
# musnix = {
|
||||
# enable = true;
|
||||
|
@ -27,10 +27,6 @@
|
||||
|
||||
programs.light.enable = true;
|
||||
|
||||
programs.hyprland = {
|
||||
# enableNvidiaPatches = false; # NOTE: Deprecated
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
# Configure keymap in X11
|
||||
xkb.layout = "de";
|
||||
|
Reference in New Issue
Block a user