Trolli Schmittlauch
f14b290937
- manually inspected changes of "workmac" branch - modularised out some config parts into modules
285 lines
5.3 KiB
Nix
285 lines
5.3 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
config,
|
|
system,
|
|
...
|
|
}:
|
|
|
|
with pkgs;
|
|
let
|
|
cfg = config.schmittlauch.packages;
|
|
unstable = inputs.nixos-unstable.legacyPackages.${system};
|
|
|
|
graphicsApps =
|
|
[
|
|
inkscape
|
|
darktable
|
|
exiftool
|
|
gimp
|
|
]
|
|
++ (with gimpPlugins; [
|
|
fourier
|
|
lqrPlugin
|
|
])
|
|
++ lib.optionals pkgs.stdenv.isLinux [
|
|
hugin
|
|
luminanceHDR
|
|
xournal
|
|
];
|
|
|
|
multimediaApps =
|
|
[
|
|
mpv
|
|
yt-dlp
|
|
]
|
|
++ lib.optionals pkgs.stdenv.isLinux [
|
|
vlc
|
|
amarok
|
|
clementine
|
|
elisa
|
|
musescore
|
|
tenacity
|
|
soundkonverter
|
|
config.nur.repos.fooker.studio-link
|
|
];
|
|
|
|
cliApps =
|
|
[
|
|
myVim
|
|
htop
|
|
tmux
|
|
httpie
|
|
ponysay
|
|
gti
|
|
tree
|
|
lsof
|
|
mosh
|
|
openssh
|
|
sshfs-fuse
|
|
cryfs
|
|
openssh
|
|
sshuttle
|
|
thefuck
|
|
gnupg
|
|
unar
|
|
lzop
|
|
p7zip
|
|
pwgen
|
|
pandoc
|
|
pdfgrep
|
|
# zig dependency breaks occasionally, stay on C version for now
|
|
ncdu_1
|
|
dos2unix
|
|
unzip
|
|
fswatch
|
|
jq
|
|
age
|
|
lnav
|
|
|
|
nix-output-monitor # putting this here as a plain `nix` alternative
|
|
]
|
|
++ lib.optionals pkgs.stdenv.isLinux [
|
|
xclip
|
|
smbnetfs # for FUSE smb mounting
|
|
psmisc # for killall
|
|
torsocks
|
|
agrep
|
|
reptyr # re-bind running program to other tty
|
|
config.nur.repos.schmittlauch.lolcommits
|
|
];
|
|
|
|
nixHelpers = [
|
|
nixpkgs-review
|
|
unstable.nixfmt-rfc-style
|
|
nix-top
|
|
statix
|
|
];
|
|
devTools =
|
|
[
|
|
curl
|
|
httpie
|
|
gcc
|
|
shellcheck
|
|
mtr
|
|
ripgrep
|
|
gitui
|
|
lazygit
|
|
pre-commit
|
|
scriv
|
|
|
|
# Haskell
|
|
ghc
|
|
cabal2nix
|
|
]
|
|
++ lib.optionals pkgs.stdenv.isLinux [
|
|
gdb
|
|
strace
|
|
ltrace
|
|
valgrind
|
|
zeal
|
|
];
|
|
|
|
pythonTools = with python3Packages; [
|
|
notebook
|
|
ipython
|
|
pip
|
|
numpy
|
|
matplotlib
|
|
jedi
|
|
jedi-language-server
|
|
black
|
|
flake8
|
|
mypy
|
|
];
|
|
|
|
fonts = [
|
|
comic-neue
|
|
source-sans-pro
|
|
source-code-pro
|
|
source-serif-pro
|
|
ubuntu_font_family
|
|
twemoji-color-font
|
|
open-sans
|
|
(iosevka-bin.override { variant = "curly-slab"; })
|
|
config.nur.repos.schmittlauch.vollkorn
|
|
# TODO: humor-sans
|
|
|
|
# fcio corporate design, TODO module
|
|
fira-code
|
|
fira-mono
|
|
# TODO fira-sans + condensed
|
|
# TODO museo 500
|
|
];
|
|
|
|
games = [
|
|
superTuxKart
|
|
hedgewars
|
|
];
|
|
|
|
desktopApps = [
|
|
firefox
|
|
chromium
|
|
falkon
|
|
thunderbird
|
|
calibre
|
|
dino
|
|
zotero
|
|
keepassxc
|
|
ding
|
|
aspell
|
|
aspellDicts.de
|
|
aspellDicts.en
|
|
# for kate/KDE applications
|
|
hunspellDicts.de-de
|
|
hunspellDicts.en-us
|
|
hunspellDicts.en-gb-ise
|
|
seafile-client
|
|
alacritty
|
|
libreoffice-qt # fresh with KDE integration
|
|
backintime-common
|
|
anki
|
|
signal-desktop
|
|
(tor-browser-bundle-bin.override {
|
|
mediaSupport = true;
|
|
pulseaudioSupport = pkgs.stdenv.isLinux;
|
|
})
|
|
pdfpc
|
|
quaternion
|
|
nheko
|
|
gpxsee
|
|
subsurface
|
|
yate
|
|
# split and merge PDFs in a GUI
|
|
pdfarranger
|
|
qbittorrent
|
|
#(pkgs.pidgin-with-plugins.override {
|
|
# plugins = [ pkgs.pidginotr ];})
|
|
|
|
logseq
|
|
|
|
# for Hibiscus banking software
|
|
jameica
|
|
#ToDo: which of these drivers is actually used?
|
|
geckodriver
|
|
chromedriver
|
|
];
|
|
|
|
kdeTools =
|
|
with plasma5Packages;
|
|
with kdeGear;
|
|
[
|
|
okular
|
|
gwenview
|
|
yakuake
|
|
kmail
|
|
kontact
|
|
korganizer
|
|
akonadi-mime # for KOrganizer
|
|
kaddressbook
|
|
kdeconnect
|
|
dolphin
|
|
spectacle
|
|
kate
|
|
kleopatra
|
|
qdirstat
|
|
ark
|
|
kwalletmanager
|
|
ktouch
|
|
kcharselect
|
|
konversation
|
|
okteta
|
|
krdc
|
|
skanlite
|
|
akonadiconsole
|
|
tokodon # mastodon client
|
|
]
|
|
++ (with kdeFrameworks; [
|
|
networkmanager-qt
|
|
kcrash
|
|
breeze-gtk
|
|
]);
|
|
in
|
|
{
|
|
options.schmittlauch.packages = {
|
|
graphics = lib.mkEnableOption "Enable a common set of graphics apps";
|
|
multimedia = lib.mkEnableOption "Enable a common set of multimedia apps";
|
|
cli = lib.mkOption {
|
|
description = "Enable a common set of CLI tools";
|
|
type = lib.types.bool;
|
|
default = true;
|
|
};
|
|
nixHelpers = lib.mkEnableOption "Enable a common set of Nix helper tools";
|
|
devTools = lib.mkEnableOption "Enable a common set of dev tools";
|
|
pythonTools = lib.mkEnableOption "Enable a common set of python tools";
|
|
games = lib.mkEnableOption "Enable some games";
|
|
desktop = lib.mkEnableOption "Enable a common set of desktop applications";
|
|
kde = lib.mkEnableOption "Enable a common set of KDE applications";
|
|
};
|
|
# TODO fonts in separate module
|
|
# TODO latex in separate module
|
|
config = {
|
|
home.packages = lib.flatten (
|
|
(lib.optional cfg.graphics graphicsApps)
|
|
++ (lib.optional cfg.multimedia multimediaApps)
|
|
++ (lib.optional cfg.cli cliApps)
|
|
++ (lib.optional cfg.nixHelpers nixHelpers)
|
|
++ (lib.optional cfg.devTools devTools)
|
|
++ (lib.optional cfg.pythonTools pythonTools)
|
|
++ (lib.optional cfg.games games)
|
|
++ (lib.optional cfg.desktop desktopApps)
|
|
++ (lib.optional cfg.kde kdeTools)
|
|
);
|
|
|
|
nixpkgs.overlays = import ../overlays.nix;
|
|
nixpkgs.config = {
|
|
clementine.spotify = false;
|
|
vim = {
|
|
gui = "gtk3";
|
|
python = true;
|
|
multibyteSupport = true;
|
|
};
|
|
};
|
|
};
|
|
}
|