1
0
mirror of https://github.com/kmein/niveum synced 2026-03-24 13:41:08 +01:00

19 Commits

Author SHA1 Message Date
c6a45b421b feat: update 2022-09-23 23:31:27 +02:00
b5addef848 fix: dont get scripts from overlay 2022-09-23 23:31:14 +02:00
e2cf761aea feat: more transits 2022-09-23 09:54:58 +02:00
868dc8a4aa feat(moodle-dl): disable for borsfaye 2022-09-23 09:32:29 +02:00
dfd4bb0ca8 chore: get also otf from fonts 2022-09-23 09:32:29 +02:00
3e03688c81 feat: reenable transits 2022-09-23 09:32:21 +02:00
3136002449 feat: wrap jsesh 2022-09-19 22:04:52 +02:00
4cbd2fee7d WIP(fonts): install egyptological fonts 2022-09-19 22:04:37 +02:00
565c73bd05 feat(fonts): add emojifont to terminal 2022-09-19 07:29:47 +02:00
e5f933977c feat(unicodmenu): update to unicode 15 2022-09-19 07:29:12 +02:00
736b289643 feat(rofi): light theme 2022-09-19 07:28:57 +02:00
e0e0dd9e34 feat(fonts): cardo 2022-09-16 09:27:47 +02:00
1e2613b838 feat(newsboat): reload in parallel 2022-09-15 12:22:38 +02:00
f41ddb654a we dont need no procrastination 2022-09-13 21:01:32 +02:00
41ecca8411 feat(weechat): authenticate @ news.r 2022-09-13 21:01:16 +02:00
a80f4d866a chore: update 2022-09-13 20:30:07 +02:00
f56e9aa37b feat(todo): add procrastination 2022-09-12 12:36:14 +02:00
822b0df4b8 feat(i3): dock i3bar 2022-09-10 21:51:16 +02:00
c16123dc8d feat: automate entering ssh passphrase 2022-09-08 12:46:44 +02:00
18 changed files with 135 additions and 83 deletions

2
ci.nix
View File

