2022-03-10 21:52:12 +01:00
|
|
|
{
|
2023-02-22 10:02:55 +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;
|
|
|
|
|
};
|
2021-12-31 13:21:22 +01:00
|
|
|
};
|
|
|
|
|
cslDirectory = pkgs.linkFarm "citation-styles" [
|
|
|
|
|
(zoteroStyle {
|
|
|
|
|
name = "chicago-author-date-de";
|
2022-03-29 00:21:16 +02:00
|
|
|
sha256 = "sha256-ddMYk4A9DJQhx9ldkmF7PhwKuc7wUSr26uHHGAze9Ps=";
|
2021-12-31 13:21:22 +01:00
|
|
|
})
|
|
|
|
|
(zoteroStyle {
|
|
|
|
|
name = "din-1505-2";
|
2022-03-29 00:21:16 +02:00
|
|
|
sha256 = "sha256-bXZbB850fek8J6wMVFL32ndI7F4wiKKr1qUC71ezreE=";
|
2021-12-31 13:21:22 +01:00
|
|
|
})
|
|
|
|
|
(zoteroStyle {
|
|
|
|
|
name = "apa";
|
2024-03-19 23:15:35 +01:00
|
|
|
sha256 = "sha256-sUf0Ov5c9aTUoLsYSRbQl3Qs9ELkb5/Tky35kH7pKuE=";
|
2021-12-31 13:21:22 +01:00
|
|
|
})
|
|
|
|
|
];
|
|
|
|
|
|
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
|
|
|
|
|
{
|
2021-12-31 13:21:22 +01:00
|
|
|
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; [
|
2025-09-06 11:57:24 +02:00
|
|
|
(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
|
2025-12-02 21:37:02 +01:00
|
|
|
telegram-desktop
|
2020-04-09 16:58:21 +02:00
|
|
|
# FILE MANAGERS
|
2022-05-31 19:34:20 +02:00
|
|
|
lf
|
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
|
2024-03-31 12:48:03 +02:00
|
|
|
graphviz
|
2020-04-09 16:58:21 +02:00
|
|
|
# SHELL
|
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
|
2022-05-24 11:11:52 +02:00
|
|
|
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-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
|
2025-12-25 14:00:03 +01:00
|
|
|
gimp
|
2023-12-27 10:38:42 +01:00
|
|
|
gthumb
|
2021-12-31 13:21:22 +01:00
|
|
|
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
|
|
|
'')
|
2022-05-24 11:11:52 +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
|
2025-12-25 14:00:03 +01:00
|
|
|
hc # print files as qr codes
|
2022-04-26 20:07:09 +02:00
|
|
|
yt-dlp
|
2026-02-11 16:46:36 +01:00
|
|
|
yt-dlp-master
|
2022-01-11 22:25:25 +01:00
|
|
|
espeak
|
2022-12-29 23:37:13 +01:00
|
|
|
rink # unit converter
|
2025-12-25 14:00:03 +01:00
|
|
|
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 {
|
2023-02-24 23:10:45 +01:00
|
|
|
di-fm-key-file = config.age.secrets.di-fm-key.path;
|
|
|
|
|
})
|
2025-12-25 14:00:03 +01:00
|
|
|
(mpv-radio.override {
|
2024-06-09 22:42:50 +02:00
|
|
|
di-fm-key-file = config.age.secrets.di-fm-key.path;
|
|
|
|
|
executableName = "cro-radio";
|
2025-12-25 14:00:03 +01:00
|
|
|
mpvCommand = "${cro}/bin/cro";
|
2024-06-09 22:42:50 +02:00
|
|
|
})
|
2025-12-25 14:00:03 +01:00
|
|
|
(mpv-tuner.override {
|
2023-07-15 22:33:35 +02:00
|
|
|
di-fm-key-file = config.age.secrets.di-fm-key.path;
|
|
|
|
|
})
|
2020-04-09 16:58:21 +02:00
|
|
|
# kmein.slide
|
2026-02-04 16:49:28 +01:00
|
|
|
termdown # countdown timer in terminal
|
2025-12-25 14:00:03 +01:00
|
|
|
image-convert-tolino
|
|
|
|
|
rfc
|
|
|
|
|
tag
|
|
|
|
|
timer
|
2025-12-29 17:56:07 +01:00
|
|
|
comma
|
2020-04-09 16:58:21 +02:00
|
|
|
par
|
|
|
|
|
qrencode
|
2020-10-28 20:29:01 +01:00
|
|
|
|
2025-12-28 13:19:15 +01:00
|
|
|
pkgs.agenix
|
2026-01-25 13:47:49 +01:00
|
|
|
pkgs.wetter
|
2025-12-28 13:19:15 +01:00
|
|
|
pkgs.alarm
|
2021-10-19 18:59:29 +02:00
|
|
|
|
2021-03-11 09:35:22 +01: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
|
|
|
|
|
|
2022-02-15 22:16:50 +01:00
|
|
|
spotify
|
2020-10-28 20:29:01 +01:00
|
|
|
playerctl
|
2021-04-27 21:56:44 +02:00
|
|
|
|
2021-10-08 22:20:58 +02:00
|
|
|
#krebs
|
2024-12-13 13:42:16 +01:00
|
|
|
pkgs.nur.repos.mic92.ircsink
|
2021-12-31 13:21:22 +01:00
|
|
|
|
2023-07-09 16:32:57 +02:00
|
|
|
(haskellPackages.ghcWithHoogle (hs: [
|
2023-06-21 10:40:56 +02:00
|
|
|
hs.text
|
|
|
|
|
hs.lens
|
|
|
|
|
hs.bytestring
|
|
|
|
|
]))
|
|
|
|
|
|
2021-12-31 13:21:22 +01:00
|
|
|
(python3.withPackages (py: [
|
|
|
|
|
py.black
|
2026-01-09 12:38:57 +01:00
|
|
|
py.ruff
|
2021-12-31 13:21:22 +01:00
|
|
|
# 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
|
2021-12-31 13:21:22 +01:00
|
|
|
|
2023-10-06 10:50:16 +02:00
|
|
|
dhall-nix
|
|
|
|
|
dhall-bash
|
|
|
|
|
dhall-json
|
|
|
|
|
dhall
|
|
|
|
|
|
2022-05-24 11:11:52 +02:00
|
|
|
html-tidy
|
2025-03-30 22:35:46 +02:00
|
|
|
deno # better node.js
|
2025-10-02 18:32:40 +02:00
|
|
|
go
|
2021-12-31 13:21:22 +01:00
|
|
|
texlive.combined.scheme-full
|
|
|
|
|
latexrun
|
2025-12-27 22:22:54 +01:00
|
|
|
(aspellWithDicts (dict: [
|
|
|
|
|
dict.de
|
|
|
|
|
dict.en
|
|
|
|
|
dict.en-computers
|
|
|
|
|
]))
|
2021-12-31 13:21:22 +01:00
|
|
|
# haskellPackages.pandoc-citeproc
|
2025-12-25 14:00:03 +01:00
|
|
|
text2pdf
|
2021-12-31 13:21:22 +01:00
|
|
|
lowdown
|
|
|
|
|
glow # markdown to term
|
2026-01-06 22:46:12 +01:00
|
|
|
libreoffice-qt6-fresh
|
2021-12-31 13:21:22 +01:00
|
|
|
# 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
|
2025-12-25 14:00:03 +01:00
|
|
|
# man-pandoc
|
2023-06-06 19:59:27 +02:00
|
|
|
typst
|
2021-12-31 13:21:22 +01:00
|
|
|
# proselint
|
|
|
|
|
asciidoctor
|
|
|
|
|
wordnet
|
|
|
|
|
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" ''
|
2023-02-22 10:02:55 +01:00
|
|
|
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
|
|
|
];
|
|
|
|
|
|
2023-02-24 23:10:45 +01:00
|
|
|
age.secrets.home-assistant-token = {
|
2023-07-04 16:28:26 +02:00
|
|
|
file = ../secrets/home-assistant-token.age;
|
2023-02-24 23:10:45 +01:00
|
|
|
owner = config.users.users.me.name;
|
|
|
|
|
group = config.users.users.me.group;
|
|
|
|
|
mode = "400";
|
|
|
|
|
};
|
2023-02-22 10:02:55 +01:00
|
|
|
|
2021-12-31 13:21:22 +01:00
|
|
|
home-manager.users.me.xdg.configFile."pycodestyle".text = ''
|
|
|
|
|
[pycodestyle]
|
|
|
|
|
max-line-length = 110
|
|
|
|
|
'';
|
2019-08-05 09:38:59 +02:00
|
|
|
}
|