mirror of
https://github.com/kmein/niveum
synced 2026-03-28 07:11:08 +01:00
Compare commits
17 Commits
grimm
...
e2cf761aea
| Author | SHA1 | Date | |
|---|---|---|---|
| e2cf761aea | |||
| 868dc8a4aa | |||
| dfd4bb0ca8 | |||
| 3e03688c81 | |||
| 3136002449 | |||
| 4cbd2fee7d | |||
| 565c73bd05 | |||
| e5f933977c | |||
| 736b289643 | |||
| e0e0dd9e34 | |||
| 1e2613b838 | |||
| f41ddb654a | |||
| 41ecca8411 | |||
| a80f4d866a | |||
| f56e9aa37b | |||
| 822b0df4b8 | |||
| c16123dc8d |
2
ci.nix
2
ci.nix
@@ -56,7 +56,7 @@
|
|||||||
"spotify/password"
|
"spotify/password"
|
||||||
];
|
];
|
||||||
systemSecrets = let
|
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
|
in
|
||||||
{
|
{
|
||||||
zaatar = ensureFiles (["moodle.token" "telegram/moodle-dl.token" "mpd-web.key"] ++ basic);
|
zaatar = ensureFiles (["moodle.token" "telegram/moodle-dl.token" "mpd-web.key"] ++ basic);
|
||||||
|
|||||||
@@ -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 = {
|
fonts = {
|
||||||
enableDefaultFonts = true;
|
enableDefaultFonts = true;
|
||||||
fontDir.enable = true;
|
fontDir.enable = true;
|
||||||
@@ -7,13 +55,22 @@
|
|||||||
alegreya-sans
|
alegreya-sans
|
||||||
amiri
|
amiri
|
||||||
annapurna-sil
|
annapurna-sil
|
||||||
|
antinoou
|
||||||
cantarell-fonts
|
cantarell-fonts
|
||||||
|
cardo
|
||||||
charis-sil
|
charis-sil
|
||||||
|
doulos-sil
|
||||||
|
newAthenaUnicode
|
||||||
corefonts
|
corefonts
|
||||||
crimson
|
crimson
|
||||||
eb-garamond
|
eb-garamond
|
||||||
|
jsesh
|
||||||
|
egyptianHiero
|
||||||
|
egyptianText
|
||||||
font-awesome_6
|
font-awesome_6
|
||||||
etBook
|
etBook
|
||||||
|
newGardiner
|
||||||
|
junicode2
|
||||||
ezra-sil
|
ezra-sil
|
||||||
fira
|
fira
|
||||||
font-awesome
|
font-awesome
|
||||||
@@ -44,11 +101,11 @@
|
|||||||
vollkorn
|
vollkorn
|
||||||
zilla-slab
|
zilla-slab
|
||||||
]; # google-fonts league-of-moveable-type
|
]; # google-fonts league-of-moveable-type
|
||||||
fontconfig.defaultFonts = {
|
fontconfig.defaultFonts = rec {
|
||||||
monospace = ["Noto Sans Mono"];
|
monospace = ["Noto Sans Mono"] ++ emoji;
|
||||||
serif = ["Noto Serif" "Noto Naskh Arabic" "Noto Serif Devanagari"];
|
serif = ["Noto Serif" "Noto Naskh Arabic" "Noto Serif Devanagari"];
|
||||||
sansSerif = ["Noto Sans Display" "Noto Kufi Arabic" "Noto Sans Devanagari" "Noto Sans CJK JP"];
|
sansSerif = ["Noto Sans Display" "Noto Kufi Arabic" "Noto Sans Devanagari" "Noto Sans CJK JP"];
|
||||||
emoji = ["Noto Color Emoji" "Noto Emoji"];
|
emoji = ["Noto Color Emoji"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ in {
|
|||||||
names = ["Monospace" "Font Awesome 6 Free"];
|
names = ["Monospace" "Font Awesome 6 Free"];
|
||||||
size = 8.0;
|
size = 8.0;
|
||||||
};
|
};
|
||||||
mode = "hide"; # "dock"
|
mode = "dock"; # "hide";
|
||||||
position = "bottom";
|
position = "bottom";
|
||||||
colors = rec {
|
colors = rec {
|
||||||
background = colours.background;
|
background = colours.background;
|
||||||
|
|||||||
@@ -16,7 +16,22 @@
|
|||||||
password = lib.fileContents <secrets/nextcloud-fysi/password>;
|
password = lib.fileContents <secrets/nextcloud-fysi/password>;
|
||||||
};
|
};
|
||||||
in {
|
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 = {
|
systemd.user.services.vdirsyncer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
newsboat-config = pkgs.writeText "config" ''
|
newsboat-config = pkgs.writeText "config" ''
|
||||||
auto-reload no
|
auto-reload no
|
||||||
|
reload-threads 8
|
||||||
prepopulate-query-feeds yes
|
prepopulate-query-feeds yes
|
||||||
|
|
||||||
# dont keep a search history
|
# dont keep a search history
|
||||||
|
|||||||
@@ -8,6 +8,6 @@ in {
|
|||||||
home-manager.users.me.programs.rofi = {
|
home-manager.users.me.programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = "Monospace 10";
|
font = "Monospace 10";
|
||||||
theme = "${pkgs.rofi}/share/rofi/themes/Arc-Dark.rasi";
|
theme = "${pkgs.rofi}/share/rofi/themes/Arc.rasi";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,16 @@
|
|||||||
inherit (import <niveum/lib>) sshPort kieran;
|
inherit (import <niveum/lib>) sshPort kieran;
|
||||||
externalNetwork = import <niveum/lib/external-network.nix>;
|
externalNetwork = import <niveum/lib/external-network.nix>;
|
||||||
sshIdentity = name: "${config.users.users.me.home}/.ssh/${name}";
|
sshIdentity = name: "${config.users.users.me.home}/.ssh/${name}";
|
||||||
|
ssh-passphrase = lib.strings.fileContents <system-secrets/ssh/passphrase>;
|
||||||
in {
|
in {
|
||||||
services.xserver.displayManager.sessionCommands = "${pkgs.openssh}/bin/ssh-add";
|
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;
|
programs.ssh.startAgent = true;
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
niveum.telegramBots.transits = {
|
niveum.telegramBots.transits = {
|
||||||
enable = false;
|
enable = true;
|
||||||
time = "*:0/1";
|
time = "*:0/1";
|
||||||
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
|
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
|
||||||
chatIds = ["-1001796440545"];
|
chatIds = ["-1001796440545"];
|
||||||
@@ -52,7 +52,7 @@ in {
|
|||||||
now=$(${pkgs.coreutils}/bin/date +%_H:%M | ${pkgs.gnused}/bin/sed 's/^\s*//')
|
now=$(${pkgs.coreutils}/bin/date +%_H:%M | ${pkgs.gnused}/bin/sed 's/^\s*//')
|
||||||
date=$(${pkgs.coreutils}/bin/date +'%m %d %Y')
|
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"
|
${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" || :
|
} | ${toSymbols} | ${pkgs.coreutils}/bin/sort -n | ${pkgs.gnugrep}/bin/grep "^$now" || :
|
||||||
'');
|
'');
|
||||||
|
|||||||
18
flake.lock
generated
18
flake.lock
generated
@@ -23,11 +23,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1661573386,
|
"lastModified": 1662759269,
|
||||||
"narHash": "sha256-pBEg8iY00Af/SAtU2dlmOAv+2x7kScaGlFRDjNoVJO8=",
|
"narHash": "sha256-lt8bAfEZudCQb+MxoNKmenhMTXhu3RCCyLYxU9t5FFk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "d89bdff445eadff03fe414e9c30486bc8166b72b",
|
"rev": "9f7fe353b613d0e45d7a5cdbd1f13c96c15803dd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -110,11 +110,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-stable": {
|
"nixos-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1661520432,
|
"lastModified": 1662739455,
|
||||||
"narHash": "sha256-9z+WDeXiu3hobvSsL0SbHDx4s+kFmm8eussySuX4zCM=",
|
"narHash": "sha256-nfUkPoIIhSXZFxvN2TU7LL7k5CbC1iuSaSkLGgViMvE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f11e12ac6af528c1ba12426ce83cee26f21ceafd",
|
"rev": "45b56b5321aed52d4464dc9af94dc1b20d477ac5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -195,11 +195,11 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660677220,
|
"lastModified": 1662493500,
|
||||||
"narHash": "sha256-cCmyI4CigWbeQ0wEiE9HSI2Hmd3Wi5P7jhdHX6bJkXU=",
|
"narHash": "sha256-EdAEKDQ6z7oinqQ28ELE3+taJ106DgmhNJt/rpqHJic=",
|
||||||
"owner": "kmein",
|
"owner": "kmein",
|
||||||
"repo": "scripts",
|
"repo": "scripts",
|
||||||
"rev": "688e141047e831a7e5f58dd24e00de51a3cb2345",
|
"rev": "51c641ac3c1100d80313696663db70c2eb3698dc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
7
packages/jsesh.nix
Normal file
7
packages/jsesh.nix
Normal 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
|
||||||
|
''
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
with open("${
|
with open("${
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt";
|
url = "https://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt";
|
||||||
sha256 = "sha256-NgGOaGV/3LNIX2NmMP/oyFMuAcl3cD0oA/W4nWxf6vs=";
|
sha256 = "0wva6ygnh3wrzpzy0kcbc32hz1ydx3k2pqc5xkqrfw83cpnrlvl0";
|
||||||
}
|
}
|
||||||
}", "r") as unicode_data:
|
}", "r") as unicode_data:
|
||||||
reader = csv.reader(unicode_data, delimiter=";")
|
reader = csv.reader(unicode_data, delimiter=";")
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
services.moodle-dl = {
|
services.moodle-dl = {
|
||||||
enable = true;
|
enable = false;
|
||||||
startAt = "hourly";
|
startAt = "hourly";
|
||||||
package = moodle-dl-package;
|
package = moodle-dl-package;
|
||||||
notifyOnly = true;
|
notifyOnly = true;
|
||||||
|
|||||||
@@ -104,6 +104,9 @@ in {
|
|||||||
addresses = "news.r";
|
addresses = "news.r";
|
||||||
autojoin = ["#cook" "#drachengame" "#oepnv" "#kmeinung" "#memes"];
|
autojoin = ["#cook" "#drachengame" "#oepnv" "#kmeinung" "#memes"];
|
||||||
command = "/oper aids balls";
|
command = "/oper aids balls";
|
||||||
|
sasl_mechanism = "plain";
|
||||||
|
sasl_username = nick;
|
||||||
|
sasl_password = nick + nick;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user