Home: Extract common nixos/darwin packages/programs/module-configs into terminal+packages modules
This commit is contained in:
@ -8,17 +8,13 @@
|
|||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
config = let
|
config = {
|
||||||
inherit (config.homemodules) color;
|
|
||||||
in {
|
|
||||||
paths = rec {
|
paths = rec {
|
||||||
nixflake = "${config.home.homeDirectory}/NixFlake";
|
nixflake = "${config.home.homeDirectory}/NixFlake";
|
||||||
dotfiles = "${nixflake}/config";
|
dotfiles = "${nixflake}/config";
|
||||||
};
|
};
|
||||||
|
|
||||||
homemodules = {
|
homemodules = {
|
||||||
bat.enable = true;
|
|
||||||
|
|
||||||
color = {
|
color = {
|
||||||
scheme = "catppuccin-mocha";
|
scheme = "catppuccin-mocha";
|
||||||
accent = "mauve";
|
accent = "mauve";
|
||||||
@ -29,29 +25,8 @@
|
|||||||
font = "MonoLisa Alt Script";
|
font = "MonoLisa Alt Script";
|
||||||
};
|
};
|
||||||
|
|
||||||
fastfetch.enable = true;
|
packages.enable = true;
|
||||||
fish.enable = true;
|
terminal.enable = true;
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
userName = "Christoph Urlacher";
|
|
||||||
userEmail = "christoph.urlacher@protonmail.com";
|
|
||||||
signCommits = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
kitty.enable = true;
|
|
||||||
lazygit.enable = true;
|
|
||||||
|
|
||||||
neovim = {
|
|
||||||
enable = true;
|
|
||||||
alias = true;
|
|
||||||
neovide = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
ssh.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
yazi.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
@ -67,101 +42,12 @@
|
|||||||
TERMINAL = "kitty";
|
TERMINAL = "kitty";
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = with pkgs; [
|
# packages = with pkgs; []; # Configured in homemodules/packages
|
||||||
(ripgrep.override {withPCRE2 = true;})
|
|
||||||
gdu
|
|
||||||
duf
|
|
||||||
sd
|
|
||||||
fclones
|
|
||||||
tealdeer
|
|
||||||
killall
|
|
||||||
atool
|
|
||||||
exiftool
|
|
||||||
ouch
|
|
||||||
ffmpegthumbnailer
|
|
||||||
mediainfo
|
|
||||||
file
|
|
||||||
unrar
|
|
||||||
p7zip
|
|
||||||
unzip
|
|
||||||
progress
|
|
||||||
tokei
|
|
||||||
nix-search-tv
|
|
||||||
nix-tree
|
|
||||||
just
|
|
||||||
|
|
||||||
ffmpeg-full
|
|
||||||
imagemagick
|
|
||||||
|
|
||||||
poppler-utils
|
|
||||||
pdf2svg
|
|
||||||
pandoc
|
|
||||||
|
|
||||||
dig
|
|
||||||
tcpdump
|
|
||||||
gping
|
|
||||||
curlie
|
|
||||||
wget
|
|
||||||
doggo
|
|
||||||
rsync
|
|
||||||
rclone
|
|
||||||
httpie
|
|
||||||
speedtest-cli
|
|
||||||
|
|
||||||
jellyfin-tui
|
|
||||||
|
|
||||||
inputs.nps.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
||||||
|
|
||||||
cachix
|
|
||||||
|
|
||||||
# GUI
|
|
||||||
ripdrag
|
|
||||||
|
|
||||||
# Darwin
|
|
||||||
# alt-tab-macos
|
|
||||||
# discord # HomeBrew
|
|
||||||
# obsidian # HomeBrew
|
|
||||||
# nextcloud-client # HomeBrew
|
|
||||||
# protonvpn-gui # HomeBrew
|
|
||||||
# iina
|
|
||||||
];
|
|
||||||
|
|
||||||
stateVersion = "25.11";
|
stateVersion = "25.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Deduplicate with other configs
|
programs = {};
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
eza = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
fd.enable = true;
|
|
||||||
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
navi = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
yt-dlp.enable = true;
|
|
||||||
|
|
||||||
zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {};
|
services = {};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -33,9 +33,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
homemodules = {
|
homemodules = {
|
||||||
bat.enable = true;
|
|
||||||
beets.enable = !headless;
|
beets.enable = !headless;
|
||||||
btop.enable = true;
|
|
||||||
cava.enable = !headless;
|
cava.enable = !headless;
|
||||||
|
|
||||||
chromium = {
|
chromium = {
|
||||||
@ -71,8 +69,6 @@ in
|
|||||||
|
|
||||||
docs.enable = !headless;
|
docs.enable = !headless;
|
||||||
|
|
||||||
fastfetch.enable = true;
|
|
||||||
|
|
||||||
firefox = {
|
firefox = {
|
||||||
enable = !headless;
|
enable = !headless;
|
||||||
wayland = true;
|
wayland = true;
|
||||||
@ -81,39 +77,15 @@ in
|
|||||||
disableTabBar = true;
|
disableTabBar = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
fish.enable = true;
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
userName = "Christoph Urlacher";
|
|
||||||
userEmail = "christoph.urlacher@protonmail.com";
|
|
||||||
signCommits = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
kitty.enable = !headless;
|
|
||||||
lazygit.enable = true;
|
|
||||||
mpd.enable = !headless;
|
mpd.enable = !headless;
|
||||||
|
|
||||||
neovim = {
|
|
||||||
enable = true;
|
|
||||||
alias = true;
|
|
||||||
neovide = !headless;
|
|
||||||
};
|
|
||||||
|
|
||||||
niri.enable = nixosConfig.programs.niri.enable;
|
niri.enable = nixosConfig.programs.niri.enable;
|
||||||
nnn.enable = false; # Use yazi
|
nnn.enable = false; # Use yazi
|
||||||
|
packages.enable = true;
|
||||||
qutebrowser.enable = !headless;
|
qutebrowser.enable = !headless;
|
||||||
rmpc.enable = !headless;
|
rmpc.enable = !headless;
|
||||||
|
rofi.enable = false;
|
||||||
rofi = {
|
terminal.enable = true;
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
ssh.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
waybar.enable = !headless;
|
waybar.enable = !headless;
|
||||||
yazi.enable = true;
|
|
||||||
zathura.enable = !headless;
|
zathura.enable = !headless;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -275,171 +247,13 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Add stuff for your user as you see fit:
|
# Add stuff for your user as you see fit:
|
||||||
# TODO: Make the headless installations smaller. Don't install stuff here if !headless but in nixinator config.
|
# packages = with pkgs; []; # Configured in homemodules/packages
|
||||||
packages = with pkgs;
|
|
||||||
lib.mkMerge [
|
|
||||||
[
|
|
||||||
# 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)
|
|
||||||
killall
|
|
||||||
atool # Archive preview
|
|
||||||
exiftool
|
|
||||||
ouch # Unified compression/decompression
|
|
||||||
ffmpegthumbnailer # Video thumbnails
|
|
||||||
mediainfo # Media meta information
|
|
||||||
file # File meta information
|
|
||||||
unrar # Cooler WinRar
|
|
||||||
p7zip # Zip stuff
|
|
||||||
unzip # Unzip stuff
|
|
||||||
progress # Find coreutils processes and show their progress
|
|
||||||
tokei # Text file statistics in a project
|
|
||||||
playerctl # Media player control
|
|
||||||
pastel # Color tools
|
|
||||||
nvd # Nix rebuild diff
|
|
||||||
nix-search-tv # Search nixpkgs, nur, nixos options and homemanager options
|
|
||||||
nix-tree # Browse the nix store sorted by size (gdu for closures)
|
|
||||||
nurl # Generate nix fetcher sections based on URLs
|
|
||||||
python313 # Nicer scripting than bash
|
|
||||||
lazyjournal # Journalctl viewer
|
|
||||||
systemctl-tui
|
|
||||||
restic # Backups
|
|
||||||
gnumake
|
|
||||||
just # make alternative
|
|
||||||
binsider # .elf analyzer
|
|
||||||
jujutsu # git-like vcs
|
|
||||||
lurk # strace analysis
|
|
||||||
radare2
|
|
||||||
|
|
||||||
# Hardware/Software info
|
|
||||||
pciutils # lspci
|
|
||||||
mesa-demos # OpenGL info
|
|
||||||
wayland-utils # wayland-info
|
|
||||||
clinfo # OpenCL info
|
|
||||||
vulkan-tools # vulkaninfo
|
|
||||||
libva-utils # vainfo
|
|
||||||
vdpauinfo # Video-Decode and Presentation API for Unix info
|
|
||||||
hwloc # Generate CPU topology diagram
|
|
||||||
lm_sensors # Readout hardware sensors
|
|
||||||
acpica-tools # Dump ACPI tables etc.
|
|
||||||
smartmontools # Disk health
|
|
||||||
nvme-cli # NVME disk health
|
|
||||||
|
|
||||||
# Video/Image/Audio utils
|
|
||||||
ffmpeg-full # I love ffmpeg (including ffplay)
|
|
||||||
ffmpeg-normalize # Normalize audio
|
|
||||||
imagemagick # Convert image (magic)
|
|
||||||
mp3val # Validate mp3 files
|
|
||||||
flac # Validate flac files
|
|
||||||
# spotdl
|
|
||||||
|
|
||||||
# Document utils
|
|
||||||
poppler-utils # pdfunite
|
|
||||||
graphviz # generate graphs from code
|
|
||||||
d2 # generate diagrams from code
|
|
||||||
plantuml # generate diagrams
|
|
||||||
gnuplot # generate function plots
|
|
||||||
pdf2svg # extract vector graphics from pdf
|
|
||||||
pandoc # document converting madness
|
|
||||||
|
|
||||||
# Networking
|
|
||||||
dig # Make DNS requests
|
|
||||||
tcpdump # Listen in on TCP traffic
|
|
||||||
traceroute # "Follow" a packet
|
|
||||||
gping # ping with graph
|
|
||||||
curlie # curl a'la httpie
|
|
||||||
wget # download that shit
|
|
||||||
doggo # dns client
|
|
||||||
rsync # cp on steroids
|
|
||||||
rclone # Rsync for cloud
|
|
||||||
httpie # Cool http client
|
|
||||||
cifs-utils # Mount samba shares
|
|
||||||
nfs-utils # Mount NFS shares
|
|
||||||
sshfs # Mount remote directories via SSH
|
|
||||||
speedtest-cli
|
|
||||||
|
|
||||||
# Run unpatched binaries on NixOS
|
|
||||||
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld.
|
|
||||||
# Usage: "nix-alien-ld -- <Executable>".
|
|
||||||
inputs.nix-alien.packages.${pkgs.stdenv.hostPlatform.system}.nix-alien
|
|
||||||
|
|
||||||
# Search nixpkgs
|
|
||||||
inputs.nps.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
||||||
|
|
||||||
# Use NixCommunity binary cache
|
|
||||||
cachix
|
|
||||||
]
|
|
||||||
(lib.mkIf (!headless) [
|
|
||||||
ripdrag # drag & drop from terminal
|
|
||||||
veracrypt
|
|
||||||
wl-clipboard
|
|
||||||
|
|
||||||
# Proton
|
|
||||||
protonvpn-gui
|
|
||||||
protonmail-bridge-gui
|
|
||||||
|
|
||||||
# GUI stuff
|
|
||||||
nautilus # Just in case
|
|
||||||
signal-desktop
|
|
||||||
anki
|
|
||||||
font-manager # Previews fonts, but doesn't set them
|
|
||||||
nextcloud-client
|
|
||||||
keepassxc
|
|
||||||
thunderbird # TODO: Email module
|
|
||||||
obsidian
|
|
||||||
zotero
|
|
||||||
zeal # docs browser
|
|
||||||
# helvum # unmaintained
|
|
||||||
crosspipe
|
|
||||||
vlc
|
|
||||||
audacity
|
|
||||||
ferdium
|
|
||||||
gparted
|
|
||||||
# feishin # electron :(
|
|
||||||
jellyfin-tui
|
|
||||||
czkawka-full # file deduplicator
|
|
||||||
|
|
||||||
# Office
|
|
||||||
kdePackages.wacomtablet # For xournalpp/krita
|
|
||||||
xournalpp # Write with a pen, like old people
|
|
||||||
hunspell # I cna't type
|
|
||||||
hunspellDicts.en_US
|
|
||||||
hunspellDicts.de_DE
|
|
||||||
|
|
||||||
inputs.masssprings.packages.${stdenv.hostPlatform.system}.default
|
|
||||||
])
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# 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
|
||||||
programs = {
|
programs = {
|
||||||
# The home-manager management tool.
|
|
||||||
# Will only be enabled if HM is installed standalone.
|
|
||||||
home-manager.enable = true;
|
|
||||||
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
eza = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
fd.enable = true;
|
|
||||||
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
imv = {
|
imv = {
|
||||||
enable = !headless;
|
enable = !headless;
|
||||||
settings = {
|
settings = {
|
||||||
@ -467,11 +281,6 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
navi = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
nix-index = {
|
nix-index = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
@ -501,13 +310,6 @@ in
|
|||||||
# pointer
|
# pointer
|
||||||
# ];
|
# ];
|
||||||
# };
|
# };
|
||||||
|
|
||||||
yt-dlp.enable = true;
|
|
||||||
|
|
||||||
zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.homemodules.fish.enable;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|||||||
@ -101,6 +101,7 @@
|
|||||||
jellyfin-mpv-shim
|
jellyfin-mpv-shim
|
||||||
# tidal-hifi
|
# tidal-hifi
|
||||||
# tidal-dl-ng # TODO: Borked
|
# tidal-dl-ng # TODO: Borked
|
||||||
|
# spotdl
|
||||||
tiddl
|
tiddl
|
||||||
picard
|
picard
|
||||||
handbrake
|
handbrake
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
# My own HM modules
|
# My own HM modules
|
||||||
./bat
|
./bat
|
||||||
|
./btop
|
||||||
./color
|
./color
|
||||||
./fastfetch
|
./fastfetch
|
||||||
./fish
|
./fish
|
||||||
@ -9,8 +10,10 @@
|
|||||||
./kitty
|
./kitty
|
||||||
./lazygit
|
./lazygit
|
||||||
./neovim
|
./neovim
|
||||||
|
./packages
|
||||||
./paths
|
./paths
|
||||||
./ssh
|
./ssh
|
||||||
|
./terminal
|
||||||
./tmux
|
./tmux
|
||||||
./yazi
|
./yazi
|
||||||
|
|
||||||
|
|||||||
@ -21,12 +21,14 @@
|
|||||||
./neovim
|
./neovim
|
||||||
./niri
|
./niri
|
||||||
./nnn
|
./nnn
|
||||||
|
./packages
|
||||||
./paths
|
./paths
|
||||||
./qutebrowser
|
./qutebrowser
|
||||||
./rmpc
|
./rmpc
|
||||||
./rofi
|
./rofi
|
||||||
./waybar
|
./waybar
|
||||||
./ssh
|
./ssh
|
||||||
|
./terminal
|
||||||
./tmux
|
./tmux
|
||||||
./yazi
|
./yazi
|
||||||
./zathura
|
./zathura
|
||||||
|
|||||||
217
home/homemodules/packages/default.nix
Normal file
217
home/homemodules/packages/default.nix
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
nixosConfig,
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
pkgs,
|
||||||
|
headless,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.homemodules) packages color;
|
||||||
|
in {
|
||||||
|
options.homemodules.packages = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
|
config = lib.mkIf packages.enable {
|
||||||
|
home.packages = with pkgs;
|
||||||
|
lib.mkMerge [
|
||||||
|
# Common packages
|
||||||
|
[
|
||||||
|
# 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)
|
||||||
|
killall
|
||||||
|
atool # Archive preview
|
||||||
|
exiftool
|
||||||
|
ouch # Unified compression/decompression
|
||||||
|
ffmpegthumbnailer # Video thumbnails
|
||||||
|
mediainfo # Media meta information
|
||||||
|
file # File meta information
|
||||||
|
unrar # Cooler WinRar
|
||||||
|
p7zip # Zip stuff
|
||||||
|
unzip # Unzip stuff
|
||||||
|
progress # Find coreutils processes and show their progress
|
||||||
|
tokei # Text file statistics in a project
|
||||||
|
|
||||||
|
# Nix
|
||||||
|
nix-search-tv # Search nixpkgs, nur, nixos options and homemanager options
|
||||||
|
nix-tree # Browse the nix store sorted by size (gdu for closures)
|
||||||
|
inputs.nps.packages.${pkgs.stdenv.hostPlatform.system}.default # Search nixpkgs
|
||||||
|
|
||||||
|
# Video/Image/Audio utils
|
||||||
|
ffmpeg-full # I love ffmpeg (including ffplay)
|
||||||
|
ffmpeg-normalize # Normalize audio
|
||||||
|
|
||||||
|
# Document utils
|
||||||
|
poppler-utils # pdfunite
|
||||||
|
pdf2svg # extract vector graphics from pdf
|
||||||
|
pandoc # document converting madness
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
dig # Make DNS requests
|
||||||
|
tcpdump # Listen in on TCP traffic
|
||||||
|
gping # ping with graph
|
||||||
|
curlie # curl a'la httpie
|
||||||
|
wget # download that shit
|
||||||
|
doggo # dns client
|
||||||
|
rsync # cp on steroids
|
||||||
|
rclone # Rsync for cloud
|
||||||
|
httpie # Cool http client
|
||||||
|
speedtest-cli
|
||||||
|
|
||||||
|
# Use NixCommunity binary cache
|
||||||
|
cachix
|
||||||
|
]
|
||||||
|
|
||||||
|
# Common !headless packages
|
||||||
|
(lib.optionals (!headless) [
|
||||||
|
ripdrag # drag & drop from terminal
|
||||||
|
jellyfin-tui
|
||||||
|
])
|
||||||
|
|
||||||
|
# Linux exclusive packages
|
||||||
|
(lib.optionals (pkgs.stdenv.isLinux) [
|
||||||
|
pastel # Color tools
|
||||||
|
nvd # Nix rebuild diff
|
||||||
|
nurl # Generate nix fetcher sections based on URLs
|
||||||
|
python313 # Nicer scripting than bash
|
||||||
|
lazyjournal # Journalctl viewer
|
||||||
|
systemctl-tui
|
||||||
|
restic # Backups
|
||||||
|
gnumake
|
||||||
|
just # make alternative
|
||||||
|
binsider # .elf analyzer
|
||||||
|
jujutsu # git-like vcs
|
||||||
|
lurk # strace analysis
|
||||||
|
radare2
|
||||||
|
|
||||||
|
# Hardware/Software info
|
||||||
|
pciutils # lspci
|
||||||
|
mesa-demos # OpenGL info
|
||||||
|
wayland-utils # wayland-info
|
||||||
|
clinfo # OpenCL info
|
||||||
|
vulkan-tools # vulkaninfo
|
||||||
|
libva-utils # vainfo
|
||||||
|
vdpauinfo # Video-Decode and Presentation API for Unix info
|
||||||
|
hwloc # Generate CPU topology diagram
|
||||||
|
lm_sensors # Readout hardware sensors
|
||||||
|
acpica-tools # Dump ACPI tables etc.
|
||||||
|
smartmontools # Disk health
|
||||||
|
nvme-cli # NVME disk health
|
||||||
|
|
||||||
|
# Video/Image/Audio utils
|
||||||
|
imagemagick # Convert image (magic)
|
||||||
|
mp3val # Validate mp3 files
|
||||||
|
flac # Validate flac files
|
||||||
|
|
||||||
|
# Document utils
|
||||||
|
graphviz # generate graphs from code
|
||||||
|
d2 # generate diagrams from code
|
||||||
|
plantuml # generate diagrams
|
||||||
|
gnuplot # generate function plots
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
traceroute # "Follow" a packet
|
||||||
|
cifs-utils # Mount samba shares
|
||||||
|
nfs-utils # Mount NFS shares
|
||||||
|
sshfs # Mount remote directories via SSH
|
||||||
|
|
||||||
|
# Run unpatched binaries on NixOS
|
||||||
|
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld.
|
||||||
|
# Usage: "nix-alien-ld -- <Executable>".
|
||||||
|
inputs.nix-alien.packages.${pkgs.stdenv.hostPlatform.system}.nix-alien
|
||||||
|
])
|
||||||
|
|
||||||
|
# Linux exclusive packages (!headless)
|
||||||
|
(lib.optionals (pkgs.stdenv.isLinux && (!headless)) [
|
||||||
|
veracrypt
|
||||||
|
wl-clipboard
|
||||||
|
|
||||||
|
# Proton
|
||||||
|
protonvpn-gui
|
||||||
|
protonmail-bridge-gui
|
||||||
|
|
||||||
|
# GUI stuff
|
||||||
|
nautilus # Just in case
|
||||||
|
signal-desktop
|
||||||
|
anki
|
||||||
|
font-manager # Previews fonts, but doesn't set them
|
||||||
|
nextcloud-client
|
||||||
|
keepassxc
|
||||||
|
thunderbird # TODO: Email module
|
||||||
|
obsidian
|
||||||
|
zotero
|
||||||
|
zeal # docs browser
|
||||||
|
# helvum # unmaintained
|
||||||
|
crosspipe
|
||||||
|
vlc
|
||||||
|
audacity
|
||||||
|
ferdium
|
||||||
|
gparted
|
||||||
|
# feishin # electron :(
|
||||||
|
jellyfin-tui
|
||||||
|
playerctl # Media player control
|
||||||
|
czkawka-full # file deduplicator
|
||||||
|
|
||||||
|
# Office
|
||||||
|
kdePackages.wacomtablet # For xournalpp/krita
|
||||||
|
xournalpp # Write with a pen, like old people
|
||||||
|
hunspell # I cna't type
|
||||||
|
hunspellDicts.en_US
|
||||||
|
hunspellDicts.de_DE
|
||||||
|
|
||||||
|
inputs.masssprings.packages.${stdenv.hostPlatform.system}.default
|
||||||
|
])
|
||||||
|
|
||||||
|
# Darwin exclusive packages
|
||||||
|
(lib.optionals pkgs.stdenv.isDarwin [
|
||||||
|
# Use homebrew instead
|
||||||
|
# alt-tab-macos
|
||||||
|
# discord
|
||||||
|
# obsidian
|
||||||
|
# nextcloud-client
|
||||||
|
# protonvpn-gui
|
||||||
|
# iina
|
||||||
|
])
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
# The home-manager management tool.
|
||||||
|
# Will only be enabled if HM is installed standalone.
|
||||||
|
home-manager.enable = true;
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
fd.enable = true;
|
||||||
|
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
navi = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
yt-dlp.enable = true;
|
||||||
|
|
||||||
|
zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home/homemodules/packages/options.nix
Normal file
7
home/homemodules/packages/options.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
enable = lib.mkEnableOption "Enable common packages";
|
||||||
|
}
|
||||||
43
home/homemodules/terminal/default.nix
Normal file
43
home/homemodules/terminal/default.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
nixosConfig,
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
pkgs,
|
||||||
|
headless,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.homemodules) terminal color;
|
||||||
|
in {
|
||||||
|
options.homemodules.terminal = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
|
config = lib.mkIf terminal.enable {
|
||||||
|
homemodules = {
|
||||||
|
bat.enable = true;
|
||||||
|
btop.enable = true;
|
||||||
|
fastfetch.enable = true;
|
||||||
|
fish.enable = true;
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
userName = "Christoph Urlacher";
|
||||||
|
userEmail = "christoph.urlacher@protonmail.com";
|
||||||
|
signCommits = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
kitty.enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
|
||||||
|
neovim = {
|
||||||
|
enable = true;
|
||||||
|
alias = true;
|
||||||
|
neovide = !headless;
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh.enable = true;
|
||||||
|
tmux.enable = true;
|
||||||
|
yazi.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home/homemodules/terminal/options.nix
Normal file
7
home/homemodules/terminal/options.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
enable = lib.mkEnableOption "Enable terminal tools";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user