1
0
mirror of https://github.com/kmein/niveum synced 2026-03-25 05:51:07 +01:00

2 Commits

Author SHA1 Message Date
d751ecdab7 feat: add grimm dwb scroller 2022-09-08 08:47:11 +02:00
2280b21a75 feat: automate entering ssh passphrase 2022-09-08 08:46:53 +02:00
82 changed files with 453 additions and 1245 deletions

View File

@@ -1,19 +0,0 @@
#!/bin/sh
directory="$(mktemp -d)"
trap clean EXIT
clean() {
rm -rf "$directory"
}
year=2022
output=/tmp/$year.pdf
for month in $(seq 1 12); do
printf "\r%d" "$month" 1>&2
astrolog -zN Berlin -qm "$month" "$year" -X -K -XA -R Uranus Neptune Pluto -Xr -Xm -Xb -Xo "$(printf "%s/%02d.bmp" "$directory" "$month")" -Xw 1080 720 2>/dev/null
done
printf "\r"
convert "$directory/*.bmp" "$output"
echo "$output"

View File

@@ -1,43 +0,0 @@
#!/bin/bash
name=$RANDOM
url='http://localhost:9093/api/v1/alerts'
echo "firing up alert $name"
# change url o
curl -XPOST $url -d "[{
\"status\": \"firing\",
\"labels\": {
\"alertname\": \"$name\",
\"service\": \"my-service\",
\"severity\":\"warning\",
\"instance\": \"$name.example.net\"
},
\"annotations\": {
\"summary\": \"High latency is high!\"
},
\"generatorURL\": \"http://prometheus.int.example.net/<generating_expression>\"
}]"
echo ""
echo "press enter to resolve alert"
read
echo "sending resolve"
curl -XPOST $url -d "[{
\"status\": \"resolved\",
\"labels\": {
\"alertname\": \"$name\",
\"service\": \"my-service\",
\"severity\":\"warning\",
\"instance\": \"$name.example.net\"
},
\"annotations\": {
\"summary\": \"High latency is high!\"
},
\"generatorURL\": \"http://prometheus.int.example.net/<generating_expression>\"
}]"
echo ""

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env -S jq -r -f
(map(keys) | add | unique) as $cols
| map(. as $row | $cols | map($row[.])) as $rows
| $cols, $rows[]
| @csv

View File

@@ -1,65 +0,0 @@
#!/bin/sh
lidl() {
echo LIDL
curl -sSL 'https://endpoints.lidl-flyer.com/v3/region-overview/lidl/de-DE/0.json' \
| jq -r '
.categories
| map(select(.name == "Filial-Angebote") | .subcategories | map(.flyers))
| flatten
| flatten
| .[]
| .pdfUrl
'
}
aldi_nord() {
echo ALDI nord
echo 'https://magazine.aldi-nord.de/aldi-nord/aldi-aktuell/GetPDF.ashx'
echo 'https://magazine.aldi-nord.de/aldi-nord/aldi-vorschau/GetPDF.ashx'
}
rewe_berlin() {(
store_id=662366923
publisher_id=1062
echo REWE
curl -sSL 'https://www.bonialserviceswidget.de/de/stores/'$store_id'/brochures?storeId='$store_id'&publisherId='$publisher_id | while read -r brochure_id; do
curl -sSL 'https://www.bonialserviceswidget.de/de/v5/brochureDetails/'"$brochure_id"'?publisherId='$publisher_id | jq -r .pdfUrl
done
)}
kaufland() {(
region_code=8920
echo KAUFLAND
curl -sSL https://filiale.kaufland.de/prospekte.html | htmlq --attribute href '.flyer a' | grep -Eo 'DE_de_KDZ[^/]*' | sed "s/_3000_/_${region_code}_/" | while read -r flyer_id; do
curl -sSL "https://endpoints.leaflets.kaufland.com/v3/$flyer_id/flyer.json?regionCode=$region_code" | jq -r .flyer.pdfUrl
done
)}
netto_schwarz() {
echo 'NETTO (schwarz)'
curl -sSL 'https://squid-api.tjek.com/v2/catalogs?dealer_ids=90f2VL&order_by=created' \
| jq -r '.[] | .id' \
| while read -r flyer_id; do
curl -sSL "https://squid-api.tjek.com/v2/catalogs/$flyer_id/download" \
| jq -r .pdf_url
done
}
dir="$(mktemp -d)"
trap clean EXIT
clean() {
rm -rf "$dir"
}
prospekt_url="$( (
lidl
aldi_nord
rewe_berlin
kaufland
netto_schwarz
) | fzf)"
curl -sSL "$prospekt_url" -o "$dir/prospekt.pdf"
zathura "$dir/prospekt.pdf"

View File

@@ -1,16 +0,0 @@
#! /usr/bin/env nix-shell
#! nix-shell -i sh -p coreutils byzanz xorg.xwininfo gnused
# shellcheck shell=sh
# ref https://gist.github.com/aforemny/0994cb7f06ea30d56c8b9681ff5d2054
set -eux
eval "$(xwininfo | \
sed -n -e 's/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p' \
-e 's/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p' \
-e 's/^ \+Width: \+\([0-9]\+\).*/w=\1/p' \
-e 's/^ \+Height: \+\([0-9]\+\).*/h=\1/p')"
trap "pkill -f 'sleep 360d'" INT
byzanz-record -e "sleep 360d" -c -x $x -y $y -w $w -h $h "$@"

View File

@@ -1,50 +0,0 @@
let
lib = import <nixpkgs/lib>;
in rec {
inherit lib;
input = [
{
x = ["pool" "zfs"];
y = ["mdadm" "raid1"];
}
{
x = ["pool" "zfs"];
y = ["disk" "sda"];
}
{
x = ["mdadm" "raid1"];
y = ["disk" "sdb"];
}
{
x = ["mdadm" "raid1"];
y = ["disk" "sdc"];
}
];
outNodes = node: graph:
lib.unique
(builtins.map (e: e.y)
(builtins.filter (v: v.x == node) graph));
vertices = graph:
lib.unique
(builtins.map (x: x.y) graph ++ builtins.map (x: x.x) graph);
deleteVertex = node: graph: (builtins.filter (v: v.x != node && v.y != node) graph);
findSink = graph:
lib.findFirst
(v: outNodes v graph == [])
(lib.trace graph (builtins.abort "No sink found"))
(vertices graph);
topSort = graph:
if graph == []
then []
else if builtins.length graph == 1
then let only = builtins.head graph; in [only.y only.x]
else let sink = findSink graph; in [sink] ++ topSort (deleteVertex sink graph);
output = topSort input;
}

View File

@@ -1,18 +0,0 @@
#/usr/bin/env -S deno run -A:q
set -x
session_cache="$HOME/.cache/tt-rss.session"
ttrss_endpoint=https://feed.kmein.de/api/
ttrss_user=k
ttrss_password=$(pass shared/tt-rss/password)
login() {
if [ -f "$session_cache" ]; then
session_id="$(cat "$session_cache")"
else
session_id="$(curl -d '{"op":"login","user":"'"$ttrss_user"'","password":"'"$ttrss_password"'"}' "$ttrss_endpoint" | jq -r .content.session_id)"
echo "$session_id" > "$session_cache"
fi
}
login
curl -d '{"sid":"'"$session_id"'","op":"getUnread"}' "$ttrss_endpoint" | jq .content

View File

@@ -1,16 +0,0 @@
#!/bin/sh
set -efux
expected_max_results=1024 # the upper bound on the number of restaurants
radius=250
echo '[out:json];node(id:260050809)->.cbase;
(
node(around.cbase:'$radius')[amenity=fast_food];
node(around.cbase:'$radius')[amenity=restaurant];
);out;' \
| curl -sSL -d @- -X POST http://overpass-api.de/api/interpreter \
| jq --argjson random "$(shuf -i 0-$expected_max_results -n 1)" '
.elements
| length as $length
| .[$random % $length]
'

6
ci.nix
View File

