1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/configs/packages.nix

289 lines
6.8 KiB
Nix
Raw Normal View History

2022-03-10 21:52:12 +01:00
{
config,
2022-03-10 21:52:12 +01:00
pkgs,
...
2025-12-27 22:22:54 +01:00
}:
let
worldradio = pkgs.callPackage ../packages/worldradio.nix { };
2022-09-23 23:31:14 +02:00
2025-12-27 22:22:54 +01:00
zoteroStyle =
{
name,
sha256,
}:
{
name = "${name}.csl";
path = pkgs.fetchurl {
url = "https://www.zotero.org/styles/${name}";
inherit sha256;
};
};
cslDirectory = pkgs.linkFarm "citation-styles" [
(zoteroStyle {
name = "chicago-author-date-de";
2022-03-29 00:21:16 +02:00
sha256 = "sha256-ddMYk4A9DJQhx9ldkmF7PhwKuc7wUSr26uHHGAze9Ps=";
})
(zoteroStyle {
name = "din-1505-2";
2022-03-29 00:21:16 +02:00
sha256 = "sha256-bXZbB850fek8J6wMVFL32ndI7F4wiKKr1qUC71ezreE=";
})
(zoteroStyle {
name = "apa";
2024-03-19 23:15:35 +01:00
sha256 = "sha256-sUf0Ov5c9aTUoLsYSRbQl3Qs9ELkb5/Tky35kH7pKuE=";
})
];
2025-12-27 22:22:54 +01:00
astrolog = pkgs.astrolog.overrideAttrs (
old:
2022-03-10 21:52:12 +01:00
old
// {
installPhase = ''
${old.installPhase}
# set sensible defaults
sed -i '
/^-z /s/8:00W/1:00E/ # timezone
/^-zl /s/122W19:59 47N36:35/13E22:42 52N27:42/ # default location
/^-zj /s/"Current moment now"/Now/ # default name
/^-zj /s/"Seattle, WA, USA"/Berlin/ # default location
/^_k/s/_k/=k/ # use color
/^_Yd/s/_Yd/=Yd/ # sensible date format
/^_Yt/s/_Yt/=Yt/ # sensible time format
/^_Yv/s/_Yv/=Yv/ # sensible length format
/^:Xbw/s/:Xbw/:Xbn/ # set X11 bitmap format
/^:I /s/80/120/ # wider text output
' $out/astrolog/astrolog.as
'';
2025-12-27 22:22:54 +01:00
}
);
in
{
home-manager.users.me.home.file = {
".csl".source = cslDirectory;
".local/share/pandoc/csl".source = cslDirectory; # as of pandoc 2.11, it includes citeproc
};
2020-04-09 16:58:21 +02:00
environment.systemPackages = with pkgs; [
(pkgs.writers.writeDashBin "amfora" ''
${pkgs.st}/bin/st -e ${pkgs.amfora}/bin/amfora
'')
2025-10-24 10:30:04 +02:00
(pkgs.writers.writeDashBin "gpodder" ''
GPODDER_DOWNLOAD_DIR=${config.users.users.me.home}/mobile/audio/Text/podcasts exec ${pkgs.gpodder}/bin/gpodder "$@"
'')
2020-04-09 16:58:21 +02:00
# INTERNET
aria2
2025-12-02 21:37:02 +01:00
telegram-desktop
2020-04-09 16:58:21 +02:00
whois
2020-11-02 21:43:54 +01:00
dnsutils
2020-04-09 16:58:21 +02:00
# FILE MANAGERS
2022-05-31 19:34:20 +02:00
lf
2024-04-03 10:09:58 +02:00
pcmanfm
2020-04-09 16:58:21 +02:00
# MEDIA
ffmpeg
2025-07-05 10:40:51 +02:00
simplescreenrecorder
2020-04-09 16:58:21 +02:00
imagemagick
2021-03-19 16:58:39 +01:00
exiftool
nsxiv
2024-03-31 12:48:03 +02:00
graphviz
2020-04-09 16:58:21 +02:00
# SHELL
bat # better cat
dos2unix
2022-07-14 07:35:48 +02:00
genpass # generate passwords
2026-01-06 22:46:12 +01:00
(pkgs.writers.writeDashBin "genpassphrase" ''${pkgs.genpass}/bin/genpass "$@" --passphrase | ${pkgs.gnused}/bin/sed 's/ /-/g;s/\(^\|-\)\([a-z]\)/\1\U\2/g;s/$/-'$(${pkgs.coreutils}/bin/date +%Y)'/' '')
2023-06-13 14:17:35 +02:00
gcc
2020-04-09 16:58:21 +02:00
python3Packages.jsonschema # json validation
2021-01-18 18:05:01 +01:00
pup # html toolkit
2025-06-03 14:55:03 +02:00
xan # csv toolkit
2024-10-23 07:54:26 +02:00
magic-wormhole-rs # file transfer
man-pages
man-pages-posix
exfat # to mount windows drives
2020-04-09 16:58:21 +02:00
# HARDWARE TOOLS
2024-12-13 13:42:16 +01:00
gnome-disk-utility
2020-04-09 16:58:21 +02:00
arandr # xrandr for noobs
2025-07-08 20:56:40 +02:00
wdisplays
2020-04-09 16:58:21 +02:00
libnotify # for notify-send
2026-01-06 22:46:12 +01:00
wl-clipboard # clipboard CLI
2025-12-02 21:37:02 +01:00
dragon-drop # drag and drop
2025-06-10 09:16:01 +02:00
portfolio # personal finance overview
2020-04-09 16:58:21 +02:00
audacity
calibre
2022-03-12 12:43:47 +01:00
electrum
2020-04-09 16:58:21 +02:00
inkscape
gimp
2023-12-27 10:38:42 +01:00
gthumb
astrolog
2023-12-06 14:41:49 +01:00
obsidian
2024-07-23 20:18:53 +02:00
lemmeknow # identify strings
aichat # chat with llms
2022-07-25 22:25:34 +02:00
anki-bin # flashcards
2022-01-15 08:21:42 +01:00
jbofihe # lojbanic software
2025-01-20 13:04:11 +01:00
zoom-us # video conferencing
2024-06-26 19:35:05 +02:00
(pkgs.writers.writeDashBin "im" ''
weechat_password=$(${pkgs.pass}/bin/pass weechat)
2025-12-28 12:49:10 +01:00
exec ${weechat}/bin/weechat -t -r '/mouse enable; /remote add makanek http://${pkgs.lib.niveum.machines.makanek.externalIp}:8002 -password='"$weechat_password"'; /remote connect makanek'
2024-06-26 19:35:05 +02:00
'')
alejandra # nix formatter
2020-04-09 16:58:21 +02:00
pdfgrep # search in pdf
pdftk # pdf toolkit
2022-01-11 20:05:25 +01:00
mupdf
2025-12-02 21:37:02 +01:00
poppler-utils # pdf toolkit
2025-06-03 14:55:03 +02:00
kdePackages.okular # the word is nucular
2020-12-28 19:50:51 +01:00
xournalpp # for annotating pdfs
2021-05-05 14:39:00 +02:00
pdfpc # presenter console for pdf slides
hc # print files as qr codes
2022-04-26 20:07:09 +02:00
yt-dlp
2022-01-11 22:25:25 +01:00
espeak
2022-12-29 23:37:13 +01:00
rink # unit converter
auc
noise-waves
stag
cheat-sh
polyglot
qrpaste
ttspaste
new-mac # get a new mac address
scanned
default-gateway
kirciuoklis
image-convert-favicon
heuretes
ipa # XSAMPA to IPA converter
pls
mpv-tv
mpv-iptv
devanagari
betacode # ancient greek betacode to unicode converter
jq-lsp
swallow # window swallowing
literature-quote
booksplit
dmenu-randr
manual-sort
wttr
unicodmenu
emailmenu
closest
trans
(mpv-radio.override {
di-fm-key-file = config.age.secrets.di-fm-key.path;
})
(mpv-radio.override {
di-fm-key-file = config.age.secrets.di-fm-key.path;
executableName = "cro-radio";
mpvCommand = "${cro}/bin/cro";
})
(mpv-tuner.override {
di-fm-key-file = config.age.secrets.di-fm-key.path;
})
2020-04-09 16:58:21 +02:00
# kmein.slide
2022-11-09 11:07:58 +01:00
termdown
image-convert-tolino
rfc
tag
timer
2020-04-09 16:58:21 +02:00
nix-prefetch-git
nix-git
2024-06-03 07:27:01 +02:00
nixfmt-rfc-style
2025-12-29 17:56:07 +01:00
comma
2020-04-09 16:58:21 +02:00
par
qrencode
2025-12-28 13:19:15 +01:00
pkgs.agenix
pkgs.alarm
2021-10-19 18:59:29 +02:00
(pkgs.writers.writeDashBin "worldradio" ''
shuf ${worldradio} | ${pkgs.findutils}/bin/xargs ${pkgs.mpv}/bin/mpv --no-video
'')
2021-08-11 13:16:46 +02:00
(pkgs.writers.writeDashBin "chats" ''
2025-12-28 13:19:15 +01:00
${pkgs.openssh}/bin/ssh -p ${toString pkgs.lib.niveum.machines.makanek.sshPort} ${pkgs.lib.niveum.machines.makanek.externalIp} "cd /var/lib/weechat/logs && grep --ignore-case --color=always --recursive $@" | ${pkgs.less}/bin/less --raw-control-chars
2021-08-11 13:16:46 +02:00
'')
2025-12-29 13:35:17 +01:00
niveum-ssh
spotify
playerctl
2021-10-08 22:20:58 +02:00
#krebs
2024-12-13 13:42:16 +01:00
pkgs.nur.repos.mic92.ircsink
(haskellPackages.ghcWithHoogle (hs: [
2023-06-21 10:40:56 +02:00
hs.text
hs.lens
hs.bytestring
]))
(python3.withPackages (py: [
py.black
# py.python-language-server
# py.pyls-mypy
# py.pyls-black
# py.pyls-isort
py.flake8
py.pygments
py.schema
]))
2022-12-05 10:35:07 +01:00
# python3Packages.poetry
2023-10-06 10:50:16 +02:00
dhall-nix
dhall-bash
dhall-json
dhall
html-tidy
2025-03-30 22:35:46 +02:00
deno # better node.js
2025-10-02 18:32:40 +02:00
go
texlive.combined.scheme-full
latexrun
2025-12-27 22:22:54 +01:00
(aspellWithDicts (dict: [
dict.de
dict.en
dict.en-computers
]))
# haskellPackages.pandoc-citeproc
text2pdf
lowdown
glow # markdown to term
2026-01-06 22:46:12 +01:00
libreoffice-qt6-fresh
# gnumeric
dia
2023-12-06 14:41:49 +01:00
pandoc
2025-04-28 11:00:09 +02:00
librsvg # pandoc depends on this to include SVG in documents
# man-pandoc
2023-06-06 19:59:27 +02:00
typst
# proselint
asciidoctor
wordnet
tokei # count lines of code
gnumake
binutils # for strip, ld, ...
# nightly.rust
shellcheck
2022-03-12 12:43:35 +01:00
2025-05-07 09:14:53 +02:00
# photography
gphoto2
darktable
2022-03-12 12:43:35 +01:00
(pkgs.writers.writeDashBin "hass-cli" ''
HASS_SERVER=http://zaatar.r:8123 HASS_TOKEN="$(cat ${config.age.secrets.home-assistant-token.path})" exec ${pkgs.home-assistant-cli}/bin/hass-cli "$@"
2022-03-12 12:43:35 +01:00
'')
2023-06-10 14:07:29 +02:00
# xml
saxonb_9_1
libxml2
2023-06-12 11:18:45 +02:00
zotero
2020-04-09 16:58:21 +02:00
];
age.secrets.home-assistant-token = {
file = ../secrets/home-assistant-token.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
home-manager.users.me.xdg.configFile."pycodestyle".text = ''
[pycodestyle]
max-line-length = 110
'';
}