Trolli Schmittlauch
d2e77b088f
Installing the kde-pim sutie is quite complex. Thus, there's a `programs.kde-pim` in NixOS now to keep track of all necessarry packages. Removing the attempted list of necessary packages from explicit NixOS and home packages instead.
267 lines
5.1 KiB
Nix
267 lines
5.1 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 =
|
|
[
|
|
coreutils
|
|
myVim
|
|
htop
|
|
tmux
|
|
httpie
|
|
ponysay
|
|
gti
|
|
tree
|
|
lsof
|
|
mosh
|
|
openssh
|
|
sshfs-fuse
|
|
sshuttle
|
|
cryfs
|
|
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
|
|
fd
|
|
gitui
|
|
lazygit
|
|
pre-commit
|
|
scriv
|
|
|
|
# Haskell
|
|
ghc
|
|
cabal2nix
|
|
]
|
|
++ lib.optionals pkgs.stdenv.isLinux [
|
|
gdb
|
|
strace
|
|
ltrace
|
|
valgrind
|
|
zeal
|
|
];
|
|
|
|
pythonTools = with python3Packages; [
|
|
python3 # to shadow old macOS python
|
|
notebook
|
|
ipython
|
|
pip
|
|
numpy
|
|
matplotlib
|
|
jedi
|
|
jedi-language-server
|
|
black
|
|
flake8
|
|
mypy
|
|
];
|
|
|
|
games = [
|
|
superTuxKart
|
|
#hedgewars
|
|
];
|
|
|
|
desktopCommon = [
|
|
keepassxc
|
|
tigervnc
|
|
];
|
|
|
|
desktopLinux = [
|
|
firefox
|
|
chromium
|
|
falkon
|
|
thunderbird
|
|
calibre
|
|
dino
|
|
zotero
|
|
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 =
|
|
[ okteta ]
|
|
++ (with kdePackages; [
|
|
okular
|
|
gwenview
|
|
yakuake
|
|
kdeconnect
|
|
dolphin
|
|
spectacle
|
|
kate
|
|
kleopatra
|
|
qdirstat
|
|
ark
|
|
kwalletmanager
|
|
#ktouch # TODO: unbreak
|
|
kcharselect
|
|
konversation
|
|
krdc
|
|
skanlite
|
|
akonadiconsole
|
|
tokodon # mastodon client
|
|
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";
|
|
desktopCommon = lib.mkOption {
|
|
description = "GUI desktop applications that work cross-platform and cross-desktop";
|
|
type = lib.types.bool;
|
|
default = true;
|
|
};
|
|
desktopLinux = lib.mkEnableOption "Enable a common set of desktop applications";
|
|
kde = lib.mkEnableOption "Enable a common set of KDE applications";
|
|
};
|
|
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.desktopCommon desktopCommon)
|
|
++ (lib.optional cfg.desktopLinux desktopLinux)
|
|
++ (lib.optional cfg.kde kdeTools)
|
|
);
|
|
|
|
nixpkgs.overlays = import ../overlays.nix;
|
|
nixpkgs.config = {
|
|
clementine.spotify = false;
|
|
vim = {
|
|
gui = "gtk3";
|
|
python = true;
|
|
multibyteSupport = true;
|
|
};
|
|
};
|
|
};
|
|
}
|