1
0
mirror of https://github.com/kmein/niveum synced 2026-03-29 16:51:07 +02:00

64 Commits

Author SHA1 Message Date
github-actions[bot]
da77e733c1 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/ac53777f52929bc82efcd2830bfc5aa60bcb4337' (2023-06-19)
  → 'github:nix-community/home-manager/6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4' (2023-06-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b6c73c5fe53bb3afbf65e870541e0645e9145171' (2023-06-20)
  → 'github:NixOS/nixpkgs/ecb441f22067ba1d6312f4932a7c64efa8d19a7b' (2023-06-22)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/b3f5bcf0be3e15226b0e9d698aa734ee098aa08f' (2023-06-21)
  → 'github:NixOS/nixpkgs/b154feadb9abd34350360a80cb4b7e6ce8525a75' (2023-06-25)
• Updated input 'nur':
    'github:nix-community/NUR/e8ce8c69a1bb0d0852da6c7a8d67f112d940ac81' (2023-06-21)
  → 'github:nix-community/NUR/9eed2d0c604236451550cede1095b94bc8897133' (2023-06-25)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/417dc5995703ea9edcce098ad59bb4511271cb73' (2023-06-21)
  → 'github:oxalica/rust-overlay/ec002586144fe0f48039dced270c188f0b8213ab' (2023-06-24)
2023-06-25 01:02:26 +00:00
b62bde780d feat: unleash moinbot on #hsmr 2023-06-23 15:42:58 +02:00
4584d92d05 feat(graph.r): use correct center 2023-06-23 15:42:49 +02:00
1bbf54fcd8 feat(neovim): export as package from flake 2023-06-22 21:01:00 +02:00
14fe8b6c3a chore: update 2023-06-22 08:38:06 +02:00
69ff902e78 fix(gpt): use api key command arg 2023-06-21 10:41:12 +02:00
cb995b0ad9 feat: install haskell 2023-06-21 10:41:12 +02:00
9a1a18bc69 feat(moodle-dl): disable 2023-06-14 22:15:49 +02:00
22405aebf0 fix(hu-berlin): fortinet ssl vpn 2023-06-14 08:34:46 +02:00
40e8a1ad5c feat(gcc) 2023-06-13 14:17:35 +02:00
e44460ca3c feat: good bye channels 2023-06-13 14:17:29 +02:00
89d8347a34 feat: Zotero 2023-06-13 10:50:58 +02:00
5d0a6fe3dd fix(hdmi): rename hdmi display 2023-06-12 21:14:35 +02:00
64a59070c4 feat: xml packages 2023-06-10 14:07:29 +02:00
c68f863bbc feat(zaatar): fix kiosk, spotifyd, containers warning 2023-06-10 13:56:55 +02:00
fa3d41fb5b feat(kiosk): note why no tap 2 click 2023-06-10 13:55:32 +02:00
881aaa3f8c chore: update retiolum 2023-06-07 10:30:12 +02:00
dcd00ad602 fix(wallpaper): update url 2023-06-07 10:29:49 +02:00
56e4d710e5 fix: atuin, nachtischsatan 2023-06-07 10:27:02 +02:00
8967f860e8 feat(atuin): use module 2023-06-06 20:40:31 +02:00
ed6e777497 fix(telebots): reenable 2023-06-06 20:40:20 +02:00
7cbad0c877 feat(fzf): use module 2023-06-06 20:38:56 +02:00
f9326b19ab feat: upgrade to 23.05 2023-06-06 19:59:27 +02:00
479742c5a5 feat(streams): add one more todo 2023-06-05 10:26:00 +02:00
336f0e6311 feat: obsidian 2023-06-04 15:43:22 +02:00
bbc0467e3d feat(zaatar): remove kiosk 2023-05-28 23:30:24 +02:00
a90c04e077 Revert "feat(zaatar): gnome"
This reverts commit 22a7980100.
2023-05-28 23:21:18 +02:00
22a7980100 feat(zaatar): gnome 2023-05-28 20:33:50 +02:00
de40ace55c Merge remote-tracking branch 'origin/update_flake_lock_action' 2023-05-23 11:44:18 +02:00
aea1a975c0 fix(khal): do not obscure errors 2023-05-23 11:44:04 +02:00
github-actions[bot]
bf12137fac flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/92197270a1eedd142a4aff853e4cc6d1e838c22f' (2023-05-12)
  → 'github:ryantm/agenix/db5637d10f797bb251b94ef9040b237f4702cde3' (2023-05-15)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9656e85a15a0fe67847ee8cdb99a20d8df499962' (2023-05-12)
  → 'github:NixOS/nixpkgs/628d4bb6e9f4f0c30cfd9b23d3c1cdcec9d3cb5c' (2023-05-18)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/d5be467efe20bd71fb178f9fcbc032a2a52a55ea' (2023-05-14)
  → 'github:NixOS/nixpkgs/58073d1b85c40d21c58aa856c647f14f8655e05e' (2023-05-21)
• Updated input 'nur':
    'github:nix-community/NUR/f3b31a6e1a397412d4c3afe5b508674cbfce2cee' (2023-05-14)
  → 'github:nix-community/NUR/bad097b7d052e6b273954ca714ca294e6c196b78' (2023-05-21)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/aa1480f16bec7dda3c62b8cdb184c7e823331ba2' (2023-05-14)
  → 'github:oxalica/rust-overlay/f7c0c7f4b0780f977808de0bc0475ab044d3fd08' (2023-05-20)
2023-05-21 00:49:04 +00:00
3cae1306ca chore: secrets 2023-05-20 10:12:41 +02:00
a976daccb1 feat(streams): get rekt 2023-05-20 10:11:41 +02:00
f318ff5ac7 chore: update, enable unstable 2023-05-17 11:16:05 +02:00
61df3fcc89 feat(fonts): add IPAex CJK font 2023-05-17 11:15:53 +02:00
ba7f1ae0db Revert "feat(manakish): add autorandr for dock switch"
This reverts commit fdaa98886e.
2023-05-08 08:46:01 +02:00
12b79916da chore: update 2023-05-07 19:41:51 +02:00
574bcc5b85 feat(vim): add typst plugin 2023-05-07 19:36:08 +02:00
20c92a8b2f fix(flake): reduce number of nixpkgs 2023-05-07 19:36:00 +02:00
f2b1b9d9a1 feat(panoptikon): kpaste text/plain 2023-05-03 12:34:57 +02:00
c17884a519 feat(kleim): add gpt, do not remove newlines 2023-05-03 12:34:39 +02:00
8be6375bcb feat(hora-filli): first of month 2023-05-03 12:34:08 +02:00
5ac1f33e2b chore: update 2023-04-30 15:42:16 +02:00
d64142e32c feat(keyboard): add gothic 2023-04-30 15:42:10 +02:00
a1654b1d1d feat(moodle-dl): add predigten 2023-04-27 13:06:20 +02:00
3f7d548925 feat(git): auto-setup remote 2023-04-25 11:20:47 +02:00
68a2f739af chore: update 2023-04-24 08:42:26 +02:00
9fd968ff62 fix(onlyoffice): make readable 2023-04-24 06:38:43 +02:00
8811aeaff9 chore: format 2023-04-23 09:37:25 +02:00
8d5cd55239 fix(panoptikon): only watch github ssh keys 2023-04-23 09:37:11 +02:00
44ac94ef38 feat(moodle-dl): x-tutorial 2023-04-21 15:52:52 +02:00
cb832d06d3 feat(moodle-dl): sorbisch 2023-04-20 14:15:17 +02:00
1bc7b16fd7 feat(moodle-dl): jiddisch 2023-04-19 16:18:45 +02:00
52c18d1464 feat(moodle-dl): taa 2023-04-19 16:16:07 +02:00
85a6a92836 feat(makanek): disable email alerts 2023-04-18 23:36:48 +02:00
a6232b1a5e feat: convenient deploy script 2023-04-18 23:36:48 +02:00
63b8c7ff1e feat(khal): add krebs kalender 2023-04-18 22:46:37 +02:00
4fcbe70f5e feat(nextcloud): enable onlyoffice 2023-04-18 16:07:42 +02:00
4ae3824663 feat(colours): increase contrast on owickstrom 2023-04-18 16:07:42 +02:00
f83b5f3021 feat(colours): increase contrast on owickstrom 2023-04-18 11:03:40 +02:00
github-actions[bot]
6e54579e26 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/87edbd74246ccdfa64503f334ed86fa04010bab9' (2023-04-12)
  → 'github:NixOS/nixpkgs/fda0d99c2cbbb5c89d8855d258cb0821bd9113ad' (2023-04-14)
• Updated input 'nur':
    'github:nix-community/NUR/8a35714f0be00235e2a1c8b759e6dc3888763d8b' (2023-04-14)
  → 'github:nix-community/NUR/c9e3bd49580c525989f6ce9803e1c5875ab8548a' (2023-04-15)
2023-04-16 00:46:22 +00:00
626018f3f8 chore: remove itools, itl for now 2023-04-15 08:46:25 +02:00
6fddca2a0b feat(moodle-dl): add new courses 2023-04-15 08:45:50 +02:00
dee8b4e133 fix(stardict): turkish hashes 2023-04-14 10:48:08 +02:00
50 changed files with 498 additions and 708 deletions

View File

@@ -20,6 +20,7 @@ in {
paths = [
"/home/kfm/work"
"/home/kfm/projects"
"/home/kfm/Zotero"
"/home/kfm/notes"
"/home/kfm/Maildir"
"/home/kfm/cloud"

View File

@@ -128,6 +128,10 @@ in {
"${cloud-dir}/syncthing/common".devices = ["kabsa" "manakish"];
"${cloud-dir}/syncthing/library".devices = ["kabsa" "manakish" "heym"];
"${cloud-dir}/syncthing/mundoiu".devices = ["kabsa" "manakish" "heym"];
"${cloud-dir}/syncthing/obsidian" = {
devices = ["kabsa" "manakish" "heym"];
id = "3r1hu-3barr";
};
"${cloud-dir}/syncthing/music" = {
devices = ["kabsa" "manakish" "heym" "zaatar"];
id = "music";

View File

@@ -31,7 +31,7 @@ in {
};
}
{
boot.cleanTmpDir = true;
boot.tmp.cleanOnBoot = true;
boot.loader.timeout = 1;
}
{
@@ -70,11 +70,15 @@ in {
users.users.me = {
name = "kfm";
description = kieran.name;
hashedPassword = "$6$w9hXyGFl/.IZBXk$5OiWzS1G.5hImhh1YQmZiCXYNAJhi3X6Y3uSLupJNYYXPLMsQpx2fwF4Xr2uYzGMV8Foqh8TgUavx1APD9rcb/";
passwordFile = config.age.secrets.kfm-password.path;
isNormalUser = true;
uid = 1000;
};
age.secrets = {
kfm-password.file = ../secrets/kfm-password.age;
};
home-manager.users.me.xdg.enable = true;
}
{

View File

@@ -68,6 +68,7 @@ in {
corefonts
crimson
eb-garamond
ipaexfont
jsesh
egyptianHiero
egyptianText

View File

@@ -21,17 +21,8 @@
};
};
programs.zsh.interactiveShellInit = ''
if [[ $options[zle] = on ]]; then
. ${pkgs.fzf}/share/fzf/completion.zsh
. ${pkgs.fzf}/share/fzf/key-bindings.zsh
fi
'';
programs.bash.interactiveShellInit = ''
if [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then
. ${pkgs.fzf}/share/fzf/completion.bash
. ${pkgs.fzf}/share/fzf/key-bindings.bash
fi
'';
programs.fzf = {
fuzzyCompletion = true;
keybindings = true;
};
}

View File

@@ -51,6 +51,7 @@ in {
pull.ff = "only";
rebase.autoStash = true;
merge.autoStash = true;
push.autoSetupRemote = true;
# # ref https://github.com/dandavison/delta
# core.pager = "${pkgs.delta}/bin/delta";

View File

@@ -17,8 +17,8 @@
'')
(pkgs.writers.writeDashBin "hora-filli" ''
${pkgs.hledger}/bin/hledger -f "${timeLedger}" register fillidefilla -O csv \
-b "$(date -d "$(date +%Y-%m)-20 last month" +%Y-%m-%d)" \
-e "$(date -d "$(date +%Y-%m)-20" +%Y-%m-%d)" \
-b "$(date -d "$(date +%Y-%m)-01 last month" +%Y-%m-%d)" \
-e "$(date -d "$(date +%Y-%m)-01" +%Y-%m-%d)" \
| sed 's/(fillidefilla:\(.*\))/\1/g' \
| xsv select date,amount,total,account,description
'')

View File

@@ -77,7 +77,6 @@ in {
host = forti-ssl.vpn.hu-berlin.de
port = 443
username = meinhark
trusted-cert = 9e5dea8e077970d245900839f437ef7fb9551559501c7defd70af70ea568573d
''
}
fi

View File

@@ -50,6 +50,9 @@
emojai = pkgs.writers.writeDash "emojai" ''
${pkgs.curl}/bin/curl https://www.emojai.app/api/generate -X POST -H 'Content-Type: application/json' --data-raw "$(${pkgs.jq}/bin/jq -sR '{emoji:.}')" | ${pkgs.jq}/bin/jq -r .result
'';
gpt = pkgs.writers.writeDash "gpt" ''
${niveumPackages.gpt}/bin/gpt
'';
};
};

View File

@@ -12,6 +12,7 @@
ara = "buckwalter";
cop = "";
ave = "";
got = "";
"in" = "san-kagapa";
il = "phonetic";
};
@@ -37,6 +38,13 @@ in {
sha256 = "1l0h6aq536hyinrh0i0ia355y229bjrlibii0sya5bmqh46vycia";
};
}
{
name = "symbols/got";
path = pkgs.fetchurl {
url = "https://c.krebsco.de/got";
sha256 = "1i0jxghxi3rldlijw6gm2xawrv7f0pmm7a5cqbzzgjrg7ldk46gd";
};
}
{
name = "symbols/ave";
path = pkgs.fetchurl {

View File

@@ -54,8 +54,7 @@ in {
wantedBy = ["default.target"];
startAt = "*:00/10";
script = ''
${pkgs.vdirsyncer}/bin/vdirsyncer sync
${pkgs.khal}/bin/khal printcalendars # https://lostpackets.de/khal/configure.html#syncing
${pkgs.vdirsyncer}/bin/vdirsyncer sync && ${pkgs.khal}/bin/khal printcalendars # https://lostpackets.de/khal/configure.html#syncing
'';
serviceConfig = {
Type = "oneshot";
@@ -112,6 +111,10 @@ in {
path = ${davHome}/calendar/personal
color = "light cyan"
[[krebs]]
path = ${davHome}/calendar/krebs
color = "light red"
[[uni]]
path = ${davHome}/calendar/uni-1
color = "yellow"
@@ -162,6 +165,12 @@ in {
collections = ["personal", "alew", "uni-1"]
conflict_resolution = "b wins"
[pair krebs]
a = "kalender_local"
b = "krebs_cloud"
collections = ["3edef929-d509-7944-2440-000a54f2d054"]
conflict_resolution = "b wins"
[pair fysi]
a = "kalender_local"
b = "fysi_cloud"
@@ -190,6 +199,12 @@ in {
username = "${kmeinCloud.username}"
password.fetch = ["command", "cat", "${kmeinCloud.passwordFile}"]
[storage krebs_cloud]
type = "caldav"
url = "http://calendar.r/krebs/"
username = "krebs"
password = "krebs"
[storage fysi_cloud]
type = "caldav"
url = "${fysiCloud.davEndpoint}/calendars/${fysiCloud.username}/"

View File

@@ -10,64 +10,6 @@
environment.systemPackages = [
(pkgs.writers.writeDashBin "vim" ''neovim "$@"'')
(pkgs.neovim.override {
configure = {
customRC = ''
source ${../lib/vim/init.vim}
luafile ${../lib/vim/init.lua}
'';
packages.nvim = with pkgs.vimPlugins; {
start = [
ale
fzf-vim
fzfWrapper
supertab
undotree
tabular
# vimwiki
niveumPackages.vimPlugins-vim-colors-paramount
nvim-lspconfig
vim-commentary
vim-css-color
vim-eunuch
niveumPackages.vimPlugins-vim-fetch
vim-fugitive
vim-gitgutter
vim-repeat
vim-sensible
vim-surround
(pkgs.vimUtils.buildVimPlugin rec {
pname = "vim-dim";
version = "1.1.0";
name = "${pname}-${version}";
src = pkgs.fetchFromGitHub {
owner = "jeffkreeftmeijer";
repo = pname;
rev = version;
sha256 = "sha256-lyTZUgqUEEJRrzGo1FD8/t8KBioPrtB3MmGvPeEVI/g=";
};
})
];
opt = [
csv
elm-vim
emmet-vim
haskell-vim
niveumPackages.vimPlugins-icalendar-vim
niveumPackages.vimPlugins-jq-vim
rust-vim
typescript-vim
vim-javascript
vim-ledger
vim-nix
vimtex
vim-pandoc
vim-pandoc-syntax
niveumPackages.vimPlugins-vim-256noir
];
};
};
})
niveumPackages.vim
];
}

View File

@@ -1,9 +1,14 @@
{pkgs, ...}: {
{
pkgs,
inputs,
...
}: {
nixpkgs = {
config.allowUnfree = true;
};
nix = {
package = pkgs.nixFlakes;
extraOptions = "experimental-features = nix-command flakes";
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
};
}

View File

@@ -4,6 +4,7 @@
lib,
inputs,
niveumPackages,
unstablePackages,
...
}: let
worldradio = pkgs.callPackage ../packages/worldradio.nix {};
@@ -95,6 +96,7 @@ in {
genpass # generate passwords
gdu # ncurses disk usage (ncdu is broken)
rmlint # remove duplicate files
gcc
python3Packages.jsonschema # json validation
jq # json toolkit
pup # html toolkit
@@ -123,6 +125,7 @@ in {
electrum
inkscape
astrolog
obsidian
anki-bin # flashcards
jbofihe # lojbanic software
zoom-us # video conferencing
@@ -221,6 +224,12 @@ in {
niveumPackages.kpaste
config.nur.repos.mic92.ircsink
(haskellPackages.ghcWithPackages (hs: [
hs.text
hs.lens
hs.bytestring
]))
(python3.withPackages (py: [
py.black
# py.python-language-server
@@ -261,6 +270,7 @@ in {
dia
pandoc
niveumPackages.man-pandoc
typst
# proselint
asciidoctor
wordnet
@@ -273,6 +283,11 @@ in {
(pkgs.writers.writeDashBin "hass-cli" ''
HASS_SERVER=http://zaatar.r:8123 HASS_TOKEN="$(cat ${config.age.secrets.home-assistant-token.path})" exec ${pkgs.home-assistant-cli}/bin/hass-cli "$@"
'')
# xml
saxonb_9_1
libxml2
zotero
];
age.secrets.home-assistant-token = {

View File

@@ -11,8 +11,10 @@ in {
services.openssh = {
enable = true;
ports = [sshPort];
passwordAuthentication = false;
forwardX11 = true;
settings = {
PasswordAuthentication = false;
X11Forwarding = true;
};
};
users.users.root.openssh.authorizedKeys.keys = kieran.sshKeys pkgs;

View File

@@ -161,11 +161,11 @@
turkish = {
BabylonTurkishEnglish = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/bidirectional/stardict-babylon-Babylon_Turkish_English-2.4.2.tar.bz2";
sha256 = "17rv46r95nkikg7aszqmfrbgdhz9ny52w423m8n01g3p93shdb4i";
sha256 = "1zpzgk3w0536gww31bj58cmn3imnkndyjwbcr7bay8ibq2kzv44z";
};
BabylonEnglishTurkish = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/bidirectional/stardict-babylon-Babylon_English_Turkish-2.4.2.tar.bz2";
sha256 = "063dl02s8ii8snsxgma8wi49xwr6afk6ysq0v986fygx5511353f";
sha256 = "0myx31xzb7nrn5m657h0bwdgm5xp93ccwp6lcpbxgjxdjm3q0hc5";
};
};
};

View File

@@ -8,23 +8,22 @@
pkgs.writers.writePython3 "nachtischsatan-bot" {
libraries = [pkgs.python3Packages.python-telegram-bot];
} ''
from telegram.ext import Updater, MessageHandler
from telegram.ext.filters import Filters
from telegram.ext import Application, ContextTypes, MessageHandler, filters
from telegram import Update
import random
import time
def flubber(update, context):
async def flubber(update: Update, context: ContextTypes.DEFAULT_TYPE):
time.sleep(random.randrange(4000) / 1000)
update.message.reply_text("*flubberflubber*")
await update.message.reply_text("*flubberflubber*")
with open('${tokenFile}', 'r') as tokenFile:
updater = Updater(tokenFile.read().strip())
updater.dispatcher.add_handler(MessageHandler(Filters.all, flubber))
updater.start_polling()
updater.idle()
token = tokenFile.read().strip()
application = Application.builder().token(token).build()
application.add_handler(MessageHandler(filters.ALL, flubber))
application.run_polling()
'';
in {
systemd.services.telegram-nachtischsatan = {

View File

@@ -3,7 +3,7 @@
lib,
...
}: let
url = "http://prism.r/realwallpaper-krebs-stars-berlin.png";
url = "http://wallpaper.r/realwallpaper-krebs-stars-berlin.png";
stateDir = "~/.cache/wallpaper";
in {
systemd.user.services.wallpaper = {

483
flake.lock generated
View File

@@ -3,16 +3,19 @@
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1680281360,
"narHash": "sha256-XdLTgAzjJNDhAG2V+++0bHpSzfvArvr2pW6omiFfEJk=",
"lastModified": 1684153753,
"narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=",
"owner": "ryantm",
"repo": "agenix",
"rev": "e64961977f60388dd0b49572bb0fc453b871f896",
"rev": "db5637d10f797bb251b94ef9040b237f4702cde3",
"type": "github"
},
"original": {
@@ -64,11 +67,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"lastModified": 1687171271,
"narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c",
"type": "github"
},
"original": {
@@ -78,111 +81,6 @@
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": {
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"locked": {
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_6": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_7": {
"locked": {
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_8": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_9": {
"locked": {
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
@@ -201,20 +99,19 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
]
},
"locked": {
"lastModified": 1681092193,
"narHash": "sha256-JerCqqOqbT2tBnXQW4EqwFl0hHnuZp21rIQ6lu/N4rI=",
"lastModified": 1687647567,
"narHash": "sha256-Ua90LZYJO7/7KW/KK/AqijhIekd+wxPwbVKXuBYzJeQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f9edbedaf015013eb35f8caacbe0c9666bbc16af",
"rev": "6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-22.11",
"ref": "release-23.05",
"repo": "home-manager",
"type": "github"
}
@@ -227,37 +124,9 @@
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1677075142,
"narHash": "sha256-0RXVZcK2YtPckd/3+jb+yLpeXZ6jnQe25w9idztDXi8=",
"owner": "kmein",
"repo": "menstruation.rs",
"rev": "e34af4393963cdbadb456b7b9ae2e95e6db7b8a3",
"type": "github"
},
"original": {
"owner": "kmein",
"repo": "menstruation.rs",
"type": "github"
}
},
"menstruation-backend_2": {
"inputs": {
"flake-utils": [
"menstruation-telegram",
"menstruation-backend",
"rust-overlay",
"flake-utils"
],
"nixpkgs": [
"menstruation-telegram",
"menstruation-backend",
"rust-overlay",
"nixpkgs"
],
"rust-overlay": "rust-overlay_2"
"rust-overlay": [
"rust-overlay"
]
},
"locked": {
"lastModified": 1677075142,
@@ -275,9 +144,15 @@
},
"menstruation-telegram": {
"inputs": {
"flake-utils": "flake-utils_3",
"menstruation-backend": "menstruation-backend_2",
"nixpkgs": "nixpkgs_3"
"flake-utils": [
"flake-utils"
],
"menstruation-backend": [
"menstruation-backend"
],
"nixpkgs": [
"nixpkgs-old"
]
},
"locked": {
"lastModified": 1677075205,
@@ -315,100 +190,53 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1665296151,
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
"lastModified": 1687466461,
"narHash": "sha256-oupXI7g7RPzlpGUfAu1xG4KBK53GrZH8/xeKgKDB4+Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
"rev": "ecb441f22067ba1d6312f4932a7c64efa8d19a7b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-old": {
"locked": {
"lastModified": 1682600000,
"narHash": "sha256-ha4BehR1dh8EnXSoE1m/wyyYVvHI9txjW4w5/oxsW5Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1687652732,
"narHash": "sha256-J5DIQzLejT/9xjSSOxjHJ6r1nc4VawKnLejHtOQKjV4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b154feadb9abd34350360a80cb4b7e6ce8525a75",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1665296151,
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1669418739,
"narHash": "sha256-T86oFvcUIRwHWBWUt7WjaP4BP/3lDGbv5AppQSI1FkI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "695b3515251873e0a7e2021add4bba643c56cde3",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "695b3515251873e0a7e2021add4bba643c56cde3",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1681269223,
"narHash": "sha256-i6OeI2f7qGvmLfD07l1Az5iBL+bFeP0RHixisWtpUGo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "87edbd74246ccdfa64503f334ed86fa04010bab9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1677158633,
"narHash": "sha256-t7za78oRkDIjdFQF0PCilfCziFyhfowCgs9Ry+sEvE4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "129b6f78121802d18d215c9f9e04d7971c58ea0c",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1665296151,
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1659446231,
"narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=",
@@ -424,45 +252,13 @@
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1665296151,
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1669418739,
"narHash": "sha256-T86oFvcUIRwHWBWUt7WjaP4BP/3lDGbv5AppQSI1FkI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "695b3515251873e0a7e2021add4bba643c56cde3",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "695b3515251873e0a7e2021add4bba643c56cde3",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1681454031,
"narHash": "sha256-JOamj7vKkFRp5mJ7FKt5dPfCmWj33sZLnBGDt15c/sc=",
"lastModified": 1687654170,
"narHash": "sha256-82D7t8R2SoFqt06HLVMbFMPjQy32nTrECJBLZvTt2aI=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8a35714f0be00235e2a1c8b759e6dc3888763d8b",
"rev": "9eed2d0c604236451550cede1095b94bc8897133",
"type": "github"
},
"original": {
@@ -474,8 +270,12 @@
"recht": {
"inputs": {
"blessings": "blessings",
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_5"
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1677165419,
@@ -493,11 +293,11 @@
},
"retiolum": {
"locked": {
"lastModified": 1681246809,
"narHash": "sha256-3RUAwk0ApPjq2Ms8KiAh+gG6EJKWurIur612w2m3Zu8=",
"lastModified": 1686076643,
"narHash": "sha256-midjyNXeGAqXzwXKnHNsTnRwPIbturlq2FcHOh9fivg=",
"ref": "refs/heads/master",
"rev": "c8ddb36f3d85be762aeb1893a79da36014f55658",
"revCount": 296,
"rev": "f79b533caf30820d93a79878d871c08faa35b3f4",
"revCount": 306,
"type": "git",
"url": "https://git.thalheim.io/Mic92/retiolum"
},
@@ -514,10 +314,13 @@
"menstruation-backend": "menstruation-backend",
"menstruation-telegram": "menstruation-telegram",
"nixinate": "nixinate",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs",
"nixpkgs-old": "nixpkgs-old",
"nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur",
"recht": "recht",
"retiolum": "retiolum",
"rust-overlay": "rust-overlay",
"scripts": "scripts",
"telebots": "telebots",
"tinc-graph": "tinc-graph",
@@ -527,72 +330,19 @@
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs"
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1677033035,
"narHash": "sha256-w6XsKaW46kZNEk2vVfuoNIBEq/YzDy9kNk8cU0xJZEQ=",
"lastModified": 1687573996,
"narHash": "sha256-F7pDERmi8MomkMhcUW88IW6RRrxAk7QO2PXs+LMpxpI=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "6c9e8ea3ba73a9fed29ddc1cc52ade8e5c946a8d",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1677033035,
"narHash": "sha256-w6XsKaW46kZNEk2vVfuoNIBEq/YzDy9kNk8cU0xJZEQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "6c9e8ea3ba73a9fed29ddc1cc52ade8e5c946a8d",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_3": {
"inputs": {
"flake-utils": "flake-utils_6",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1677119371,
"narHash": "sha256-L0Da4eKzDZrsy8ysOS1lhgDjAgEqGvYGf/lXaRd5/YQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "c67c79ea25664d66e74ae91a6fa0d6c65d12d3a7",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_4": {
"inputs": {
"flake-utils": "flake-utils_8",
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1677119371,
"narHash": "sha256-L0Da4eKzDZrsy8ysOS1lhgDjAgEqGvYGf/lXaRd5/YQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "c67c79ea25664d66e74ae91a6fa0d6c65d12d3a7",
"rev": "ec002586144fe0f48039dced270c188f0b8213ab",
"type": "github"
},
"original": {
@@ -604,23 +354,21 @@
"scripts": {
"inputs": {
"flake-utils": [
"scripts",
"rust-overlay",
"flake-utils"
],
"nixpkgs": [
"scripts",
"rust-overlay",
"nixpkgs"
],
"rust-overlay": "rust-overlay_3"
"rust-overlay": [
"rust-overlay"
]
},
"locked": {
"lastModified": 1677271864,
"narHash": "sha256-BghYMB/lauerExMsDtGZNGZGdoGuF7LPtbmpyh9ycyA=",
"lastModified": 1687373960,
"narHash": "sha256-dbRUzjHwFmZrS5i7WQedRx2YCRUry0z6RYHkb4ORNHM=",
"owner": "kmein",
"repo": "scripts",
"rev": "79bffac7f9eda1b3be76f2a4ff18d81b44c74390",
"rev": "c0d9fa3efff0765af4219732292c3a7593de6856",
"type": "github"
},
"original": {
@@ -646,8 +394,8 @@
},
"telebots": {
"inputs": {
"flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_7"
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1677156381,
@@ -671,14 +419,16 @@
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_4"
"rust-overlay": [
"rust-overlay"
]
},
"locked": {
"lastModified": 1677160040,
"narHash": "sha256-UhyZaIZ88vN/7fiBcamfV77eHjQnL8zSVznaqxLgbhs=",
"lastModified": 1687504941,
"narHash": "sha256-wnCRcQn8izEHE8MfBpPkLezxAMIg7SVTq8CZsgkar54=",
"owner": "kmein",
"repo": "tinc-graph",
"rev": "f705ca35e30ab0daf9cf52000e58931d7c5c42b5",
"rev": "91a3a85beaaec4ec43ea5a41322c3a5a6e04edc4",
"type": "github"
},
"original": {
@@ -689,8 +439,12 @@
},
"traadfri": {
"inputs": {
"flake-utils": "flake-utils_9",
"nixpkgs": "nixpkgs_9"
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs-old"
]
},
"locked": {
"lastModified": 1677165914,
@@ -706,29 +460,14 @@
"type": "github"
}
},
"utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"voidrice": {
"flake": false,
"locked": {
"lastModified": 1681301489,
"narHash": "sha256-5Zz33Q3E4A9nsEmxPQikYeX7Rvu3hM+PlXx/0SIqG34=",
"lastModified": 1685152014,
"narHash": "sha256-wEC7dj2vNAn5WJdQc2gGumOhpdPnQLdc4zypdfWmfoI=",
"owner": "Lukesmithxyz",
"repo": "voidrice",
"rev": "d4ff2ebaf3e88efe20cae0d1e592fddfc433c96e",
"rev": "07de33840d9ce0f554c0e5555ac27250be0895c2",
"type": "github"
},
"original": {

View File

@@ -4,33 +4,52 @@
inputs = {
agenix.url = "github:ryantm/agenix";
flake-utils.url = "github:numtide/flake-utils";
home-manager.url = "github:nix-community/home-manager/release-22.11";
home-manager.url = "github:nix-community/home-manager/release-23.05";
menstruation-backend.url = "github:kmein/menstruation.rs";
menstruation-telegram.url = "github:kmein/menstruation-telegram";
nixinate.url = "github:matthewcroughan/nixinate";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";
nixpkgs-old.url = "github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/master";
nur.url = "github:nix-community/NUR";
recht.url = "github:kmein/recht";
scripts.url = "github:kmein/scripts";
retiolum.url = "git+https://git.thalheim.io/Mic92/retiolum";
rust-overlay.url = "github:oxalica/rust-overlay";
telebots.url = "github:kmein/telebots";
tinc-graph.url = "github:kmein/tinc-graph";
traadfri.url = "github:kmein/traadfri";
voidrice.url = "github:Lukesmithxyz/voidrice";
agenix.inputs.nixpkgs.follows = "nixpkgs";
agenix.inputs.home-manager.follows = "home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
menstruation-backend.inputs.flake-utils.follows = "flake-utils";
menstruation-backend.inputs.nixpkgs.follows = "nixpkgs";
menstruation-backend.inputs.rust-overlay.follows = "rust-overlay";
menstruation-telegram.inputs.flake-utils.follows = "flake-utils";
menstruation-telegram.inputs.menstruation-backend.follows = "menstruation-backend";
menstruation-telegram.inputs.nixpkgs.follows = "nixpkgs-old";
nixinate.inputs.nixpkgs.follows = "nixpkgs";
recht.inputs.flake-utils.follows = "flake-utils";
recht.inputs.nixpkgs.follows = "nixpkgs";
rust-overlay.inputs.flake-utils.follows = "flake-utils";
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
scripts.inputs.flake-utils.follows = "flake-utils";
scripts.inputs.nixpkgs.follows = "nixpkgs";
scripts.inputs.rust-overlay.follows = "rust-overlay";
tinc-graph.inputs.flake-utils.follows = "flake-utils";
tinc-graph.inputs.nixpkgs.follows = "nixpkgs";
tinc-graph.inputs.rust-overlay.follows = "rust-overlay";
traadfri.inputs.flake-utils.follows = "flake-utils";
traadfri.inputs.nixpkgs.follows = "nixpkgs-old";
voidrice.flake = false;
};
outputs = inputs @ {
self,
nixpkgs,
nixpkgs-unstable,
nur,
home-manager,
nixinate,
@@ -40,7 +59,24 @@
...
}:
{
apps = nixinate.nixinate.x86_64-linux self;
apps =
nixinate.nixinate.x86_64-linux self
// {
x86_64-linux.deploy = let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in {
type = "app";
program = toString (pkgs.writers.writeDash "deploy" ''
if [ $# -eq 0 ]
then
systems='${toString (builtins.attrNames self.nixosConfigurations)}'
else
systems=$*
fi
${pkgs.parallel}/bin/parallel --line-buffer --tagstring '{}' 'nix run .\?submodules=1\#apps.nixinate.{}' ::: $systems
'');
};
};
nixosModules = {
htgen = import modules/htgen.nix;
@@ -58,14 +94,24 @@
panoptikon = import lib/panoptikon.nix;
};
nixosConfigurations = {
nixosConfigurations = let
niveumSpecialArgs = system: {
unstablePackages = import nixpkgs-unstable {
inherit system;
config.allowUnfreePredicate = pkg:
builtins.elem (nixpkgs-unstable.lib.getName pkg) [
"obsidian"
];
};
niveumPackages = inputs.self.packages.${system};
niveumLib = inputs.self.lib;
inherit inputs;
};
in {
ful = nixpkgs.lib.nixosSystem rec {
system = "aarch64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
niveumLib = inputs.self.lib;
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
@@ -86,10 +132,7 @@
};
zaatar = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
@@ -109,10 +152,7 @@
makanek = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
# for using inputs in other config files
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
@@ -150,10 +190,7 @@
};
manakish = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
@@ -173,10 +210,7 @@
};
kabsa = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
@@ -234,6 +268,7 @@
genius = pkgs.callPackage packages/genius.nix {};
gfs-fonts = pkgs.callPackage packages/gfs-fonts.nix {};
git-preview = pkgs.callPackage packages/git-preview.nix {};
gpt = pkgs.callPackage packages/gpt.nix {};
hc = pkgs.callPackage packages/hc.nix {};
heuretes = pkgs.callPackage packages/heuretes.nix {};
htgen = pkgs.callPackage packages/htgen.nix {};
@@ -276,9 +311,11 @@
unicodmenu = pkgs.callPackage packages/unicodmenu.nix {};
untilport = pkgs.callPackage packages/untilport.nix {};
vg = pkgs.callPackage packages/vg.nix {};
vim = pkgs.callPackage packages/vim.nix {niveumPackages = self.packages.${system};};
vimPlugins-cheat-sh-vim = pkgs.callPackage packages/vimPlugins/cheat-sh.nix {};
vimPlugins-icalendar-vim = pkgs.callPackage packages/vimPlugins/icalendar-vim.nix {};
vimPlugins-jq-vim = pkgs.callPackage packages/vimPlugins/jq-vim.nix {};
vimPlugins-typst-vim = pkgs.callPackage packages/vimPlugins/typst-vim.nix {};
vimPlugins-vim-256noir = pkgs.callPackage packages/vimPlugins/vim-256noir.nix {};
vimPlugins-vim-colors-paramount = pkgs.callPackage packages/vimPlugins/vim-colors-paramount.nix {};
vimPlugins-vim-fetch = pkgs.callPackage packages/vimPlugins/vim-fetch.nix {};

View File

@@ -1,37 +1,38 @@
rec {
{
# all dark colours are 20% darker than the bright ones
black = {
bright = "#282c34";
dark = "#282c34";
bright = "#4c5363"; # "#282c34";
dark = "#20232a";
};
red = {
bright = "#e06c75";
dark = "#e06c75";
bright = "#e68990"; #"#e06c75";
dark = "#d43541";
};
green = {
bright = "#98c379";
dark = "#98c379";
bright = "#acce93"; #"#98c379";
dark = "#77af4e";
};
yellow = {
bright = "#e5c07b";
dark = "#e5c07b";
bright = "#eacc95"; #"#e5c07b";
dark = "#d9a440";
};
blue = {
bright = "#61afef";
dark = "#61afef";
bright = "#80bff2"; #"#61afef";
dark = "#2490e9";
};
magenta = {
bright = "#c678dd";
dark = "#c678dd";
bright = "#d193e3"; #"#c678dd";
dark = "#af42cf";
};
cyan = {
bright = "#56b6c2";
dark = "#56b6c2";
bright = "#77c4ce"; #"#56b6c2";
dark = "#3b99a5";
};
white = {
bright = "#dcdfe4";
dark = "#dcdfe4";
bright = "#e3e5e9"; #"#dcdfe4";
dark = "#a9b1bd";
};
background = black.dark;
foreground = white.bright;
background = "#282c34"; #black.dark;
foreground = "#dcdfe4"; #white.bright;
cursor = "#a3b3cc";
}

View File

@@ -29,9 +29,9 @@ rec {
};
white = {
bright = "#8c00ec";
dark = "#efefef";
dark = "#bfbfbf";
};
background = white.dark;
background = "#efefef";
foreground = "#181818";
cursor = "#bbbbbb";
cursor = "#a3b3cc";
}

View File

@@ -13,7 +13,7 @@
'';
in {
theme = {
name = "plain";
theme = "plain";
overrides = {
critical_fg = colours.red.bright;
good_fg = colours.green.bright;
@@ -30,15 +30,14 @@ in {
separator_fg = colours.black.bright;
};
};
icons.name = "awesome6";
icons.overrides.rss = "";
icons.icons = "awesome6";
icons.overrides.vpn = "";
icons.overrides.irc = "";
block = [
{
block = "weather";
autolocate = true;
format = "{location}: {temp}C";
format = "$icon $location: $temp";
service = {
name = "openweathermap";
city_id = "2950159";
@@ -73,12 +72,6 @@ in {
info = ["total"];
warning = ["mention" "review_requested" "team_mention" "manual" "invitation" "assign" "subscribed"];
}
{
block = "custom";
interval = 10;
command = "newsboat-unread-count";
json = true;
}
{
block = "custom";
interval = 10;
@@ -153,6 +146,12 @@ in {
json = true;
hide_when_empty = true;
}
{
block = "service_status";
service = "hu-vpn";
active_format = "^icon_vpn";
inactive_format = "";
}
{
block = "custom";
interval = 5;
@@ -168,7 +167,7 @@ in {
{
block = "net";
device = wirelessInterface;
format = "{ssid} {signal_strength}";
format = "$icon $ssid $signal_strength";
}
{
block = "battery";
@@ -176,17 +175,14 @@ in {
}
{
block = "sound";
on_click = "pavucontrol";
}
{
block = "disk_space";
format = "{icon} {available}";
format = "$icon $available";
}
{
block = "memory";
display_type = "memory";
format_mem = "{mem_used;G}";
clickable = false;
format = "$icon $mem_used.eng(prefix:G)";
}
{block = "load";}
{

View File

@@ -31,7 +31,7 @@
nick ? ''"$PANOPTIKON_WATCHER"-watcher'',
}:
pkgs.writers.writeDash "kpaste-irc-reporter" ''
${niveumPackages.kpaste}/bin/kpaste \
KPASTE_CONTENT_TYPE=text/plain ${niveumPackages.kpaste}/bin/kpaste \
| ${pkgs.gnused}/bin/sed -n "${
if retiolumLink
then "2"

View File

@@ -34,6 +34,7 @@ let
radiorecord = "radiorecord";
rap = "rap";
rock = "rock";
rekt = "rekt";
russian = "russia";
schlager = "schlager";
soma = "soma";
@@ -69,6 +70,9 @@ let
rte-name = name: "RTÉ ${name}";
rte = name: "https://www.rte.ie/manifests/${name}.m3u8";
rekt-name = name: "Rekt ${name}";
rekt = name: "https://stream.rekt.network/${name}.m4a";
royal-name = name: "${name} | RoyalRadio";
royal = name: "http://193.33.170.218:8000/${name}";
@@ -1943,6 +1947,11 @@ in
station = "${name} | Your Classical";
tags = [tags.classical];
}) ["ycradio" "guitar" "cms" "relax" "lullabies" "choral" "favorites" "chambermusic" "concertband" "holiday"]
++ map (name: {
stream = "https://stream.rekt.network/${name}.m4a";
station = "${name} | Rekt Network";
tags = [tags.rekt];
}) ["rekt" "rektory" "nightride" "chillsynth" "datawave" "spacesynth" "darksynth" "horrorsynth" "ebsm"]
/*
(caster-fm "TODO" "noasrv" 10182) # https://github.com/cccruzr/albumsyoumusthear/blob/7e00baf575e4d357cd275d54d1aeb717321141a8/HLS/IBERO_90_1.m3u
(caster-fm "TODO" "shaincast" 20866) # https://github.com/cccruzr/albumsyoumusthear/blob/7e00baf575e4d357cd275d54d1aeb717321141a8/HLS/IBERO_90_1.m3u
@@ -1969,5 +1978,8 @@ http://n0b.radiojar.com/1pu7hhf8kfhvv
Chillout from kassel
https://server4.streamserver24.com:2199/tunein/ejanowsk.pls
Jazz
http://37.251.146.169:7800/stream
*/

View File

@@ -126,6 +126,7 @@ augroup filetypes
autocmd bufnewfile,bufread *.rust packadd rust-vim
autocmd bufnewfile,bufread *.csv packadd csv.vim | set filetype=csv
autocmd bufnewfile,bufread *.tex packadd vimtex | set filetype=tex
autocmd bufnewfile,bufread *.typ packadd typst.vim | set filetype=typst
autocmd bufnewfile,bufread *.ics packadd icalendar.vim | set filetype=icalendar
autocmd bufnewfile,bufread *.ts packadd typescript-vim | set filetype=typescript
autocmd bufnewfile,bufread *.jq packadd jq.vim

15
packages/gpt.nix Normal file
View File

@@ -0,0 +1,15 @@
{
curl,
writers,
jq,
apiKeyCommand ? "pass api-keys/openai.com",
model ? "gpt-3.5-turbo",
}:
writers.writeDashBin "gpt" ''
json=$(jq --slurp --raw-input '{model:"${model}", messages: [{role: "user", content: .}]}')
${curl}/bin/curl -sSL https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(${apiKeyCommand})" \
-d "$json" \
| ${jq}/bin/jq -r '.choices[] | .message.content'
''

View File

@@ -1,23 +0,0 @@
{ stdenv, fetchFromGitHub, cmake, lib }:
stdenv.mkDerivation rec {
pname = "itl";
version = "0.8.0";
src = fetchFromGitHub {
owner = "arabeyes-org";
repo = "ITL";
rev = "v${version}";
sha256 = "sha256-GTicTbZmFbPhzInFob3cfvtTxOpUZuqsQz1w9CoWu9w=";
};
nativeBuildInputs = [cmake];
cmakeFlags = [
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
"-DCMAKE_INSTALL_LIBDIR=lib"
];
meta = {
homepage = "https://www.arabeyes.org/ITL";
description = "Islamic Tools and Libraries";
license = lib.licenses.lgpl2;
platforms = lib.platforms.all;
maintainer = [lib.maintainers.kmein];
};
}

View File

@@ -1,21 +0,0 @@
{ stdenv, fetchFromGitHub, itl, lib, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "itools";
version = "1.0";
src = fetchFromGitHub {
owner = "arabeyes-org";
repo = "itools";
rev = version;
sha256 = "sha256-g9bsjupC4Sb5ywAgUNbjYLbHZ/i994lbNSnX2JyaP3g=";
};
preAutoreconf = "autoupdate";
nativeBuildInputs = [autoreconfHook];
buildInputs = [itl];
meta = {
homepage = "https://www.arabeyes.org/ITL";
description = "The itools package is a set of user friendly applications utilizing Arabeyes' ITL library. ";
license = lib.licenses.gpl2;
platforms = lib.platforms.all;
maintainer = [lib.maintainers.kmein];
};
}

View File

@@ -49,7 +49,6 @@ in
${lib.concatStringsSep "\n" (lib.mapAttrsToList scriptCase cfg.scripts)}
*) ${pkgs.coreutils}/bin/cat ;;
esac \
| tr -d '\r\n' \
| ${pkgs.xclip}/bin/xclip -selection ${cfg.selection} -in
${pkgs.libnotify}/bin/notify-send --app-name="klem" "Result copied to clipboard."

View File

@@ -4,6 +4,7 @@
writers,
}:
writers.writeDashBin "kpaste" ''
${curl}/bin/curl -sS http://p.r --data-binary @"''${1:--}" |
${curl}/bin/curl -sS http://p.r --data-binary @"''${1:--}" \
-H "Content-Type-Override: ''${KPASTE_CONTENT_TYPE-}"
${gnused}/bin/sed '$ {p;s|http://p.r|https://p.krebsco.de|}'
''

67
packages/vim.nix Normal file
View File

@@ -0,0 +1,67 @@
{
neovim,
vimPlugins,
fetchFromGitHub,
vimUtils,
niveumPackages,
...
}: (neovim.override {
configure = {
customRC = ''
source ${../lib/vim/init.vim}
luafile ${../lib/vim/init.lua}
'';
packages.nvim = with vimPlugins; {
start = [
ale
fzf-vim
fzfWrapper
supertab
undotree
tabular
# vimwiki
niveumPackages.vimPlugins-vim-colors-paramount
nvim-lspconfig
vim-commentary
vim-css-color
vim-eunuch
niveumPackages.vimPlugins-vim-fetch
vim-fugitive
vim-gitgutter
vim-repeat
vim-sensible
vim-surround
(vimUtils.buildVimPlugin rec {
pname = "vim-dim";
version = "1.1.0";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "jeffkreeftmeijer";
repo = pname;
rev = version;
sha256 = "sha256-lyTZUgqUEEJRrzGo1FD8/t8KBioPrtB3MmGvPeEVI/g=";
};
})
];
opt = [
csv
elm-vim
emmet-vim
haskell-vim
niveumPackages.vimPlugins-icalendar-vim
niveumPackages.vimPlugins-jq-vim
rust-vim
typescript-vim
vim-javascript
vim-ledger
vim-nix
vimtex
vim-pandoc
vim-pandoc-syntax
niveumPackages.vimPlugins-vim-256noir
niveumPackages.vimPlugins-typst-vim
];
};
};
})

View File

@@ -0,0 +1,14 @@
{
vimUtils,
fetchFromGitHub,
}:
vimUtils.buildVimPluginFrom2Nix {
pname = "typst.vim";
version = "2882f21";
src = fetchFromGitHub {
owner = "kaarmu";
repo = "typst.vim";
rev = "2882f211f1498c790bb857f8a912c8e86526a362";
sha256 = "0xr8k17ggqfdksf3kybimfl5djjz3h19k4479la06i5lnwvlhkh2";
};
}

Submodule secrets updated: 99320671a5...f32a17e485

View File

@@ -93,5 +93,5 @@ in {
environment.systemPackages = [pkgs.vim pkgs.git pkgs.tmux pkgs.python3];
# since 22.05 timeout fails?
systemd.services.systemd-networkd-wait-online.enable = false;
# systemd.services.systemd-networkd-wait-online.enable = false;
}

View File

@@ -24,7 +24,14 @@ in {
enable = true;
watchers = {
"github-meta" = {
script = panoptikon.urlJSON {} "https://api.github.com/meta";
script = panoptikon.urlJSON {
jqScript = ''
{
ssh_key_fingerprints: .ssh_key_fingerprints,
ssh_keys: .ssh_keys
}
'';
} "https://api.github.com/meta";
reporters = [irc-xxx];
};
lammla = {

View File

@@ -16,6 +16,7 @@ in {
./names.nix
./nextcloud.nix
./radio-news.nix
./onlyoffice.nix
./retiolum-map.nix
./tarot.nix
./tt-rss.nix

View File

@@ -4,9 +4,9 @@ let
in {
services.gitea = {
enable = true;
rootUrl = domain;
appName = "code.kmein.de";
settings = {
server.ROOT_URL = domain;
server.SSH_PORT = sshPort;
service.DISABLE_REGISTRATION = true;
};

View File

@@ -16,7 +16,6 @@
extraModulePackages = [];
loader.grub = {
enable = true;
version = 2;
devices = ["/dev/sda"];
configurationLimit = 3;
};

View File

@@ -7,17 +7,13 @@
startAt = "7:00";
script = ''
greeting=$(echo "moin
oi
noim
MOIN
OI
moi" | shuf -n1)
MOIN" | shuf -n1)
echo "$greeting" | ${config.nur.repos.mic92.ircsink}/bin/ircsink \
--nick "$greeting""bot" \
--server irc.hackint.org \
--port 6697 \
--secure \
--target '#hsmr-moin' >/dev/null 2>&1
--target '#hsmr' >/dev/null 2>&1
'';
serviceConfig.DynamicUser = true;
};

View File

@@ -223,8 +223,7 @@ in {
email_configs = let
inherit (import ../../../lib) kieran;
inherit (import ../../../lib/email.nix {inherit lib;}) cock;
in [
{
cockConfig = {
send_resolved = true;
to = kieran.email;
from = cock.user;
@@ -232,7 +231,8 @@ in {
auth_username = cock.user;
auth_identity = cock.user;
auth_password = "$EMAIL_PASSWORD";
}
};
in [
];
}
];

View File

@@ -23,7 +23,7 @@ in {
services.nextcloud = {
enable = true;
package = pkgs.nextcloud25;
package = pkgs.nextcloud26;
https = true;
enableBrokenCiphersForSSE = false;

View File

@@ -0,0 +1,29 @@
{
pkgs,
config,
...
}: {
services.onlyoffice = {
enable = true;
port = 8111;
hostname = "onlyoffice.kmein.de";
jwtSecretFile = config.age.secrets.onlyoffice-key.path;
};
age.secrets.onlyoffice-key = {
file = ../../secrets/onlyoffice-jwt-key.age;
owner = "onlyoffice";
};
# otherwise this leads to nginx
# open() "/var/lib/onlyoffice/documentserver/App_Data/cache/files/data/conv_check_1138411943_docx/output.docx" failed (13: Permission denied)
# and mysterious 403 errors
system.activationScripts.onlyoffice-readable.text = ''
chmod a+x /var/lib/onlyoffice/documentserver/
'';
services.nginx.virtualHosts.${config.services.onlyoffice.hostname} = {
enableACME = true;
forceSSL = true;
};
}

View File

@@ -20,7 +20,7 @@ in {
script = ''
${tinc-graph}/bin/tinc-graph --geoip-file ${geo-ip-database-path} --network ${network} \
| ${pkgs.coreutils}/bin/tee network.json \
| ${tinc-graph}/bin/tinc-statistics > statistics.json
| ${tinc-graph}/bin/tinc-midpoint > midpoint.json
cp ${tinc-graph}/static/map.html map.html
cp ${tinc-graph}/static/map.html index.html

View File

@@ -1,52 +1,13 @@
{pkgs, ...}: let
pulseaudioCard = "alsa_card.pci-0000_00_1b.0";
fingerprint = {
HDMI-1 = "00ffffffffffff004c2d320d48435030181a0103803c22782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450056502100001e000000fd0032481e5111000a202020202020000000fc00433237463339300a2020202020000000ff00485451483630323132390a202001e402031af14690041f131203230907078301000066030c00100080011d00bc52d01e20b828554056502100001e8c0ad090204031200c4055005650210000188c0ad08a20e02d10103e9600565021000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061";
LVDS-1 = "00ffffffffffff0006af6c100000000000140104901c10780220e5925554922825505400000001010101010101010101010101010101121b56585000193030203600159c100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231323558573031205630200a00ec";
};
in {
home-manager.users.me = {
programs.autorandr = {
enable = true;
hooks.postswitch.wallpaper = "systemctl --user restart wallpaper";
profiles = {
single = {
hooks.postswitch = "${pkgs.pulseaudio}/bin/pactl set-card-profile ${pulseaudioCard} alsa_output.pci-0000_00_1b.0.analog-stereo";
fingerprint = {inherit (fingerprint) LVDS-1;};
config = {
HDMI-1.enable = false;
LVDS-1 = {
enable = true;
crtc = 0;
mode = "1366x768";
position = "277x1080";
primary = true;
rate = "60.10";
};
};
};
desk = {
hooks.postswitch = "${pkgs.pulseaudio}/bin/pactl set-card-profile ${pulseaudioCard} output:hdmi-stereo+input:analog-stereo";
fingerprint = {inherit (fingerprint) HDMI-1 LVDS-1;};
config = {
HDMI-1 = {
enable = true;
crtc = 1;
mode = "1920x1080";
position = "0x0";
primary = true;
rate = "60.00";
};
LVDS-1 = {
enable = true;
crtc = 0;
mode = "1366x768";
position = "277x1080";
rate = "60.10";
};
};
};
};
};
};
{pkgs, ...}: {
services.xserver.displayManager.sessionCommands = let
intern = "LVDS-1";
extern = "HDMI-1";
pulseaudioCard = "alsa_card.pci-0000_00_1b.0";
# pulseaudioProfile = "output:hdmi-stereo-extra2+input:analog-stereo";
pulseaudioProfile = "alsa_output.pci-0000_00_1b.0.analog-stereo";
in
toString (pkgs.writers.writeDash "hdmi-on" ''
${pkgs.xorg.xrandr}/bin/xrandr --output ${intern} --primary --auto --output ${extern} --above ${intern} --auto
${pkgs.pulseaudio}/bin/pactl set-card-profile ${pulseaudioCard} ${pulseaudioProfile}
'');
}

View File

@@ -1,58 +1,16 @@
{
config,
pkgs,
...
}: let
inherit (import ../../lib) tmpfilesConfig;
in {
services.postgresql = {
enable = true;
dataDir = "/var/state/postgresql/${config.services.postgresql.package.psqlSchema}";
ensureDatabases = ["atuin"];
ensureUsers = [
{
name = "atuin";
ensurePermissions."DATABASE atuin" = "ALL PRIVILEGES";
}
];
};
{pkgs, ...}: {
services.postgresqlBackup = {
enable = true;
databases = ["atuin"];
};
systemd.tmpfiles.rules = [
(tmpfilesConfig {
type = "d";
path = "/var/state/postgresql";
mode = "0700";
user = "postgres";
group = "postgres";
})
];
services.postgresql.package = pkgs.postgresql_14;
users.groups.atuin = {};
users.users.atuin = {
isSystemUser = true;
group = "atuin";
home = "/run/atuin";
createHome = true;
services.atuin = {
host = "0.0.0.0";
openFirewall = true;
openRegistration = true;
port = 8888;
enable = 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 = "${pkgs.atuin}/bin/atuin server start";
Restart = "on-failure";
};
};
networking.firewall.allowedTCPPorts = [8888];
}

View File

@@ -10,8 +10,8 @@ in {
./atuin.nix
./backup.nix
./gaslight.nix
./hardware-configuration.nix
./kiosk.nix
./hardware-configuration.nix
./moodle-dl-meinhark.nix
./pulseaudio.nix
./home-assistant.nix
@@ -82,7 +82,7 @@ in {
];
# since 22.05 timeout fails?
systemd.services.systemd-networkd-wait-online.enable = false;
# systemd.services.systemd-networkd-wait-online.enable = false;
networking = {
hostName = "zaatar";
@@ -90,5 +90,5 @@ in {
retiolum = retiolumAddresses.zaatar;
};
system.stateVersion = "20.09";
system.stateVersion = "22.05";
}

View File

@@ -9,6 +9,7 @@
password = "";
extraGroups = ["audio"];
};
# TODO https://github.com/cage-kiosk/cage/issues/138
services.cage = {
enable = true;
user = config.users.extraUsers.kiosk.name;

View File

@@ -7,7 +7,7 @@
moodle-dl-package = pkgs.moodle-dl.overrideAttrs (old:
old
// {
patches = [../../packages/moodle-dl/telegram-format.patch];
# patches = [../../packages/moodle-dl/telegram-format.patch]; TODO?
});
in {
age.secrets = {
@@ -26,7 +26,7 @@ in {
};
services.moodle-dl = {
enable = true;
enable = false;
startAt = "hourly";
package = moodle-dl-package;
tokensFile = config.age.secrets.moodle-dl-tokens.path;
@@ -95,6 +95,16 @@ in {
# WS 2022
115414 # Nonnos
116108 # Dialektologie
# SS 2023
117967 # Archaische Lyrik
119658 # Dyskolos
118963 # Antike Biographie
92668 # Taa
120671 # Jiddisch
120720 # Sorbisch
118076 # X-Tutorial
120631 # Predigten
];
download_submissions = true;
download_descriptions = true;

View File

@@ -1,15 +1,10 @@
{
config,
pkgs,
lib,
...
}: {
{config, ...}: {
services.spotifyd = {
enable = true;
settings = {
global = {
username_cmd = "cat ${config.age.secrets.spotify-username.path}";
password_cmd = "cat ${config.age.secrets.spotify-password.path}";
username_cmd = "cat $CREDENTIALS_DIRECTORY/username";
password_cmd = "cat $CREDENTIALS_DIRECTORY/password";
backend = "pulseaudio";
bitrate = 320;
device_type = "s_t_b"; # set-top box
@@ -18,6 +13,13 @@
};
};
systemd.services.spotifyd = {
serviceConfig.LoadCredential = [
"username:${config.age.secrets.spotify-username.path}"
"password:${config.age.secrets.spotify-password.path}"
];
};
age.secrets = {
spotify-username.file = ../../secrets/spotify-username.age;
spotify-password.file = ../../secrets/spotify-password.age;
@@ -28,6 +30,4 @@
unload-module module-native-protocol-unix
load-module module-native-protocol-unix auth-anonymous=1
'';
systemd.services.spotifyd.serviceConfig.Restart = "always";
}