1
0
mirror of https://github.com/kmein/niveum synced 2026-03-23 13:21:06 +01:00

1 Commits

Author SHA1 Message Date
d06d0a9de4 WIP: mympd 2022-04-15 01:16:50 +02:00
20 changed files with 113 additions and 133 deletions

2
ci.nix
View File

@@ -36,7 +36,6 @@
"mail/gmail/amroplay" "mail/gmail/amroplay"
"mail/gmail/kieran.meinhardt" "mail/gmail/kieran.meinhardt"
"mail/meinhaki" "mail/meinhaki"
"mail/dslalewa"
"mail/posteo" "mail/posteo"
"nextcloud-fysi/password" "nextcloud-fysi/password"
"nextcloud/password" "nextcloud/password"
@@ -74,7 +73,6 @@
"telegram/menstruation.token" "telegram/menstruation.token"
"telegram/cool_village.token" "telegram/cool_village.token"
"telegram/kmein.token" "telegram/kmein.token"
"telegram/krebs.token"
"telegram/prometheus.token" "telegram/prometheus.token"
"weechat/relay" "weechat/relay"
] ]

View File

@@ -47,12 +47,6 @@ in {
enable = true; enable = true;
startInBackground = true; startInBackground = true;
}; };
systemd.user.services.nextcloud-client = {
Unit = {
Wants = ["gnome-keyring.service"];
After = ["gnome-keyring.service"];
};
};
}; };
environment.systemPackages = [ environment.systemPackages = [

View File

@@ -144,8 +144,8 @@ in {
wcd = "source ${wcd}"; wcd = "source ${wcd}";
im = "${pkgs.openssh}/bin/ssh weechat@makanek -t tmux attach-session -t IM"; im = "${pkgs.openssh}/bin/ssh weechat@makanek -t tmux attach-session -t IM";
where = "source ${where}"; where = "source ${where}";
yt = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -ic"; # Download video link yt = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -ic"; # Download video link
yta = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -xic"; # Download with audio yta = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -xic"; # Download with audio
}; };
} }
{i18n.defaultLocale = "en_DK.UTF-8";} {i18n.defaultLocale = "en_DK.UTF-8";}
@@ -170,15 +170,13 @@ in {
{ {
security.wrappers = { security.wrappers = {
pmount = { pmount = {
setuid = true;
owner = "root"; owner = "root";
group = "root"; group = "users";
source = "${pkgs.pmount}/bin/pmount"; source = "${pkgs.pmount}/bin/pmount";
}; };
pumount = { pumount = {
setuid = true;
owner = "root"; owner = "root";
group = "root"; group = "users";
source = "${pkgs.pmount}/bin/pumount"; source = "${pkgs.pmount}/bin/pumount";
}; };
}; };

View File

@@ -1,6 +1,4 @@
{pkgs, ...}: let {pkgs, ...}: {
nixpkgs-unstable = import <nixpkgs-unstable> {};
in {
nixpkgs.config.joypixels.acceptLicense = true; nixpkgs.config.joypixels.acceptLicense = true;
fonts = { fonts = {
enableDefaultFonts = true; enableDefaultFonts = true;
@@ -9,17 +7,14 @@ in {
alegreya alegreya
alegreya-sans alegreya-sans
amiri amiri
nixpkgs-unstable.annapurna-sil
cantarell-fonts cantarell-fonts
charis-sil charis-sil
corefonts corefonts
crimson crimson
eb-garamond eb-garamond
etBook etBook
nixpkgs-unstable.ezra-sil
fira fira
font-awesome-ttf font-awesome-ttf
nixpkgs-unstable.galatia-sil
gentium gentium
gfs-fonts gfs-fonts
gyre-fonts gyre-fonts
@@ -31,6 +26,7 @@ in {
libre-bodoni libre-bodoni
lmodern lmodern
merriweather merriweather
noto-fonts
ocr-a ocr-a
roboto roboto
roboto-mono roboto-mono

View File

@@ -4,20 +4,10 @@
... ...
}: let }: let
commaSep = builtins.concatStringsSep ","; commaSep = builtins.concatStringsSep ",";
languages = {
de = "T3";
gr = "polytonic";
ru = "phonetic";
ara = "buckwalter";
};
defaultLanguage = "de";
in { in {
# man 7 xkeyboard-config
services.xserver = { services.xserver = {
layout = commaSep (builtins.attrNames languages); layout = commaSep ["de" "gr"];
# T3: https://upload.wikimedia.org/wikipedia/commons/a/a9/German-Keyboard-Layout-T3-Version1-large.png xkbVariant = commaSep ["T3" "polytonic"];
# buckwalter: http://www.qamus.org/transliteration.htm
xkbVariant = commaSep (builtins.attrValues languages);
xkbOptions = xkbOptions =
commaSep ["compose:caps" "terminate:ctrl_alt_bksp" "grp:ctrls_toggle"]; commaSep ["compose:caps" "terminate:ctrl_alt_bksp" "grp:ctrls_toggle"];
libinput.enable = true; libinput.enable = true;
@@ -25,25 +15,6 @@ in {
console.keyMap = "de"; console.keyMap = "de";
environment.systemPackages =
lib.mapAttrsToList
(language: variant:
pkgs.writers.writeDashBin "kb-${language}" ''
${pkgs.xlibs.setxkbmap}/bin/setxkbmap ${defaultLanguage},${language} ${languages.${defaultLanguage}},${variant}
'')
languages;
# improve held key rate # improve held key rate
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50"; services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";
systemd.user.services.gxkb = {
wantedBy = ["graphical-session.target"];
serviceConfig = {
SyslogIdentifier = "gxkb";
ExecStart = "${pkgs.gxkb}/bin/gxkb";
Restart = "always";
RestartSec = "15s";
StartLimitBurst = 0;
};
};
} }

View File

@@ -21,7 +21,6 @@ in {
ytdl-format = "bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best"; ytdl-format = "bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best";
ytdl-raw-options = lib.concatStringsSep "," [''sub-lang="de,en"'' "write-sub=" "write-auto-sub="]; ytdl-raw-options = lib.concatStringsSep "," [''sub-lang="de,en"'' "write-sub=" "write-auto-sub="];
screenshot-template = "%F-%wH%wM%wS-%#04n"; screenshot-template = "%F-%wH%wM%wS-%#04n";
script-opts = "ytdl_hook-ytdl_path=${pkgs.yt-dlp}/bin/yt-dlp";
}; };
bindings = { bindings = {
"Alt+RIGHT" = "add video-rotate 90"; "Alt+RIGHT" = "add video-rotate 90";

View File

@@ -47,20 +47,6 @@
}; };
}; };
accounts.work-admin = {
user = "dslalewa";
password = lib.strings.fileContents <secrets/mail/dslalewa>;
address = "admin.alew.vglsprwi@hu-berlin.de";
imap = "mailbox.cms.hu-berlin.de";
smtp = "mailhost.cms.hu-berlin.de";
smtpSettings = smtp: "smtp://${smtp}";
folders = {
drafts = "Drafts";
sent = "Sent";
trash = "Trash";
};
};
accounts.work-fysi = rec { accounts.work-fysi = rec {
user = "kieran@fysi.tech"; user = "kieran@fysi.tech";
address = user; address = user;
@@ -145,7 +131,6 @@ in {
application/pdf; ${pkgs.zathura}/bin/zathura %s ; application/pdf; ${pkgs.zathura}/bin/zathura %s ;
application/pgp-encrypted; ${pkgs.gnupg}/bin/gpg -d '%s'; copiousoutput; application/pgp-encrypted; ${pkgs.gnupg}/bin/gpg -d '%s'; copiousoutput;
application/pgp-keys; ${pkgs.gnupg}/bin/gpg --import '%s'; copiousoutput; application/pgp-keys; ${pkgs.gnupg}/bin/gpg --import '%s'; copiousoutput;
application/vnd.openxmlformats*; ${pkgs.libreoffice}/bin/soffice '%s';
'' ''
}:$mailcap_path }:$mailcap_path

View File

@@ -5,7 +5,7 @@
}: let }: let
ytdl-format = "'bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best'"; 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"; youtube-download = "${pkgs.ts}/bin/ts ${pkgs.youtube-dl}/bin/youtube-dl -f ${ytdl-format} --add-metadata";
newsboat-home = "${config.users.users.me.home}/cloud/Seafile/Documents/newsboat"; newsboat-home = "${config.users.users.me.home}/cloud/Seafile/Documents/newsboat";
linkhandler-bin = "${pkgs.scripts.linkhandler}/bin/linkhandler"; linkhandler-bin = "${pkgs.scripts.linkhandler}/bin/linkhandler";

View File

@@ -124,7 +124,7 @@ in {
electrum electrum
inkscape inkscape
astrolog astrolog
nixpkgs-unstable.anki # flashcards anki # flashcards
jbofihe # lojbanic software jbofihe # lojbanic software
nixpkgs-unstable.zoom-us # video conferencing nixpkgs-unstable.zoom-us # video conferencing
nixpkgs-unstable.alejandra # nix formatter nixpkgs-unstable.alejandra # nix formatter
@@ -137,7 +137,6 @@ in {
pdfpc # presenter console for pdf slides pdfpc # presenter console for pdf slides
hc # print files as qr codes hc # print files as qr codes
youtubeDL youtubeDL
yt-dlp
espeak espeak
bc # calculator bc # calculator
pari # gp -- better calculator pari # gp -- better calculator

44
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": { "nodes": {
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1652557277, "lastModified": 1648297722,
"narHash": "sha256-jSes9DaIVMdmwBB78KkFUVrlDzawmD62vrUg0GS2500=", "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "12806d31a381e7cd169a6bac35590e7b36dc5fe5", "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -22,11 +22,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1651519540, "lastModified": 1648834319,
"narHash": "sha256-3k6p8VsTwwRPQjE8rrMh+o2AZACZn/eeYJ7ivdQ/Iro=", "narHash": "sha256-i5Aj4Aw64D/A0X6XW5LxSS4XBnYj7gMz+kN4dpsbdk8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d93d56ab8c1c6aa575854a79b9d2f69d491db7d0", "rev": "0bdbdea2e26c984b096f4f7d10e3c88536a980b0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -109,11 +109,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1652442528, "lastModified": 1649490789,
"narHash": "sha256-ctD9BdjN7e6cBipm8k9xt+vgwlRApkvuJLSNdaVrphE=", "narHash": "sha256-YrhVxwoofZSx/wLZ4GYET//8vS+uqWX572zvdmP/Etg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "79385ae0aacf7e02871cc8af0623123419dd7884", "rev": "c86185d20d708013caf97a6adaa8dc6d72313c75",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -125,11 +125,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1652576583, "lastModified": 1649541735,
"narHash": "sha256-FhSixtJktylN1lnflPYgZfoH++6/VpC7euoV8RcBKSY=", "narHash": "sha256-JdOywA2jcdGCxNgu0dJA7ZNtaV7sS0HwuZg9YaXd94c=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e9132b233ec7176c121b4ecb991ce397d92275ee", "rev": "c2b6e029cd1efa0efd37daab89264ef040ae5669",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -158,11 +158,11 @@
"retiolum": { "retiolum": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1652292767, "lastModified": 1647444524,
"narHash": "sha256-3/ENvvvva5BiQH8YP6AHwMpApuut9CqhfjrLaoikcno=", "narHash": "sha256-N4T1UXLkYJMQqk65LkTDpW70ujXXeZ9xe5k+LOpznAI=",
"owner": "krebs", "owner": "krebs",
"repo": "retiolum", "repo": "retiolum",
"rev": "7cc2a7118e4aa9f5df0953bebad28034306329e6", "rev": "de6d7dc9bd671e65f2ee3004b6807625e7553e84",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -194,11 +194,11 @@
"scripts": { "scripts": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1650993582, "lastModified": 1648400983,
"narHash": "sha256-cKcdHzyy6Y4H9+KcnCgk/Tt1Zqd8lhfiXv4LClcETLc=", "narHash": "sha256-I9ADWgUN1orbnXPBW4kulHpv8wkx6C8zsQcg9wphpPg=",
"owner": "kmein", "owner": "kmein",
"repo": "scripts", "repo": "scripts",
"rev": "c1aaeb4339e9c41057d362667554835a0f49850f", "rev": "f5df67a2416d8f05a7dbfea269c44668854c7887",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -210,11 +210,11 @@
"stockholm": { "stockholm": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1652292290, "lastModified": 1649089964,
"narHash": "sha256-QTBV3X6rFHU8H58phKT+V5Trous17aZbSRDB8Yp1i1c=", "narHash": "sha256-ybuVI8rnpMyBUoyoIXJ1e3QBMBIOoEgKTiFzIPfzy8A=",
"ref": "master", "ref": "master",
"rev": "c87ba30c0c1cf344c7cc090d73a2ba44140f15d9", "rev": "b3833baee96d7bce2c54295110b40c646468a1ff",
"revCount": 10537, "revCount": 10500,
"type": "git", "type": "git",
"url": "https://cgit.lassul.us/stockholm" "url": "https://cgit.lassul.us/stockholm"
}, },

View File

@@ -39,15 +39,5 @@ in
GFS_Pyrsos = "0y0dv7y3n01bbhhnczflx1zcc7by56cffmr2xqixj2rd1nvchx0j"; GFS_Pyrsos = "0y0dv7y3n01bbhhnczflx1zcc7by56cffmr2xqixj2rd1nvchx0j";
GFS_Solomos = "1mpx9mw566awvfjdfx5sbz3wz5gbnjjw56gz30mk1lw06vxf0dxz"; GFS_Solomos = "1mpx9mw566awvfjdfx5sbz3wz5gbnjjw56gz30mk1lw06vxf0dxz";
GFS_Theokritos = "0haasx819x8c8yvna6pqywgi4060av2570jm34cddnz1fgnhv1b8"; GFS_Theokritos = "0haasx819x8c8yvna6pqywgi4060av2570jm34cddnz1fgnhv1b8";
# Heraklit
# Galatea
# Georgiou
# Ambrosia
# Fleischman
# Eustace
# Nicefore
# Jackson
# Garaldus
# Ignacio
}; };
} }

View File

@@ -307,11 +307,16 @@ in
packages = [pkgs.xdo]; packages = [pkgs.xdo];
}; };
ipa = wrapScript { ipa =
script = ./ipa.py; pkgs.writers.writeHaskellBin "ipa" {
name = "ipa"; libraries = with pkgs; [haskellPackages.text haskellPackages.ipa];
packages = [pkgs.python3]; } ''
}; import Data.Maybe (fromJust)
import Language.IPA
import qualified Data.Text as T
import qualified Data.Text.IO as T
main = T.interact (T.unwords . map (unIPA . fromJust . (xSampaToIpa =<<) . mkXSampa) . T.words)
'';
default-gateway = pkgs.writers.writeDashBin "default-gateway" '' default-gateway = pkgs.writers.writeDashBin "default-gateway" ''
${pkgs.iproute}/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'

View File

@@ -75,9 +75,8 @@
in in
# ref https://github.com/LukeSmithxyz/voidrice/blob/9fe6802122f6e0392c7fe20eefd30437771d7f8e/.local/bin/dmenuunicode # ref https://github.com/LukeSmithxyz/voidrice/blob/9fe6802122f6e0392c7fe20eefd30437771d7f8e/.local/bin/dmenuunicode
writers.writeDashBin "unicodmenu" '' writers.writeDashBin "unicodmenu" ''
history_file=$HOME/.cache/unicodmenu
PATH=${lib.makeBinPath [coreutils dmenu gnused libnotify xclip xdotool]} PATH=${lib.makeBinPath [coreutils dmenu gnused libnotify xclip xdotool]}
chosen=$(cat "$history_file" ${kaomoji-file} ${unicode-file} | dmenu -p unicode -i -l 10 | tee "$history_file" | sed "s/ .*//") chosen=$(cat ${kaomoji-file} ${unicode-file} | dmenu -p unicode -i -l 10 | sed "s/ .*//")
[ "$chosen" != "" ] || exit [ "$chosen" != "" ] || exit

View File

@@ -1,12 +1,9 @@
let {
inherit (import <niveum/lib>) sshPort;
in {
services.gitea = { services.gitea = {
enable = true; enable = true;
disableRegistration = true; disableRegistration = true;
rootUrl = "https://code.kmein.de"; rootUrl = "https://code.kmein.de";
appName = "code.kmein.de"; appName = "code.kmein.de";
ssh.clonePort = sshPort;
}; };
services.nginx.virtualHosts."code.kmein.de" = { services.nginx.virtualHosts."code.kmein.de" = {
forceSSL = true; forceSSL = true;

View File

@@ -6,14 +6,14 @@
services.matterbridge = { services.matterbridge = {
enable = true; enable = true;
configPath = let configPath = let
bridgeBotToken = lib.strings.fileContents <system-secrets/telegram/krebs.token>; bridgeBotToken = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
in in
toString ((pkgs.formats.toml {}).generate "config.toml" { toString ((pkgs.formats.toml {}).generate "config.toml" {
general = { general = {
RemoteNickFormat = "[{NICK}] "; RemoteNickFormat = "[{NICK}] ";
Charset = "utf-8"; Charset = "utf-8";
}; };
telegram.krebs.Token = bridgeBotToken; telegram.kmein.Token = bridgeBotToken;
irc = let irc = let
Nick = "ponte"; Nick = "ponte";
in { in {
@@ -38,7 +38,7 @@
channel = "#krebs"; channel = "#krebs";
} }
{ {
account = "telegram.krebs"; account = "telegram.kmein";
channel = "-330372458"; channel = "-330372458";
} }
{ {

View File

@@ -220,7 +220,7 @@ in {
"tarot.kmein.de" "tarot.kmein.de"
"cloud.xn--kiern-0qa.de" "cloud.xn--kiern-0qa.de"
"grafana.kmein.r" "grafana.kmein.r"
# "names.kmein.r" "names.kmein.r"
"rrm.r" "rrm.r"
"graph.r" "graph.r"
]; ];

View File

@@ -4,8 +4,8 @@
... ...
}: let }: let
port = 5703; port = 5703;
onomap-src = "${<scripts>}/onomastics-ng"; geogen-src = "${<scripts>}/onomastics";
onomap = pkgs.haskellPackages.callCabal2nix "onomap" onomap-src {}; geogen = pkgs.callPackage geogen-src {};
in { in {
systemd.services.names = { systemd.services.names = {
wants = ["network-online.target"]; wants = ["network-online.target"];
@@ -13,11 +13,12 @@ in {
description = "Better clone of geogen.stoepel.net"; description = "Better clone of geogen.stoepel.net";
serviceConfig = { serviceConfig = {
DynamicUser = true; DynamicUser = true;
ExecStart = "${onomap}/bin/onomap-web";
Restart = "on-failure";
RestartSec = "15s";
}; };
environment.PORT = toString port; script = ''
cd $(mktemp -d)
ln -s "${geogen-src}/wsgi.py" wsgi.py
${geogen.dependencyEnv}/bin/gunicorn wsgi:app -b :${toString port}
'';
}; };
services.nginx = { services.nginx = {

View File

@@ -15,6 +15,7 @@ in {
./pulseaudio.nix ./pulseaudio.nix
./home-assistant.nix ./home-assistant.nix
./tuna.nix ./tuna.nix
./mympd.nix
./grocy.nix ./grocy.nix
./spotifyd.nix ./spotifyd.nix
<home-manager/nixos> <home-manager/nixos>

View File

@@ -69,16 +69,6 @@ in {
108283 # Digital Classicist 108283 # Digital Classicist
109211 # Altlitauisch 109211 # Altlitauisch
109185 # Etymologie 109185 # Etymologie
# SS 2022
112606 # Avestisch
111761 # Griechische Wissenschaftsliteratur
111515 # H. Furens
110914 # Apostelgeschichte
112225 # Gr. Paläographie
113275 # ALEW
112783 # Akzent und Silbenstruktur
113493 # Papyrologie
]; ];
download_submissions = true; download_submissions = true;
download_descriptions = true; download_descriptions = true;

57
systems/zaatar/mympd.nix Normal file
View File

@@ -0,0 +1,57 @@
{pkgs, ...}: let
inherit (import <niveum/lib>) tmpfilesConfig;
in {
systemd.tmpfiles.rules = [
(tmpfilesConfig {
type = "d";
mode = "0755";
user = "mympd";
group = "mympd";
path = "/var/lib/mympd";
})
(tmpfilesConfig {
type = "d";
mode = "0755";
user = "mympd";
group = "mympd";
age = "1d";
path = "/var/cache/mympd";
})
(tmpfilesConfig {
type = "L+";
mode = "0644";
user = "mympd";
group = "mympd";
path = "/var/lib/mympd/config/http_port";
argument = pkgs.writeText "port" "8764";
})
(tmpfilesConfig {
type = "L+";
mode = "0644";
user = "mympd";
group = "mympd";
path = "/var/lib/mympd/config/ssl";
argument = pkgs.writeText "ssl" "false";
})
];
users.users.mympd = {
isSystemUser = true;
group = "mympd";
};
users.groups.mympd = {};
systemd.services.mympd = {
wantedBy = ["multi-user.target"];
after = ["mpd.service"];
script = "${pkgs.mympd}/bin/mympd";
environment = {
MYMPD_HTTP_PORT = "8764";
};
serviceConfig = {
Restart = "always";
User = "mympd";
Group = "mympd";
};
};
}