@@ -46,27 +46,23 @@
"mail/meinhaki"
"mail/dslalewa"
"mail/posteo"
"mega/password"
"nextcloud-fysi/password"
"nextcloud/password"
"openweathermap.key"
"restic/password"
"traadfri.key"
"tt-rss/password"
"tt-rss/private-rss.key"
"wifi/Aether.psk"
"spotify/username"
"spotify/password"
];
systemSecrets = let
basic = ["retiolum.ed25519" "retiolum.key" "syncthing/cert.pem" "syncthing/key.pem" "ssh/passphrase"];
basic = ["retiolum.ed25519" "retiolum.key" "syncthing/cert.pem" "syncthing/key.pem"];
in
{
zaatar = ensureFiles (["moodle.token" "telegram/moodle-dl.token" "mpd-web.key"] ++ basic);
kabsa = ensureFiles basic;
manakish = ensureFiles basic;
tahina = ensureFiles basic;
tabula = ensureFiles basic;
ful = ensureFiles (["root.password"] ++ basic);
makanek = ensureFiles ([
"irc/retiolum"

View File

@@ -6,7 +6,7 @@
}: let
alacritty-cfg = theme:
(pkgs.formats.yaml {}).generate "alacritty.yml" {
window.opacity = 0.99;
window.opacity = 0.95;
font = {
normal.family = "Monospace";
size = 6;
@@ -43,7 +43,6 @@
name = "alacritty";
paths = [
(pkgs.writeDashBin "alacritty" ''
${pkgs.alacritty}/bin/alacritty --config-file /var/theme/config/alacritty.yml msg create-window "$@" ||
${pkgs.alacritty}/bin/alacritty --config-file /var/theme/config/alacritty.yml "$@"
'')
pkgs.alacritty
@@ -57,7 +56,7 @@ in {
];
environment.etc = {
"themes/dark/alacritty.yml".source = alacritty-cfg (import <niveum/lib/colours/papercolor-dark.nix>);
"themes/light/alacritty.yml".source = alacritty-cfg (import <niveum/lib/colours/papercolor-light.nix>);
"themes/dark/alacritty.yml".source = alacritty-cfg (import <niveum/lib/colours/ayu-dark.nix>);
"themes/light/alacritty.yml".source = alacritty-cfg (import <niveum/lib/colours/ayu-light.nix>);
};
}

View File

@@ -1,21 +0,0 @@
{
config,
pkgs,
...
}: {
services.clipmenu.enable = true;
# synchronize all the clipboards
systemd.user.services.autocutsel = {
enable = true;
wantedBy = ["graphical-session.target"];
after = ["graphical-session.target"];
serviceConfig = {
Type = "forking";
ExecStart = pkgs.writers.writeDash "autocutsel" ''
${pkgs.autocutsel}/bin/autocutsel -fork -selection PRIMARY
${pkgs.autocutsel}/bin/autocutsel -fork -selection CLIPBOARD
'';
};
};
}

View File

@@ -15,6 +15,14 @@ in {
};
systemd.tmpfiles.rules = map tmpfilesConfig [
{
type = "L+";
user = config.users.users.me.name;
group = "users";
mode = "0755";
argument = "${config.users.users.me.home}/cloud/Seafile/Wiki";
path = "${config.users.users.me.home}/notes";
}
{
type = "L+";
user = config.users.users.me.name;
@@ -34,9 +42,9 @@ in {
];
home-manager.users.me = {
services.gnome-keyring.enable = false;
services.gnome-keyring.enable = true;
services.nextcloud-client = {
enable = false;
enable = true;
startInBackground = true;
};
systemd.user.services.nextcloud-client = {
@@ -47,28 +55,6 @@ in {
};
};
systemd.user.services.nextcloud-syncer = {
enable = true;
wants = ["network-online.target"];
wantedBy = ["default.target"];
startAt = "*:00/10";
script = let
kieran = {
user = "kieran";
password = lib.fileContents <secrets/nextcloud/password>;
endpoint = "https://cloud.xn--kiern-0qa.de";
target = "${config.users.users.me.home}/notes";
};
in ''
mkdir -p ${lib.escapeShellArg kieran.target}
${pkgs.nextcloud-client}/bin/nextcloudcmd --non-interactive --user ${kieran.user} --password ${lib.escapeShellArg kieran.password} --path /Notes ${lib.escapeShellArg kieran.target} ${kieran.endpoint}
'';
serviceConfig = {
Type = "oneshot";
Restart = "on-failure";
};
};
environment.systemPackages = [
(pkgs.writers.writeDashBin "book" ''
set -efu
@@ -76,32 +62,8 @@ in {
${pkgs.findutils}/bin/find ${config.users.users.me.home}/cloud/syncthing/library -type f
${pkgs.findutils}/bin/find ${config.users.users.me.home}/cloud/Seafile/Books -type f
} | ${pkgs.fzf}/bin/fzf)"
exec ${pkgs.zathura}/bin/zathura "$book"
${pkgs.zathura}/bin/zathura "$book"
'')
(let
kieran = {
user = "kieran.meinhardt@gmail.com";
password = lib.fileContents <secrets/mega/password>;
};
megatools = command: "${pkgs.megatools}/bin/megatools ${command} --username ${lib.escapeShellArg kieran.user} --password ${lib.escapeShellArg kieran.password}";
in
pkgs.writers.writeDashBin "book-mega" ''
set -efu
selection="$(${megatools "ls"} | ${pkgs.fzf}/bin/fzf)"
test -n "$selection" || exit 1
tmpdir="$(mktemp -d)"
trap clean EXIT
clean() {
rm -rf "$tmpdir"
}
(
cd "$tmpdir"
${megatools "get"} "$selection"
exec ${pkgs.zathura}/bin/zathura "$(basename "$selection")"
)
'')
];
fileSystems."/media/moodle" = {

40
configs/copyq.nix Normal file
View File

@@ -0,0 +1,40 @@
{
config,
pkgs,
...
}: let
copyqConfig = pkgs.writers.writeDash "copyq-config" ''
${pkgs.copyq}/bin/copyq config check_clipboard true
${pkgs.copyq}/bin/copyq config check_selection false
${pkgs.copyq}/bin/copyq config copy_clipboard true
${pkgs.copyq}/bin/copyq config copy_selection false
${pkgs.copyq}/bin/copyq config activate_closes true
${pkgs.copyq}/bin/copyq config clipboard_notification_lines 0
${pkgs.copyq}/bin/copyq config clipboard_tab \&clipboard
${pkgs.copyq}/bin/copyq config disable_tray false
${pkgs.copyq}/bin/copyq config hide_tabs false
${pkgs.copyq}/bin/copyq config hide_toolbar false
${pkgs.copyq}/bin/copyq config item_popup_interval true
${pkgs.copyq}/bin/copyq config maxitems 1000
${pkgs.copyq}/bin/copyq config move true
${pkgs.copyq}/bin/copyq config text_wrap true
'';
in {
environment.systemPackages = [pkgs.copyq];
systemd.user.services.copyq = {
wantedBy = ["graphical-session.target"];
environment = {
DISPLAY = ":${toString config.services.xserver.display}";
};
serviceConfig = {
SyslogIdentifier = "copyq";
ExecStart = "${pkgs.copyq}/bin/copyq";
ExecStartPost = copyqConfig;
Restart = "always";
RestartSec = "15s";
StartLimitBurst = 0;
};
};
}

View File

@@ -7,7 +7,6 @@
}: let
inherit (lib.strings) makeBinPath;
inherit (import <niveum/lib>) localAddresses kieran;
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
in {
imports = [
<home-manager/nixos>
@@ -31,11 +30,22 @@ in {
tocharian-font = pkgs.callPackage <niveum/packages/tocharian-font.nix> {};
iolanguage = pkgs.callPackage <niveum/packages/iolanguage.nix> {};
ix = pkgs.callPackage <niveum/packages/ix.nix> {};
rofi-pass = pkgs.rofi-pass.overrideAttrs (final: previous: {
patches = [
# password store androi
<niveum/packages/rofi-pass.patch>
];
});
};
permittedInsecurePackages = [
"qtwebkit-5.212.0-alpha4"
];
};
overlays = [
(self: super: {
scripts = import <niveum/packages/scripts> {
pkgs = super;
lib = super.lib;
};
})
];
};
}
{
@@ -111,13 +121,13 @@ in {
cd "$(mktemp -d)"
pwd
'';
swallow = command: "${scripts.swallow}/bin/swallow ${command}";
swallow = command: "${pkgs.scripts.swallow}/bin/swallow ${command}";
in {
"ß" = "${pkgs.util-linux}/bin/setsid";
"ß" = "${pkgs.utillinux}/bin/setsid";
cat = "${pkgs.bat}/bin/bat --style=plain";
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
cp = "cp --interactive";
ip = "${pkgs.iproute2}/bin/ip -c";
ip = "${pkgs.iproute}/bin/ip -c";
l = "ls --color=auto --time-style=long-iso --almost-all";
ls = "ls --color=auto --time-style=long-iso";
ll = "ls --color=auto --time-style=long-iso -l";
@@ -125,7 +135,7 @@ in {
mv = "mv --interactive";
nixi = "nix repl '<nixpkgs>'";
ns = "nix-shell --run zsh";
o = "${pkgs.xdg-utils}/bin/xdg-open";
o = "${pkgs.xdg_utils}/bin/xdg-open";
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -out";
rm = "rm --interactive";
@@ -186,17 +196,7 @@ in {
}
{programs.command-not-found.enable = true;}
{
home-manager.users.me = {
services.gpg-agent = rec {
enable = true;
enableSshSupport = true;
enableZshIntegration = true;
defaultCacheTtl = 2 * 60 * 60;
defaultCacheTtlSsh = defaultCacheTtl;
maxCacheTtl = 4 * defaultCacheTtl;
maxCacheTtlSsh = maxCacheTtl;
};
};
programs.gnupg.agent.enable = true;
environment.systemPackages = [
pkgs.gnupg
@@ -231,8 +231,8 @@ in {
./ccc.nix
./khal.nix
./chromium.nix
./clipboard.nix
./cloud.nix
./copyq.nix
./compton.nix
./direnv.nix
./distrobump.nix
@@ -273,7 +273,7 @@ in {
./nsxiv.nix
./themes.nix
./tmux.nix
# ./traadfri.nix
./traadfri.nix
./unclutter.nix
./vscode.nix
./watson.nix

View File

@@ -74,7 +74,7 @@ in {
[ -f "${cacheLocation}/${indexFilename}" ] || exit 1
${pkgs.dmenu}/bin/dmenu -i -p flix -l 5 "$@" < ${cacheLocation}/${indexFilename} \
| ${pkgs.findutils}/bin/xargs -I '{}' ${pkgs.util-linux}/bin/setsid ${pkgs.xdg-utils}/bin/xdg-open '{}'
| ${pkgs.findutils}/bin/xargs -I '{}' ${pkgs.utillinux}/bin/setsid ${pkgs.xdg_utils}/bin/xdg-open '{}'
'')
];
}

View File

@@ -1,52 +1,4 @@
{pkgs, ...}: let
zip-font = name: arguments: let
directory = pkgs.fetchzip arguments;
in
pkgs.runCommand name {} ''
mkdir -p $out/share/fonts/{truetype,opentype,woff}
${pkgs.findutils}/bin/find ${directory} -name '*.ttf' -exec install '{}' $out/share/fonts/truetype \;
${pkgs.findutils}/bin/find ${directory} -name '*.otf' -exec install '{}' $out/share/fonts/opentype \;
${pkgs.findutils}/bin/find ${directory} -name '*.woff' -exec install '{}' $out/share/fonts/woff \;
'';
simple-ttf = name: arguments: let
file = pkgs.fetchurl arguments;
in
pkgs.runCommand name {} ''
mkdir -p $out/share/fonts/truetype
install ${file} $out/share/fonts/truetype
'';
egyptianHiero = zip-font "EgyptianHiero" {
url = "https://github.com/MKilani/Djehuty/archive/master.zip";
sha256 = "0xaq16ysvxrkcn3264wkmm2ln0hpijpk4iq1n5i7d9gqhjhsav1x";
};
antinoou = zip-font "Antinoou" {
url = "https://www.evertype.com/fonts/coptic/AntinoouFont.zip";
sha256 = "0jwihj08n4yrshcx07dnaml2x9yws6dgyjkvg19jqbz17drbp3sw";
stripRoot = false;
};
newGardiner = zip-font "NewGardiner" {
url = "https://mjn.host.cs.st-andrews.ac.uk/egyptian/fonts/NewGardiner.zip";
sha256 = "1jd0qa6shh9pqqyig2w43m9l9rv1i50l73jzkhb6g6mqxbhb1mip";
stripRoot = false;
};
junicode2 = zip-font "JunicodeTwo" {
url = "https://github.com/psb1558/Junicode-font/archive/48bf476db278c844c67542b04d1e0e4c71f139d2.zip";
sha256 = "1ryicc155vkvgv3315ddliigwa01afwyb4c4f6pnqcns03af001i";
};
newAthenaUnicode = zip-font "NewAthenaUnicode" {
url = "https://classicalstudies.org/sites/default/files/userfiles/files/NAU5_005.zip";
sha256 = "1g7qk9gl4nq2dz41bvck1nzilhin44j8691cxax3dlp77bbn9bxr";
};
jsesh = simple-ttf "JSesh" {
url = "http://files.qenherkhopeshef.org/jsesh/JSeshFont.ttf";
sha256 = "1203jrk2xzvgckcc5hx88kja1i3h8gm1wiyla5j6gspc0hbv56ry";
};
egyptianText = simple-ttf "EgyptianText-1.0beta" {
url = "http://c.krebsco.de/EgyptianText-v1.0-beta.ttf";
sha256 = "0cfjbk7xxnxhlp6v922psm5j1xzrv6wfk226ji2wz2yfrnkbcbsv";
};
in {
{pkgs, ...}: {
fonts = {
enableDefaultFonts = true;
fontDir.enable = true;
@@ -55,22 +7,13 @@ in {
alegreya-sans
amiri
annapurna-sil
antinoou
cantarell-fonts
cardo
charis-sil
doulos-sil
newAthenaUnicode
corefonts
crimson
eb-garamond
jsesh
egyptianHiero
egyptianText
font-awesome_6
etBook
newGardiner
junicode2
ezra-sil
fira
font-awesome
@@ -101,11 +44,11 @@ in {
vollkorn
zilla-slab
]; # google-fonts league-of-moveable-type
fontconfig.defaultFonts = rec {
monospace = ["Noto Sans Mono"] ++ emoji;
fontconfig.defaultFonts = {
monospace = ["Noto Sans Mono"];
serif = ["Noto Serif" "Noto Naskh Arabic" "Noto Serif Devanagari"];
sansSerif = ["Noto Sans Display" "Noto Kufi Arabic" "Noto Sans Devanagari" "Noto Sans CJK JP"];
emoji = ["Noto Color Emoji"];
emoji = ["Noto Color Emoji" "Noto Emoji"];
};
};
}

View File

@@ -5,19 +5,18 @@
}: {
environment = {
systemPackages = [pkgs.fzf];
variables = rec {
FZF_DEFAULT_COMMAND = "${pkgs.fd}/bin/fd --type f --strip-cwd-prefix --follow --no-ignore-vcs --exclude .git";
variables = {
FZF_DEFAULT_OPTS =
lib.escapeShellArgs ["--height=40%"];
lib.escapeShellArgs ["--height=40%" "--layout=reverse"];
FZF_ALT_C_COMMAND = "${pkgs.fd}/bin/fd --type d";
FZF_ALT_C_OPTS = lib.escapeShellArgs [
"--preview='${pkgs.tree}/bin/tree -L 1 \"{}\"'"
"--bind=space:toggle-preview"
"--preview-window=hidden"
];
FZF_CTRL_T_COMMAND = FZF_DEFAULT_COMMAND;
FZF_CTRL_T_COMMAND = "${pkgs.fd}/bin/fd --type f";
FZF_CTRL_T_OPTS =
lib.escapeShellArgs ["--preview='head -$LINES {}'"];
lib.escapeShellArgs ["--preview='${pkgs.bat}/bin/bat \"{}\"'"];
};
};

View File

@@ -5,7 +5,6 @@
...
}: let
inherit (import <niveum/lib>) defaultApplications colours;
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
klem = import <niveum/packages/scripts/klem.nix> {
inherit pkgs lib;
config.scripts = {
@@ -14,15 +13,6 @@
| ${pkgs.coreutils}/bin/tail --lines=1 \
| ${pkgs.gnused}/bin/sed 's/\\<r\\>/krebsco.de/'
'';
# "envs.sh host" = pkgs.writers.writeDash "envs-host" ''
# ${pkgs.curl}/bin/curl -F "file=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
# '';
"envs.sh mirror" = pkgs.writers.writeDash "envs-mirror" ''
${pkgs.curl}/bin/curl -F "url=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
'';
"envs.sh shorten" = pkgs.writers.writeDash "envs-shorten" ''
${pkgs.curl}/bin/curl -F "shorten=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
'';
"ix.io" = pkgs.writers.writeDash "ix.io" ''
${pkgs.curl}/bin/curl -fSs -F 'f:1=<-' ix.io
'';
@@ -36,11 +26,15 @@
${pkgs.coreutils}/bin/tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
'';
"ipa" = pkgs.writers.writeDash "ipa" ''
${scripts.ipa}/bin/ipa
${pkgs.scripts.ipa}/bin/ipa
'';
"betacode" = pkgs.writers.writeDash "betacode" ''
${scripts.betacode}/bin/betacode
${pkgs.scripts.betacode}/bin/betacode
'';
"devanagari" = pkgs.writers.writeDash "devanagari" ''
${pkgs.scripts.devanagari}/bin/devanagari
'';
"avesta" = pkgs.writeScript "avesta" (builtins.readFile <niveum/packages/scripts/avesta.sed>);
"curl" = pkgs.writers.writeDash "curl" ''
${pkgs.curl}/bin/curl -fSs "$(${pkgs.coreutils}/bin/cat)"
'';
@@ -61,6 +55,7 @@ in {
displayManager.defaultSession = "none+i3";
windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
};
};
@@ -100,10 +95,6 @@ in {
criteria = {class = "fzfmenu";};
command = "floating enable";
}
{
criteria = {class = ".*";};
command = "border pixel 2";
}
{
criteria = {class = "mpv";};
command = lib.strings.concatStringsSep ", " [
@@ -116,6 +107,7 @@ in {
}
];
};
gaps.inner = 4;
floating = {
titlebar = false;
border = 1;
@@ -129,9 +121,9 @@ in {
focused =
scheme
// {
border = colours.blue.bright;
indicator = colours.blue.bright;
childBorder = colours.blue.bright;
border = colours.cyan.bright;
indicator = colours.cyan.bright;
childBorder = colours.cyan.bright;
};
unfocused =
scheme
@@ -163,7 +155,7 @@ in {
names = ["Monospace" "Font Awesome 6 Free"];
size = 8.0;
};
mode = "dock"; # "hide";
mode = "hide"; # "dock"
position = "bottom";
colors = rec {
background = colours.background;
@@ -204,10 +196,10 @@ in {
"${modifier}+Shift+b" = "move window to workspace prev";
"${modifier}+Shift+n" = "move window to workspace next";
"${modifier}+Shift+x" = "exec ${move-to-new-workspace}";
"${modifier}+Shift+x" = "exec --no-startup-id ${move-to-new-workspace}";
"${modifier}+b" = "workspace prev";
"${modifier}+n" = "workspace next";
"${modifier}+x" = "exec ${new-workspace}";
"${modifier}+x" = "exec --no-startup-id ${new-workspace}";
"${modifier}+Shift+c" = "reload";
"${modifier}+Shift+q" = "kill";
@@ -235,10 +227,10 @@ in {
"${modifier}+Return" = "exec ${(defaultApplications pkgs).terminal}";
"${modifier}+t" = "exec ${(defaultApplications pkgs).fileManager}";
"${modifier}+y" = "exec ${(defaultApplications pkgs).browser}";
"${modifier}+0" = "exec ${scripts.menu-calc}/bin/=";
"${modifier}+0" = "exec ${pkgs.scripts.menu-calc}/bin/=";
"${modifier}+Shift+w" = "exec ${scripts.k-lock}/bin/k-lock";
"${modifier}+d" = "exec ${pkgs.writers.writeDash "run" ''exec rofi -modi run,ssh,window -show run''}";
"${modifier}+Shift+w" = "exec ${pkgs.scripts.k-lock}/bin/k-lock";
"${modifier}+d" = "exec ${pkgs.writers.writeDash "run" ''exec ${pkgs.rofi}/bin/rofi -modi run,window,ssh,filebrowser -show run''}";
"${modifier}+Shift+d" = "exec ${
pkgs.writers.writeDash "notemenu" ''
set -efu
@@ -250,38 +242,37 @@ in {
note_file=$({
echo diary/$(date -I).md
echo diary/$(date -I -d yesterday).md
find . ! -name '.*' -type f -printf "%T@ %p\n" | sort --reverse --numeric-sort | cut --delimiter=" " --fields=2-
find . -type f -printf "%T@ %p\n" | sort --reverse --numeric-sort | cut --delimiter=" " --fields=2
} | rofi -dmenu -i -p 'notes')
if test "$note_file"
then
alacritty --working-directory ~/notes -e "$EDITOR" "$note_file"
i3-sensible-terminal -e "$EDITOR" "$note_file"
fi
''
}";
"${modifier}+p" = "exec rofi-pass";
"${modifier}+Shift+p" = "exec rofi-pass --insert";
"${modifier}+u" = "exec ${scripts.unicodmenu}/bin/unicodmenu";
"${modifier}+p" = "exec --no-startup-id ${pkgs.rofi-pass}/bin/rofi-pass";
"${modifier}+u" = "exec ${pkgs.scripts.unicodmenu}/bin/unicodmenu";
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
"${modifier}+F7" = "exec ${scripts.showkeys-toggle}/bin/showkeys-toggle";
"${modifier}+F7" = "exec ${pkgs.scripts.showkeys-toggle}/bin/showkeys-toggle";
"${modifier}+F8" = "exec switch-theme toggle";
"${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85";
"${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x";
"${modifier}+F11" = "exec ${pkgs.xcalib}/bin/xcalib -invert -alter";
"${modifier}+F12" = "exec ${klem}/bin/klem";
"Print" = "exec flameshot-once";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86AudioLowerVolume" = "exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioMute" = "exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -t";
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86Calculator" = "exec ${pkgs.st}/bin/st -c floating -e ${pkgs.bc}/bin/bc";
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl pause";
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl stop";
"XF86ScreenSaver" = "exec ${scripts.k-lock}/bin/k-lock";
"XF86AudioPause" = "exec --no-startup-id ${pkgs.playerctl}/bin/playerctl pause";
"XF86AudioPlay" = "exec --no-startup-id ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioNext" = "exec --no-startup-id ${pkgs.playerctl}/bin/playerctl next";
"XF86AudioPrev" = "exec --no-startup-id ${pkgs.playerctl}/bin/playerctl previous";
"XF86AudioStop" = "exec --no-startup-id ${pkgs.playerctl}/bin/playerctl stop";
"XF86ScreenSaver" = "exec ${pkgs.scripts.k-lock}/bin/k-lock";
"XF86Display" = "exec ${scripts.dmenurandr}/bin/dmenurandr";
"XF86Display" = "exec ${pkgs.scripts.dmenurandr}/bin/dmenurandr";
# key names detected with xorg.xev:
# XF86WakeUp (fn twice)

View File

@@ -10,10 +10,6 @@
gr = "polytonic";
ru = "phonetic";
ara = "buckwalter";
cop = "";
ave = "";
"in" = "san-kagapa";
il = "phonetic";
};
defaultLanguage = "de";
in {
@@ -23,30 +19,9 @@ in {
# T3: https://upload.wikimedia.org/wikipedia/commons/a/a9/German-Keyboard-Layout-T3-Version1-large.png
# buckwalter: http://www.qamus.org/transliteration.htm
xkbVariant = "T3";
xkbOptions = commaSep xkbOptions;
xkbOptions =
commaSep xkbOptions;
libinput.enable = true;
xkbDir = pkgs.symlinkJoin {
name = "x-keyboard-directory";
paths = [
"${pkgs.xkeyboard_config}/etc/X11/xkb"
(pkgs.linkFarm "custom-x-keyboards" [
{
name = "symbols/cop";
path = pkgs.fetchurl {
url = "http://www.moheb.de/download/cop";
sha256 = "1l0h6aq536hyinrh0i0ia355y229bjrlibii0sya5bmqh46vycia";
};
}
{
name = "symbols/ave";
path = pkgs.fetchurl {
url = "https://blog.simos.info/wp-content/uploads/2010/06/avestan.txt";
sha256 = "192zmmm3gxyhim39dsax7r87gsay2w5v2xkhwmvsfipjb60hwp5g";
};
}
])
];
};
};
console.keyMap = "de";

View File

@@ -16,22 +16,7 @@
password = lib.fileContents <secrets/nextcloud-fysi/password>;
};
in {
environment.systemPackages = [
pkgs.khal
pkgs.vdirsyncer
pkgs.khard
pkgs.todoman
(pkgs.writers.writeDashBin "todo-procrastinate" ''
[ $# -eq 1 ] || {
echo "Usage: $0 TODO_ID" >&2
exit 1
}
todo_id=$1
new_timestamp=$(${pkgs.todoman}/bin/todo --porcelain show "$todo_id" | ${pkgs.jq}/bin/jq '.due + 24 * 60 * 60')
new_date=$(${pkgs.coreutils}/bin/date +"%Y-%m-%d %H:%M" -d "@$new_timestamp")
${pkgs.todoman}/bin/todo edit "$todo_id" --due "$new_date"
'')
];
environment.systemPackages = [pkgs.khal pkgs.vdirsyncer pkgs.khard pkgs.todoman];
systemd.user.services.vdirsyncer = {
enable = true;

View File

@@ -14,7 +14,6 @@
nginx.enable = false;
node = {
enable = true;
openFirewall = true;
enabledCollectors = [
"conntrack"
"diskstats"
@@ -39,6 +38,8 @@
};
};
networking.firewall.allowedTCPPorts = [config.services.prometheus.exporters.node.port];
systemd.services.promtail = {
description = "Promtail service for Loki";
wantedBy = ["multi-user.target"];

View File

@@ -4,8 +4,7 @@
config,
...
}: let
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
swallow = command: "${scripts.swallow}/bin/swallow ${command}";
swallow = command: "${pkgs.scripts.swallow}/bin/swallow ${command}";
in {
environment.shellAliases.smpv = swallow "mpv";

View File

@@ -6,8 +6,11 @@
mainMailbox = "posteo";
accounts = import <niveum/lib/email.nix> {inherit lib mainMailbox;};
in {
environment.systemPackages = [pkgs.neomutt];
environment.shellAliases.mua = "${pkgs.neomutt}/bin/neomutt -f ${mainMailbox}";
neomuttConfig = emailAccounts: let
home-manager.users.me.xdg.configFile."neomutt/neomuttrc".text = let
as-pdf = pkgs.writers.writeDash "as-pdf" ''
d=$(mktemp -d)
trap clean EXIT
@@ -23,7 +26,7 @@
text/plain; $EDITOR %s ;
text/html; ${pkgs.lynx}/bin/lynx -assume_charset=%{charset} -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput;
image/*; ${pkgs.nsxiv}/bin/nsxiv %s ;
video/*; ${pkgs.util-linux}/bin/setsid ${pkgs.mpv}/bin/mpv --quiet %s &; copiousoutput
video/*; ${pkgs.utillinux}/bin/setsid ${pkgs.mpv}/bin/mpv --quiet %s &; copiousoutput
audio/*; ${pkgs.mpv}/bin/mpv %s ;
application/pdf; ${pkgs.zathura}/bin/zathura %s ;
application/pgp-encrypted; ${pkgs.gnupg}/bin/gpg -d '%s'; copiousoutput;
@@ -98,7 +101,7 @@
folder-hook ${account.user}@${account.imap} 'set smtp_url="${account.smtpSettings "${account.user}@${account.smtp}"}" from="${account.address}" record="${imapRoot}/${account.folders.sent}" postponed="${imapRoot}/${account.folders.drafts}" trash="${imapRoot}/${account.folders.trash}"'
named-mailboxes "${name}" "${imapRoot}" "${name}" "${imapRoot}/${account.folders.sent}"
'')
emailAccounts)
accounts)
}
''
}
@@ -158,15 +161,4 @@
''
}
'';
in {
environment.systemPackages = [pkgs.neomutt];
environment.shellAliases =
lib.mapAttrs' (accountName: account:
lib.nameValuePair
"mua-${accountName}"
"${pkgs.neomutt}/bin/neomutt -F ${pkgs.writeText "neomuttrc-${accountName}" (neomuttConfig {"${accountName}" = accounts.${accountName};})}")
accounts
// {mua = "${pkgs.neomutt}/bin/neomutt -f ${mainMailbox}";};
home-manager.users.me.xdg.configFile."neomutt/neomuttrc".text = neomuttConfig accounts;
}

View File

@@ -44,14 +44,12 @@
vim-repeat
vim-sensible
vim-surround
(pkgs.vimUtils.buildVimPlugin rec {
pname = "vim-dim";
version = "1.1.0";
name = "${pname}-${version}";
(pkgs.vimUtils.buildVimPlugin {
name = "vim-dim-1.1.0";
src = pkgs.fetchFromGitHub {
owner = "jeffkreeftmeijer";
repo = pname;
rev = version;
repo = "vim-dim";
rev = "1.1.0";
sha256 = "sha256-lyTZUgqUEEJRrzGo1FD8/t8KBioPrtB3MmGvPeEVI/g=";
};
})

View File

@@ -1,42 +1,17 @@
{
pkgs,
config,
lib,
...
}: let
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
ytdl-format = "'bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best'";
youtube-download = "${pkgs.ts}/bin/ts ${pkgs.yt-dlp}/bin/yt-dlp -f ${ytdl-format} --add-metadata";
newsboat-home = "${config.users.users.me.home}/cloud/Seafile/Documents/newsboat";
linkhandler = pkgs.writers.writeDash "linkhandler" ''
# Feed script a url or file location.
# If an image, it will view in sxiv,
# if a video or gif, it will view in mpv
# if a music file or pdf, it will download,
# otherwise it opens link in browser.
# If no url given. Opens browser. For using script as $BROWSER.
[ -z "$1" ] && { "$BROWSER"; exit; }
case "$1" in
*mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*)
setsid -f ${pkgs.mpv}/bin/mpv -quiet "$1" >/dev/null 2>&1 ;;
*png|*jpg|*jpe|*jpeg|*gif)
curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///")" >/dev/null 2>&1 & ;;
*mp3|*flac|*opus|*mp3?source*)
setsid -f tsp curl -LO "$1" >/dev/null 2>&1 ;;
*)
if [ -f "$1" ]; then "$TERMINAL" -e "$EDITOR" "$1"
else setsid -f "$BROWSER" "$1" >/dev/null 2>&1; fi ;;
esac
'';
linkhandler-bin = "${pkgs.scripts.linkhandler}/bin/linkhandler";
newsboat-config = pkgs.writeText "config" ''
auto-reload no
reload-threads 8
prepopulate-query-feeds yes
# dont keep a search history
@@ -46,12 +21,12 @@
text-width 85
external-url-viewer "${pkgs.urlscan}/bin/urlscan -dc -r '${linkhandler} {}'"
browser ${linkhandler}
external-url-viewer "${pkgs.urlscan}/bin/urlscan -dc -r '${linkhandler-bin} {}'"
browser ${linkhandler-bin}
macro , open-in-browser
macro c set browser "${pkgs.xsel}/bin/xsel -b <<<" ; open-in-browser ; set browser ${linkhandler}
macro v set browser "${pkgs.util-linux}/bin/setsid -f ${pkgs.mpv}/bin/mpv" ; open-in-browser ; set browser ${linkhandler}
macro y set browser "${youtube-download}" ; open-in-browser ; set browser ${linkhandler}
macro c set browser "${pkgs.xsel}/bin/xsel -b <<<" ; open-in-browser ; set browser ${linkhandler-bin}
macro v set browser "${pkgs.utillinux}/bin/setsid -f ${pkgs.mpv}/bin/mpv" ; open-in-browser ; set browser ${linkhandler-bin}
macro y set browser "${youtube-download}" ; open-in-browser ; set browser ${linkhandler-bin}
bind-key j down
bind-key k up
@@ -86,24 +61,13 @@
color listfocus blue default
color listfocus_unread blue default bold
color info red default bold
urls-source "ttrss"
ttrss-url "https://feed.kmein.de"
ttrss-login "k"
ttrss-flag-star "s"
ttrss-password "${lib.strings.fileContents <secrets/tt-rss/password>}"
ttrss-mode "multi"
'';
newsboat-sql = "${pkgs.sqlite}/bin/sqlite3 ${newsboat-home}/cache.db";
in {
nixpkgs.config.packageOverrides = pkgs: {
newsboat = pkgs.writers.writeDashBin "newsboat" ''
${pkgs.newsboat}/bin/newsboat -C ${newsboat-config} -u ${pkgs.writeText "newsboat-urls" ''
https://feed.kmein.de/public.php?op=rss&id=-1&is_cat=0&q=&key=${lib.strings.fileContents <secrets/tt-rss/private-rss.key>} "foo"
"query:🕒 Read Later:flags # \"e\""
"query:📥 Unread:unread = \"yes\""
''} "$@"
${pkgs.newsboat}/bin/newsboat -C ${newsboat-config} -c ${newsboat-home}/cache.db -u ${newsboat-home}/urls "$@"
'';
};

View File

@@ -3,13 +3,11 @@
lib,
...
}: let
hc = pkgs.callPackage <stockholm/tv/5pkgs/simple/hc.nix> {utillinux = pkgs.util-linux;};
hc = pkgs.callPackage <stockholm/tv/5pkgs/simple/hc.nix> {};
worldradio = pkgs.callPackage <niveum/packages/worldradio.nix> {};
menstruation = pkgs.callPackage <menstruation-backend> {};
pandoc-doc = pkgs.callPackage <niveum/packages/man/pandoc.nix> {};
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
zoteroStyle = {
name,
sha256,
@@ -96,16 +94,16 @@ in {
file # determine file type
dos2unix
genpass # generate passwords
gdu # ncurses disk usage (ncdu is broken)
ncdu # ncurses disk usage
rmlint # remove duplicate files
python3Packages.jsonschema # json validation
jq # json toolkit
pup # html toolkit
htmlq
xsv # csv toolkit
fq # toolkit for yaml, xml and binaries
xmlstarlet # xml toolkit
man-pages
man-pages-posix
posix_man_pages
tree
exfat # to mount windows drives
parallel # for parallel, since moreutils shadows task spooler
@@ -184,7 +182,6 @@ in {
scripts.trans
scripts.mpv-radio
# kmein.slide
termdown
scripts.tolino-screensaver
scripts.rfc
scripts.tag
@@ -236,7 +233,7 @@ in {
py.pygments
py.schema
]))
# python3Packages.poetry
python3Packages.poetry
html-tidy
nodePackages.csslint

View File

@@ -8,19 +8,6 @@ in {
home-manager.users.me.programs.rofi = {
enable = true;
font = "Monospace 10";
theme = "${pkgs.rofi}/share/rofi/themes/Arc.rasi";
pass = {
enable = true;
extraConfig = ''
_pwgen() {
${pkgs.genpass}/bin/genpass "$@"
}
USERNAME_field='login'
default_user2=kmein
help_color="#FF0000"
''; # help_color set by https://github.com/mrossinek/dotfiles/commit/13fc5f24caa78c8f20547bf473266879507f13bf
};
plugins = [pkgs.rofi-calc];
theme = "${pkgs.rofi}/share/rofi/themes/Arc-Dark.rasi";
};
}

View File

@@ -7,10 +7,4 @@
fonts.fontconfig.enable = false;
nix.gc.automatic = true;
nix.optimise.automatic = true;
services.journald.extraConfig = "SystemMaxUse=500M";
# https://webzine.snowflake.ovh/issue-001.html -- garbage collect when less then 1 GB is available, make 3 GB fee
nix.extraOptions = ''
min-free = 1073741824
max-free = 3221225472
'';
}

View File

@@ -7,12 +7,24 @@
inherit (import <niveum/lib>) sshPort kieran;
externalNetwork = import <niveum/lib/external-network.nix>;
sshIdentity = name: "${config.users.users.me.home}/.ssh/${name}";
ssh-passphease = lib.strings.fileContents <system-secrets/ssh/passphrase>;
in {
services.xserver.displayManager.sessionCommands = toString (pkgs.writeScript "ssh-add" ''
#!${pkgs.expect}/bin/expect -f
spawn ${pkgs.openssh}/bin/ssh-add
expect "Enter passphrase for *:"
send "${ssh-passphrase}\n";
expect "Identity added: *"
interact
'');
programs.ssh.startAgent = true;
users.users.me.openssh.authorizedKeys.keys = kieran.sshKeys pkgs;
home-manager.users.me.programs.ssh = {
enable = true;
matchBlocks = rec {
matchBlocks = {
"github.com" = {
hostname = "ssh.github.com";
port = 443;
@@ -37,11 +49,6 @@ in {
user = "root";
port = sshPort;
};
tabula = {
hostname = "tabula.r";
user = "root";
port = sshPort;
};
manakish = {
hostname = "manakish.r";
user = "kfm";
@@ -65,7 +72,6 @@ in {
user = "root";
identityFile = sshIdentity "fysiweb";
};
${fysi-dev1.hostname} = fysi-dev1;
"fysi-shared0" = {
hostname = "49.12.205.235";
user = "root";

View File

@@ -44,7 +44,7 @@
'';
in {
niveum.telegramBots.transits = {
enable = true;
enable = false;
time = "*:0/1";
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
chatIds = ["-1001796440545"];
@@ -52,7 +52,7 @@ in {
now=$(${pkgs.coreutils}/bin/date +%_H:%M | ${pkgs.gnused}/bin/sed 's/^\s*//')
date=$(${pkgs.coreutils}/bin/date +'%m %d %Y')
{
${unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node" -A 2
${unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node"
${unstable.astrolog}/bin/astrolog -Yt -Yd -q 10 22 1999 6:32 -zN Kassel -td $date -R Uranus Neptune Pluto "North Node"
} | ${toSymbols} | ${pkgs.coreutils}/bin/sort -n | ${pkgs.gnugrep}/bin/grep "^$now" || :
'');

View File

@@ -1,35 +0,0 @@
{
pkgs,
lib,
...
}: let
celan = pkgs.fetchzip {
url = "http://c.krebsco.de/celan.tar.gz";
sha256 = "sha256-nA+EwAH2vkeolsy9AoPLEMt1uGKDZe/aPrS95CZvuus=";
};
in {
niveum.telegramBots.celan = {
enable = true;
time = "08:00";
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
chatIds = ["@PaulCelan"];
command = toString (pkgs.writers.writeDash "random-celan" ''
cd ${celan}
poem="$(${pkgs.findutils}/bin/find . -type f | ${pkgs.coreutils}/bin/shuf -n1)"
source="$(${pkgs.coreutils}/bin/dirname "$poem" | ${pkgs.gnused}/bin/sed 's#^\./##;s/[-_]/ /g;s!/! !g;s/0\([0-9]\+\)/\1/g')"
cat "$poem"
echo
printf "Aus: %s\n" "$source"
'');
};
systemd.timers.telegram-bot-celan.timerConfig.RandomizedDelaySec = "10h";
niveum.passport.services = [
{
title = "Paul Celan Bot";
description = "sends a random poem by Paul Celan to Telegram.";
link = "https://t.me/PaulCelan";
}
];
}

View File

@@ -22,7 +22,6 @@ in {
./smyth.nix
./nachtischsatan.nix
./tlg-wotd.nix
./celan.nix
<niveum/modules/telegram-bot.nix>
];

View File

@@ -5,7 +5,7 @@
}: {
niveum.telegramBots.smyth = {
enable = true;
time = "08:00";
time = "06/6:00";
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
chatIds = ["@HerbertWeirSmyth"];
command = toString (pkgs.writers.writeDash "random-smyth" ''
@@ -25,7 +25,7 @@
'');
};
systemd.timers.telegram-bot-smyth.timerConfig.RandomizedDelaySec = "10h";
systemd.timers.telegram-bot-smyth.timerConfig.RandomizedDelaySec = "3h";
niveum.passport.services = [
{

View File

@@ -12,7 +12,7 @@
${pkgs.curl}/bin/curl -sSL http://stephanus.tlg.uci.edu/Iris/Wotd \
| ${pkgs.recode}/bin/recode html..utf8 \
| ${pkgs.jq}/bin/jq -r '
"*\(.word)* '\'''\(.definition | sub("<.*>"; "") | rtrimstr(" "))'\'''\n\nFirst occurrence: \(.firstOccurrence)\nNumber of occurrences: \(.totalOccurrences)"
"*\(.word)* '\'''\(.definition | rtrimstr(" "))'\'''\n\nFirst occurrence: \(.firstOccurrence)\nNumber of occurrences: \(.totalOccurrences)"
'
'');
parseMode = "Markdown";

View File

@@ -7,15 +7,6 @@
# nothing to see here
'';
environment.systemPackages = [pkgs.atuin];
environment.variables.ATUIN_CONFIG_DIR = toString (pkgs.writeTextDir "/config.toml" ''
auto_sync = true
update_check = false
sync_address = "http://zaatar.r:8888"
sync_frequency = 0
style = "compact"
'');
programs.zsh = let
zsh-completions = pkgs.fetchFromGitHub {
owner = "zsh-users";
@@ -23,6 +14,12 @@
rev = "cf565254e26bb7ce03f51889e9a29953b955b1fb";
sha256 = "1yf4rz99acdsiy0y1v3bm65xvs2m0sl92ysz0rnnrlbd5amn283l";
};
zsh-history-substring-search = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-history-substring-search";
rev = "aae3388491c2312c4efb2e86bcb999927bb2900e";
sha256 = "0lgmq1xcccnz5cf7vl0r0qj351hwclx9p80cl0qczxry4r2g5qaz";
};
in {
enable = true;
enableCompletion = true;
@@ -57,6 +54,12 @@
autoload -U zmv run-help
fpath=(${zsh-completions}/src $fpath)
source ${zsh-history-substring-search}/zsh-history-substring-search.zsh
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey -M vicmd 'k' history-substring-search-up
bindkey -M vicmd 'j' history-substring-search-down
'';
promptInit = with config.niveum; ''
autoload -Uz vcs_info
@@ -68,13 +71,6 @@
zstyle ':vcs_info:*' formats "%c%u%F{cyan}%b%f"
zstyle ':vcs_info:*' actionformats "(%a) %c%u%F{cyan}%b%f"
# atuin distributed shell history
export ATUIN_NOBIND="true" # disable all keybdinings of atuin
eval "$(atuin init zsh)"
bindkey '^r' _atuin_search_widget # bind ctrl+r to atuin
# use zsh only session history
fc -p
precmd () {
vcs_info
RPROMPT="$vcs_info_msg_0_"

84
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
@@ -23,11 +23,11 @@
"utils": "utils"
},
"locked": {
"lastModified": 1670058827,
"narHash": "sha256-T+yyncPpZWeIkFrG/Cgj21iopULY3BZGWIhcT5ZmCgM=",
"lastModified": 1661573386,
"narHash": "sha256-pBEg8iY00Af/SAtU2dlmOAv+2x7kScaGlFRDjNoVJO8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "eb3598cf44aa10f2a16fe38488a102c0f474d766",
"rev": "d89bdff445eadff03fe414e9c30486bc8166b72b",
"type": "github"
},
"original": {
@@ -63,11 +63,11 @@
"menstruation-backend": {
"flake": false,
"locked": {
"lastModified": 1667816906,
"narHash": "sha256-VdckYVSQZfqThPb06Y5TGSI+kkibgM/G9pH5SQHIybI=",
"lastModified": 1649545504,
"narHash": "sha256-TVm3246ML7gWPeGm+bdb+Qo8o/7nve7sQ2hBdCZm3z8=",
"owner": "kmein",
"repo": "menstruation.rs",
"rev": "95c495d453c35f20a6a5641a88a862c668404acf",
"rev": "d9f3c6d53542fd7c7ed191e37cf4e342d4a47bcb",
"type": "github"
},
"original": {
@@ -79,11 +79,11 @@
"menstruation-telegram": {
"flake": false,
"locked": {
"lastModified": 1667816918,
"narHash": "sha256-yQSl0iKqHm7qFLELY8e7OzRRdnqSBbzJmQIYgkXlJpQ=",
"lastModified": 1634815642,
"narHash": "sha256-q1OTMx5ayNu9ppHJBDUie/ow+BcA5DXnHEm11EY+C4E=",
"owner": "kmein",
"repo": "menstruation-telegram",
"rev": "828872cf9c425442705a95019eceee397bc1c03f",
"rev": "a34555cf46f02157718b0565b5456348fff54181",
"type": "github"
},
"original": {
@@ -95,11 +95,11 @@
"nix-writers": {
"flake": false,
"locked": {
"lastModified": 1669756621,
"narHash": "sha256-Scg3pf+igUXt/YTO8kxQLBmBqCgGPVt/16DFC8YuA2g=",
"lastModified": 1554228333,
"narHash": "sha256-hG/PlcCvCQhNcU55NpHfATkyH9k6cZmO7uvBoJjasXU=",
"ref": "refs/heads/master",
"rev": "f65c77bdcc58be2081a0ffbda849289c5191b5e8",
"revCount": 33,
"rev": "c528cf970e292790b414b4c1c8c8e9d7e73b2a71",
"revCount": 32,
"type": "git",
"url": "https://cgit.krebsco.de/nix-writers"
},
@@ -110,27 +110,27 @@
},
"nixos-stable": {
"locked": {
"lastModified": 1670009809,
"narHash": "sha256-yt/dQ32Vz4WenDLu4XeHbnXFxiHbTcnU0WwiLW5Ce6c=",
"lastModified": 1661520432,
"narHash": "sha256-9z+WDeXiu3hobvSsL0SbHDx4s+kFmm8eussySuX4zCM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "660e7737851506374da39c0fa550c202c824a17c",
"rev": "f11e12ac6af528c1ba12426ce83cee26f21ceafd",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"ref": "nixos-22.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixos-unstable": {
"locked": {
"lastModified": 1669969257,
"narHash": "sha256-mOS13sK3v+kfgP+1Mh56ohiG8uVhLHAo7m/q9kqAehc=",
"lastModified": 1660305968,
"narHash": "sha256-r0X1pZCSEA6mzt5OuTA7nHuLmvnbkwgpFAh1iLIx4GU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b72b8b94cf0c012b0252a9100a636cad69696666",
"rev": "c4a0efdd5a728e20791b8d8d2f26f90ac228ee8d",
"type": "github"
},
"original": {
@@ -143,11 +143,11 @@
"recht": {
"flake": false,
"locked": {
"lastModified": 1669719044,
"narHash": "sha256-WsLWlTM2Hrurj9kVajybIOavV9QPYiJweMCOQR6h+YI=",
"lastModified": 1619583518,
"narHash": "sha256-3eFw6xWue9cvPxXq1ROq32ecvPOmqOedgQhyOr7N9iE=",
"owner": "kmein",
"repo": "recht",
"rev": "7c15b13328fb5cee01012c488ff235ee730cac70",
"rev": "d551afed23122bb3106e59eb2274394ec5555048",
"type": "github"
},
"original": {
@@ -159,11 +159,11 @@
"retiolum": {
"flake": false,
"locked": {
"lastModified": 1669935035,
"narHash": "sha256-D2YWXLvjvyVaQHZyJlmbT46LCvYE0SIK2IVVhrhVBSQ=",
"lastModified": 1660680907,
"narHash": "sha256-D6XkykgU1BiDAnnFG9NwSqBRKCZAHK+2+Ri2/m9rzo8=",
"owner": "krebs",
"repo": "retiolum",
"rev": "cada994815864d4cc1edb9d76df74beafc496481",
"rev": "c4d6b07be29b3b9267027ed25792a2cb350459d5",
"type": "github"
},
"original": {
@@ -195,11 +195,11 @@
"scripts": {
"flake": false,
"locked": {
"lastModified": 1669193831,
"narHash": "sha256-R8RNb7mM0bDF3UTfQqpumYPBwal7QzWSKgxMUY2dRm8=",
"lastModified": 1662493500,
"narHash": "sha256-EdAEKDQ6z7oinqQ28ELE3+taJ106DgmhNJt/rpqHJic=",
"owner": "kmein",
"repo": "scripts",
"rev": "84ad80348294e9423996b52a4b112700ae5d3176",
"rev": "51c641ac3c1100d80313696663db70c2eb3698dc",
"type": "github"
},
"original": {
@@ -211,11 +211,11 @@
"stockholm": {
"flake": false,
"locked": {
"lastModified": 1670868652,
"narHash": "sha256-Y5kEs6GsKMvkLe+q+rAQDTIpLwmbt51lB07JLGbi4f8=",
"lastModified": 1661246925,
"narHash": "sha256-hGNCF4m3SuVogqoipmJzNIKoh03S/SMnO5oMHgfHWjA=",
"ref": "refs/heads/master",
"rev": "3884243448869bdf09f6434b385e532c7c26ae88",
"revCount": 11077,
"rev": "d1fa957ed5bf60767c83c96135f9142f6c96ea50",
"revCount": 10749,
"type": "git",
"url": "https://cgit.lassul.us/stockholm"
},
@@ -243,11 +243,11 @@
"tinc-graph": {
"flake": false,
"locked": {
"lastModified": 1666162569,
"narHash": "sha256-7ebWs/ryDebUMONkn6dPckNnUGrEuPQScoY+O/+vo+Q=",
"lastModified": 1653080212,
"narHash": "sha256-BcfppAuVNp0hMcrMG/ZxE4juSrdQbJSUIA0eHS1/Wxo=",
"owner": "kmein",
"repo": "tinc-graph",
"rev": "72a4b305fcb49cfd6d456103cda45888a6b34bbe",
"rev": "ea0ef2e5542684d1d8e34a626cb9295dec33e70d",
"type": "github"
},
"original": {
@@ -290,11 +290,11 @@
},
"utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"type": "github"
},
"original": {

View File

@@ -2,7 +2,7 @@
description = "niveum: packages, modules, systems";
inputs = {
nixos-stable.url = "github:NixOS/nixpkgs/nixos-22.11";
nixos-stable.url = "github:NixOS/nixpkgs/nixos-22.05";
nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
@@ -172,10 +172,9 @@
sources =
["nix-writers" "nixpkgs" "retiolum" "stockholm"]
++ {
zaatar = ["traadfri" "nixos-unstable"];
zaatar = ["traadfri"];
ful = [];
tahina = [];
tabula = [];
kabsa = ["traadfri" "nixos-unstable" "home-manager" "menstruation-backend" "recht"];
manakish = ["traadfri" "nixos-unstable" "home-manager" "menstruation-backend" "recht"];
makanek = ["nixos-unstable" "menstruation-telegram" "menstruation-backend" "scripts" "telebots" "tinc-graph"];

View File

@@ -1,37 +1,37 @@
rec {
black = {
bright = "#282c34";
dark = "#282c34";
bright = "#4b4b4b";
dark = "#242424";
};
red = {
bright = "#e06c75";
dark = "#e06c75";
bright = "#fc1c18";
dark = "#d71c15";
};
green = {
bright = "#98c379";
dark = "#98c379";
bright = "#6bc219";
dark = "#5aa513";
};
yellow = {
bright = "#e5c07b";
dark = "#e5c07b";
bright = "#fec80e";
dark = "#fdb40c";
};
blue = {
bright = "#61afef";
dark = "#61afef";
bright = "#0955ff";
dark = "#063b8c";
};
magenta = {
bright = "#c678dd";
dark = "#c678dd";
bright = "#fb0050";
dark = "#e40038";
};
cyan = {
bright = "#56b6c2";
dark = "#56b6c2";
bright = "#3ea8fc";
dark = "#2595e1";
};
white = {
bright = "#dcdfe4";
dark = "#dcdfe4";
bright = "#8c00ec";
dark = "#efefef";
};
background = black.dark;
foreground = white.bright;
cursor = "#a3b3cc";
background = "#181818";
foreground = white.dark;
cursor = "#bbbbbb";
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
bright = "#4b4b4b";
dark = "#242424";
};
red = {
bright = "#fc1c18";
dark = "#d71c15";
};
green = {
bright = "#6bc219";
dark = "#5aa513";
};
yellow = {
bright = "#fec80e";
dark = "#fdb40c";
};
blue = {
bright = "#0955ff";
dark = "#063b8c";
};
magenta = {
bright = "#fb0050";
dark = "#e40038";
};
cyan = {
bright = "#3ea8fc";
dark = "#2595e1";
};
white = {
bright = "#8c00ec";
dark = "#efefef";
};
background = white.dark;
foreground = "#181818";
cursor = "#bbbbbb";
}

View File

@@ -0,0 +1,37 @@
rec {
black = {
bright = "#282c34";
dark = "#282c34";
};
red = {
bright = "#e06c75";
dark = "#e06c75";
};
green = {
bright = "#98c379";
dark = "#98c379";
};
yellow = {
bright = "#e5c07b";
dark = "#e5c07b";
};
blue = {
bright = "#61afef";
dark = "#61afef";
};
magenta = {
bright = "#c678dd";
dark = "#c678dd";
};
cyan = {
bright = "#56b6c2";
dark = "#56b6c2";
};
white = {
bright = "#dcdfe4";
dark = "#dcdfe4";
};
background = black.dark;
foreground = white.bright;
cursor = "#a3b3cc";
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
dark = "#1c1c1c";
bright = "#585858";
};
red = {
dark = "#af005f";
bright = "#5faf5f";
};
green = {
bright = "#afd700";
dark = "#5faf00";
};
yellow = {
bright = "#af87d7";
dark = "#d7af5f";
};
blue = {
dark = "#5fafd7";
bright = "#ffaf00";
};
magenta = {
bright = "#ff5faf";
dark = "#808080";
};
cyan = {
dark = "#d7875f";
bright = "#00afaf";
};
white = {
dark = "#d0d0d0";
bright = "#5f8787";
};
background = black.dark;
foreground = white.dark;
cursor = blue.bright;
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
dark = "#eeeeee";
bright = "#bcbcbc";
};
red = {
dark = "#af0000";
bright = "#d70000";
};
green = {
dark = "#008700";
bright = "#d70087";
};
yellow = {
dark = "#5f8700";
bright = "#8700af";
};
blue = {
dark = "#0087af";
bright = "#d75f00";
};
magenta = {
bright = "#878787";
dark = "#d75f00";
};
cyan = {
dark = "#005f87";
bright = "#005faf";
};
white = {
dark = "#444444";
bright = "#005f87";
};
background = black.dark;
foreground = white.dark;
cursor = blue.bright;
}

View File

@@ -40,16 +40,16 @@ rec {
sshPort = 22022;
colours = import ./colours/papercolor-dark.nix;
colours = import ./colours/ibm-3270.nix;
theme = pkgs: {
gtk = {
name = "Adwaita-dark";
package = pkgs.gnome.gnome-themes-extra;
package = pkgs.gnome3.gnome-themes-extra;
};
icon = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
package = pkgs.gnome3.adwaita-icon-theme;
};
cursor = {
name = "capitaine-cursors-white";

View File

@@ -8,7 +8,7 @@
setsid = script:
pkgs.writers.writeDash "setsid-command" ''
${pkgs.util-linux}/bin/setsid ${script}
${pkgs.utillinux}/bin/setsid ${script}
'';
accounts = import <niveum/lib/email.nix> {inherit lib;};
@@ -23,7 +23,7 @@ in {
warning_fg = colours.yellow.bright;
warning_bg = colours.background;
alternating_tint_bg = colours.background;
alternating_tint_fg = colours.foreground;
alternating_tint_fg = colours.background;
critical_bg = colours.background;
good_bg = colours.background;
idle_bg = colours.background;
@@ -75,7 +75,7 @@ in {
{
block = "github";
info = ["total"];
warning = ["mention" "review_requested" "team_mention" "manual" "invitation" "assign" "subscribed"];
warning = ["mention" "review_requested"];
}
{
block = "custom";

View File

@@ -23,10 +23,7 @@
ipv4 = "10.243.2.85";
ipv6 = "42:0:3c46:ac99:ae36:cb8:c551:ba27";
};
tabula = {
ipv4 = "10.243.2.78";
ipv6 = "";
};
tahina = {
ipv4 = "10.243.2.74";
ipv6 = "42:0:3c46:2923:1c90:872:edd6:306";

View File

@@ -6,7 +6,7 @@ let
ambient = "🧘 Ambient";
american = "🇺🇸 USA";
amro = "👦 Amro";
arabic = "🇱🇧 عربي";
arabic = "🇸🇦 عربيic";
balkan = "🇧🇦 Balkan";
berlin = "🐻 Berlin";
brazilian = "🇧🇷 Brasil";
@@ -14,7 +14,6 @@ let
chinese = "🇨🇳 ";
classical = "🎻 Classical";
discover = "😲 Discover";
danish = "🇩🇰 Dansk";
dnb = "🥁 DnB";
dubstep = "🎆 Dubstep";
french = "🇫🇷 France";
@@ -31,7 +30,6 @@ let
metal = "🤘 Metal";
party = "🪩 Party";
pop = "🎙 Pop";
radiorecord = " Record";
rap = "💸 Rap";
rock = "🎸 Rock";
russian = "🇷🇺 Россия";
@@ -72,9 +70,6 @@ let
royal-name = name: "${name} | RoyalRadio";
royal = name: "http://193.33.170.218:8000/${name}";
dr-name = name: "${name} | Danmarks Radio";
dr = name: let quality = 320; in "https://drliveradio.akamaized.net/hls/live/2022411-b/${name}/playlist-${toString quality}000.m3u8";
bhaktiworld-name = name: "${name} | Bhaktiworld";
bhaktiworld = name: "http://${name}.out.airtime.pro:8000/${name}_a";
bhaktiworld-logo = "http://www.bhaktiworld.com/Bhakti-world-logo.png";
@@ -157,7 +152,7 @@ in
}
{
stream = "http://rb-stream.de:8000/rrb_128.mp3";
station = "Radio Golos Berlina";
station = "Radio Russkij Berlin";
logo = "http://radio-rb.de/img/site/logo.png";
desc = "Голос нашего города ...";
tags = [tags.berlin tags.russian];
@@ -169,7 +164,7 @@ in
]
++
# generated via: curl https://radiorecord.ru/api/stations | jq '.result.stations | sort_by(.sort) | map({station:.title,desc:.tooltip,logo:.icon_fill_colored,stream:.stream_320})' > radiorecord.json
map (x: x // {tags = [tags.radiorecord];}) (importJSON ./radiorecord.json)
importJSON ./radiorecord.json
++ [
{
desc = "Your favorite dance tunes from the start of the decade. Familiar hits and overlooked classics in abundance.";
@@ -1786,41 +1781,6 @@ in
stream = "http://radio.hostchefs.net:8046/stream";
tags = [tags.greek];
}
{
station = dr-name "P4 København";
stream = dr "p4kobenhavn";
tags = [tags.top40 tags.danish];
}
{
station = dr-name "P1";
stream = dr "p1";
tags = [tags.top40 tags.danish];
}
{
station = dr-name "P2";
stream = dr "p2";
tags = [tags.classical tags.danish];
}
{
station = dr-name "P3";
stream = dr "p3";
tags = [tags.top40 tags.danish];
}
{
station = dr-name "P5 København";
stream = dr "p5kobenhavn";
tags = [tags.top40 tags.danish];
}
{
station = dr-name "P6 Beat";
stream = dr "p6beat";
tags = [tags.top40 tags.danish];
}
{
station = dr-name "P8 Jazz";
stream = dr "p8jazz";
tags = [tags.jazz tags.danish];
}
]
/*
(caster-fm "TODO" "noasrv" 10182) # https://github.com/cccruzr/albumsyoumusthear/blob/7e00baf575e4d357cd275d54d1aeb717321141a8/HLS/IBERO_90_1.m3u

View File

@@ -1,7 +0,0 @@
{pkgs ? import <nixpkgs> {}}:
pkgs.writers.writeDashBin "jsesh" ''
${pkgs.jre}/bin/java -jar ${pkgs.fetchzip {
url = "https://github.com/rosmord/jsesh/releases/download/release-7.5.5/JSesh-7.5.5.zip";
sha256 = "1z7ln51cil9pypz855x9a8p9ip2aflvknh566wcaah1kmz3fp57r";
}}/lib/jseshAppli-7.5.5.jar
''

View File

@@ -2,7 +2,7 @@
lib,
stdenv,
cmake,
pkg-config,
pkgconfig,
libogg,
fetchFromGitHub,
}:
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
buildInputs = [libogg];
nativeBuildInputs = [cmake pkg-config];
nativeBuildInputs = [cmake pkgconfig];
meta = with lib; {
homepage = "https://github.com/fmang/opustags";

12
packages/rofi-pass.patch Normal file
View File

@@ -0,0 +1,12 @@
diff --git a/rofi-pass b/rofi-pass
index 48928db..13682a5 100755
--- a/rofi-pass
+++ b/rofi-pass
@@ -15,7 +15,7 @@ _image_viewer () {
# We expect to find these fields in pass(1)'s output
URL_field='url'
-USERNAME_field='user'
+USERNAME_field='login'
AUTOTYPE_field='autotype'
OTPmethod_field='otp_method'

View File

@@ -278,6 +278,12 @@ in
name = "nix-git";
};
linkhandler = wrapScript {
packages = [pkgs.utillinux pkgs.mpv pkgs.curl pkgs.gnused pkgs.sxiv pkgs.ts];
script = "${voidrice}/.local/bin/linkhandler";
name = "linkhandler";
};
mansplain = wrapScript {
packages = [pkgs.man pkgs.zathura pkgs.dmenu pkgs.gnused];
script = ./mansplain.sh;
@@ -308,7 +314,7 @@ in
};
default-gateway = pkgs.writers.writeDashBin "default-gateway" ''
${pkgs.iproute2}/bin/ip -json route | ${pkgs.jq}/bin/jq --raw-output '.[0].gateway'
${pkgs.iproute}/bin/ip -json route | ${pkgs.jq}/bin/jq --raw-output '.[0].gateway'
'';
betacode =

View File

@@ -20,7 +20,7 @@
with open("${
fetchurl {
url = "https://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt";
sha256 = "0wva6ygnh3wrzpzy0kcbc32hz1ydx3k2pqc5xkqrfw83cpnrlvl0";
sha256 = "sha256-NgGOaGV/3LNIX2NmMP/oyFMuAcl3cD0oA/W4nWxf6vs=";
}
}", "r") as unicode_data:
reader = csv.reader(unicode_data, delimiter=";")

View File

@@ -2,8 +2,7 @@
vimUtils,
fetchFromGitHub,
}: (vimUtils.buildVimPluginFrom2Nix {
pname = "cheat.sh-vim";
version = "826219d1";
name = "cheat.sh-vim";
src = fetchFromGitHub {
owner = "dbeniamine";
repo = "cheat.sh-vim";

View File

@@ -2,8 +2,7 @@
vimUtils,
fetchFromGitHub,
}: (vimUtils.buildVimPluginFrom2Nix {
pname = "icalendar.vim";
version = "542fff45";
name = "icalendar.vim";
src = fetchFromGitHub {
owner = "vim-scripts";
repo = "icalendar.vim";

View File

@@ -3,8 +3,7 @@
fetchFromGitHub,
}:
vimUtils.buildVimPluginFrom2Nix {
pname = "jq.vim";
version = "5baf8ed1";
name = "jq.vim";
src = fetchFromGitHub {
owner = "vito-c";
repo = "jq.vim";

View File

@@ -3,8 +3,7 @@
fetchFromGitHub,
}:
vimUtils.buildVimPluginFrom2Nix {
pname = "vim-256noir";
version = "e8668a18";
name = "vim-256noir";
src = fetchFromGitHub {
owner = "andreasvc";
repo = "vim-256noir";

View File

@@ -3,8 +3,7 @@
fetchFromGitHub,
}:
vimUtils.buildVimPluginFrom2Nix rec {
pname = "vim-colors-paramount";
version = "a5601d36";
name = "vim-colors-paramount";
src = fetchFromGitHub {
owner = "owickstrom";
repo = "vim-colors-paramount";

View File

@@ -2,8 +2,7 @@
vimUtils,
fetchFromGitHub,
}: (vimUtils.buildVimPluginFrom2Nix rec {
pname = "vim-fetch";
version = "76c08586";
name = "vim-fetch";
src = fetchFromGitHub {
owner = "wsdjeg";
repo = "vim-fetch";

View File

@@ -3,8 +3,7 @@
fetchFromGitHub,
}:
vimUtils.buildVimPluginFrom2Nix {
pname = "vim-fsharp";
version = "627db7d7";
name = "vim-fsharp";
src = fetchFromGitHub {
owner = "fsharp";
repo = "vim-fsharp";

View File

@@ -3,8 +3,7 @@
fetchFromGitHub,
}:
vimUtils.buildVimPluginFrom2Nix {
pname = "vim-mail";
version = "acdbb5bd";
name = "vim-mail";
src = fetchFromGitHub {
owner = "dbeniamine";
repo = "vim-mail";

View File

@@ -2,8 +2,7 @@
vimUtils,
fetchFromGitHub,
}: (vimUtils.buildVimPluginFrom2Nix {
pname = "vim-reason-plus";
version = "c11a2940";
name = "vim-reason-plus";
src = fetchFromGitHub {
owner = "reasonml-editor";
repo = "vim-reason-plus";

View File

@@ -8,7 +8,7 @@
in {
imports = [
./hardware-configuration.nix
<niveum/configs/monitoring.nix>
# <niveum/configs/monitoring.nix>
<niveum/configs/nix.nix>
<niveum/configs/save-space.nix>
<niveum/configs/spacetime.nix>
@@ -45,7 +45,4 @@ in {
users.users.root.passwordFile = toString <system-secrets/root.password>;
environment.systemPackages = [pkgs.vim pkgs.git pkgs.tmux pkgs.python3];
# since 22.05 timeout fails?
systemd.services.systemd-networkd-wait-online.enable = false;
}

View File

@@ -24,7 +24,7 @@ in {
max-jobs = 2;
};
environment.systemPackages = [pkgs.minecraft pkgs.zeroad];
environment.systemPackages = [pkgs.minecraft];
networking = {
hostName = "kabsa";

View File

@@ -34,8 +34,8 @@
fsType = "vfat";
};
"/mnt/sd-card" = {
device = "/dev/disk/by-id/mmc-5E4S5_0xc5155d05-part1";
fsType = "ext4";
device = "/dev/disk/by-id/mmc-SD32G_0xda0aa352-part1";
fsType = "vfat";
options = ["nofail"];
};
};

View File

@@ -10,17 +10,19 @@ in {
./gitea.nix
./hardware-configuration.nix
./hedgedoc.nix
./matterbridge.nix
./menstruation.nix
./moinbot.nix
# ./horoscopy.nix
./monitoring
./moodle-dl-borsfaye.nix
./names.nix
./grimm.nix
./nextcloud.nix
./radio-news.nix
./radio.nix
./retiolum-map.nix
./tarot.nix
./tt-rss.nix
./urlwatch.nix
./weechat.nix
<niveum/configs/monitoring.nix>
@@ -43,7 +45,7 @@ in {
passwordFile = toString <secrets/restic/password>;
paths = [
"/var/lib/codimd"
config.services.postgresqlBackup.location
"/var/lib/postgresql"
"/var/lib/weechat"
"/var/lib/nextcloud"
"/var/lib/grafana"

View File

@@ -4,12 +4,10 @@ let
in {
services.gitea = {
enable = true;
disableRegistration = true;
rootUrl = domain;
appName = "code.kmein.de";
settings = {
server.SSH_PORT = sshPort;
service.DISABLE_REGISTRATION = true;
};
ssh.clonePort = sshPort;
};
services.nginx.virtualHosts."code.kmein.de" = {
forceSSL = true;

30
systems/makanek/grimm.nix Normal file
View File

@@ -0,0 +1,30 @@
{pkgs, ...}: let
port = 9610;
web-socket-sink-src = "${<scripts>}/grimm-scroller";
web-socket-sink = pkgs.callPackage web-socket-sink-src {};
lemmata = "${web-socket-sink-src}/dwb-compact.json";
in {
systemd.services.grimm-ws = {
wantedBy = ["multi-user.target"];
script = "${web-socket-sink}/bin/web-socket-sink --host 0.0.0.0 --port ${toString port} < ${lemmata}";
serviceConfig = {
Restart = "always";
DynamicUser = true;
};
};
services.nginx.virtualHosts."grimm.kmein.de" = {
enableACME = false;
forceSSL = false;
locations = {
"/".root = pkgs.linkFarm "grimm" [
{
name = "index.html";
path = "${web-socket-sink-src}/wclient.html";
}
];
};
};
networking.firewall.allowedTCPPorts = [port];
}

View File

@@ -27,7 +27,7 @@ in {
services.hedgedoc = {
enable = true;
settings = {
configuration = {
allowOrigin = [domain];
allowAnonymous = true;
allowGravatar = false;

View File

@@ -4,13 +4,7 @@
...
}: let
backend = pkgs.callPackage <menstruation-backend> {};
old-pkgs = import (pkgs.fetchFromGitHub {
owner = "NixOs";
repo = "nixpkgs";
rev = "695b3515251873e0a7e2021add4bba643c56cde3";
hash = "sha256-T86oFvcUIRwHWBWUt7WjaP4BP/3lDGbv5AppQSI1FkI=";
}) {};
telegram = old-pkgs.poetry2nix.mkPoetryApplication {projectDir = <menstruation-telegram>;};
telegram = pkgs.callPackage <menstruation-telegram> {};
backendPort = 8000;
in {
services.redis.servers.menstruation = {

View File

@@ -2,11 +2,8 @@
systemd.services.moinbot = {
startAt = "7:00";
script = ''
greeting=$(echo "moin
oi
noim" | shuf -n1)
echo "$greeting" | ${pkgs.ircaids}/bin/ircsink \
--nick "$greeting""bot" \
echo moin | ${pkgs.ircaids}/bin/ircsink \
--nick moinbot \
--server irc.hackint.org \
--port 6697 \
--secure \

View File

@@ -10,40 +10,21 @@
in {
services.grafana = {
enable = true;
settings.server = {
domain = "grafana.kmein.r";
http_port = 9444;
http_addr = "127.0.0.1";
};
domain = "grafana.kmein.r";
port = 9444;
addr = "127.0.0.1";
};
services.nginx.virtualHosts = {
${config.services.grafana.settings.server.domain} = {
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.grafana.settings.server.http_port}";
proxyWebsockets = true;
};
};
${lib.removePrefix "http://" config.services.prometheus.alertmanager.webExternalUrl} = {
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.prometheus.alertmanager.port}";
proxyWebsockets = true;
};
};
${lib.removePrefix "http://" config.services.prometheus.webExternalUrl} = {
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.prometheus.port}";
proxyWebsockets = true;
};
services.nginx.virtualHosts.${config.services.grafana.domain} = {
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.grafana.port}";
proxyWebsockets = true;
};
};
services.prometheus.webExternalUrl = "http://prometheus.kmein.r";
niveum.passport.services = [
{
title = "Prometheus";
link = config.services.prometheus.webExternalUrl;
description = "collects metrics from devices in the <i>niveum</i> network, blackbox monitors some websites.";
}
{
@@ -52,12 +33,11 @@ in {
}
{
title = "Grafana";
link = "http://${config.services.grafana.settings.server.domain}";
link = "http://${config.services.grafana.domain}";
description = "displays metrics from devices in the <i>niveum</i> network.";
}
{
title = "Alertmanager";
link = config.services.prometheus.alertmanager.webExternalUrl;
title = "Alertmanager bot";
description = "notifies me when something goes wrong.";
}
];
@@ -163,45 +143,48 @@ in {
})
];
systemd.services.alertmanager-bot-telegram = {
wantedBy = ["multi-user.target"];
after = ["ip-up.target"];
environment.TELEGRAM_ADMIN = "18980945";
environment.TELEGRAM_TOKEN = lib.strings.fileContents <system-secrets/telegram/prometheus.token>;
serviceConfig = {
Restart = "on-failure";
RestartSec = "15s";
DynamicUser = true;
StateDirectory = "alertbot";
ExecStart = '' ${pkgs.alertmanager-bot-telegram}/bin/alertmanager-bot \
--alertmanager.url=http://localhost:9093 --log.level=info \
--store=bolt --bolt.path=/var/lib/alertbot/bot.db \
--listen.addr="0.0.0.0:16320" \
--template.paths=${
pkgs.writeText "template.tmpl" ''
{{ define "telegram.default" }}
{{range .Alerts -}}
{{.Status}}: {{ index .Annotations "summary"}}
{{end -}}
{{end}}
''
}'';
};
};
services.prometheus.alertmanager = {
enable = true;
listenAddress = "localhost";
webExternalUrl = "http://alertmanager.kmein.r";
configuration = {
route = {
group_wait = "30s";
repeat_interval = "24h";
receiver = "all";
repeat_interval = "4h";
receiver = "me";
};
receivers = [
{
name = "all";
telegram_configs = [
name = "me";
webhook_configs = [
{
bot_token = lib.strings.fileContents <system-secrets/telegram/prometheus.token>;
chat_id = 18980945;
parse_mode = "";
api_url = "https://api.telegram.org";
url = "http://localhost:16320";
send_resolved = true;
message = ''
{{range .Alerts -}}
{{ .Status }}: {{ index .Annotations "summary" }}
{{end -}}
'';
}
];
email_configs = let
inherit (import <niveum/lib>) kieran;
inherit (import <niveum/lib/email.nix> {inherit lib;}) cock;
in [
{
send_resolved = true;
to = kieran.email;
from = cock.user;
smarthost = "${cock.smtp}:587";
auth_username = cock.user;
auth_identity = cock.user;
auth_password = cock.password;
}
];
}
@@ -213,7 +196,7 @@ in {
{
scheme = "http";
path_prefix = "/";
static_configs = [{targets = ["localhost:${toString config.services.prometheus.alertmanager.port}"];}];
static_configs = [{targets = ["localhost:9093"];}];
}
];
@@ -275,16 +258,6 @@ in {
}
];
}
{
job_name = "ful";
static_configs = [
{
targets = [
"ful.r:${toString config.services.prometheus.exporters.node.port}"
];
}
];
}
];
services.prometheus.exporters.blackbox = {

View File

@@ -9,10 +9,9 @@
in {
services.nextcloud = {
enable = true;
package = pkgs.nextcloud25;
package = pkgs.nextcloud24;
https = true;
enableBrokenCiphersForSSE = false;
autoUpdateApps = {
enable = true;
@@ -21,8 +20,6 @@ in {
hostName = "cloud.xn--kiern-0qa.de";
phpOptions."opcache.interned_strings_buffer" = "32"; # buffer size in MB
config = {
overwriteProtocol = "https";
@@ -34,27 +31,6 @@ in {
adminpassFile = passwordFile <system-secrets/nextcloud/admin>;
adminuser = "admin";
# extraTrustedDomains = [ "toum.r" ];
defaultPhoneRegion = "DE";
};
logLevel = 2;
extraOptions = let
inherit (import <niveum/lib/email.nix> {inherit lib;}) cock;
address = builtins.split "@" cock.user;
in {
defaultapp = "files";
mail_smtpmode = "smtp";
mail_sendmailmode = "smtp";
mail_smtphost = cock.smtp;
mail_smtpport = "587";
mail_from_address = builtins.elemAt address 0;
mail_domain = builtins.elemAt address 2;
mail_smtpsecure = "tls";
mail_smtpauthtype = "LOGIN";
mail_smtpauth = 1;
mail_smtpname = cock.user;
mail_smtppassword = cock.password;
};
};
@@ -66,18 +42,13 @@ in {
}
];
services.postgresqlBackup = {
enable = true;
databases = [config.services.nextcloud.config.dbname];
};
services.postgresql = {
enable = true;
ensureDatabases = [config.services.nextcloud.config.dbname];
ensureDatabases = ["nextcloud"];
ensureUsers = [
{
name = "nextcloud";
ensurePermissions."DATABASE ${config.services.nextcloud.config.dbname}" = "ALL PRIVILEGES";
ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES";
}
];
};

View File

@@ -25,7 +25,7 @@ in {
rm -rf "$stockholm"
}
${pkgs.git}/bin/git clone ${remote} "$stockholm"
${pkgs.git}/bin/git --git-dir "$stockholm"/.git log --pretty='"%s" by %an, %ar.' --since "$(${pkgs.coreutils}/bin/date -d '1 hours ago')" \
${pkgs.git}/bin/git --git-dir "$stockholm"/.git log --pretty='"%s" by %an, %ar.' --since "$(${pkgs.coreutils}/bin/date -I -d "yesterday")" \
| ${pkgs.jq}/bin/jq -R '{text: ., from: now | todateiso8601, to: (now + (60 * 60)) | todateiso8601}' \
| ${pkgs.curl}/bin/curl -Ssfd @- http://radio-news.r/
'';

View File

@@ -20,30 +20,32 @@ in {
krebs.htgen.tarot = {
port = tarotPort;
user.name = "radio";
scriptFile = pkgs.writers.writeDash "tarot" ''
case "$Method $Request_URI" in
"GET /")
if item=$(${pkgs.findutils}/bin/find ${toString tarotFiles} -type f | ${pkgs.coreutils}/bin/shuf -n1); then
card=$(mktemp --tmpdir tarot.XXX)
trap 'rm $card' EXIT
reverse=$(${pkgs.coreutils}/bin/shuf -i0-1 -n1)
if [ "$reverse" -eq 1 ]; then
${pkgs.imagemagick}/bin/convert -rotate 180 "$item" "$card"
else
${pkgs.coreutils}/bin/cp "$item" "$card"
fi
printf 'HTTP/1.1 200 OK\r\n'
printf 'Content-Type: %s\r\n' "$(${pkgs.file}/bin/file -ib "$card")"
printf 'Server: %s\r\n' "$Server"
printf 'Connection: close\r\n'
printf 'Content-Length: %d\r\n' $(${pkgs.coreutils}/bin/wc -c < "$card")
printf '\r\n'
cat "$card"
exit
fi
;;
esac
'';
script = ''. ${
pkgs.writers.writeDash "tarot" ''
case "$Method $Request_URI" in
"GET /")
if item=$(${pkgs.findutils}/bin/find ${toString tarotFiles} -type f | ${pkgs.coreutils}/bin/shuf -n1); then
card=$(mktemp --tmpdir tarot.XXX)
trap 'rm $card' EXIT
reverse=$(${pkgs.coreutils}/bin/shuf -i0-1 -n1)
if [ "$reverse" -eq 1 ]; then
${pkgs.imagemagick}/bin/convert -rotate 180 "$item" "$card"
else
${pkgs.coreutils}/bin/cp "$item" "$card"
fi
printf 'HTTP/1.1 200 OK\r\n'
printf 'Content-Type: %s\r\n' "$(${pkgs.file}/bin/file -ib "$card")"
printf 'Server: %s\r\n' "$Server"
printf 'Connection: close\r\n'
printf 'Content-Length: %d\r\n' $(${pkgs.coreutils}/bin/wc -c < "$card")
printf '\r\n'
cat "$card"
exit
fi
;;
esac
''
}'';
};
niveum.passport.services = [

View File

@@ -1,30 +0,0 @@
{
pkgs,
lib,
config,
...
}: let
domain = "feed.kmein.de";
in {
services.tt-rss = {
enable = true;
logDestination = "syslog";
root = "/var/lib/tt-rss";
selfUrlPath = "https://${domain}";
virtualHost = domain;
registration = {
enable = false;
maxUsers = 3;
};
};
services.postgresqlBackup = {
enable = true;
databases = [config.services.tt-rss.database.name];
};
services.nginx.virtualHosts.${domain} = {
enableACME = true;
forceSSL = true;
};
}

View File

@@ -26,6 +26,19 @@
url = "http://lammla.info/index.php?reihe=30";
filter = ["html2text" "strip"];
}
{
name = "Tatort";
url = "https://www.daserste.de/unterhaltung/krimi/tatort/vorschau/index.html";
filter = [
"html2text"
"strip"
{
shellpipe = ''
${pkgs.gnused}/bin/sed 's/&#32;/ /g;s/))/&\n/g;s/ \+/ /g'
'';
}
];
}
{
name = "Kratylos";
url = "https://kratylos.reichert-online.org/current_issue/KRATYLOS";
@@ -36,6 +49,11 @@
url = "http://www.zeno.org/Lesesaal/M/E-Books";
filter = [{element-by-class = "zenoCOMain";} "html2text" "strip"];
}
{
name = "Arnshaugk Neuerscheinungen";
url = "http://www.arnshaugk.de/index.php";
filter = ["html2text" "strip"];
}
{
name = "Carolina Welslau";
url = "https://carolinawelslau.de/";

View File

@@ -104,9 +104,6 @@ in {
addresses = "news.r";
autojoin = ["#cook" "#drachengame" "#oepnv" "#kmeinung" "#memes"];
command = "/oper aids balls";
sasl_mechanism = "plain";
sasl_username = nick;
sasl_password = nick + nick;
};
};
};

View File

@@ -1,9 +1,9 @@
{pkgs, ...}: {
services.xserver.displayManager.sessionCommands = let
intern = "LVDS-1";
extern = "HDMI-3";
extern = "HDMI-1";
pulseaudioCard = "alsa_card.pci-0000_00_1b.0";
pulseaudioProfile = "output:hdmi-stereo-extra2+input:analog-stereo";
pulseaudioProfile = "output:hdmi-stereo+input:analog-stereo";
in
toString (pkgs.writers.writeDash "hdmi-on" ''
${pkgs.xorg.xrandr}/bin/xrandr --output ${intern} --primary --auto --output ${extern} --above ${intern} --auto

View File

@@ -1,64 +0,0 @@
{
config,
pkgs,
...
}: let
inherit (import <niveum/lib>) retiolumAddresses;
in {
imports = [
./hardware-configuration.nix
<niveum/configs/spacetime.nix>
<niveum/modules/retiolum.nix>
<niveum/configs/sshd.nix>
];
nix.nixPath = ["/var/src"];
services.xserver = {
libinput.enable = true;
};
users.users.xenos = {
name = "xenos";
password = "xenos";
isNormalUser = true;
extraGroups = ["networkmanager"];
};
services.xserver = {
enable = true;
desktopManager.lxqt.enable = true;
displayManager = {
autoLogin = {
enable = true;
user = "xenos";
};
};
};
environment.systemPackages = [
pkgs.libreoffice
pkgs.gimp
pkgs.inkscape
pkgs.firefox
pkgs.pidgin
pkgs.git
pkgs.vim
];
networking = {
useDHCP = false;
interfaces = {
enp0s4.useDHCP = true;
wlp2s0.useDHCP = true;
};
retiolum = retiolumAddresses.tabula;
hostName = "tabula";
};
sound.enable = true;
hardware.pulseaudio.enable = true;
networking.networkmanager.enable = true;
system.stateVersion = "21.11";
}

View File

@@ -1,36 +0,0 @@
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot = {
loader.grub = {
enable = true;
version = 2;
device = "/dev/sda";
};
initrd = {
availableKernelModules = ["pata_sis" "ohci_pci" "ehci_pci" "sata_sis" "usb_storage" "sd_mod" "sr_mod"];
kernelModules = [];
};
kernelModules = [];
extraModulePackages = [];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/6fe3c127-068f-4b71-9cac-5fea66f66dc8";
fsType = "ext4";
};
swapDevices = [
{device = "/dev/disk/by-uuid/874256aa-5bae-44a4-8933-c65f8600fe78";}
];
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,54 +0,0 @@
{config, ...}: let
inherit (import <niveum/lib>) tmpfilesConfig;
unstable = import <nixos-unstable> {inherit (config.nixpkgs) config;};
in {
services.postgresql = {
enable = true;
dataDir = "/var/state/postgresql/${config.services.postgresql.package.psqlSchema}";
ensureDatabases = ["atuin"];
ensureUsers = [
{
name = "atuin";
ensurePermissions."DATABASE atuin" = "ALL PRIVILEGES";
}
];
};
services.postgresqlBackup = {
enable = true;
databases = ["atuin"];
};
systemd.tmpfiles.rules = [
(tmpfilesConfig {
type = "d";
path = "/var/state/postgresql";
mode = "0700";
user = "postgres";
group = "postgres";
})
];
users.groups.atuin = {};
users.users.atuin = {
isSystemUser = true;
group = "atuin";
home = "/run/atuin";
createHome = true;
};
systemd.services.atuin = {
wantedBy = ["multi-user.target"];
environment = {
ATUIN_HOST = "0.0.0.0";
ATUIN_PORT = "8888";
ATUIN_OPEN_REGISTRATION = "true";
ATUIN_DB_URI = "postgres:///atuin";
};
serviceConfig = {
User = "atuin";
ExecStart = "${unstable.atuin}/bin/atuin server start";
};
};
networking.firewall.allowedTCPPorts = [8888];
}

View File

@@ -7,7 +7,6 @@
inherit (import <niveum/lib>) retiolumAddresses restic;
in {
imports = [
./atuin.nix
./backup.nix
./gaslight.nix
./hardware-configuration.nix
@@ -24,7 +23,7 @@ in {
<niveum/configs/printing.nix>
<niveum/configs/spacetime.nix>
<niveum/configs/sshd.nix>
# <niveum/configs/traadfri.nix>
<niveum/configs/traadfri.nix>
<niveum/configs/tmux.nix>
<niveum/configs/wpa_supplicant.nix>
<niveum/modules/retiolum.nix>
@@ -41,7 +40,6 @@ in {
paths = [
"/var/lib/moodle-dl"
"/var/lib/containers/storage/volumes/home-assistant"
config.services.postgresqlBackup.location
];
};

View File

@@ -79,10 +79,6 @@ in {
113275 # ALEW
112783 # Akzent und Silbenstruktur
113493 # Papyrologie
# WS 2022
115414 # Nonnos
116108 # Dialektologie
];
download_submissions = true;
download_descriptions = true;