Nixos: Various cleanups
This commit is contained in:
@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user