@@ -56,7 +56,7 @@
"spotify/password"
];
systemSecrets = let
basic = ["retiolum.ed25519" "retiolum.key" "syncthing/cert.pem" "syncthing/key.pem"];
basic = ["retiolum.ed25519" "retiolum.key" "syncthing/cert.pem" "syncthing/key.pem" "ssh/passphrase"];
in
{
zaatar = ensureFiles (["moodle.token" "telegram/moodle-dl.token" "mpd-web.key"] ++ basic);

View File

@@ -7,6 +7,7 @@
}: let
inherit (lib.strings) makeBinPath;
inherit (import <niveum/lib>) localAddresses kieran;
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
in {
imports = [
<home-manager/nixos>
@@ -38,14 +39,6 @@ in {
});
};
};
overlays = [
(self: super: {
scripts = import <niveum/packages/scripts> {
pkgs = super;
lib = super.lib;
};
})
];
};
}
{
@@ -121,7 +114,7 @@ in {
cd "$(mktemp -d)"
pwd
'';
swallow = command: "${pkgs.scripts.swallow}/bin/swallow ${command}";
swallow = command: "${scripts.swallow}/bin/swallow ${command}";
in {
"ß" = "${pkgs.utillinux}/bin/setsid";
cat = "${pkgs.bat}/bin/bat --style=plain";

View File

@@ -1,4 +1,52 @@
{pkgs, ...}: {
{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 {
fonts = {
enableDefaultFonts = true;
fontDir.enable = true;
@@ -7,13 +55,22 @@
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
@@ -44,11 +101,11 @@
vollkorn
zilla-slab
]; # google-fonts league-of-moveable-type
fontconfig.defaultFonts = {
monospace = ["Noto Sans Mono"];
fontconfig.defaultFonts = rec {
monospace = ["Noto Sans Mono"] ++ emoji;
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" "Noto Emoji"];
emoji = ["Noto Color Emoji"];
};
};
}

View File

@@ -5,6 +5,7 @@
...
}: 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 = {
@@ -26,13 +27,13 @@
${pkgs.coreutils}/bin/tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
'';
"ipa" = pkgs.writers.writeDash "ipa" ''
${pkgs.scripts.ipa}/bin/ipa
${scripts.ipa}/bin/ipa
'';
"betacode" = pkgs.writers.writeDash "betacode" ''
${pkgs.scripts.betacode}/bin/betacode
${scripts.betacode}/bin/betacode
'';
"devanagari" = pkgs.writers.writeDash "devanagari" ''
${pkgs.scripts.devanagari}/bin/devanagari
${scripts.devanagari}/bin/devanagari
'';
"avesta" = pkgs.writeScript "avesta" (builtins.readFile <niveum/packages/scripts/avesta.sed>);
"curl" = pkgs.writers.writeDash "curl" ''
@@ -155,7 +156,7 @@ in {
names = ["Monospace" "Font Awesome 6 Free"];
size = 8.0;
};
mode = "hide"; # "dock"
mode = "dock"; # "hide";
position = "bottom";
colors = rec {
background = colours.background;
@@ -227,9 +228,9 @@ in {
"${modifier}+Return" = "exec ${(defaultApplications pkgs).terminal}";
"${modifier}+t" = "exec ${(defaultApplications pkgs).fileManager}";
"${modifier}+y" = "exec ${(defaultApplications pkgs).browser}";
"${modifier}+0" = "exec ${pkgs.scripts.menu-calc}/bin/=";
"${modifier}+0" = "exec ${scripts.menu-calc}/bin/=";
"${modifier}+Shift+w" = "exec ${pkgs.scripts.k-lock}/bin/k-lock";
"${modifier}+Shift+w" = "exec ${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" ''
@@ -251,10 +252,10 @@ in {
''
}";
"${modifier}+p" = "exec --no-startup-id ${pkgs.rofi-pass}/bin/rofi-pass";
"${modifier}+u" = "exec ${pkgs.scripts.unicodmenu}/bin/unicodmenu";
"${modifier}+u" = "exec ${scripts.unicodmenu}/bin/unicodmenu";
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
"${modifier}+F7" = "exec ${pkgs.scripts.showkeys-toggle}/bin/showkeys-toggle";
"${modifier}+F7" = "exec ${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";
@@ -270,9 +271,9 @@ in {
"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";
"XF86ScreenSaver" = "exec ${scripts.k-lock}/bin/k-lock";
"XF86Display" = "exec ${pkgs.scripts.dmenurandr}/bin/dmenurandr";
"XF86Display" = "exec ${scripts.dmenurandr}/bin/dmenurandr";
# key names detected with xorg.xev:
# XF86WakeUp (fn twice)

View File

@@ -16,7 +16,22 @@
password = lib.fileContents <secrets/nextcloud-fysi/password>;
};
in {
environment.systemPackages = [pkgs.khal pkgs.vdirsyncer pkgs.khard pkgs.todoman];
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"
'')
];
systemd.user.services.vdirsyncer = {
enable = true;

View File

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

View File

@@ -1,17 +1,21 @@
{
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-bin = "${pkgs.scripts.linkhandler}/bin/linkhandler";
linkhandler-bin = "${scripts.linkhandler}/bin/linkhandler";
newsboat-config = pkgs.writeText "config" ''
auto-reload no
reload-threads 8
prepopulate-query-feeds yes
# dont keep a search history

View File

@@ -8,6 +8,8 @@
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,

View File

@@ -8,6 +8,6 @@ in {
home-manager.users.me.programs.rofi = {
enable = true;
font = "Monospace 10";
theme = "${pkgs.rofi}/share/rofi/themes/Arc-Dark.rasi";
theme = "${pkgs.rofi}/share/rofi/themes/Arc.rasi";
};
}

View File

@@ -7,7 +7,7 @@
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>;
ssh-passphrase = lib.strings.fileContents <system-secrets/ssh/passphrase>;
in {
services.xserver.displayManager.sessionCommands = toString (pkgs.writeScript "ssh-add" ''
#!${pkgs.expect}/bin/expect -f

View File

@@ -44,7 +44,7 @@
'';
in {
niveum.telegramBots.transits = {
enable = false;
enable = true;
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"
${unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node" -A 2
${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" || :
'');

38
flake.lock generated
View File

@@ -23,11 +23,11 @@
"utils": "utils"
},
"locked": {
"lastModified": 1661573386,
"narHash": "sha256-pBEg8iY00Af/SAtU2dlmOAv+2x7kScaGlFRDjNoVJO8=",
"lastModified": 1663932797,
"narHash": "sha256-IH8ZBW99W2k7wKLS+Sat9HiKX1TPZjFTnsPizK5crok=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d89bdff445eadff03fe414e9c30486bc8166b72b",
"rev": "de3758e31a3a1bc79d569f5deb5dac39791bf9b6",
"type": "github"
},
"original": {
@@ -110,11 +110,11 @@
},
"nixos-stable": {
"locked": {
"lastModified": 1661520432,
"narHash": "sha256-9z+WDeXiu3hobvSsL0SbHDx4s+kFmm8eussySuX4zCM=",
"lastModified": 1663855239,
"narHash": "sha256-A2B7rlFKmBikRwz/cmayWcTAhyIOdp2whjVCDGhg9Xw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f11e12ac6af528c1ba12426ce83cee26f21ceafd",
"rev": "bcc68429a50c4ac051920c72c60e417202c19d79",
"type": "github"
},
"original": {
@@ -126,11 +126,11 @@
},
"nixos-unstable": {
"locked": {
"lastModified": 1660305968,
"narHash": "sha256-r0X1pZCSEA6mzt5OuTA7nHuLmvnbkwgpFAh1iLIx4GU=",
"lastModified": 1663850217,
"narHash": "sha256-tp9nXo1/IdN/xN9m06ryy0QUAEfoN6K56ObM/1QTAjc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c4a0efdd5a728e20791b8d8d2f26f90ac228ee8d",
"rev": "ae1dc133ea5f1538d035af41e5ddbc2ebcb67b90",
"type": "github"
},
"original": {
@@ -211,11 +211,11 @@
"stockholm": {
"flake": false,
"locked": {
"lastModified": 1661246925,
"narHash": "sha256-hGNCF4m3SuVogqoipmJzNIKoh03S/SMnO5oMHgfHWjA=",
"lastModified": 1663587256,
"narHash": "sha256-tOwUL8UFP8H8FosYVp8WiPr0nIPhcbN79nNJJgD0cUU=",
"ref": "refs/heads/master",
"rev": "d1fa957ed5bf60767c83c96135f9142f6c96ea50",
"revCount": 10749,
"rev": "55957c6d6adb51d2079c117c1e7309c60ee0fe0f",
"revCount": 10779,
"type": "git",
"url": "https://cgit.lassul.us/stockholm"
},
@@ -243,11 +243,11 @@
"tinc-graph": {
"flake": false,
"locked": {
"lastModified": 1653080212,
"narHash": "sha256-BcfppAuVNp0hMcrMG/ZxE4juSrdQbJSUIA0eHS1/Wxo=",
"lastModified": 1663740920,
"narHash": "sha256-F04wF/6KkzZZ1d8r3xOqkXg1IlBl32LaUBnBYjWUA1A=",
"owner": "kmein",
"repo": "tinc-graph",
"rev": "ea0ef2e5542684d1d8e34a626cb9295dec33e70d",
"rev": "78e7ed7acae6a3a29f537fdbf5db993a63b46fff",
"type": "github"
},
"original": {
@@ -290,11 +290,11 @@
},
"utils": {
"locked": {
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {

7
packages/jsesh.nix Normal file
View File

@@ -0,0 +1,7 @@
{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

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

View File

@@ -17,7 +17,6 @@ in {
./monitoring
./moodle-dl-borsfaye.nix
./names.nix
./grimm.nix
./nextcloud.nix
./radio-news.nix
./radio.nix

View File

@@ -1,30 +0,0 @@
{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

@@ -20,7 +20,7 @@ in {
];
services.moodle-dl = {
enable = true;
enable = false;
startAt = "hourly";
package = moodle-dl-package;
notifyOnly = true;

View File

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