1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00

672 Commits

Author SHA1 Message Date
682db94aae home-assistant: allow bluetooth 2025-12-19 15:05:54 +01:00
1bba38be77 tarot: replace htgen by flask 2025-12-19 15:05:29 +01:00
f7a7e80d97 anubis: set socket paths 2025-12-19 13:11:24 +01:00
7327b3149a tlg-wotd: temporarily disable 2025-12-19 13:11:06 +01:00
9ab93d0e82 htgen: update 2025-12-19 12:51:40 +01:00
2f5ad473c6 cro: chromium.override 2025-12-19 11:56:48 +01:00
e478ae3e6e flake: update lock 2025-12-19 11:56:33 +01:00
06d3d12afa system -> stdenv.hostPlatform.system 2025-12-19 11:56:16 +01:00
1060339a93 home-assistant: auto-update container 2025-12-19 11:56:02 +01:00
af1e852228 streams: update 2025-12-19 11:18:49 +01:00
9ff500bb37 gaming: init more 2025-12-14 18:19:37 +01:00
18603a5682 jq-lsp: use upstream 2025-12-13 23:59:09 +01:00
53578ac92b command-not-found: conflicts with nix-index-database 2025-12-13 23:56:50 +01:00
14118b6a63 maakaron: remove 2025-12-13 23:53:24 +01:00
0813d2e37c moto: remove 2025-12-13 23:51:35 +01:00
8d5743119f rfc: remove unneeded arguments 2025-12-13 23:50:12 +01:00
5105ef0b1e flake: add upstream TODOs 2025-12-13 23:50:00 +01:00
d67c8a6298 ix: remove 2025-12-13 23:19:15 +01:00
64ac86b32b nix-index: use nix-index-database flake 2025-12-13 23:19:15 +01:00
ed5c8815ce flake: broadly sort packages by domain 2025-12-13 23:19:15 +01:00
5e41f04f72 iolanguage: remove 2025-12-13 23:19:15 +01:00
e8e5bb6211 heuretes: fix table display 2025-12-13 23:19:15 +01:00
e910bf6f6a cht.sh: rename command 2025-12-13 23:19:15 +01:00
bd47cef7e5 infschmv: remove 2025-12-13 23:19:15 +01:00
ad3249077b jq-lsp: remove 2025-12-13 23:19:15 +01:00
367acd05e5 git-preview: remove 2025-12-13 23:19:14 +01:00
bae1d0b0cc genius: remove 2025-12-13 23:19:14 +01:00
f58e111ce1 dns-sledgehammer: remove 2025-12-13 23:19:14 +01:00
b647b9f901 dmenu-scrot: remove 2025-12-13 23:19:14 +01:00
883655dc58 dmenu-bluetooth: remove 2025-12-13 23:19:14 +01:00
21960a2c95 dirmir: remove 2025-12-13 23:19:14 +01:00
254195b331 dic: remove 2025-12-13 23:19:14 +01:00
ce032525d2 meteo: remove 2025-12-13 23:19:14 +01:00
f9b992cce3 mahlzeit: remove 2025-12-13 23:19:14 +01:00
3f6e4755a6 flake: remove rust-overlay input 2025-12-13 23:19:14 +01:00
cc4c5b79c1 ical-ephemeris: remove 2025-12-13 23:19:14 +01:00
673edbb8b3 ful: remove openapi joke 2025-12-13 23:19:14 +01:00
89f9e09c3d update 2025-12-13 23:19:14 +01:00
f1a6b1f4f6 flake: do not use flake-utils 2025-12-13 22:37:47 +01:00
16398282ed flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/e1680d594a9281651cbf7d126941a8c8e2396183?narHash=sha256-d%2B5CGloq7Lo1u2SkzhF8oiOdUc6Z5emh22nTXUB9CFA%3D' (2025-12-03)
  → 'github:nix-community/home-manager/20561be440a11ec57a89715480717baf19fe6343?narHash=sha256-O8VTGey1xxiRW%2BFpb%2BPs9zU7ShmxUA1a7cMTcENCVNg%3D' (2025-12-08)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1aab89277eb2d87823d5b69bae631a2496cff57a?narHash=sha256-H3lC7knbXOBrHI9hITQ7modLuX20mYJVhZORL5ioms0%3D' (2025-12-02)
  → 'github:NixOS/nixpkgs/d9bc5c7dceb30d8d6fafa10aeb6aa8a48c218454?narHash=sha256-y7RPKl/jJ/KAP/VKLMghMgXTlvNIJMHKskl8/Uuar7o%3D' (2025-12-06)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/152586a6a98226db20aab6e6e1c9a37c535acfbc?narHash=sha256-p7ihpz21BB%2BNhuT3qVL3clzWz%2BUyZlt7S3RRXxZGPls%3D' (2025-12-04)
  → 'github:NixOS/nixpkgs/aaa6c85f51f9333738c170ccc55b5fe5f55938f4?narHash=sha256-VPyShT4DyGtXH2wsD8yAVvvvi9OILUHTqNxWQd/6yZA%3D' (2025-12-10)
• Updated input 'nur':
    'github:nix-community/NUR/5e8ec1167d3a375e2857fbe915b3d8658d3e6472?narHash=sha256-bp7B5alQk7nDLtFLKaOHhSPBNVCcwIxMXjcc/VzY0hg%3D' (2025-12-04)
  → 'github:nix-community/NUR/6af054d2762ef52fad9943d490708f937008cca4?narHash=sha256-JyVUlh5wINjw29Ops7ZjRrzw%2B55r5GpCHjO0TCsoowc%3D' (2025-12-10)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/418468ac9527e799809c900eda37cbff999199b6?narHash=sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y%3D' (2025-12-02)
  → 'github:nixos/nixpkgs/addf7cf5f383a3101ecfba091b98d0a1263dc9b8?narHash=sha256-hM20uyap1a0M9d344I692r%2Bik4gTMyj60cQWO%2BhAYP8%3D' (2025-12-08)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/74d9abb7c5c030469f90d97a67d127cc5d76c238?narHash=sha256-F0IQSmSj4t2ThkbWZooAhkCTO%2BYpZSd2Pqiv2uoYEHo%3D' (2025-12-04)
  → 'github:oxalica/rust-overlay/db61f666aea93b28f644861fbddd37f235cc5983?narHash=sha256-jTof2%2Bir9UPmv4lWksYO6WbaXCC0nsDExrB9KZj7Dz4%3D' (2025-12-10)
• Updated input 'stylix':
    'github:danth/stylix/6f3b50c8fa9c468fc787e211b700e46592bf9d56?narHash=sha256-J2jgYyXiXctr91MSuBQ6dwB1YaC7DpzKp%2BRkj6pqS8o%3D' (2025-12-04)
  → 'github:danth/stylix/84d9d55885d463d461234f3aac07b2389a2577d8?narHash=sha256-abrrONk8vzRtY6fHEkjZOyRJpKHjPlFqMBE0%2B/DxfAU%3D' (2025-12-06)
2025-12-10 13:26:01 +01:00
315ccf102d vm host setup 2025-12-09 12:54:50 +01:00
7d8feb0876 stw-berlin: disable 2025-12-09 12:54:35 +01:00
44f7a9d4fa fritzbox: remove 2025-12-08 14:00:30 +01:00
b070207bd5 flameshot: remove buttons 2025-12-05 11:31:07 +01:00
614f7e0f8c remove flix config 2025-12-05 11:30:59 +01:00
a1af05ff48 pls: begin download feature 2025-12-04 16:51:03 +01:00
83536372f0 stylix: remove home-manager override 2025-12-04 16:50:53 +01:00
3357121044 vim: fix lsp config 2025-12-04 16:50:32 +01:00
2a7e972256 onomap: disable 2025-12-04 16:19:46 +01:00
0d75ab146e secrets: update 2025-12-04 16:19:34 +01:00
385ae53c7e weechat-declarative: fix 2025-12-04 16:19:13 +01:00
a08c41d3db autorenkalender: get from flake 2025-12-04 16:19:02 +01:00
bd84c35138 vim: add elixir plugin 2025-12-04 15:15:46 +01:00
04722684aa update 2025-12-04 15:15:45 +01:00
025b725551 upgrade to 25.11 2025-12-02 21:37:02 +01:00
6411d8a03d update secrets 2025-12-02 19:20:11 +01:00
edce4538d8 fonts: montserrat 2025-11-01 20:38:27 +01:00
d1dd41bc6b vim: disable copilot by default or else it reads my passwords 2025-11-01 20:38:13 +01:00
5d80f6ec0f alertmanager: alert when mastodon is down 2025-10-28 19:08:54 +01:00
c8ad9d4433 gpodder 2025-10-24 10:30:04 +02:00
0f05e0467a streams: add pakistani radio and dlf nova 2025-10-21 20:30:01 +02:00
3c2abbb3b9 fix smyth bot 2025-10-21 20:00:25 +02:00
61b5e4bd6e update secrets 2025-10-21 15:42:22 +02:00
d4aca5b6f1 reinstate hu vpn, remove fu signature 2025-10-21 15:34:43 +02:00
551462f1dd dark colours for the dark half of the year 2025-10-09 07:20:34 +02:00
5d954684e1 host ical ephemeris MVP 2025-10-07 11:40:38 +02:00
b12373eb1b stag i3 tag editor 2025-10-06 12:54:43 +02:00
31e6b28b72 yta: download opus 2025-10-06 12:29:29 +02:00
4a77a20c9e aerc: add new email account 2025-10-06 10:28:49 +02:00
fe5bbbc647 update menstruation-backend 2025-10-02 23:16:57 +02:00
8699f09307 go-webring: fix module 2025-10-02 19:33:46 +02:00
d458fb333f fix nixinate call 2025-10-02 19:33:46 +02:00
e7264641a2 www.kmein.de fix backup and CORS 2025-10-02 18:34:23 +02:00
8afc04f266 scanned: fix PATH 2025-10-02 18:34:10 +02:00
427df80396 0ad: add config 2025-10-02 18:33:54 +02:00
ff3ba9047f install go tooling 2025-10-02 18:32:40 +02:00
1d14174ad5 go-webring 2025-10-02 18:32:23 +02:00
a307e2c186 remove old mpd scripts 2025-09-06 19:36:05 +02:00
1cc3a7c6e3 install amfora-wrapper (wrapped to work with overall light theme) 2025-09-06 11:57:24 +02:00
db33374dc0 host gemini 2025-09-05 08:05:02 +02:00
2c75c0d608 obsidian-vim: fix lua syntax 2025-09-04 13:48:39 +02:00
f84cd44db5 update local network 2025-09-04 13:48:01 +02:00
84cec2eb24 neovim: disable ernest 2025-08-30 17:49:58 +02:00
031b934c99 change wifi name 2025-08-30 17:49:58 +02:00
github-actions[bot]
7491396645 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/531beac616433bac6f9e2a19feb8e99a22a66baf?narHash=sha256-9P1FziAwl5%2B3edkfFcr5HeGtQUtrSdk/MksX39GieoA%3D' (2025-06-17)
  → 'github:ryantm/agenix/9edb1787864c4f59ae5074ad498b6272b3ec308d?narHash=sha256-NA/FT2hVhKDftbHSwVnoRTFhes62%2B7dxZbxj5Gxvghs%3D' (2025-08-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/501cfec8277f931a9c9af9f23d3105c537faeafe?narHash=sha256-tWosziZTT039x6PgEZUhzGlV8oLvdDmIgKTE8ESMaEA%3D' (2025-07-02)
  → 'github:nix-community/home-manager/4a44fb9f7555da362af9d499817084f4288a957f?narHash=sha256-OILVkfhRCm8u18IZ2DKR8gz8CVZM2ZcJmQBXmjFLIfk%3D' (2025-08-23)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7a732ed41ca0dd64b4b71b563ab9805a80a7d693?narHash=sha256-u7ubvtxdTnFPpV27AHpgoKn7qHuE7sgWgza/1oj5nzA%3D' (2025-07-03)
  → 'github:NixOS/nixpkgs/9cb344e96d5b6918e94e1bca2d9f3ea1e9615545?narHash=sha256-gKlP0LbyJ3qX0KObfIWcp5nbuHSb5EHwIvU6UcNBg2A%3D' (2025-08-20)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/07c3e0e2be593551abdccacabe29cc57206b396f?narHash=sha256-30JXBxkJD3pxBBGQwl/DDwxxJDGQ1nvkvWwEtTsmhA8%3D' (2025-07-05)
  → 'github:NixOS/nixpkgs/42e1afa45385017e72b59ad15c3f786d09a704be?narHash=sha256-hG2eV%2B5tMHSE3XFmJTgx87GrTAD3RJz2Lj%2BzM0TShg4%3D' (2025-08-24)
• Updated input 'nur':
    'github:nix-community/NUR/a26411970baba3604e425f23e5293da492069e4a?narHash=sha256-iDjz1tBd/ibtmZZse4k1NBxfPR8g9K5W4sRgCyOnrj0%3D' (2025-07-05)
  → 'github:nix-community/NUR/20caa31dbef80914895e41b56be4cabc740b2126?narHash=sha256-/W53HyLk4qSrPJjYWdD5SK%2B3p0Ns9Bg6MKHoeqLVqi0%3D' (2025-08-23)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
  → 'github:nixos/nixpkgs/20075955deac2583bb12f07151c2df830ef346b4?narHash=sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs%2BStOp19xNsbqdOg%3D' (2025-08-19)
• Removed input 'nur/treefmt-nix'
• Removed input 'nur/treefmt-nix/nixpkgs'
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/9e5e62a33a929a67a5427fb7324a6f583dced0b2?narHash=sha256-dYO5X5jK8bpQOeRAo8R5aUt6M/%2BJi1cZgstZI7SQ2IA%3D' (2025-07-05)
  → 'github:oxalica/rust-overlay/897ecf2b25be05e6ccb7661703f9f2fdec155f42?narHash=sha256-r0WnHKwA8DQNSHDmN3LNaqu41GbWDYqLS7IQAGR%2B6Wg%3D' (2025-08-23)
• Updated input 'scripts':
    'github:kmein/scripts/f44c7a4a6caa1ef5d6b7bf7e93acea0d96f30c21?narHash=sha256-mDDxMwKFURX1K1Z8X/kmt%2BjYjswofDf0br%2BMkw2tmSE%3D' (2025-06-02)
  → 'github:kmein/scripts/cc37fa4aec70f53731b9131bb8830b4445b75b3d?narHash=sha256-TnfXFloY4Ntq%2B0hp%2Bq9GGmuhtB1oueFiB%2BpcBUNYzFs%3D' (2025-07-20)
• Updated input 'stockholm':
    'github:krebs/stockholm/d4abc837cc7b87b4f23fe48cc306df26e3de7aab?narHash=sha256-i2s6jU%2B8GLKVjhWDyvFYxmXI7A44c9p6apPPyKt0ETk%3D' (2025-05-13)
  → 'github:krebs/stockholm/fc32e4609140fffa1312a4ca1aeea550b7467448?narHash=sha256-Mo2BkJXIz6HKM8cX2S7bRdX6Q3E1UOcyVL4v10QEUzk%3D' (2025-08-09)
• Updated input 'stockholm/buildbot-nix':
    'github:Mic92/buildbot-nix/7ad9b4886eccb5eecc0686a16266ddabf6cbefe9?narHash=sha256-mRnIdJLP%2B0NSim9ao30ue0Z3ttSuxzXwQG7UN1KuKfU%3D' (2025-05-07)
  → 'github:Mic92/buildbot-nix/47ad4c7afb169df6f9d48d0df3d7e2f71d9ddd8f?narHash=sha256-vCYcc/b8WizF6vnjuRVxSiU8hy9L3vOTWDVKpWM7xRE%3D' (2025-07-03)
• Updated input 'stockholm/buildbot-nix/flake-parts':
    'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5?narHash=sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY%3D' (2025-04-01)
  → 'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5?narHash=sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ%3D' (2025-07-01)
• Updated input 'stockholm/buildbot-nix/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/5b6cec51c9ec095a0d3fd4c8eeb53eb5c59ae33e?narHash=sha256-1Z4WPGVky4w3lrhrgs89OKsLzPdtkbi1bPLNFWsoLfY%3D' (2025-04-15)
  → 'github:hercules-ci/hercules-ci-effects/231726642197817d20310b9d39dd4afb9e899489?narHash=sha256-EaAJhwfJGBncgIV/0NlJviid2DP93cTMc9h0q6P6xXk%3D' (2025-05-23)
• Updated input 'stockholm/buildbot-nix/treefmt-nix':
    'github:numtide/treefmt-nix/29ec5026372e0dec56f890e50dbe4f45930320fd?narHash=sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4%3D' (2025-05-02)
  → 'github:numtide/treefmt-nix/ac8e6f32e11e9c7f153823abc3ab007f2a65d3e1?narHash=sha256-0IEdQB1nS%2BuViQw4k3VGUXntjkDp7aAlqcxdewb/hAc%3D' (2025-06-26)
• Updated input 'stockholm/nixpkgs':
    'github:NixOS/nixpkgs/d89fc19e405cb2d55ce7cc114356846a0ee5e956?narHash=sha256-3e%2BAVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ%3D' (2025-05-10)
  → 'github:NixOS/nixpkgs/1fd8bada0b6117e6c7eb54aad5813023eed37ccb?narHash=sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo%3D' (2025-07-06)
• Updated input 'stylix':
    'github:danth/stylix/5dd301b72207d4fd8d8b929abd88ba1c486d1744?narHash=sha256-jqRbWjB8aH2qzq6nMQpwkzVBR4o9lNxAHFmRgGwnJ94%3D' (2025-07-04)
  → 'github:danth/stylix/79be65b20d7b8fb7e8f39ba8121cfe41b7f46808?narHash=sha256-VmheUy4UzWDy/u0TvCCHptgF30peL7wRxkHy7EVpDrQ%3D' (2025-08-20)
• Removed input 'stylix/flake-compat'
• Removed input 'stylix/git-hooks'
• Removed input 'stylix/git-hooks/flake-compat'
• Removed input 'stylix/git-hooks/gitignore'
• Removed input 'stylix/git-hooks/gitignore/nixpkgs'
• Removed input 'stylix/git-hooks/nixpkgs'
• Removed input 'stylix/home-manager'
2025-08-24 01:09:28 +00:00
1c299cafef blake quote 2025-08-09 13:15:39 +02:00
cbce724ade reformat 2025-08-07 10:14:07 +02:00
00dfe27738 prometheus: decrease log size 2025-08-07 10:13:54 +02:00
6e0026ed5c alertmanager: alert lassulus for mastodon outtime 2025-08-07 10:13:01 +02:00
d92f382b9a wallpaper: fix for X 2025-08-07 10:12:21 +02:00
630ec3d052 stylix: autoenable for homemanager and make apply to tmux 2025-07-25 08:59:31 +02:00
bfd7195543 vim: newfangled distraction-free writing plugins 2025-07-25 08:59:00 +02:00
0d2481bd78 vim: enable copilot 2025-07-21 18:54:30 +02:00
28cd462bc6 sway: remove 2025-07-21 14:49:39 +02:00
67358560b8 update 2025-07-11 11:31:09 +02:00
675c453599 gammastep 2025-07-11 11:31:00 +02:00
e4543eeb0b sway 2025-07-08 20:56:40 +02:00
e8e165ff03 hledger: disable remote auto-sync 2025-07-05 10:41:02 +02:00
5175bd5f4a simplescreenrecorder 2025-07-05 10:40:51 +02:00
874c502094 brave 2025-07-05 10:40:43 +02:00
4490c0a97c Merge remote-tracking branch 'origin/update_flake_lock_action' 2025-06-22 08:07:49 +02:00
github-actions[bot]
8e76899b40 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/4835b1dc898959d8547a871ef484930675cb47f1?narHash=sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY%2BD81k%3D' (2025-05-18)
  → 'github:ryantm/agenix/531beac616433bac6f9e2a19feb8e99a22a66baf?narHash=sha256-9P1FziAwl5%2B3edkfFcr5HeGtQUtrSdk/MksX39GieoA%3D' (2025-06-17)
• Updated input 'home-manager':
    'github:nix-community/home-manager/282e1e029cb6ab4811114fc85110613d72771dea?narHash=sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew%3D' (2025-05-31)
  → 'github:nix-community/home-manager/7aae0ee71a17b19708b93b3ed448a1a0952bf111?narHash=sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg%3D' (2025-06-05)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a59eb7800787c926045d51b70982ae285faa2346?narHash=sha256-q8jG2HJWgooWa9H0iatZqBPF3bp0504e05MevFmnFLY%3D' (2025-05-31)
  → 'github:NixOS/nixpkgs/b2485d56967598da068b5a6946dadda8bfcbcd37?narHash=sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA%3D' (2025-06-20)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3603bcb66c0a5d4529370510bd6529d34107d63a?narHash=sha256-Ea5JtjFUoTpMJGnbXmXirk8dDdVIWmDp0o%2BeQDc9vzs%3D' (2025-06-02)
  → 'github:NixOS/nixpkgs/ba476a871a35075644c3340b3651101ddf77ee0d?narHash=sha256-zgPnxYqkf/CEl5m/lx02D%2BFaLWPRUM/RLo/qekTuu8Q%3D' (2025-06-22)
• Updated input 'nur':
    'github:nix-community/NUR/7995f4bde30d1dc463f7d39a5118709e19d8e608?narHash=sha256-sBG2NR%2BtB1y4xMYguJT2IsTV2mf8PzWRoz2gScUFHg8%3D' (2025-06-02)
  → 'github:nix-community/NUR/8d68e170fd6f9e8b8921db79419c209a1aeabc36?narHash=sha256-rtItxhQM%2BZkd2ys/lT2MoXCUVEhyj51Em5o9Wd6qqGU%3D' (2025-06-22)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/910796cabe436259a29a72e8d3f5e180fc6dfacc?narHash=sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8%3D' (2025-05-31)
  → 'github:nixos/nixpkgs/08f22084e6085d19bcfb4be30d1ca76ecb96fe54?narHash=sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50%3D' (2025-06-19)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/7ec2ea005b600dac9436a7c5c6b66d960cbfcea2?narHash=sha256-TQSaFa1wWJr6GOs%2BK8lecK4AKKr8k6mwxHIPCOmVkgs%3D' (2025-06-02)
  → 'github:oxalica/rust-overlay/3d7d4c4e284f26d6dc4840491c66884912be0062?narHash=sha256-wiW2j63MyGQyyijRF25hf7Ab7vx4G8pCiGjUe3OGV4c%3D' (2025-06-21)
• Updated input 'stylix':
    'github:danth/stylix/2ccc6cbd33b3d9c52b6f6c096a66880a52f37933?narHash=sha256-kG45D1iaM8j///luopldYoVBd4L%2B41YscY8PjwLtcZM%3D' (2025-06-02)
  → 'github:danth/stylix/cc82dae884f45ffeb996d2b5116afa70933e507f?narHash=sha256-Yblt2LusglzBXlg%2BekckztIUgvl1WQwJ7gLRJEt/IHE%3D' (2025-06-19)
2025-06-22 01:12:22 +00:00
8617c8e982 add portfolio-performance 2025-06-10 09:16:01 +02:00
0025d82cd8 literature-quote: fix selection with xan 2025-06-09 11:34:19 +02:00
03c0e49572 mahlzeit: disable 2025-06-05 13:01:53 +02:00
7c3c13abb8 anubis: weigh the souls of the AI scrapers 2025-06-03 21:06:53 +02:00
f954e867dc tlg-wotd: update cltk 2025-06-03 20:08:04 +02:00
67f682aa88 radio-news: package 2025-06-03 20:07:49 +02:00
0ceecf4c14 ci: disable kibbeh 2025-06-03 15:21:38 +02:00
6fdac40832 24.11 → 25.05 2025-06-03 14:55:09 +02:00
2ba3c05e4a radio-news: good news only 2025-05-28 09:32:26 +02:00
6ab7e96894 wallabag: init 2025-05-28 09:31:50 +02:00
ddd759a838 ssh: kibbeh -> kabsa 2025-05-21 10:51:05 +02:00
5244ae3850 fu-vpn: include xauthority setup 2025-05-21 10:50:38 +02:00
b90aa5ef07 fu-vpn: use sudo 2025-05-21 10:46:43 +02:00
d52c10bc84 format 2025-05-21 10:46:32 +02:00
a6bc317141 i3status-rust: display all batteries with remaining time 2025-05-21 10:46:18 +02:00
d4ee3cf692 heavily simplify dashboard 2025-05-21 10:45:45 +02:00
c96ac804df reinstate kabsa 2025-05-21 07:43:52 +02:00
4af218f7ad radio-news: send earlier 2025-05-16 14:03:42 +02:00
b08576c972 radio-news: expire earlier 2025-05-16 10:08:30 +02:00
44cb0bf8a5 remock secrets 2025-05-14 16:39:04 +02:00
4c9305c89d init brainmelter 2025-05-14 06:57:06 +02:00
8c838966f2 radio news: automatically post digest 2025-05-13 20:22:42 +02:00
6ffb80322b radio news digest 2025-05-13 19:51:43 +02:00
6e1bbb878a update 2025-05-10 22:08:32 +02:00
4a1abf06f6 pls: more musical criticism 2025-05-07 10:54:17 +02:00
e9a6a482ee install packages for photography 2025-05-07 09:14:53 +02:00
3bdf539540 neovim: set colorscheme light 2025-04-28 13:17:38 +02:00
f053f6292d update 2025-04-28 13:10:56 +02:00
e350eac5c7 librsvg 2025-04-28 11:00:09 +02:00
046f2ca75d systemd-tmpfiles-clean: enable for user 2025-04-15 14:22:28 +02:00
6fcba6dc75 ssh: kabsa -> kibbeh 2025-03-31 10:20:09 +02:00
3750b6c131 update 2025-03-30 22:35:46 +02:00
4046339f5b get ready for VPNing to germany 2025-03-21 09:07:43 +01:00
da224a0e4b stylix: spring has begun 2025-03-21 09:07:29 +01:00
60a73a81be ssh: add travel laptop public key 2025-03-16 08:56:18 +01:00
889eb1d5c2 yta: download best quality opus 2025-03-16 08:56:07 +01:00
github-actions[bot]
e34b3e02b3 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1546c45c538633ae40b93e2d14e0bb6fd8f13347?narHash=sha256-F0qDu2egq18M3edJwEOAE%2BD%2BVQ%2ByESK6YWPRQBfOqq8%3D' (2025-03-02)
  → 'github:NixOS/nixpkgs/cdd2ef009676ac92b715ff26630164bb88fec4e0?narHash=sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB%2Bikn74/xQoNrGQ%3D' (2025-03-13)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/4f8cf457154521f90d60ed0b785774a728842875?narHash=sha256-ADrsBEvcCGQEZWrkmUES6PpoqSKXVlrHhteHT6Sbr2o%3D' (2025-03-04)
  → 'github:NixOS/nixpkgs/1a4711b6be669d31f21b417a7f8b60801367dfee?narHash=sha256-03bPiYMWpguzc4JwAGoD7j2GEi1K2k9wrNbfoaFrYg4%3D' (2025-03-16)
• Updated input 'nur':
    'github:nix-community/NUR/8cf34376717c39b3f8ed2d28091ff2a2455b3ab8?narHash=sha256-SN5pa746g3yeOBaouHZU1RCS2ZtUFKWpZtDG86xgSig%3D' (2025-03-04)
  → 'github:nix-community/NUR/cbd6b0ec3da4afb2e45f3275af8cb9f1dc718534?narHash=sha256-ylgdokg/pY5a2GPddDGGNR8MA0MOYStuxjwn8AnPDbk%3D' (2025-03-15)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/ba487dbc9d04e0634c64e3b1f0d25839a0a68246?narHash=sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM%3D' (2025-03-03)
  → 'github:nixos/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32?narHash=sha256-cPfs8qMccim2RBgtKGF%2Bx9IBCduRvd/N5F4nYpU0TVE%3D' (2025-03-13)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/aefb7017d710f150970299685e8d8b549d653649?narHash=sha256-52vwEV0oS2lCnx3c/alOFGglujZTLmObit7K8VblnS8%3D' (2025-03-04)
  → 'github:oxalica/rust-overlay/028cd247a6375f83b94adc33d83676480fc9c294?narHash=sha256-6wuOGWkyW6R4A6Th9NMi6WK2jjddvZt7V2%2BrLPk6L3o%3D' (2025-03-15)
• Updated input 'stylix':
    'github:danth/stylix/aaa2eb8956770c096f9c46fb163bb26602e20e56?narHash=sha256-QRlcA8rtfNdyKpBE%2BptjiB9717Tzum4/sKBSbsyqL6k%3D' (2025-02-25)
  → 'github:danth/stylix/9bfc74f330ead111e8ea354b2220a431b0cfaa26?narHash=sha256-utsgC6H3ja6sLAXMd8//I2D7yjyScFqVDRX0wpbqPZo%3D' (2025-03-14)
• Updated input 'stylix/firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/a89108e6272426f4eddd93ba17d0ea101c34fb21?narHash=sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz%2Be/655w%3D' (2025-02-10)
  → 'github:rafaelmardojai/firefox-gnome-theme/5a81d390bb64afd4e81221749ec4bffcbeb5fa80?narHash=sha256-RsvHGNTmO2e/eVfgYK7g%2BeYEdwwh7SbZa%2BgZkT24MEA%3D' (2025-03-10)
• Updated input 'stylix/git-hooks':
    'github:cachix/git-hooks.nix/9364dc02281ce2d37a1f55b6e51f7c0f65a75f17?narHash=sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg%3D' (2025-01-21)
  → 'github:cachix/git-hooks.nix/b5a62751225b2f62ff3147d0a334055ebadcd5cc?narHash=sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc%3D' (2025-03-07)
• Updated input 'stylix/tinted-tmux':
    'github:tinted-theming/tinted-tmux/b6c7f46c8718cc484f2db8b485b06e2a98304cd0?narHash=sha256-/etfUV3HzAaLW3RSJVwUaW8ULbMn3v6wbTlXSKbcoWQ%3D' (2025-02-23)
  → 'github:tinted-theming/tinted-tmux/d48ee86394cbe45b112ba23ab63e33656090edb4?narHash=sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU%3D' (2025-03-02)
• Updated input 'voidrice':
    'github:Lukesmithxyz/voidrice/59632a5668f1af956ec325f8d8455d312727b8a8?narHash=sha256-y80KJjdbvko53yK6AvxVrmU/yYnyYQxTT6FZOXhCDVk%3D' (2025-03-02)
  → 'github:Lukesmithxyz/voidrice/5f385da9f686ffb9ab61c194a46539cbe53357ea?narHash=sha256-ZoEyircvifmAH7QqDpdDxhaHMdAfWtjZB6JiSvMBRVg%3D' (2025-03-09)
2025-03-16 01:03:16 +00:00
d7f01e0a5e manakish: switch to network manager 2025-03-05 14:28:05 +01:00
6ea3629f77 mycelium: add manakish 2025-03-05 14:27:51 +01:00
b010f7e7cc kibbeh: unify locale 2025-03-05 10:05:13 +01:00
0b60f953b7 mycelium host aliases for all 2025-03-05 10:05:13 +01:00
d64ce2036a ci: apt-get update 2025-03-05 10:05:13 +01:00
ebe3997beb init mycelium 2025-03-05 10:05:13 +01:00
1b23814dc3 update 2025-03-04 20:37:09 +01:00
df35d1d935 flake: change retiolum to stockholm mirror 2025-02-26 10:13:28 +01:00
b01c289a26 kibbeh: install tmux 2025-02-26 10:06:44 +01:00
dafa3229bb kibbeh: install telegram 2025-02-13 19:14:55 +01:00
dee784472f mock secrets 2025-02-11 21:18:14 +01:00
295f8257e3 kibbeh: configure 2025-02-11 21:04:02 +01:00
5adc8309f2 init kibbeh (ex-kabsa) 2025-02-11 15:51:06 +01:00
cd58ea209e fonts+keyboards: add syriac 2025-02-10 11:35:38 +01:00
0ae493a0f5 nil: add nixfmt as formatter 2025-02-07 15:45:51 +01:00
c0f6fc1121 aerc: add letos, remove fysi, fix cock 2025-02-07 13:02:01 +01:00
dc519dc055 stylix: unify code 2025-02-01 14:42:21 +01:00
4d178f7bb8 weechat: clean up brockman channels 2025-01-27 22:52:51 +01:00
c0ba0e605a update 2025-01-27 22:52:41 +01:00
4620390411 browser: install tor browser 2025-01-23 07:38:44 +01:00
a18e295a9e unify color scheme 2025-01-21 16:19:28 +01:00
f3ae88c6d1 monitor zodiac.fly.dev api 2025-01-20 13:04:23 +01:00
d08ed06bc5 zoom 2025-01-20 13:04:11 +01:00
b648661e60 bluetooth: replace by bluetuith 2025-01-20 13:04:01 +01:00
b26b48034c prometheus: monitor brockman.news 2025-01-06 22:29:58 +01:00
6acfa2927c brockman: remove 2024-12-31 15:05:14 +01:00
914a464e4f fonts: fix hash 2024-12-31 14:03:36 +01:00
505031d103 weechat: add brockman 2024-12-31 14:03:23 +01:00
b5927a5217 klem: update paste scripts to use 4d2.org, remove ix.io (which is offline) 2024-12-29 11:45:19 +01:00
5c87fd6cd4 celan: use tei edition 2024-12-16 17:17:43 +01:00
dbb5fe131e tlg-wotd: work around until cltk works with 3.12
https://github.com/NixOS/nixpkgs/pull/353367
2024-12-16 13:20:25 +01:00
89cd81b2f4 cltk: move to nixpkgs 2024-12-16 13:20:01 +01:00
2c58405314 gpg-agent: use qt pinentry (rofi does not work) 2024-12-16 10:55:35 +01:00
ffe9f90b4e alew: fix 2024-12-13 13:42:51 +01:00
f8c3a9dbef neovim: use bas16 manually 2024-12-13 13:42:39 +01:00
2c6007d404 upgrade to 24.11 2024-12-13 13:42:16 +01:00
3253a217d7 bye bye hu 2024-12-10 13:04:44 +01:00
7c67964ea8 streams: add ancient fm 2024-12-10 12:37:20 +01:00
b42ea3d7b6 update 2024-12-02 13:12:38 +01:00
eb2179c0ad nextcloud: update and backup correctly 2024-12-02 13:12:24 +01:00
61ec35a29b bots: run tlg wotd on social.krebsco.de 2024-11-26 21:27:02 +01:00
56e44e94e0 alertmanager: add social.krebsco.de 2024-11-26 21:17:41 +01:00
ee24ef7340 alew: init on ful 2024-11-15 09:48:11 +01:00
a1a0a517a2 readd secrets 2024-11-13 16:32:05 +01:00
265a697136 remove secrets 2024-11-13 16:30:16 +01:00
6e53b32f5d move to social.krebsco.de mastodon 2024-11-13 14:03:56 +01:00
af6553abf6 backup: electrum wallets 2024-11-13 06:13:40 +01:00
d22682519b nextcloud: config -> settings 2024-11-09 16:57:16 +01:00
b2065c4155 nas: add sd-card to shared storage 2024-11-09 16:55:39 +01:00
63f5db1c58 alertmanager: summary -> description 2024-11-09 16:55:14 +01:00
f3a5e0a54c neovim: move lsp to config file, add xml lsp 2024-11-09 15:38:21 +01:00
136000540b zaatar: add nas share 2024-11-05 09:09:45 +01:00
762d766db5 keyboards: add urdu keyboard 2024-10-27 15:45:18 +01:00
812c795723 deno: use newest version 2024-10-27 15:45:07 +01:00
cf72c1df1f alertmanager: more alerts? 2024-10-27 15:44:52 +01:00
05b35bd9f0 chore: update 2024-10-27 15:44:39 +01:00
4eb7c46286 gimp: bring out 2024-10-25 21:09:31 +02:00
b42945ac7d panoptikon: do not report on IRC 2024-10-25 06:58:13 +02:00
ea4d334d10 aider: bye 2024-10-24 07:34:11 +02:00
dd1bc890bd monopolize on deno 2024-10-23 07:56:38 +02:00
f9fe700f68 magic-wormhole 2024-10-23 07:54:26 +02:00
a0b7362fc5 fix-sd: recheck after cleanup 2024-10-23 07:54:18 +02:00
e7a77fbfb5 fu-berlin: they changed their vpn 2024-10-23 07:53:53 +02:00
7d38f3a718 bots: program nietzschebot 2024-10-11 14:37:01 +02:00
70dde17e88 htmlq: remove
it is shitty python software
2024-10-11 14:37:01 +02:00
5f11a95d32 transits: do not post natal transits 2024-10-09 10:12:59 +02:00
d78e738f51 alertmanager: report on matrix 2024-10-09 00:01:39 +02:00
c9770d065a radio: deactivate wikipedia and lyrikline 2024-10-08 22:54:20 +02:00
f42d1ebf28 movk secrets 2024-10-08 22:54:04 +02:00
f6621a5bb9 panoptikon: send news on matrix 2024-10-08 22:36:14 +02:00
136d4e699f bots: post on matrix as well 2024-10-08 22:35:41 +02:00
a28fca11a7 rename bot structure 2024-10-08 19:33:01 +02:00
e26b8408f6 smyth: post url 2024-10-08 18:49:34 +02:00
69d1fd44f8 literature-quote: improve formatting 2024-10-08 18:49:34 +02:00
677aefbe73 hesychius: also post on mastodon 2024-10-08 18:49:34 +02:00
e2f784ed3b smyth: also post on mastodon 2024-10-08 18:49:34 +02:00
ac3758e027 bots: post on mastodon as well 2024-10-08 18:49:33 +02:00
f43e4ff664 mock secrets 2024-10-07 23:22:41 +02:00
c15e9812c4 gnupg: use nixos instead of home-manager 2024-10-07 22:58:55 +02:00
a2390d52c5 literature-quote: also post on mastodon 2024-10-07 22:58:33 +02:00
7ee17cb5b8 transits: do not post personalized transits 2024-10-07 07:26:23 +02:00
f535ba7b2a mock secrets 2024-10-05 15:22:26 +02:00
48d10b25ee autorenkalender: also post on mastodon 2024-10-05 15:22:13 +02:00
ccd8d63d8d hesychius: also post on mastodon 2024-10-05 15:13:57 +02:00
519a1079bc smyth: also post on mastodon 2024-10-05 15:09:11 +02:00
84fa3ee4b6 transits: also post on mastodon 2024-10-05 15:03:35 +02:00
4774a0ec0f fix-sd: backup corrupt files to pwd 2024-10-05 14:53:59 +02:00
5ba3dfc451 bots: post on mastodon as well 2024-10-05 14:42:44 +02:00
729f1180b7 tlg-wotd: also post on mastodon 2024-10-04 17:07:06 +02:00
1e74d0470c chore: update 2024-10-01 22:28:15 +02:00
c1b58f7038 wireguard: no autostart 2024-10-01 22:28:04 +02:00
904cc4401e weechat: use relay instead of API 2024-10-01 21:03:33 +02:00
7e033412bd add sd card fixer 2024-09-25 22:14:38 +02:00
3bdf71425b fritzbox VPN 2024-09-23 19:34:59 +02:00
2067944151 tlg-wotd: use cltk for transcription 2024-09-22 17:33:04 +02:00
c34708b989 cltk: init at 1.3.0 2024-09-22 17:32:49 +02:00
a07b871bbb unicodmenu: create cache 2024-09-22 00:37:30 +02:00
9b0b4ca08c tlg-wotd: generate fance image
big thanks to @soerface
2024-09-22 00:27:51 +02:00
09c631b4e5 noise generators 2024-09-19 09:54:12 +02:00
c246310cab noise-waves 2024-09-18 09:20:26 +02:00
fef3a1fbff update 2024-09-15 20:58:17 +02:00
dacf34ebc0 scrabble: host without containers 2024-09-15 20:58:01 +02:00
4b96e82d25 add another web radio stream 2024-09-15 19:39:46 +02:00
967c5f32c7 nextcloud: reenable onlyoffice 2024-09-11 10:17:46 +02:00
18c5a087f3 aider 2024-09-08 20:35:53 +02:00
f40ce68ced XCompose: add aspirates/fricatives 2024-09-08 19:14:47 +02:00
bfa2b1e9b1 makanek: host online scrabble 2024-09-08 19:14:30 +02:00
6908b75571 brockman: backup 2024-08-17 14:52:13 +02:00
ce7fd6074b miniflux: add random unread script 2024-08-14 06:40:51 +02:00
297b3aba37 ful: host brockman 2024-08-14 06:40:24 +02:00
228d93f399 i3: fix unfocused borders 2024-07-29 08:01:44 +02:00
6364aa446a rust-overlay needs no flake-utils 2024-07-25 20:15:37 +02:00
b5c5be02db update 2024-07-25 20:15:37 +02:00
0bfabd8226 stylix: fix by enabling explicitly 2024-07-25 20:15:37 +02:00
c70e877b42 lemmeknow, aichat 2024-07-23 20:18:53 +02:00
4f1fc0bea5 streams: add some more 2024-07-11 16:07:49 +02:00
a664bfbe1b reinstate zaatar 2024-07-11 16:07:39 +02:00
a744ed593b home-assistant: enable bluetooth 2024-07-10 12:57:19 +02:00
c9a83021a9 ful: host openapi test server 2024-07-10 12:57:07 +02:00
bea8f8c150 chore: update 2024-07-10 12:56:55 +02:00
c1bdb5e422 i3: delay unicode paste 2024-07-10 10:39:45 +02:00
6e82ef3b5a move back to zaatar 2024-07-10 10:27:30 +02:00
6d16b93530 zaatar died, move hass and restic to tahina 2024-07-07 14:03:52 +02:00
9f6d1c3dc6 streams: update lassulus radio 2024-07-02 09:05:38 +02:00
aca55b4045 ful: run servant openapi server that does nothing 2024-07-01 10:17:58 +02:00
c23935afe6 Revert "streams: render out for transistor webradio app"
This reverts commit 88af7bdcc0.
2024-06-26 19:36:51 +02:00
88af7bdcc0 streams: render out for transistor webradio app 2024-06-26 19:36:45 +02:00
838a61c698 unicodmenu: add buggy script to type last-copied character 2024-06-26 19:35:32 +02:00
5a9dc34ee8 weechat: use new api relay 2024-06-26 19:35:05 +02:00
b21c6adccc tahina, tabula: update 2024-06-20 15:06:00 +02:00
73ef0aafdc keyboard: add gujarati and refactor 2024-06-20 15:05:40 +02:00
9026d6d281 fonts: apparently junicode 2 has been released 2024-06-17 11:55:10 +02:00
7c193ba043 dashboard: add battery status 2024-06-17 11:54:21 +02:00
b72a387b97 fonts: add brill font 2024-06-17 11:54:04 +02:00
7e56757597 streams: fix FRK description 2024-06-09 22:43:01 +02:00
e0c52b06fd cro: abstract out and use for chromecasting radio streams 2024-06-09 22:42:50 +02:00
e94371887b zaatar: disable audio stuff 2024-06-09 19:59:17 +02:00
b0bb5047b1 restic: fix listen address 2024-06-07 11:14:23 +02:00
48419a1106 dashboard: reorder and add github issues 2024-06-07 11:14:13 +02:00
b74dda987e gpg-agent: use rofi for pinentry 2024-06-05 17:02:22 +02:00
1ffae8e5c9 update to 24.05 2024-06-03 12:45:25 +02:00
b8bf6b2b71 ipa: add palatal plosive 2024-05-25 22:12:37 +02:00
9a42b8e125 genpassphrase: init 2024-05-22 20:01:37 +02:00
c7f6257539 mpv-tv: pin playlists 2024-05-16 22:44:00 +02:00
008d33265b use cachix cache 2024-05-16 22:10:17 +02:00
3ea66b6445 panoptikon: do not fail on diff
this was a weird one
2024-05-08 09:01:12 +02:00
2e13dfe565 webdav: remove 2024-05-08 06:41:06 +02:00
edf26867b1 webdav: mount nextclouds 2024-05-08 06:40:41 +02:00
ad1d36cd0b panoptikon: use plain diff and do not store git state 2024-05-08 06:37:53 +02:00
d51ffe9735 zoom: use from unstable 2024-05-08 06:37:29 +02:00
527439cf9d dunst: add command to list recent notifications 2024-05-08 06:37:17 +02:00
4871d8d0d8 mpv-tv: update iptv hash 2024-05-04 22:45:20 +02:00
407d6309a5 xdg: fix download path 2024-05-04 22:45:06 +02:00
580564964b kdeconnect: enable firewall 2024-05-04 22:44:49 +02:00
acbed9d694 packages: install gnome disk utility 2024-05-04 09:36:11 +02:00
c7caaa0fb0 fonts: install coranica, egyptianText 2024-05-04 09:35:54 +02:00
d9751b5205 kdeconnect: enable 2024-05-04 09:35:38 +02:00
62f99dea6a feat(radio, spotifyd): decrease runtime max sec 2024-05-01 16:06:50 +02:00
d162de768d feat: set xdg userdirs 2024-04-30 17:39:09 +02:00
bbf47de957 chore: update 2024-04-28 16:35:25 +02:00
e3a18282c1 feat: symlink synced directories to home 2024-04-28 13:25:24 +02:00
91aa4aeb3e feat(aerc): set gpg key id 2024-04-28 13:24:27 +02:00
b7caaeec65 feat(aerc): add translation keybind 2024-04-28 13:24:06 +02:00
58eff4733b feat(mpv-tv): add another live tv source 2024-04-28 13:23:12 +02:00
844d5849da feat(radio): try out runtimemaxsec 2024-04-28 11:02:37 +02:00
8afe6e1f11 feat(restic): change backup disk 2024-04-25 08:45:15 +02:00
7e23072334 fix(sway): does not like ß key 2024-04-23 20:39:51 +02:00
a8d92a2f41 feat: krita 2024-04-23 20:39:34 +02:00
964ae49c2f feat(obsidian-vim): leader r to refresh nerdtree 2024-04-16 19:57:41 +02:00
github-actions[bot]
6b6dd067ab flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/8cb01a0e717311680e0cbca06a76cbceba6f3ed6?narHash=sha256-PAdwm5QqdlwIqGrfzzvzZubM%2BFXtilekQ/FA0cI49/o%3D' (2024-02-13)
  → 'github:ryantm/agenix/1381a759b205dff7a6818733118d02253340fd5e?narHash=sha256-/JdiT9t%2BzzjChc5qQiF%2BjhrVhRt8figYH29rZO7pFe4%3D' (2024-04-02)
• Updated input 'home-manager':
    'github:nix-community/home-manager/652fda4ca6dafeb090943422c34ae9145787af37?narHash=sha256-cLbLPTL1CDmETVh4p0nQtvoF%2BFSEjsnJTFpTxhXywhQ%3D' (2024-02-03)
  → 'github:nix-community/home-manager/d6bb9f934f2870e5cbc5b94c79e9db22246141ff?narHash=sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ%3D' (2024-04-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/878ef7d9721bee9f81f8a80819f9211ad1f993da?narHash=sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM%3D' (2024-03-14)
  → 'github:NixOS/nixpkgs/51651a540816273b67bc4dedea2d37d116c5f7fe?narHash=sha256-edTFV4KldkCMdViC/rmpJa7oLIU8SE/S35lh/ukC7bg%3D' (2024-04-11)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/60e8f01bbc10c6a127d92bf5005cc8cceb489de8?narHash=sha256-wQnk05LJDdlODcfM1qR56Wa9IYkK2/SXS0UskFUXZyw%3D' (2024-03-17)
  → 'github:NixOS/nixpkgs/1b691969594504eabec53a11a366acf1c75387d1?narHash=sha256-iw3O6mVc%2BJx7UZMnIWyzuIc0x7xN5RY0oxZ4gbFY5wU%3D' (2024-04-13)
• Updated input 'nur':
    'github:nix-community/NUR/585df78aeb0bf632a4370891de15a4b99070f1a3?narHash=sha256-/SrPq8jfTCooM7QeRcpOvCoeGOn08NMDRC74oF/snJA%3D' (2024-03-17)
  → 'github:nix-community/NUR/51cab5c3aaf90ff4511a63962715e45cd7ee2f15?narHash=sha256-0p8h0MALnsJSF6%2BZxvwcqsm6E91Dr350FdKzLSHG%2B6k%3D' (2024-04-14)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/42baa9e2e4713572d7481f917243b07dffdf54b8?narHash=sha256-Lbdq3/TH4VrrR7A6FxIYwu5tFOcprYh8Q49Nc9s/i6c%3D' (2024-03-16)
  → 'github:oxalica/rust-overlay/a497535d074432133b683dda3a1faa8c8ab587ad?narHash=sha256-ZJxC6t2K0UAPW%2BlV%2BbJ%2BpAtwbn29eqZQzXLTG54oL%2BI%3D' (2024-04-13)
• Updated input 'voidrice':
    'github:Lukesmithxyz/voidrice/7a96fb100cf385e05c211937b509d2bf166299e6?narHash=sha256-cb5q1m/o9rNHckPz89v5TnYhXj/vFR5auBmEMMOmHUA%3D' (2023-12-30)
  → 'github:Lukesmithxyz/voidrice/cf4a12acb3a70951fd59d67e0738bf3ab2d1045c?narHash=sha256-MlOLv6/CKm1sSmikYaNDvglE/3sROZnjmacG0GP4rXM%3D' (2024-03-28)
2024-04-15 22:31:18 +02:00
02b96f2658 feat(fu-berlin): add comment for home dir mount 2024-04-15 22:23:01 +02:00
e668c1eec6 feat(panoptikon): do not care about bitcoin 2024-04-15 22:22:45 +02:00
611d3fd7bf fix: re-mock secrets 2024-04-12 09:27:08 +02:00
d6a3deecc7 chore: refactor home directory mounts 2024-04-12 09:23:39 +02:00
22b172afd9 fix(zaatar): remove obsolete fritzbox import 2024-04-12 09:22:44 +02:00
154c57f9c0 feat(hu-berlin): mount under remote/hu 2024-04-09 19:41:37 +02:00
9432fa62d8 feat(fu-berlin): mount home directories via sshfs 2024-04-09 19:41:24 +02:00
4020fd7ad2 fix: used wrong testimonial nicks 2024-04-08 10:04:55 +00:00
33f308f6b3 feat: mount fritzbox as user 2024-04-08 10:51:12 +02:00
2092e46d39 feat: @flxai testimonial 2024-04-08 08:20:17 +02:00
aff3f9ac92 feat: mount network devices under ~/remote 2024-04-08 08:17:52 +02:00
35a91d755a feat: keep downloaded files for 7 days 2024-04-07 15:08:06 +02:00
3c2a66f990 zaatar: disable influxdb 2024-04-06 17:32:15 +02:00
8633167719 fix: update path to obsidian 2024-04-05 11:41:24 +02:00
717f5f661b feat(restic): backup mobile sync 2024-04-05 11:41:13 +02:00
6ae85bde15 feat: remove beets 2024-04-05 11:40:46 +02:00
bd3fce4163 fix: Maildir is (machine-specific) state 2024-04-04 22:55:18 +02:00
077dc7d1fa fix(restic): restic user should own its password 2024-04-04 22:20:52 +02:00
33412d50a3 feat: change maildir path to sync 2024-04-04 14:30:59 +02:00
27c6aa1462 feat(syncthing): heym → kibbeh 2024-04-04 14:27:04 +02:00
e4734ce874 feat(syncthing): add trashcan, remove dead devices 2024-04-04 14:06:01 +02:00
393715a373 feat(weechat): fewer channels 2024-04-04 14:05:33 +02:00
c094653af3 feat: gomuks 2024-04-04 14:05:14 +02:00
74849558fd feat(syncthing): remove music and mundoiu 2024-04-03 15:15:43 +02:00
ee0feb3a06 feat(mpd): get music from nas. no need for syncthing anymore 2024-04-03 15:15:43 +02:00
cdd7d1a0ed feat: nemo → pcmanfm 2024-04-03 15:15:43 +02:00
6ff3f79f83 feat: mount fritzbox 2024-04-03 15:15:43 +02:00
7c17fa4728 feat: restructure home directory 2024-04-03 15:15:43 +02:00
5909167243 feat: restructure home directory 2024-04-03 07:56:13 +02:00
ee71156f3b feat(syncthing): add tmp folder 2024-04-03 07:56:13 +02:00
e0826c2f4e feat(fonts): add koine greek 2024-04-03 00:46:16 +02:00
0b0a5c3c62 feat(i3status-rust): remove weechat status as it always needs ssh to be unlocked 2024-04-03 00:46:16 +02:00
45e9c2674e feat(syncthing): reduce complexity 2024-04-02 23:26:35 +02:00
4946eceab9 fix(restic): allow receiving backups from fatteh 2024-04-02 22:03:03 +02:00
8a543eee37 chore: format 2024-04-02 21:05:24 +02:00
7482a88ef3 feat(zsh): vim edit command line 2024-04-02 21:05:04 +02:00
4b523fdad1 feat(hledger): hora standalone 2024-04-02 21:04:45 +02:00
0abebcced3 feat(maakaron): make hora tools more robust 2024-04-02 14:27:44 +02:00
6ec31211d9 feat(maakaron): hora-start, hora-stop 2024-04-02 13:48:20 +02:00
d02567677c feat(panoptikon): watch kobudo 2024-03-31 12:48:16 +02:00
62b0f425e6 feat: install graphviz 2024-03-31 12:48:03 +02:00
641b8976d5 i3: add messaging workspace 2024-03-30 23:11:03 +01:00
d9be7c5eeb feat(i3): add weechat scratchpad window 2024-03-24 12:40:01 +01:00
aecf6b8616 feat: do not depend on github for ssh keys bc insecure 2024-03-24 12:11:40 +01:00
83ca7976ce fix(stardict): move huzheng dictionary files to cyberlocker 2024-03-24 12:04:14 +01:00
e0a1194dae feat: disable power-action on fatteh bc it gets confused about the dual battery 2024-03-20 17:44:25 +01:00
da463f2c27 fix(manakish): disable systemd-networkd-wait-online 2024-03-20 15:13:15 +01:00
github-actions[bot]
df20b34b2b flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26?narHash=sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA%3D' (2024-01-15)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a?narHash=sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ%3D' (2024-03-11)
• Updated input 'nixinate':
    'github:matthewcroughan/nixinate/7902ae845e6cc5bd450e510cdf5e009a6e4a44d9?narHash=sha256-qHrNMYWukOKmKVf6wXOGKj1xxUnOGjvTRbt/PLLXuBE%3D' (2023-06-30)
  → 'github:matthewcroughan/nixinate/452f33c60df5b72ad0858f5f2cf224bdf1f17746?narHash=sha256-VOQrKK7Df/IVuNki%2BNshVuGkTa/Tw0GigPjWcZff6kk%3D' (2024-02-25)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c5101e457206dd437330d283d6626944e28794b3?narHash=sha256-qxT5jSLhelfLhQ07%2BAUxSTm1VnVH%2BhQxDkQSZ/m/Smo%3D' (2024-02-23)
  → 'github:NixOS/nixpkgs/878ef7d9721bee9f81f8a80819f9211ad1f993da?narHash=sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM%3D' (2024-03-14)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/7794d8a78570335f10b0f97ae72b14b33c6addc2?narHash=sha256-pxDFK5p7csogTirrDJFVSli4Yy0LvHaQQQj71UU0MmQ%3D' (2024-02-24)
  → 'github:NixOS/nixpkgs/60e8f01bbc10c6a127d92bf5005cc8cceb489de8?narHash=sha256-wQnk05LJDdlODcfM1qR56Wa9IYkK2/SXS0UskFUXZyw%3D' (2024-03-17)
• Updated input 'nur':
    'github:nix-community/NUR/192aa9b134f867b6811ecd0444e994ef941648db?narHash=sha256-op6sluExBoA6Y3FdeHtDINEWCXzns4jg2H%2BxfkjikuI%3D' (2024-02-24)
  → 'github:nix-community/NUR/585df78aeb0bf632a4370891de15a4b99070f1a3?narHash=sha256-/SrPq8jfTCooM7QeRcpOvCoeGOn08NMDRC74oF/snJA%3D' (2024-03-17)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/9b24383d77f598716fa0cbb8b48c97249f5ee1af?narHash=sha256-NCTw235XwSDbeTAtAwg/hOeNOgwYhVq7JjDdbkOgBeA%3D' (2024-02-24)
  → 'github:oxalica/rust-overlay/42baa9e2e4713572d7481f917243b07dffdf54b8?narHash=sha256-Lbdq3/TH4VrrR7A6FxIYwu5tFOcprYh8Q49Nc9s/i6c%3D' (2024-03-16)
2024-03-20 15:13:15 +01:00
51f51a78bd feat: there is a reason for one-monitor setup 2024-03-20 15:13:15 +01:00
155cdc68af feat(mime): add auto-added tg associations 2024-03-20 14:18:26 +01:00
82b5da8089 feat(fatteh): use light theme bc it is spring outside 2024-03-20 14:18:00 +01:00
3ddbbf3ab5 feat: illum 2024-03-20 08:13:07 +01:00
f8bfc83a61 fix(ssh): fatteh hostname 2024-03-20 08:12:59 +01:00
491a13ed95 feat: gnome-keyring not via home-manager 2024-03-20 08:12:50 +01:00
58c4f517c5 chore: update secrets 2024-03-19 23:23:08 +01:00
c1b10f0504 wip: update hashes 2024-03-19 23:16:25 +01:00
62363cc26f feat: autologin 2024-03-19 23:06:58 +01:00
f93cb20dae fix: do not make this error! 2024-03-19 23:05:43 +01:00
f57d1780fb feat(fatteh): integrate into niveum 2024-03-19 21:14:27 +01:00
d4cb0abc24 feat: disable autologin 2024-03-19 20:21:20 +01:00
1f418c9532 chore: remock secrets 2024-03-19 20:13:33 +01:00
ab3a17be25 wip: initialize fatteh 2024-03-19 20:13:13 +01:00
50a96b5f7a feat(dashboard): add calendar 2024-03-18 14:55:41 +01:00
31b44906ab feat(prometheus): monitor beta alew 2024-03-18 14:55:24 +01:00
858a7e52c3 chore: update secrets 2024-03-17 21:42:07 +01:00
f69d5c423c feat(panoptikon): allow secret configuration, telegram reporter, BTC price alert 2024-03-17 21:42:01 +01:00
04bf10a356 feat: more sanskrit radio 2024-03-17 21:41:36 +01:00
f2e522a52a feat: add brassica 2024-03-17 21:41:25 +01:00
0cbf4527c0 feat(stylix): configure theme per system 2024-03-17 21:41:05 +01:00
64972f99b7 feat(keyboard): move xcompose out of general keyboard config 2024-03-17 21:40:37 +01:00
e4be74ca87 fix(dashboard): do not show globally hidden feed entries 2024-03-17 21:39:59 +01:00
cad3d7ecd5 feat: install dashboard programm 2024-03-15 09:06:24 +01:00
fe199e02a0 feat(i3): obsidian scratchpad 2024-03-15 09:06:15 +01:00
ef6f7bb23d fix(polyglot): path -> string 2024-03-15 09:05:51 +01:00
b36be765e8 feat: polyglot script for language learning 2024-03-15 08:39:39 +01:00
484c445a24 feat: configure himalaya email (and add to dashboard) 2024-03-14 22:31:58 +01:00
6a15af9f0b fix(dashboard): exclude liturgy calendar 2024-03-14 21:43:29 +01:00
d464b137cb feat: use dracula theme 2024-03-14 21:43:13 +01:00
b000efddbe feat: zaatar does not need keyboard config 2024-03-14 21:41:24 +01:00
9d7eea58bd chore: update keys hash 2024-03-14 21:38:03 +01:00
ee5c127290 feat(khal): autodiscover, remove stale calendars 2024-03-14 21:28:53 +01:00
0cb3c06c0a Revert "fix(atuin): init outside promptInit"
This reverts commit 0c9f488f56.
2024-03-14 18:20:35 +01:00
0f083bd4e2 feat(prometheus): request alew API endpoint 2024-03-14 18:19:34 +01:00
19c9f39128 feat(i3): hide bar 2024-03-14 18:19:11 +01:00
6db336ec1e chore(maakaron): format 2024-03-14 18:18:58 +01:00
7d51ce0850 fix: use pkgs.system 2024-03-14 18:18:36 +01:00
0ee765de37 feat(vdirsyncer): sync new calendars 2024-03-13 09:02:34 +01:00
aa2c84142b feat(i3): reintroduce workspaces, add info workspace, reduce bar info 2024-03-13 09:02:34 +01:00
3af20cdd7b feat(maakaron): configure git, shell and tools 2024-03-12 14:43:12 +01:00
0c9f488f56 fix(atuin): init outside promptInit 2024-03-12 14:42:27 +01:00
2f9df623fd chore: remove config input in stardict 2024-03-12 14:42:27 +01:00
8b7745f473 fix: make more mac-compatible 2024-03-12 14:42:27 +01:00
8c12edfdb9 feat(sway): add preliminary configuration 2024-03-03 15:03:20 +01:00
f263d5d175 chore: format 2024-02-27 20:59:54 +01:00
61b78cfc73 fix(bluetooth): use default package 2024-02-27 20:59:43 +01:00
github-actions[bot]
18dbceea76 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/417caa847f9383e111d1397039c9d4337d024bf0' (2023-12-24)
  → 'github:ryantm/agenix/8cb01a0e717311680e0cbca06a76cbceba6f3ed6' (2024-02-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/20f65b86b6485decb43c5498780c223571dd56ef' (2024-02-09)
  → 'github:NixOS/nixpkgs/c5101e457206dd437330d283d6626944e28794b3' (2024-02-23)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/aeea37e779933d7b77f4a0e9c1bb383ab71cd450' (2024-02-11)
  → 'github:NixOS/nixpkgs/7794d8a78570335f10b0f97ae72b14b33c6addc2' (2024-02-24)
• Updated input 'nur':
    'github:nix-community/NUR/3a315bbd42ead8a1bafa90e8c3d14c43c80db912' (2024-02-10)
  → 'github:nix-community/NUR/192aa9b134f867b6811ecd0444e994ef941648db' (2024-02-24)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=00afd8bdb8e297ca3f8d1316d058b867ab794674' (2024-02-02)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=00af6f8e749d720a0423834024adafef4f9ebf03' (2024-02-16)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/49550275c3956b861dbb7cb83a732803f013bdbb' (2024-02-10)
  → 'github:oxalica/rust-overlay/9b24383d77f598716fa0cbb8b48c97249f5ee1af' (2024-02-24)
2024-02-27 20:59:12 +01:00
Meinhardt
0c97aa2461 feat(maakaron): init system 2024-02-27 11:32:29 +01:00
680cf898b6 fix(neovim): no expandtab in tsv 2024-02-25 22:19:12 +01:00
77a4b6fd32 feat: customize compose keys 2024-02-25 22:18:57 +01:00
fce3abfe0c Merge remote-tracking branch 'origin/update_flake_lock_action' 2024-02-14 09:38:28 +01:00
d1624915c4 feat(keyboards): add locally, patch persian/arabic keyboard
Fixes #51
2024-02-13 23:30:54 +01:00
github-actions[bot]
d68c5460fd flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/10cd9c53115061aa6a0a90aad0b0dde6a999cdb9' (2024-01-19)
  → 'github:nix-community/home-manager/652fda4ca6dafeb090943422c34ae9145787af37' (2024-02-03)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d7f206b723e42edb09d9d753020a84b3061a79d8' (2024-01-22)
  → 'github:NixOS/nixpkgs/20f65b86b6485decb43c5498780c223571dd56ef' (2024-02-09)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/a95d98f05a5da6cf66bef2584cf7a70b474d4518' (2024-01-23)
  → 'github:NixOS/nixpkgs/aeea37e779933d7b77f4a0e9c1bb383ab71cd450' (2024-02-11)
• Updated input 'nur':
    'github:nix-community/NUR/8452fbba02b789b9046356a9546db1a312a04804' (2024-01-23)
  → 'github:nix-community/NUR/3a315bbd42ead8a1bafa90e8c3d14c43c80db912' (2024-02-10)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=186f7cff7d09c0330be2ae6644eb16ad531a5214' (2024-01-09)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=00afd8bdb8e297ca3f8d1316d058b867ab794674' (2024-02-02)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/f889dc31ef97835834bdc3662394ebdb3c96b974' (2024-01-23)
  → 'github:oxalica/rust-overlay/49550275c3956b861dbb7cb83a732803f013bdbb' (2024-02-10)
2024-02-11 00:43:42 +00:00
bb0dd24abd feat(keyboard): add link to buckwalter source, save cop on cyberlocker 2024-02-09 18:26:26 +01:00
c66bc3cb68 feat(fu-berlin): no need for blackboard calendar 2024-02-09 17:04:01 +01:00
0c612eeb7a fix: disable stockholm radio news 2024-02-06 15:03:36 +01:00
a34554a283 fix(pandoc): update hash 2024-02-05 10:20:19 +01:00
b214e55690 fix(panoptikon): limit restart 2024-02-05 10:20:03 +01:00
065b3a2d6a feat(dmenu-randr): always do multi-monitor 2024-02-02 09:10:31 +01:00
6d9ce99e5b fix: use my own dmenu-randr because @LukeSmithxyz is not feature-complete 2024-02-02 09:07:46 +01:00
a3c69580e5 chore: update 2024-01-23 15:19:32 +01:00
fa71f02dd0 feat(aerc): office upgrade 2024-01-23 14:07:10 +01:00
82993ca54a feat(email): bye bye meinhark 2024-01-10 14:22:38 +01:00
04c60776e3 feat: disable kiosk on zaatar 2024-01-10 11:11:46 +01:00
50e18c168e feat: add journalctl to admin essentials 2024-01-09 23:53:21 +01:00
5fd7bb61d5 fix(spotifyd): give access to pipewire 2024-01-09 23:52:55 +01:00
64d7437fa4 fix(spotifyd): disable mpris
fixes #48
big thanks to @n0ur and her copilot
2024-01-09 21:29:20 +01:00
76d8ebaf2b feat: cro for temporary chromium profile 2024-01-09 20:38:55 +01:00
2b5dde01ec feat: reenable man-pandoc
it was not broken
fixes #47
2024-01-09 19:38:04 +01:00
7b0f65645d feat(makanek): do not need onlyoffice 2024-01-09 14:57:29 +01:00
a9f51807b4 feat: reinstate nixinate for aarch64 ful 2024-01-09 08:49:55 +01:00
53d9e05b95 feat: add sqlite to admin essentials 2024-01-09 08:13:37 +01:00
425a2ad7f5 feat: factor out and spread admin essentials package 2024-01-09 08:00:33 +01:00
899163c847 feat(streams): hitradio FFH 2024-01-09 07:59:55 +01:00
ca48e370ff feat: use NixOS gnome keyring instead of the one from HM 2024-01-09 07:59:41 +01:00
f79ab7211c fix(zaatar): systemwide pipewire 2024-01-08 14:55:38 +01:00
6121a8db3a feat: reactivate krebs wallpaper 2024-01-08 14:55:04 +01:00
ef7c53f15b feat(pipewire): try to do some pulseaudio networking stuff 2024-01-02 10:35:03 +01:00
e5a3ce5f8d feat(stylix): onedark is my new best friend 2023-12-29 20:01:40 +01:00
63cdfef045 chore: allow insecure electron for jellyfin or something 2023-12-29 20:01:26 +01:00
19c916b771 feat: deploy only with 2 cores 2023-12-29 20:01:01 +01:00
acdc09efe0 chore: add link to arm issue 2023-12-28 21:31:50 +01:00
13860cfb32 chore: update 2023-12-28 12:28:59 +01:00
77d75b4d8b feat: replace nixinate by nixos-rebuild 2023-12-28 12:28:59 +01:00
263e13c8f8 feat: gthumb 2023-12-27 10:38:42 +01:00
e3fcf6e817 chore: re-mock secrets 2023-12-23 09:43:26 +01:00
89c37d390f feat(telegram-bots): add streaming link converter 2023-12-23 07:47:06 +01:00
3eeb5fd787 fix: disable pandoc man for now 2023-12-23 07:39:29 +01:00
cf0c353856 chore: update gardiner new font 2023-12-23 07:38:59 +01:00
c76c396342 chore: update 2023-12-21 19:19:36 +01:00
d60ac5de17 feat(fonts): add hebrew font 2023-12-21 19:19:30 +01:00
d9c324c22d fix(aerc): i want to read email again 2023-12-08 19:01:09 +01:00
aec50b5d84 feat: update to 23.11 2023-12-06 14:42:13 +01:00
7da1e6178d fix: bluetooth sound? 2023-12-05 19:06:59 +01:00
5fba7afd82 feat: allow to use gpt4 from klem 2023-11-28 16:11:23 +01:00
683a206c7b feat(panoptikon): add fu events 2023-11-28 16:11:04 +01:00
014cead444 feat(streams): add swr3 2023-11-20 09:05:52 +01:00
github-actions[bot]
5ca1312464 flake.lock: Update
Flake lock file updates:

• Updated input 'coptic-dictionary':
    'github:kmein/coptic-dictionary/bd6762d70d079ddc6a9cb40b008e234ee662865e' (2023-09-15)
  → 'github:kmein/coptic-dictionary/faa6cd85c46e5a4d5a676a38c2799e6b2ba44460' (2023-11-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/07682fff75d41f18327a871088d20af2710d4744' (2023-09-19)
  → 'github:nix-community/home-manager/04bac349d585c9df38d78e0285b780a140dc74a4' (2023-11-12)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/34bdaaf1f0b7fb6d9091472edc968ff10a8c2857' (2023-11-01)
  → 'github:NixOS/nixpkgs/9fb122519e9cd465d532f736a98c1e1eb541ef6f' (2023-11-16)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/13f373eab6f2b2b366701652372af5cee099f637' (2023-11-03)
  → 'github:NixOS/nixpkgs/3fe4f799067d0458b386bdb4fbdaea55315e8ee0' (2023-11-19)
• Updated input 'nur':
    'github:nix-community/NUR/77be844f9f98a9abd055dca953f60a15f4f457e3' (2023-11-03)
  → 'github:nix-community/NUR/ce4bf2a6f08aea6c6824cffd7f511058764d83ab' (2023-11-18)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=57f33219ab35e41b3c2108280469bbb1575f8da6' (2023-10-31)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=d64d84117ec57bb03e67a2f0b90be8b7fbbc424f' (2023-11-18)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/321affd863e3e4e669990a1db5fdabef98387b95' (2023-11-03)
  → 'github:oxalica/rust-overlay/616074a1b2a71bbe44da4cc29a64255aecb8d541' (2023-11-18)
• Updated input 'voidrice':
    'github:Lukesmithxyz/voidrice/ea3e1e14cc49d68c9900fb05d9ee7bb9e719688e' (2023-10-29)
  → 'github:Lukesmithxyz/voidrice/07952026753f1bbeaf5b6c4eb5414a9c51536041' (2023-11-15)
2023-11-19 00:45:18 +00:00
3b891aea90 feat: remove meinhark@hu 2023-11-07 09:14:49 +01:00
b096a1c1ae feat(panoptikon): watch humboldt-preis 2023-11-06 10:55:07 +01:00
a211650860 chore: update 2023-11-03 10:58:11 +01:00
8f895f01a7 feat: ledger -> hledger 2023-10-30 14:26:50 +01:00
765a99d89f feat(stw-berlin): use correct user and group 2023-10-30 14:26:11 +01:00
c9cd49c3ac fix(hledger-backup): run as root 2023-10-30 14:25:54 +01:00
0f612ba72b chore: update 2023-10-30 06:34:10 +01:00
0f6819f54a feat: freies radio kassel 2023-10-29 11:55:29 +01:00
6ffed60aaf fix: radio arabica -> radio orient 2023-10-29 11:49:56 +01:00
0a847dbb1e feat(weechat): ignore prometheus 2023-10-28 17:15:10 +02:00
074a6b9434 feat(aerc): better attachment regex 2023-10-17 12:34:47 +02:00
229a48ac07 feat(emailmenu): case insensitive, correct prompt 2023-10-17 12:34:36 +02:00
github-actions[bot]
df508de28b flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/1f677b3e161d3bdbfd08a939e8f25de2568e0ef4' (2023-09-22)
  → 'github:ryantm/agenix/daf42cb35b2dc614d1551e37f96406e4c4a2d3e4' (2023-10-08)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8a4c17493e5c39769f79117937c79e1c88de6729' (2023-10-03)
  → 'github:NixOS/nixpkgs/bd1cde45c77891214131cbbea5b1203e485a9d51' (2023-10-11)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/96d35bdda3d38b5d0a13b4deddf5bbb6fb503cd2' (2023-10-06)
  → 'github:NixOS/nixpkgs/00e71387ae4107c935daf09b24b021d4b1269b1d' (2023-10-15)
• Updated input 'nur':
    'github:nix-community/NUR/e9db143072899753216cd84143489ed2a544e793' (2023-10-06)
  → 'github:nix-community/NUR/00cf27339d55115a0f5311041dded91049e4426d' (2023-10-14)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=7377d4764fd086f8d223ee4e3c900b5ed5f6800e' (2023-10-05)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=09c204fd5bbeb28ef415f7b1c09a7cfc1119d6b7' (2023-10-12)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/fdb37574a04df04aaa8cf7708f94a9309caebe2b' (2023-10-06)
  → 'github:oxalica/rust-overlay/dce60ca7fca201014868c08a612edb73a998310f' (2023-10-14)
2023-10-15 18:42:57 +02:00
05702d9917 feat(i3status-rust): use sensible separator for music 2023-10-15 18:42:12 +02:00
98c0e744ce chore: update secrets 2023-10-11 17:31:34 +02:00
33770cdf63 chore: update email passwords 2023-10-11 11:45:11 +02:00
dbecace73b chore: remock secrets 2023-10-10 23:41:37 +02:00
04738b91ee feat(i3status-rust): show unread miniflux items 2023-10-10 22:38:40 +02:00
d7c3e03c0f feat(mpv): add mpris support 2023-10-10 13:06:26 +02:00
5811fa3921 feat: pulseaudio → pipewire 2023-10-10 13:06:17 +02:00
f435277463 feat(i3status): show what music is playing 2023-10-10 13:06:00 +02:00
587ec584c1 fix(i3): play-pause on play-pause key 2023-10-10 13:05:47 +02:00
832b115a0d feat(hledger): hora-year wrapper 2023-10-09 10:00:20 +02:00
385a26ac9d chore: update 2023-10-06 15:09:27 +02:00
1b92a35237 feat(aerc): compact pronouns 2023-10-06 14:50:05 +02:00
06805e5b2a fix(aerc): respect the damn signature! 2023-10-06 14:47:10 +02:00
3f50c45bed feat: emailmenu 2023-10-06 12:29:21 +02:00
5a4d49e059 feat(aerc): add pronouns 2023-10-06 10:57:35 +02:00
78eb463742 feat(unicodmenu): add emoji flags 2023-10-06 10:50:31 +02:00
55f0484f93 feat: install dhall 2023-10-06 10:50:16 +02:00
75d19297ee feat(aerc): do not slowly suggest contacts 2023-10-04 19:19:52 +02:00
084a56b0a1 feat: no more fsklassp 2023-10-04 19:19:52 +02:00
3c5246b159 feat: thunderbird 2023-09-28 17:54:20 +02:00
73ce1bc4b5 feat(radio): install qasaid refresher script 2023-09-28 13:40:39 +02:00
84b4e50e64 feat: jellyfin media player 2023-09-21 07:27:42 +02:00
ed160923c7 feat(fu-berlin): mount zodiac cifs 2023-09-21 07:27:11 +02:00
38c1dc8745 fix: one-dark → onedark 2023-09-18 12:05:16 +02:00
559a6cdc86 feat(fu-berlin): mount zodiac cifs 2023-09-18 12:05:01 +02:00
github-actions[bot]
d4b208b620 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/d8c973fd228949736dedf61b7f8cc1ece3236792' (2023-07-24)
  → 'github:ryantm/agenix/572baca9b0c592f71982fca0790db4ce311e3c75' (2023-09-15)
• Updated input 'coptic-dictionary':
    'github:kmein/coptic-dictionary/7316ef7a4264afa65c96a2e089845c79fa25f19c' (2023-08-07)
  → 'github:kmein/coptic-dictionary/bd6762d70d079ddc6a9cb40b008e234ee662865e' (2023-09-15)
• Added input 'coptic-dictionary/niveum':
    'github:kmein/niveum/65dc602d679b591224f09ea83b66ad0780a4664d' (2023-09-15)
• Added input 'coptic-dictionary/niveum/agenix':
    'github:ryantm/agenix/d8c973fd228949736dedf61b7f8cc1ece3236792' (2023-07-24)
• Added input 'coptic-dictionary/niveum/agenix/darwin':
    'github:lnl7/nix-darwin/87b9d090ad39b25b2400029c64825fc2a8868943' (2023-01-09)
• Added input 'coptic-dictionary/niveum/agenix/darwin/nixpkgs':
    follows 'coptic-dictionary/niveum/agenix/nixpkgs'
• Added input 'coptic-dictionary/niveum/agenix/home-manager':
    follows 'coptic-dictionary/niveum/home-manager'
• Added input 'coptic-dictionary/niveum/agenix/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/coptic-dictionary':
    'github:kmein/coptic-dictionary/7316ef7a4264afa65c96a2e089845c79fa25f19c' (2023-08-07)
• Added input 'coptic-dictionary/niveum/coptic-dictionary/kellia-dictionary':
    'github:KELLIA/dictionary/4fe62847e93b8a87ad7ca5de19190b34ff9e0c99' (2022-08-19)
• Added input 'coptic-dictionary/niveum/coptic-dictionary/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/flake-utils':
    'github:numtide/flake-utils/f9e7cf818399d17d347f847525c5a5a8032e4e44' (2023-08-23)
• Added input 'coptic-dictionary/niveum/flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Added input 'coptic-dictionary/niveum/home-manager':
    'github:nix-community/home-manager/5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c' (2023-08-28)
• Added input 'coptic-dictionary/niveum/home-manager/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/menstruation-backend':
    'github:kmein/menstruation.rs/e34af4393963cdbadb456b7b9ae2e95e6db7b8a3' (2023-02-22)
• Added input 'coptic-dictionary/niveum/menstruation-backend/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/menstruation-backend/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/menstruation-backend/rust-overlay':
    follows 'coptic-dictionary/niveum/rust-overlay'
• Added input 'coptic-dictionary/niveum/menstruation-telegram':
    'github:kmein/menstruation-telegram/f7ddb6d9610aacb50ec66a3ce1bdc49fe4664a49' (2023-02-22)
• Added input 'coptic-dictionary/niveum/menstruation-telegram/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/menstruation-telegram/menstruation-backend':
    follows 'coptic-dictionary/niveum/menstruation-backend'
• Added input 'coptic-dictionary/niveum/menstruation-telegram/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs-old'
• Added input 'coptic-dictionary/niveum/nix-on-droid':
    'github:t184256/nix-on-droid/2301e01d48c90b60751005317de7a84a51a87eb6' (2023-06-30)
• Added input 'coptic-dictionary/niveum/nix-on-droid/home-manager':
    follows 'coptic-dictionary/niveum/home-manager'
• Added input 'coptic-dictionary/niveum/nix-on-droid/nix-formatter-pack':
    'github:Gerschtli/nix-formatter-pack/14876cc8fe94a3d329964ecb073b4c988c7b61f5' (2022-10-25)
• Added input 'coptic-dictionary/niveum/nix-on-droid/nix-formatter-pack/nixpkgs':
    follows 'coptic-dictionary/niveum/nix-on-droid/nixpkgs'
• Added input 'coptic-dictionary/niveum/nix-on-droid/nix-formatter-pack/nmd':
    'gitlab:rycee/nmd/b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169' (2022-10-19)
• Added input 'coptic-dictionary/niveum/nix-on-droid/nix-formatter-pack/nmt':
    'gitlab:rycee/nmt/d83601002c99b78c89ea80e5e6ba21addcfe12ae' (2022-03-23)
• Added input 'coptic-dictionary/niveum/nix-on-droid/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/nix-on-droid/nixpkgs-for-bootstrap':
    'github:NixOS/nixpkgs/c7ff1b9b95620ce8728c0d7bd501c458e6da9e04' (2023-06-16)
• Added input 'coptic-dictionary/niveum/nix-on-droid/nmd':
    'gitlab:rycee/nmd/b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169' (2022-10-19)
• Added input 'coptic-dictionary/niveum/nixinate':
    'github:matthewcroughan/nixinate/7902ae845e6cc5bd450e510cdf5e009a6e4a44d9' (2023-06-30)
• Added input 'coptic-dictionary/niveum/nixinate/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/nixpkgs':
    'github:NixOS/nixpkgs/9075cba53e86dc318d159aee55dc9a7c9a4829c1' (2023-09-02)
• Added input 'coptic-dictionary/niveum/nixpkgs-old':
    'github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0' (2023-04-27)
• Added input 'coptic-dictionary/niveum/nixpkgs-unstable':
    'github:NixOS/nixpkgs/3f9e803102d49388de3862e340ac2f9cbe7381e8' (2023-09-02)
• Added input 'coptic-dictionary/niveum/nur':
    'github:nix-community/NUR/91ccb8b645a380a508704c57fa509e09b8b2b33b' (2023-09-02)
• Added input 'coptic-dictionary/niveum/recht':
    'github:kmein/recht/5fa158ce21de797bd95a934dab8d4403b7531d20' (2023-02-23)
• Added input 'coptic-dictionary/niveum/recht/blessings':
    'git+https://cgit.krebsco.de/blessings?ref=refs/heads/master&rev=d94712a015636efe7ec79bc0a2eec6739d0be779' (2019-02-05)
• Added input 'coptic-dictionary/niveum/recht/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/recht/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=6216c30551876303dac5373e92690a7f05fd0f6f' (2023-08-14)
• Added input 'coptic-dictionary/niveum/rust-overlay':
    'github:oxalica/rust-overlay/cdf3b15af70f2db17d5f47822f12016f1a89bd73' (2023-09-02)
• Added input 'coptic-dictionary/niveum/rust-overlay/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/rust-overlay/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/scripts':
    'github:kmein/scripts/55dff522684f342f4e970116ab374ba999539288' (2023-07-13)
• Added input 'coptic-dictionary/niveum/scripts/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/scripts/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/scripts/rust-overlay':
    follows 'coptic-dictionary/niveum/rust-overlay'
• Added input 'coptic-dictionary/niveum/stylix':
    'github:danth/stylix/5c829554280f3139ddbfce8561d7430efbf2abfb' (2023-07-27)
• Added input 'coptic-dictionary/niveum/stylix/base16':
    'github:SenchoPens/base16.nix/dddf2e1c04845d43c89a8e9e37d574519649a404' (2023-07-17)
• Added input 'coptic-dictionary/niveum/stylix/base16/fromYaml':
    'github:SenchoPens/fromYaml/11fbbbfb32e3289d3c631e0134a23854e7865c84' (2023-07-16)
• Added input 'coptic-dictionary/niveum/stylix/flake-compat':
    'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17)
• Added input 'coptic-dictionary/niveum/stylix/home-manager':
    follows 'coptic-dictionary/niveum/home-manager'
• Added input 'coptic-dictionary/niveum/stylix/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/telebots':
    'github:kmein/telebots/5527e359e8394f2f66067de7f61587eb65055209' (2023-02-23)
• Added input 'coptic-dictionary/niveum/telebots/flake-utils':
    'github:numtide/flake-utils/3db36a8b464d0c4532ba1c7dda728f4576d6d073' (2023-02-13)
• Added input 'coptic-dictionary/niveum/telebots/nixpkgs':
    'github:NixOS/nixpkgs/eabc38219184cc3e04a974fe31857d8e0eac098d' (2022-08-02)
• Added input 'coptic-dictionary/niveum/tinc-graph':
    'github:kmein/tinc-graph/91a3a85beaaec4ec43ea5a41322c3a5a6e04edc4' (2023-06-23)
• Added input 'coptic-dictionary/niveum/tinc-graph/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/tinc-graph/nixpkgs':
    follows 'coptic-dictionary/niveum/nixpkgs'
• Added input 'coptic-dictionary/niveum/tinc-graph/rust-overlay':
    follows 'coptic-dictionary/niveum/rust-overlay'
• Added input 'coptic-dictionary/niveum/voidrice':
    'github:Lukesmithxyz/voidrice/86f05abcce1fd270032975775adb40040c746cfe' (2023-08-25)
• Added input 'coptic-dictionary/niveum/wallpaper-generator':
    'github:pinpox/wallpaper-generator/a2223b9b0c51e0eee0d0b23a5e87228e370bdd5c' (2021-03-15)
• Added input 'coptic-dictionary/niveum/wallpaper-generator/flake-utils':
    follows 'coptic-dictionary/niveum/flake-utils'
• Added input 'coptic-dictionary/niveum/wallpaper-generator/nixpkgs':
    'path:/nix/store/vw365chp87kvfczxm26qiq7z2pq3jk5z-source?lastModified=1615532953&narHash=sha256-SWpaGjrp/INzorEqMz3HLi6Uuk9I0KAn4YS8B4n3q5g%3D&rev=916ee862e87ac5ee2439f2fb7856386b4dc906ae' (2021-03-12)
• Added input 'coptic-dictionary/niveum/wallpapers':
    'github:kmein/wallpapers/7c553bc6bd78afa6dbf2824691466bbad0d8e6e9' (2020-05-12)
• Updated input 'flake-utils':
    'github:numtide/flake-utils/f9e7cf818399d17d347f847525c5a5a8032e4e44' (2023-08-23)
  → 'github:numtide/flake-utils/ff7b65b44d01cf9ba6a71320833626af21126384' (2023-09-12)
• Updated input 'home-manager':
    'github:nix-community/home-manager/5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c' (2023-08-28)
  → 'github:nix-community/home-manager/9787dffff5d315c9593d3f9fb0f9bf2097e1b57b' (2023-09-11)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9075cba53e86dc318d159aee55dc9a7c9a4829c1' (2023-09-02)
  → 'github:NixOS/nixpkgs/360a7d31c30abefdc490d203f80e3221b7a24af2' (2023-09-15)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3f9e803102d49388de3862e340ac2f9cbe7381e8' (2023-09-02)
  → 'github:NixOS/nixpkgs/46423a1a750594236673c1d741def4e93cf5a8f7' (2023-09-17)
• Updated input 'nur':
    'github:nix-community/NUR/91ccb8b645a380a508704c57fa509e09b8b2b33b' (2023-09-02)
  → 'github:nix-community/NUR/15981b93620d6d50c0bef767028213810806ad74' (2023-09-16)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=6216c30551876303dac5373e92690a7f05fd0f6f' (2023-08-14)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=43d5a6ae57ae4a9051724767df133da4064d3461' (2023-09-15)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/cdf3b15af70f2db17d5f47822f12016f1a89bd73' (2023-09-02)
  → 'github:oxalica/rust-overlay/f84bb1621574473d05e6ed79ba57a371d8ad8259' (2023-09-16)
• Updated input 'voidrice':
    'github:Lukesmithxyz/voidrice/86f05abcce1fd270032975775adb40040c746cfe' (2023-08-25)
  → 'github:Lukesmithxyz/voidrice/b8cd0ab4953d053fef09c48ba04f2fbb2df57aa4' (2023-09-05)
2023-09-17 00:41:57 +00:00
51bbbc9e56 feat: mpv-iptv 2023-09-15 14:37:33 +02:00
39e5653825 fix(vim): set ft=jq 2023-09-15 11:46:58 +02:00
65dc602d67 feat: stardict-tools 2023-09-15 10:59:14 +02:00
333bf9e145 feat: jq-lsp 2023-09-15 10:58:53 +02:00
4052df257c feat: moin gib sometimes 2023-09-14 15:57:28 +02:00
github-actions[bot]
1ca8827e91 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/2a6679aa9cc3872c29ba2a57fe1b71b3e3c5649f' (2023-08-15)
  → 'github:nix-community/home-manager/5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c' (2023-08-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/74e5bdc5478ebbe7ba5849f0d765f92757bb9dbf' (2023-08-25)
  → 'github:NixOS/nixpkgs/9075cba53e86dc318d159aee55dc9a7c9a4829c1' (2023-09-02)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/38b9aaf6682015f1d2fc7b7f48da96992c30cfa3' (2023-08-26)
  → 'github:NixOS/nixpkgs/3f9e803102d49388de3862e340ac2f9cbe7381e8' (2023-09-02)
• Updated input 'nur':
    'github:nix-community/NUR/0f81f016eecec153a26099beb25b0c8bac87bd23' (2023-08-26)
  → 'github:nix-community/NUR/91ccb8b645a380a508704c57fa509e09b8b2b33b' (2023-09-02)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/e90223633068a44f0fb62374e0fa360ccc987292' (2023-08-26)
  → 'github:oxalica/rust-overlay/cdf3b15af70f2db17d5f47822f12016f1a89bd73' (2023-09-02)
2023-09-11 11:39:31 +02:00
a4f3c98fae fix(syncthing): do not sync zotero 2023-09-08 17:43:43 +02:00
f403319fea fix: hu vpn setup for an fu student 2023-09-08 16:37:45 +02:00
d0b405fb15 fix(prometheus): do not fail bc of secrets 2023-09-08 13:11:23 +02:00
eafc87415a feat(prometheus): scrape home assistant 2023-09-05 19:23:40 +02:00
1e37581325 feat(i3): add clipmenu shortcut 2023-09-05 11:45:33 +02:00
c63cb4d157 feat: host ledger on ful 2023-09-05 11:45:20 +02:00
88257e9ffb Revert "feat: hledger module"
This reverts commit b9d0258132.
2023-09-03 22:36:23 +02:00
b9d0258132 feat: hledger module 2023-09-03 17:52:37 +02:00
53bbc65716 feat(pandoc): use up-to-date version 2023-09-03 17:50:48 +02:00
e76489b6d8 feat: remove traadfri 2023-08-31 10:09:49 +02:00
github-actions[bot]
f4e2885b86 flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/919d646de7be200f3bf08cb76ae1f09402b6f9b4' (2023-07-11)
  → 'github:numtide/flake-utils/f9e7cf818399d17d347f847525c5a5a8032e4e44' (2023-08-23)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4cdad15f34e6321a2f789b99d42815b9142ac2ba' (2023-08-19)
  → 'github:NixOS/nixpkgs/74e5bdc5478ebbe7ba5849f0d765f92757bb9dbf' (2023-08-25)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/0b6f3e17dda02c9cf1e8edc6e411ba37093f09e2' (2023-08-20)
  → 'github:NixOS/nixpkgs/38b9aaf6682015f1d2fc7b7f48da96992c30cfa3' (2023-08-26)
• Updated input 'nur':
    'github:nix-community/NUR/18436a20915d6cc569d7fb13807a07ae5de10661' (2023-08-19)
  → 'github:nix-community/NUR/0f81f016eecec153a26099beb25b0c8bac87bd23' (2023-08-26)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/598b2f04ed252eb5808b108d7a10084c0c548753' (2023-08-19)
  → 'github:oxalica/rust-overlay/e90223633068a44f0fb62374e0fa360ccc987292' (2023-08-26)
• Updated input 'voidrice':
    'github:Lukesmithxyz/voidrice/f26e5678e626e604ed586fc6420b944dc023d3f2' (2023-08-18)
  → 'github:Lukesmithxyz/voidrice/86f05abcce1fd270032975775adb40040c746cfe' (2023-08-25)
2023-08-27 00:40:57 +00:00
07f5d25e96 feat: remock secrets 2023-08-23 17:42:54 +02:00
b5e9fd73e0 feat: remove mpv-visualizer as it has been upstreamed now 2023-08-23 15:51:56 +02:00
34687dde21 feat: stw-berlin stats 2023-08-23 13:05:09 +02:00
4ce7c7a91a fix: lb subscription 2023-08-23 13:05:09 +02:00
github-actions[bot]
9db408226b flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/07c347bb50994691d7b0095f45ebd8838cf6bc38' (2023-06-27)
  → 'github:nix-community/home-manager/2a6679aa9cc3872c29ba2a57fe1b71b3e3c5649f' (2023-08-15)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/78287547942dd8e8afff0ae47fb8e2553db79d7e' (2023-08-08)
  → 'github:NixOS/nixpkgs/4cdad15f34e6321a2f789b99d42815b9142ac2ba' (2023-08-19)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e' (2023-08-10)
  → 'github:NixOS/nixpkgs/0b6f3e17dda02c9cf1e8edc6e411ba37093f09e2' (2023-08-20)
• Updated input 'nur':
    'github:nix-community/NUR/bbb14c7521967ffbeb0a492a1bd209e0369be648' (2023-08-10)
  → 'github:nix-community/NUR/18436a20915d6cc569d7fb13807a07ae5de10661' (2023-08-19)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=e29c0b48310d4520a4beb9782e94949ae43ab1ae' (2023-07-30)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=6216c30551876303dac5373e92690a7f05fd0f6f' (2023-08-14)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/48f3d76f512c7267d82d84c5d3d156ad2b9a8d12' (2023-08-10)
  → 'github:oxalica/rust-overlay/598b2f04ed252eb5808b108d7a10084c0c548753' (2023-08-19)
• Updated input 'voidrice':
    'github:Lukesmithxyz/voidrice/d8a8970715070f73bcb6333e3fe851b6802ac702' (2023-07-23)
  → 'github:Lukesmithxyz/voidrice/f26e5678e626e604ed586fc6420b944dc023d3f2' (2023-08-18)
2023-08-20 00:40:09 +00:00
8ea79b574b chore: update 2023-08-10 10:49:08 +02:00
bcb0878765 fix(grafana, nextcloud): remove smtp config 2023-08-09 10:48:36 +02:00
365aa29897 fix(grafana): remove smtp config 2023-08-09 09:29:51 +02:00
cfb782da7f Merge branch 'update_flake_lock_action' 2023-08-09 09:26:29 +02:00
e721abeb6c fix(vim): clean up 2023-08-07 15:38:54 +02:00
249e8c016d fix(fzf): preview commands 2023-08-07 14:22:47 +02:00
3be3410baa feat(stardict): install coptic dictionary 2023-08-07 13:26:53 +02:00
af0bd29cd5 chore: mock secrets 2023-08-06 21:22:33 +02:00
75827becf9 fix(fu-berlin): blackboard calendar 2023-08-06 21:19:08 +02:00
48438f758e feat: move email/ssh to fysi/hu-berlin/fu-berlin 2023-08-06 21:18:56 +02:00
3538692b60 feat(i3): enable gaps 2023-08-06 18:58:48 +02:00
42d1382b74 fix(editorconfig): python and makefile 2023-08-06 18:58:31 +02:00
31d86b7c9f feat(hu-berlin): add gruenau6 server configuration 2023-08-06 18:58:10 +02:00
6532016f96 feat(fu-berlin): liberalize blackboard calendar permissions 2023-08-06 18:57:52 +02:00
65c1704b46 feat: hello, FU! 2023-08-06 18:53:40 +02:00
github-actions[bot]
9f0cb708f2 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/48e82fe1b1c863ee26a33ce9bd39621d2ada0a33' (2023-07-28)
  → 'github:NixOS/nixpkgs/9652a97d9738d3e65cf33c0bc24429e495a7868f' (2023-08-04)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/4b4b4cf51b42616bc2de1c8fb92ec6a7ba862071' (2023-07-30)
  → 'github:NixOS/nixpkgs/97bd658852ce0efbdc4d9ca84ad466a4cbfb1cf4' (2023-08-05)
• Updated input 'nur':
    'github:nix-community/NUR/612e4e11ca96d2c205053a74ab3949c516a7e4ec' (2023-07-30)
  → 'github:nix-community/NUR/dcb1bbf571d2c3972a85058a398925c51db7655a' (2023-08-06)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=6c500ce24e1234d498e4da9718065ce154579192' (2023-07-28)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=e29c0b48310d4520a4beb9782e94949ae43ab1ae' (2023-07-30)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/05d480a7aef1aae1bfb67a39134dcf48c5322528' (2023-07-30)
  → 'github:oxalica/rust-overlay/18ee2a71de24273e4ad4503b5604532f0b53f382' (2023-08-05)
2023-08-06 00:42:40 +00:00
ee2dcc3669 feat(neovim): luasnip and supertab 2023-08-02 10:20:03 +02:00
b5f50967b4 feat(neovim): use editorconfig for stripping trailiing whitespace 2023-08-01 17:09:59 +02:00
747402bca4 feat(restic): backup whole hass volume 2023-07-31 22:26:11 +02:00
5876839e4d chore: build makanek locally 2023-07-31 22:25:57 +02:00
bb79707693 chore: update 2023-07-31 22:25:46 +02:00
6c72666ed6 fix: newGardiner checksum 2023-07-31 22:25:26 +02:00
github-actions[bot]
ff84da3d32 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f3fbbc36b4e179a5985b9ab12624e9dfe7989341' (2023-07-26)
  → 'github:NixOS/nixpkgs/48e82fe1b1c863ee26a33ce9bd39621d2ada0a33' (2023-07-28)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/7d053c812bb59bbb15293f9bb6087748e7c21b1a' (2023-07-27)
  → 'github:NixOS/nixpkgs/4ad78e3e98fabb3e4af3bd1a21dadb123aa85b5d' (2023-07-30)
• Updated input 'nur':
    'github:nix-community/NUR/e5381dfacea6a370383d95ade73bccc99460eb78' (2023-07-27)
  → 'github:nix-community/NUR/e731d694c01b2e17ebb7edfb26442d0124b795a4' (2023-07-30)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=966f656268a2d823ee5faf26954640e4b0b29aa7' (2023-07-09)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=6c500ce24e1234d498e4da9718065ce154579192' (2023-07-28)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/f335a0213504c7e6481c359dc1009be9cf34432c' (2023-07-27)
  → 'github:oxalica/rust-overlay/5c06b0ed7bfb00f3a925af6c4acd1636596381c1' (2023-07-29)
• Updated input 'stylix':
    'github:danth/stylix/5c829554280f3139ddbfce8561d7430efbf2abfb' (2023-07-27)
  → 'github:danth/stylix/c29f2e6f9d0326a690d0c2376712e9134ad8f5c8' (2023-07-29)
2023-07-30 00:49:18 +00:00
71575ad289 chore: update 2023-07-27 17:44:22 +02:00
0fd9283218 feat(i3): restitute window border for floating windows 2023-07-27 17:06:17 +02:00
83a949eddc feat: generate wallpaper 2023-07-27 17:05:48 +02:00
7f057a7657 fix(fzf): preview commands 2023-07-27 14:47:41 +02:00
35fcfc26c3 feat(fzf): configure via home-manager so stylix gets it 2023-07-27 14:39:26 +02:00
9b48a5557e fix(manakish): remove unused version 2023-07-27 14:25:20 +02:00
ddbcf5dfc4 feat(stylix): change wallpaper 2023-07-26 10:42:12 +02:00
31469cef9d feat(stylix): use a different theme each update 2023-07-26 10:39:42 +02:00
dbeb0acc11 feat(stylix): set base16 theme 2023-07-26 08:55:50 +02:00
ba449d7c69 chore: clean up 2023-07-26 08:18:28 +02:00
6940e1d8f9 feat: set cursor theme 2023-07-26 08:18:09 +02:00
a8940bf667 feat: stylix is my new best friend 2023-07-26 07:39:44 +02:00
92bf5ab0ee fix(mpd): integrate di.fm secret into playlist 2023-07-25 16:19:31 +02:00
2d1e11c0e7 chore: format 2023-07-25 16:19:31 +02:00
66b01774c3 feat(restic): ignore parcel cache 2023-07-25 16:19:31 +02:00
026c2e5631 feat(nextcloud): require storagebox mount 2023-07-24 20:03:52 +02:00
d51c120bc8 feat(moto): tmux, hledger 2023-07-24 06:33:51 +00:00
33b8201371 feat(moto): set nix path 2023-07-23 23:12:35 +02:00
6d9278680f feat(nix-on-droid): use fish 2023-07-23 00:31:03 +02:00
45972f524b feat(nix-on-droid): use nice bash prompt 2023-07-23 00:26:10 +02:00
915695cb0b feat(home-assistant): activate zigbee dongle 2023-07-22 23:43:46 +02:00
b4c513001c feat: add android tools 2023-07-22 23:43:46 +02:00
7551fd5a58 feat: nix-on-droid for moto-g5 2023-07-22 23:43:46 +02:00
69aa19e9d3 feat(restic): backup www.kmein.de state 2023-07-20 20:46:40 +02:00
277200d007 fix: update mock secrets 2023-07-20 19:35:09 +02:00
816bdbb730 feat(nginx): host www stuff 2023-07-20 19:32:26 +02:00
c731b57fd3 feat: build thinkpad locally 2023-07-20 19:30:39 +02:00
e52a9fdb56 feat(picom): quit shenanigans 2023-07-18 13:13:08 +02:00
f2c08c0cfd feat: bye seafile 2023-07-17 08:31:34 +02:00
cc1fa52b31 feat: hetzner storagebbox for nextcloud 2023-07-16 08:53:56 +02:00
f1284df54b chore: update 2023-07-16 08:20:56 +02:00
0536e762ea feat(nextcloud): change domain 2023-07-16 08:20:47 +02:00
2b2db14519 feat(vim): disable cmp buffer source 2023-07-15 23:08:05 +02:00
30619a6322 feat(radio): allow setting DI_FM_KEY as env variable 2023-07-15 22:53:14 +02:00
2bd218887b feat: more and the right language servers 2023-07-14 17:19:23 +02:00
0cdcd46808 feat(streams): other di streams 2023-07-14 17:19:10 +02:00
7a2a6217c4 feat(mpd): add mukke 2023-07-13 22:13:22 +02:00
bfb7ed3b5a fix(kpaste): also show non-retiolum address
this also fixes panoptikon
2023-07-12 15:18:18 +02:00
3e591784c6 chore: update secrets 2023-07-12 15:02:43 +02:00
657c4fd673 fix(spotifyd): disable dbus 2023-07-12 12:32:04 +02:00
a4b659f057 feat(vim): remove empty lines at end of file, fix nohlsearch 2023-07-12 12:31:50 +02:00
99be0277b1 feat(restic): backup home-assistant 2023-07-12 12:30:16 +02:00
6c2db1b0fb feat(vim): remove empty lines at end of file, fix nohlsearch 2023-07-12 12:30:16 +02:00
github-actions[bot]
0f8ada7194 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b72aa95f7f096382bff3aea5f8fde645bca07422' (2023-06-30)
  → 'github:NixOS/nixpkgs/d8bb6c681cf86265fdcf3cc3119f757bbb085835' (2023-07-07)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3eb8ccf3b3922be5586a263e7d6f4f98e3acf728' (2023-07-02)
  → 'github:NixOS/nixpkgs/651beb2a23fb0ae7939c5e0d3c645f487fdaa448' (2023-07-09)
• Updated input 'nur':
    'github:nix-community/NUR/8993e5d37ab3ec80883751b5d86d48e9b74bed43' (2023-07-02)
  → 'github:nix-community/NUR/7a85833f758ac5ad9f6e3620cf1445f7907073e3' (2023-07-09)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=5204150c92b7c412a3331337ef73b0eb0f01f6ba' (2023-07-01)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=4e2f9841ea09012261fca1c7e734f449ca39d55a' (2023-07-08)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/ef95001485c25edb43ea236bdb03640b9073abef' (2023-07-01)
  → 'github:oxalica/rust-overlay/7a29283cc242c2486fc67f60b431ef708046d176' (2023-07-08)
2023-07-12 12:29:35 +02:00
e9b4fb12c7 feat: improve obsidian-vim 2023-07-10 09:36:27 +02:00
24f838370d feat: make obsidian-vim and neovim bearable 2023-07-09 23:26:49 +02:00
074e229d5f feat: follow nvim-cmp tutorial, initialize vim-obsidian 2023-07-09 16:32:57 +02:00
b953ccae12 feat(neovim): completion via cmp 2023-07-04 22:11:22 +02:00
4f5782fbc4 feat: kick beets down the stairs 2023-07-04 21:43:37 +02:00
8ae328ad19 fix(ci): submodules and it works! 2023-07-04 17:06:32 +02:00
9148ab5ba8 Revert "chore: get secrets via input, mock for CI"
This reverts commit 3138fd23ef.
2023-07-04 16:28:26 +02:00
17bf958923 Merge remote-tracking branch 'origin/update_flake_lock_action' 2023-07-04 15:03:26 +02:00
e08ffb4d44 feat(notemenu): use as flake package 2023-07-04 10:12:38 +02:00
0cbf18fb1a feat(themes): switch gtk theme 2023-07-04 09:56:23 +02:00
332d192aaf fix(secrets): fysi email 2023-07-04 09:48:57 +02:00
f52a5c43c3 feat(i3status-rust): time every 10 seconds 2023-07-04 09:41:46 +02:00
94315fae99 chore: format 2023-07-04 09:40:29 +02:00
76232658c2 feat(htop): no tree 2023-07-04 09:40:12 +02:00
bcac6e29d5 feat: migrate notes workflow to obsidian completely 2023-07-04 09:40:00 +02:00
github-actions[bot]
7a99500f72 flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c' (2023-06-19)
  → 'github:numtide/flake-utils/dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7' (2023-06-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4' (2023-06-24)
  → 'github:nix-community/home-manager/07c347bb50994691d7b0095f45ebd8838cf6bc38' (2023-06-27)
• Updated input 'nixinate':
    'github:matthewcroughan/nixinate/b4d17b8e2a4abc47e93e1a1c466e0286a63640d8' (2022-12-15)
  → 'github:matthewcroughan/nixinate/7902ae845e6cc5bd450e510cdf5e009a6e4a44d9' (2023-06-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ecb441f22067ba1d6312f4932a7c64efa8d19a7b' (2023-06-22)
  → 'github:NixOS/nixpkgs/b72aa95f7f096382bff3aea5f8fde645bca07422' (2023-06-30)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/b154feadb9abd34350360a80cb4b7e6ce8525a75' (2023-06-25)
  → 'github:NixOS/nixpkgs/3eb8ccf3b3922be5586a263e7d6f4f98e3acf728' (2023-07-02)
• Updated input 'nur':
    'github:nix-community/NUR/9eed2d0c604236451550cede1095b94bc8897133' (2023-06-25)
  → 'github:nix-community/NUR/8993e5d37ab3ec80883751b5d86d48e9b74bed43' (2023-07-02)
• Updated input 'retiolum':
    'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=f79b533caf30820d93a79878d871c08faa35b3f4' (2023-06-06)
  → 'git+https://git.thalheim.io/Mic92/retiolum?ref=refs/heads/master&rev=5204150c92b7c412a3331337ef73b0eb0f01f6ba' (2023-07-01)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/ec002586144fe0f48039dced270c188f0b8213ab' (2023-06-24)
  → 'github:oxalica/rust-overlay/ef95001485c25edb43ea236bdb03640b9073abef' (2023-07-01)
• Updated input 'secrets':
    'path:./secrets?lastModified=1&narHash=sha256-D9ZMDdN7FOG%2Bx8Ds2FuBUz/ujRLjJ07rxiV8AFuEqbQ%3D' (1970-01-01)
  → 'path:./secrets?lastModified=1&narHash=sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo%3D' (1970-01-01)
2023-07-02 00:59:43 +00:00
3138fd23ef chore: get secrets via input, mock for CI
this fixes CI, yay!
2023-06-27 20:13:09 +02:00
d0edb9c915 feat(syncthing): sync zotero 2023-06-27 17:57:26 +02:00
120a50db3b feat(fonts): coptic and correct arabic 2023-06-27 17:50:07 +02:00
3736b99603 fix: moodle-dl nfs 2023-06-27 17:49:56 +02:00
6db3928a47 fix: ci 2023-06-26 16:03:19 +02:00
d980fe6da5 fix(zaatar): remove moodle-dl fully 2023-06-26 15:26:25 +02:00
a599e5a64b Merge remote-tracking branch 'origin/update_flake_lock_action' 2023-06-26 15:11:38 +02:00
6dd286b2bf fix(hu-berlin): vpn 2023-06-26 14:27:27 +02:00
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
227 changed files with 7868 additions and 4601 deletions

21
.bin/fix-sd.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/sh
set -xfu
drive="$1"
mountpoint="/media/sd-card-$(date +%s)"
backup_directory="$(pwd)"
trap clean EXIT
clean() {
umount "$mountpoint"
rmdir "$mountpoint"
fsck.exfat "$drive"
}
filenames="$(fsck.exfat "$drive" 2>&1 | sed -nE "s/.* file '(.*?)' is not allocated.*/\1/p")"
mkdir "$mountpoint"
mount "$drive" "$mountpoint"
echo "$filenames" | while read -r filename; do
find "$mountpoint" -type f -name "$filename" -exec mv {} "$backup_directory" \;
done

View File

@@ -7,8 +7,33 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
system: [makanek,manakish,kabsa,zaatar,ful]
system: [makanek,manakish,kabsa,zaatar,ful,fatteh]
steps:
- uses: actions/checkout@v2
- uses: cachix/install-nix-action@v16
- run: nix run .?submodules=1#apps.nixinate.${{matrix.system}}-dry-run
- uses: actions/checkout@v3
- name: Install QEMU (ARM)
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
if: ${{ matrix.system == 'ful' }}
- name: Install Nix (ARM)
uses: cachix/install-nix-action@v16
if: ${{ matrix.system == 'ful' }}
with:
extra_nix_config: |
system = aarch64-linux
- name: Install Nix (x86_64)
uses: cachix/install-nix-action@v16
if: ${{ matrix.system != 'ful' }}
- name: nixos-rebuild dry-build
run: |
# remove secrets: ref https://stackoverflow.com/questions/1260748/how-do-i-remove-a-submodule/36593218
git submodule deinit -f secrets
rm -rf .git/modules/secrets
git rm -f secrets
# recreate secrets
mkdir secrets
cat secrets.txt | while read -r path; do touch $path; done
git add secrets
nix run nixpkgs#nixos-rebuild -- dry-build --flake $GITHUB_WORKSPACE#${{matrix.system}}

View File

@@ -1,5 +1,7 @@
# niveum
> I must Create a System, or be enslav'd by another Man's. —William Blake
> [nĭvĕus](https://logeion.uchicago.edu/niveus), a, um, adj. [nix], _of_ or _from snow, snowy, snow-_ (poet.)
>
> 1. Lit.: aggeribus niveis informis, Verg. G. 3, 354: aqua, _cooled with snow_, Mart. 12, 17, 6; cf. id. 14, 104 and 117: mons, _covered with snow_, Cat. 64, 240.—
@@ -7,4 +9,6 @@
> 2. Transf., _snow-white, snowy_ (mostly poet.): a similitudine sic: Corpore niveum candorem, aspectu igneum ardorem assequebatur, Auct. Her. 4, 33, 44: lacerti, Verg. A. 8, 387: lac, id. E. 2, 20: hanc si capite niveae agnae exorari judicas, Sen. Q. N. 2, 36: Briseis niveo colore, Hor. C. 2, 4, 3: vestis, Ov. M. 10, 432: candidior nivei folio, Galatea, ligustri, id. ib. 13, 789: dens, id. H. 18, 18: quā notam duxit niveus videri, Hor. C. 4, 2, 59: panis, Juv. 5, 70: flumen, _clear, pellucid_, Sen. Hippol. 504: undae, Mart. 7, 32, 11: tribuni, _clothed in white togas_, Calp. Ecl. 7, 29; so, Quirites, Juv. 10, 45.
## Pressestimmen
> das ist ja pure poesie —[xkey](https://github.com/riotbib)
> das ist ja pure poesie —[riotbib](https://github.com/riotbib/)
> Deine Configs sind wunderschön <3 —[flxai](https://github.com/flxai/)

View File

@@ -0,0 +1,119 @@
{
pkgs,
niveumPackages,
lib,
...
}: let
darwin = lib.strings.hasSuffix "-darwin" pkgs.stdenv.hostPlatform.system;
in {
environment.systemPackages =
[
pkgs.htop
pkgs.w3m
pkgs.wget
# ARCHIVE TOOLS
pkgs.unzip
pkgs.unrar
pkgs.p7zip
pkgs.sshuttle
pkgs.zip
# MONITORS
pkgs.iftop # interface bandwidth monitor
pkgs.lsof # list open files
# SHELL
pkgs.sqlite
pkgs.fd # better find
pkgs.tree
pkgs.parallel # for parallel, since moreutils shadows task spooler
pkgs.ripgrep # better grep
pkgs.rlwrap
pkgs.progress # display progress bars for pipes
pkgs.file # determine file type
pkgs.gdu # ncurses disk usage (ncdu is broken)
pkgs.rmlint # remove duplicate files
pkgs.jq # json toolkit
pkgs.jless # less(1) for json
pkgs.fq # toolkit for yaml, xml and binaries
pkgs.bc # calculator
pkgs.pari # gp -- better calculator
pkgs.ts
niveumPackages.vimv
niveumPackages.vg
niveumPackages.fkill
niveumPackages.cyberlocker-tools
niveumPackages.untilport
niveumPackages.kpaste
# HARDWARE
pkgs.pciutils # for lspci
]
++ lib.optionals (!darwin) [
pkgs.usbutils # for lsusb
pkgs.lshw # for lshw
pkgs.iotop # I/O load monitor
pkgs.psmisc # for killall, pstree
];
security.wrappers = {
pmount = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.pmount}/bin/pmount";
};
pumount = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.pmount}/bin/pumount";
};
};
environment.shellAliases = let
take = pkgs.writers.writeDash "take" ''
mkdir "$1" && cd "$1"
'';
cdt = pkgs.writers.writeDash "cdt" ''
cd "$(mktemp -d)"
pwd
'';
wcd = pkgs.writers.writeDash "wcd" ''
cd "$(readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname)/.."
'';
where = pkgs.writers.writeDash "where" ''
readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname
'';
in
{
nixi = "nix repl '<nixpkgs>'";
take = "source ${take}";
wcd = "source ${wcd}";
where = "source ${where}";
# temporary files and directories
cdt = "source ${cdt}";
vit = "$EDITOR $(mktemp)";
# file safety
mv = "${pkgs.coreutils}/bin/mv --interactive";
rm = "${pkgs.coreutils}/bin/rm --interactive";
cp = "${pkgs.coreutils}/bin/cp --interactive";
# colours
cat = "${pkgs.bat}/bin/bat --theme=ansi --style=plain";
l = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso --almost-all";
ls = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso";
ll = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso -l";
la = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso --almost-all -l";
}
// (
if darwin
then {}
else {
"ß" = "${pkgs.util-linux}/bin/setsid";
ip = "${pkgs.iproute2}/bin/ip -c";
# systemd
s = "${pkgs.systemd}/bin/systemctl";
us = "${pkgs.systemd}/bin/systemctl --user";
j = "${pkgs.systemd}/bin/journalctl";
uj = "${pkgs.systemd}/bin/journalctl --user";
}
);
}

View File

@@ -2,30 +2,20 @@
pkgs,
config,
lib,
niveumPackages,
...
}: let
defaults = {
aerc.enable = true;
realName = "Kierán Meinhardt";
folders.inbox = "INBOX";
};
hu-defaults = {
imap.host = "mailbox.cms.hu-berlin.de";
imap.port = 993;
smtp.host = "mailhost.cms.hu-berlin.de";
smtp.port = 25;
smtp.tls.useStartTls = true;
};
inherit (import ../lib/email.nix) defaults thunderbirdProfile;
in {
age.secrets = {
email-password-cock = {
file = ../secrets/email-password-cock.age;
email-password-ical-ephemeris = {
file = ../secrets/email-password-ical-ephemeris.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
email-password-fysi = {
file = ../secrets/email-password-fysi.age;
email-password-cock = {
file = ../secrets/email-password-cock.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
@@ -36,33 +26,11 @@ in {
group = config.users.users.me.group;
mode = "400";
};
email-password-meinhark = {
file = ../secrets/email-password-meinhark.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
email-password-meinhaki = {
file = ../secrets/email-password-meinhaki.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
email-password-dslalewa = {
file = ../secrets/email-password-dslalewa.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
email-password-fsklassp = {
file = ../secrets/email-password-fsklassp.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
};
home-manager.users.me = {
accounts.email.maildirBasePath = "${config.users.users.me.home}/state/Maildir";
services.mbsync = {
enable = true;
frequency = "daily";
@@ -110,99 +78,32 @@ in {
config.home-manager.users.me.accounts.email.accounts);
};
accounts.email.accounts = rec {
hu-student =
lib.recursiveUpdate defaults
(lib.recursiveUpdate hu-defaults
rec {
userName = "meinhark";
address = "kieran.felix.meinhardt@hu-berlin.de";
aliases = ["${userName}@hu-berlin.de"];
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-meinhark.path}";
});
hu-student-cs =
lib.recursiveUpdate defaults
(lib.recursiveUpdate hu-defaults
rec {
userName = "meinhark";
address = "kieran.felix.meinhardt@informatik.hu-berlin.de";
aliases = ["${userName}@informatik.hu-berlin.de"];
imap.host = "mailbox.informatik.hu-berlin.de";
smtp.host = "mailhost.informatik.hu-berlin.de";
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-meinhark.path}";
});
hu-employee =
lib.recursiveUpdate defaults
(lib.recursiveUpdate hu-defaults
rec {
userName = "meinhaki";
address = "kieran.meinhardt@hu-berlin.de";
aliases = ["${userName}@hu-berlin.de"];
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-meinhaki.path}";
aerc.extraAccounts.signature-file = toString (pkgs.writeText "signature" signature.text);
signature = {
showSignature = "append";
text = ''
${defaults.realName}
Studentische Hilfskraft / Administrator ALEW
Humboldt-Universität zu Berlin
Telefon: +49 (0)30 2093 9634
Raum 3.212, Dorotheenstraße 24, 10117 Berlin-Mitte
https://alew.hu-berlin.de
'';
};
});
hu-admin =
lib.recursiveUpdate defaults
(lib.recursiveUpdate hu-defaults
rec {
userName = "dslalewa";
address = "admin.alew.vglsprwi@hu-berlin.de";
aliases = ["${userName}@hu-berlin.de"];
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-dslalewa.path}";
inherit (hu-employee) signature;
aerc.extraAccounts.signature-file = toString (pkgs.writeText "signature" signature.text);
});
hu-fsi =
lib.recursiveUpdate defaults
(lib.recursiveUpdate hu-defaults
rec {
userName = "fsklassp";
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-fsklassp.path}";
address = "${userName}@hu-berlin.de";
realName = "FSI Klassische Philologie";
aerc.extraAccounts.signature-file = toString (pkgs.writeText "signature" signature.text);
signature = {
showSignature = "append";
text = ''
Fachschafts-Initiative
Humboldt-Universität zu Berlin
Sprach- und literaturwissenschaftliche Fakultät
Institut für klassische Philologie
Unter den Linden 6
10099 Berlin
'';
};
});
fysi =
lib.recursiveUpdate defaults
rec {
address = "kieran@fysi.tech";
userName = address;
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-fysi.path}";
flavor = "fastmail.com";
};
accounts.email.accounts = {
cock =
lib.recursiveUpdate defaults
rec {
address = "2210@cock.li";
userName = address;
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-cock.path}";
realName = "";
realName = "2210";
imap.host = "mail.cock.li";
imap.port = 993;
smtp.host = imap.host;
smtp.port = 25;
smtp.tls.useStartTls = true;
};
ical-ephemeris =
lib.recursiveUpdate defaults
rec {
userName = "ical.ephemeris@web.de";
realName = "Kieran from iCal Ephemeris";
address = userName;
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-ical-ephemeris.path}";
imap.host = "imap.web.de";
imap.port = 993;
smtp.host = "smtp.web.de";
smtp.port = 587;
smtp.tls.useStartTls = true;
};
posteo =
lib.recursiveUpdate defaults
@@ -211,14 +112,42 @@ in {
aliases = ["kmein@posteo.de"];
userName = address;
imap.host = "posteo.de";
imap.port = 993;
imap.tls.enable = true;
smtp.host = imap.host;
smtp.port = 465;
smtp.tls.enable = true;
primary = true;
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-posteo.path}";
# himalaya = { enable = true; backend = "imap"; sender = "smtp"; };
himalaya = {
enable = true;
settings.backend = "imap";
};
aerc.extraAccounts.pgp-key-id = "9EDE82CC72A343A95266D0F444857074A3ACC8B7";
};
};
# programs.himalaya.enable = true;
programs.himalaya.enable = true;
programs.thunderbird = {
enable = true;
settings = {
};
profiles.${thunderbirdProfile} = {
isDefault = true;
settings = {
"mail.default_send_format" = 1;
"msgcompose.default_colors" = false;
"msgcompose.text_color" = config.lib.stylix.colors.withHashtag.base00;
"msgcompose.background_color" = config.lib.stylix.colors.withHashtag.base05;
};
userChrome = ''
'';
userContent = ''
'';
withExternalGnupg = false;
};
};
programs.aerc = {
enable = true;
@@ -277,6 +206,7 @@ in {
"*" = ":filter -x Flagged<Enter>";
};
view = {
tr = ":pipe ${niveumPackages.trans}/bin/trans -show-original n -b -no-autocorrect<Enter>"; # https://man.sr.ht/~rjarry/aerc/integrations/translator.md
"/" = ":toggle-key-passthrough <Enter> /";
q = ":close<Enter>";
O = ":open<Enter>";
@@ -351,19 +281,19 @@ in {
general.pgp-provider = "gpg";
viewer = {pager = "${pkgs.less}/bin/less -R";};
compose = {
address-book-cmd = "khard email --remove-first-line --parsable '%s'";
no-attachment-warning = "(attach|attached|attachments?|anbei|Anhang|angehängt)";
# address-book-cmd = "khard email --remove-first-line --parsable '%s'";
no-attachment-warning = "(attach|attached|attachments?|anbei|Anhang|angehängt|beigefügt)";
};
filters = {
"text/plain" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/colorize";
"text/calendar" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/calendar";
"text/html" = "${pkgs.aerc}/share/aerc/filters/html"; # Requires w3m, dante
"text/plain" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"text/calendar" = "${pkgs.aerc}/libexec/aerc/filters/calendar";
"text/html" = "${pkgs.aerc}/libexec/aerc/filters/html"; # Requires w3m, dante
# "text/html" =
# "${pkgs.aerc}/share/aerc/filters/html | ${pkgs.aerc}/share/aerc/filters/colorize";
# "text/*" =
# ''${pkgs.bat}/bin/bat -fP --file-name="$AERC_FILENAME "'';
"message/delivery-status" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/colorize";
"message/rfc822" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/colorize";
# ''${pkgs.bat}/bin/bat -fP --theme=ansi --file-name="$AERC_FILENAME "'';
"message/delivery-status" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"message/rfc822" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"application/x-sh" = "${pkgs.bat}/bin/bat -fP -l sh";
};
openers = let

View File

@@ -1,68 +1,33 @@
{
pkgs,
lib,
config,
...
}: let
alacritty-cfg = theme:
(pkgs.formats.yaml {}).generate "alacritty.yml" {
window.opacity = 0.99;
bell = {
animation = "EaseOut";
duration = 100;
color = "#ffffff";
};
font = {
normal.family = "Monospace";
size = 6;
};
live_config_reload = true;
key_bindings = [
{
key = "Plus";
mods = "Control";
action = "IncreaseFontSize";
}
{
key = "Minus";
mods = "Control";
action = "DecreaseFontSize";
}
{
key = "Key0";
mods = "Control";
action = "ResetFontSize";
}
];
colors = let
colourNames = ["black" "red" "green" "yellow" "blue" "magenta" "cyan" "white"];
colourPairs = lib.getAttrs colourNames theme;
in {
primary = {inherit (theme) background foreground;};
cursor = {inherit (theme) cursor;};
normal = lib.mapAttrs (_: colour: colour.dark) colourPairs;
bright = lib.mapAttrs (_: colour: colour.bright) colourPairs;
};
};
alacritty-pkg = pkgs.symlinkJoin {
name = "alacritty";
paths = [
(pkgs.writers.writeDashBin "alacritty" ''
${pkgs.alacritty}/bin/alacritty --config-file /var/theme/config/alacritty.yml msg create-window "$@" ||
${pkgs.alacritty}/bin/alacritty --config-file /var/theme/config/alacritty.yml "$@"
'')
pkgs.alacritty
];
};
in {
environment.variables.TERMINAL = "alacritty";
environment.systemPackages = [
alacritty-pkg
];
environment.etc = {
"themes/dark/alacritty.yml".source = alacritty-cfg (import ../lib/colours/owickstrom-dark.nix);
"themes/light/alacritty.yml".source = alacritty-cfg (import ../lib/colours/owickstrom-light.nix);
home-manager.users.me = {
programs.alacritty = {
enable = true;
settings = {
keyboard.bindings = [
{
key = "Plus";
mods = "Control";
action = "IncreaseFontSize";
}
{
key = "Minus";
mods = "Control";
action = "DecreaseFontSize";
}
{
key = "Key0";
mods = "Control";
action = "ResetFontSize";
}
];
};
};
};
}

5
configs/android.nix Normal file
View File

@@ -0,0 +1,5 @@
{
programs.adb.enable = true;
users.users.me.extraGroups = ["adbusers"];
}

View File

@@ -14,19 +14,18 @@ in {
};
passwordFile = config.age.secrets.restic.path;
extraBackupArgs = [
"--exclude=/home/kfm/projects/nixpkgs/.git"
"--exclude=/home/kfm/sync/src/nixpkgs/.git"
"--exclude=node_modules"
"--exclude=.parcel-cache"
];
paths = [
"/home/kfm/work"
"/home/kfm/projects"
"/home/kfm/notes"
"/home/kfm/Maildir"
"/home/kfm/sync"
"/home/kfm/state"
"/home/kfm/cloud"
"/home/kfm/mobile"
"/home/kfm/.gnupg"
"/home/kfm/.electrum"
"/home/kfm/.ssh"
"/mnt/sd-card/music"
"/mnt/sd-card/Books"
];
};

View File

@@ -1,10 +1,10 @@
{
{pkgs, ...}: {
programs.bash = {
promptInit = ''
PS1="$(tput bold)\w \$([[ \$? == 0 ]] && echo \"\[\033[1;32m\]\" || echo \"\[\033[1;31m\]\")\$$(tput sgr0) "'';
PS1="$(${pkgs.ncurses}/bin/tput bold)\w \$([[ \$? == 0 ]] && echo \"\[\033[1;32m\]\" || echo \"\[\033[1;31m\]\")\$$(${pkgs.ncurses}/bin/tput sgr0) "'';
interactiveShellInit = ''
set -o vi
'';
enableCompletion = true;
completion.enable = true;
};
}

View File

@@ -1,14 +0,0 @@
{
lib,
pkgs,
...
}: {
environment.systemPackages = [pkgs.beets];
home-manager.users.me.xdg.configFile = {
"beets/config.yaml".source = (pkgs.formats.yaml {}).generate "config.yaml" {
directory = "~/cloud/syncthing/music";
library = "~/cloud/syncthing/common/music.db";
plugins = toString ["fetchart" "lastgenre"];
};
};
}

View File

@@ -1,17 +1,10 @@
{
pkgs,
lib,
...
}: {
{pkgs, ...}: {
hardware.bluetooth = {
enable = true;
settings.General.Enable =
lib.concatStringsSep "," ["Source" "Sink" "Media" "Socket"];
settings.general = {
enable = "Source,Sink,Media,Socket";
};
};
services.blueman.enable = true;
# environment.systemPackages = [pkgs.blueman];
home-manager.users.me = {services.blueman-applet.enable = true;};
environment.systemPackages = [ pkgs.bluetuith ];
}

View File

@@ -0,0 +1,27 @@
{
config,
inputs,
...
}: let
autorenkalender = inputs.autorenkalender.packages.x86_64-linux.default;
in {
niveum.bots.autorenkalender = {
enable = true;
time = "07:00";
telegram = {
enable = true;
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@autorenkalender"];
parseMode = "Markdown";
};
command = "${autorenkalender}/bin/autorenkalender";
};
niveum.passport.services = [
{
title = "Autorenkalender";
description = "sends <a href=\"https://www.projekt-gutenberg.org/\">Projekt Gutenberg</a>'s anniversary information to Telegram.";
link = "https://t.me/Autorenkalender";
}
];
}

79
configs/bots/celan.nix Normal file
View File

@@ -0,0 +1,79 @@
{
pkgs,
lib,
config,
...
}: {
niveum.bots.celan = {
enable = true;
time = "08:00";
telegram = {
enable = true;
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@PaulCelan"];
};
mastodon = {
enable = true;
tokenFile = config.age.secrets.mastodon-token-celan.path;
language = "de";
};
command = toString (pkgs.writers.writePython3 "random-celan.py" { libraries = [pkgs.python3Packages.lxml]; } ''
from lxml import etree
import random
def xml_text(elements):
return "".join("".join(t.itertext()) for t in elements).strip()
tree = etree.parse('${pkgs.fetchurl {
url = "http://c.krebsco.de/celan.tei.xml";
hash = "sha256-HgNmJYfhuwyfm+FcNtnnYWpJpIIU1ElHLeLiIFjF9mE=";
}}')
root = tree.getroot()
tei = {"tei": "http://www.tei-c.org/ns/1.0"}
poems = root.xpath(".//tei:lg[@type='poem']", namespaces=tei)
poem = random.choice(poems)
for stanza in poem.xpath("./tei:lg[@type='stanza']", namespaces=tei):
for line in stanza.xpath('./tei:l', namespaces=tei):
if line.text:
print(line.text.strip())
print()
current_element = poem
while current_element is not None:
if current_element.tag == "{http://www.tei-c.org/ns/1.0}text":
text_element = current_element
title = xml_text(text_element.xpath("./tei:front/tei:docTitle",
namespaces=tei))
print(f"Aus: #{title.replace(" ", "_")}", end=" ")
if date := xml_text(text_element.xpath("./tei:front/tei:docDate",
namespaces=tei)):
print(f"({date})")
break
current_element = current_element.getparent()
print("\n\n#PaulCelan #Celan #Lyrik #poetry")
'');
};
age.secrets = {
mastodon-token-celan.file = ../../secrets/mastodon-token-celan.age;
};
systemd.timers.bot-celan.timerConfig.RandomizedDelaySec = "10h";
niveum.passport.services = [
{
title = "Paul Celan Bot";
description = "sends a random poem by Paul Celan to Telegram.";
link = "https://t.me/PaulCelan";
}
];
}

View File

@@ -11,16 +11,21 @@
inherit (import ../../lib) tmpfilesConfig;
in {
imports = [
./literature-quote.nix
./astrology.nix
./logotheca.nix
./transits.nix
./autorenkalender.nix
./hesychius.nix
./smyth.nix
./nachtischsatan.nix
./tlg-wotd.nix
# ./tlg-wotd.nix TODO reenable
./celan.nix
./nietzsche.nix
];
age.secrets = {
telegram-token-kmein.file = ../../secrets/telegram-token-kmein.age;
};
systemd.tmpfiles.rules = map (path:
tmpfilesConfig {
type = "d";
@@ -51,6 +56,7 @@ in {
telegram-token-reverse.file = ../../secrets/telegram-token-reverse.age;
telegram-token-betacode.file = ../../secrets/telegram-token-betacode.age;
telegram-token-proverb.file = ../../secrets/telegram-token-proverb.age;
telegram-token-streaming-link.file = ../../secrets/telegram-token-streaming-link.age;
};
systemd.services.telegram-reverse = {
@@ -66,6 +72,17 @@ in {
serviceConfig.LoadCredential = "token:${config.age.secrets.telegram-token-reverse.path}";
};
systemd.services.telegram-streaming-link = {
wantedBy = ["multi-user.target"];
description = "Telegram bot converting YouTube Music <-> Spotify";
enable = true;
script = ''
TELEGRAM_BOT_TOKEN="$(cat "$CREDENTIALS_DIRECTORY/token")" ${telebots}/bin/telegram-streaming-link
'';
serviceConfig.Restart = "always";
serviceConfig.LoadCredential = "token:${config.age.secrets.telegram-token-streaming-link.path}";
};
systemd.services.telegram-betacode = {
wantedBy = ["multi-user.target"];
description = "Telegram beta code bot";

View File

@@ -0,0 +1,39 @@
{
pkgs,
config,
inputs,
lib,
...
}: let
hesychius = inputs.scripts.outPath + "/hesychius/hesychius.txt";
in {
niveum.bots.hesychius = {
enable = true;
time = "08:00";
mastodon = {
enable = true;
language = "el";
tokenFile = config.age.secrets.mastodon-token-hesychius.path;
};
telegram = {
enable = true;
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@HesychiosAlexandreus"];
};
command = "${pkgs.coreutils}/bin/shuf -n1 ${hesychius}";
};
systemd.timers.bot-hesychius.timerConfig.RandomizedDelaySec = "10h";
age.secrets = {
mastodon-token-hesychius.file = ../../secrets/mastodon-token-hesychius.age;
};
niveum.passport.services = [
{
title = "Hesychius of Alexandria Bot";
description = "sends a random word from Hesychius of Alexandria's lexicon to Telegram.";
link = "https://t.me/HesychiosAlexandreus";
}
];
}

View File

@@ -0,0 +1,38 @@
{
pkgs,
config,
lib,
niveumPackages,
...
}: {
niveum.bots.logotheca = {
enable = true;
time = "08/6:00";
telegram = {
enable = true;
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["-1001760262519"];
parseMode = "Markdown";
};
matrix = {
enable = true;
homeserver = "matrix.4d2.org";
tokenFile = config.age.secrets.matrix-token-lakai.path;
chatIds = [
"!zlwCuPiCNMSxDviFzA:4d2.org"
];
};
command = "${niveumPackages.literature-quote}/bin/literature-quote";
};
age.secrets = {
matrix-token-lakai.file = ../../secrets/matrix-token-lakai.age;
};
niveum.passport.services = [
{
title = "Literature quote bot";
description = "sends me and my friends three <a href=\"https://logotheca.xn--kiern-0qa.de/\">logotheca</a> quotes a day.";
}
];
}

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

@@ -0,0 +1,31 @@
{
config,
pkgs,
niveumPackages,
...
}: {
niveum.bots.nietzsche = {
enable = true;
time = "08:00";
mastodon = {
enable = true;
tokenFile = config.age.secrets.mastodon-token-nietzsche.path;
language = "de";
};
command = toString (pkgs.writers.writeBash "random-nietzsche" ''
set -efu
random_number=$(( ($RANDOM % 10) + 1 ))
if [ "$random_number" -eq 1 ]; then
${niveumPackages.random-zeno}/bin/random-zeno "/Literatur/M/Nietzsche,+Friedrich"
else
${niveumPackages.random-zeno}/bin/random-zeno "/Philosophie/M/Nietzsche,+Friedrich"
fi
'');
};
systemd.timers.bot-nietzsche.timerConfig.RandomizedDelaySec = "10h";
age.secrets = {
mastodon-token-nietzsche.file = ../../secrets/mastodon-token-nietzsche.age;
};
}

69
configs/bots/smyth.nix Normal file
View File

@@ -0,0 +1,69 @@
{
config,
pkgs,
lib,
...
}: {
niveum.bots.smyth = {
enable = true;
time = "08:00";
mastodon = {
enable = true;
tokenFile = config.age.secrets.mastodon-token-smyth.path;
language = "en";
};
telegram = {
enable = true;
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@HerbertWeirSmyth"];
};
command = toString (pkgs.writers.writeDash "random-smyth" ''
set -efu
good_curl() {
${pkgs.curl}/bin/curl "$@" \
--compressed \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
-H 'Accept-Language: en-US,en;q=0.5' \
-H 'DNT: 1' \
-H 'Connection: keep-alive' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'Sec-Fetch-Dest: document' \
-H 'Sec-Fetch-Mode: navigate' \
-H 'Sec-Fetch-Site: cross-site' \
-H 'Priority: u=0, i' \
-H 'Pragma: no-cache' \
-H 'Cache-Control: no-cache'
}
RANDOM_SECTION=$(
good_curl -sSL http://www.perseus.tufts.edu/hopper/xmltoc?doc=Perseus%3Atext%3A1999.04.0007%3Asmythp%3D1 \
| ${pkgs.gnugrep}/bin/grep -o 'ref="[^"]*"' \
| ${pkgs.coreutils}/bin/shuf -n1 \
| ${pkgs.gnused}/bin/sed 's/^ref="//;s/"$//'
)
url="http://www.perseus.tufts.edu/hopper/text?doc=$RANDOM_SECTION"
good_curl -sSL "$url"\
| ${pkgs.htmlq}/bin/htmlq '#text_main' \
| ${pkgs.gnused}/bin/sed 's/<\/\?hr>//g' \
| ${pkgs.pandoc}/bin/pandoc -f html -t plain --wrap=none
printf '\n%s\n\n#AncientGreek' "$url"
'');
};
systemd.timers.bot-smyth.timerConfig.RandomizedDelaySec = "10h";
age.secrets = {
mastodon-token-smyth.file = ../../secrets/mastodon-token-smyth.age;
};
niveum.passport.services = [
{
title = "Herbert Weir Smyth Bot";
description = "sends a random section from Smyth's Ancient Greek grammar to Telegram.";
link = "https://t.me/HerbertWeirSmyth";
}
];
}

164
configs/bots/tlg-wotd.nix Normal file
View File

@@ -0,0 +1,164 @@
{
pkgs,
lib,
config,
niveumPackages,
unstablePackages,
...
}: let
mastodonEndpoint = "https://social.krebsco.de";
in {
systemd.services.bot-tlg-wotd = {
# TODO reenable
# once https://github.com/NixOS/nixpkgs/pull/462893 is in stable NixOS
enable = true;
wants = ["network-online.target"];
startAt = "9:30";
path = [ pkgs.jq pkgs.curl pkgs.recode pkgs.deno pkgs.imagemagick pkgs.gawk pkgs.gnugrep pkgs.coreutils ];
environment = {
NPM_CONFIG_CACHE = "/tmp";
CLTK_DATA = "/tmp";
};
script = ''
set -efux
chat_id=@tlgwotd
export TELEGRAM_TOKEN="$(cat "$CREDENTIALS_DIRECTORY/telegram-token")"
export MASTODON_TOKEN="$(cat "$CREDENTIALS_DIRECTORY/mastodon-token")"
json_data=$(curl -sSL http://stephanus.tlg.uci.edu/Iris/Wotd | recode html..utf8)
word=$(echo "$json_data" | jq -r '.word')
compact_word=$(echo "$word" | sed 's/,.*$//')
definition=$(echo "$json_data" | jq -r '.definition | sub("<.*>"; "") | rtrimstr(" ")')
first_occurrence=$(echo "$json_data" | jq -r '.firstOccurrence')
total_occurrences=$(echo "$json_data" | jq -r '.totalOccurrences')
telegram_caption="*$word* $definition
First occurrence (century): $first_occurrence
Number of occurrences (in all Ancient Greek texts): $total_occurrences"
mastodon_caption="$word $definition
First occurrence (century): $first_occurrence
Number of occurrences (in all Ancient Greek texts): $total_occurrences"
#ancientgreek #classics #wotd #wordoftheday
transliteration=$(${pkgs.writers.writePython3 "translit.py" {
libraries = py: [ py.cltk ];
} ''
import sys
from cltk.phonology.grc.transcription import Transcriber
probert = Transcriber("Attic", "Probert")
text = " ".join(sys.argv[1:])
ipa = probert.transcribe(text)
print(ipa)
''} "$compact_word")
photo_path=/tmp/output.png
hex_to_rgb() {
hex="$1"
r=$(printf "%d" "0x$(echo "$hex" | cut -c2-3)")
g=$(printf "%d" "0x$(echo "$hex" | cut -c4-5)")
b=$(printf "%d" "0x$(echo "$hex" | cut -c6-7)")
echo "$r $g $b"
}
calculate_luminance() {
r="$1"
g="$2"
b="$3"
r_l=$(echo "$r" | awk '{print ($1 / 255 <= 0.03928) ? $1 / 255 / 12.92 : (($1 / 255 + 0.055) / 1.055)^2.4}')
g_l=$(echo "$g" | awk '{print ($1 / 255 <= 0.03928) ? $1 / 255 / 12.92 : (($1 / 255 + 0.055) / 1.055)^2.4}')
b_l=$(echo "$b" | awk '{print ($1 / 255 <= 0.03928) ? $1 / 255 / 12.92 : (($1 / 255 + 0.055) / 1.055)^2.4}')
echo "$r_l $g_l $b_l" | awk '{print 0.2126*$1 + 0.7152*$2 + 0.0722*$3}'
}
hex_color="#$(echo "$compact_word" | md5sum | cut -c 1-6)"
if echo "$hex_color" | grep -qE '^#[0-9A-Fa-f]{6}$'; then
set -- $(hex_to_rgb "$hex_color")
r="$1"
g="$2"
b="$3"
fi
luminance=$(calculate_luminance "$r" "$g" "$b")
threshold="0.1"
echo "$r $g $b"
if [ "$(echo "$luminance" | awk -v threshold="$threshold" '{print ($1 > threshold)}')" -eq 1 ]; then
color1="black"
color2="#333"
else
color1="white"
color2=lightgrey
fi
magick -size 1400x846 \
xc:"$hex_color" \
-font "${pkgs.gentium}/share/fonts/truetype/GentiumBookPlus-Bold.ttf" \
-fill "$color1" \
-pointsize 150 -gravity west \
-annotate +100-160 "$compact_word" \
-font "${pkgs.gentium}/share/fonts/truetype/GentiumBookPlus-Regular.ttf" \
-fill "$color2" \
-pointsize 60 -gravity west \
-annotate +100+00 "$transliteration" \
-fill "$color1" \
-annotate +100+120 "$definition" \
-fill "$color2" \
-pointsize 40 -gravity southwest \
-annotate +100+60 "attested $total_occurrences times" \
-pointsize 40 -gravity southeast \
-annotate +100+60 "$(date -I)" \
"$photo_path"
curl -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendPhoto" \
-F "chat_id=\"$chat_id\"" \
-F "photo=@$photo_path" \
-F parse_mode=Markdown \
-F caption="$telegram_caption"
mastodon_upload_response=$(curl -X POST "${mastodonEndpoint}/api/v2/media" \
-H "Authorization: Bearer $MASTODON_TOKEN" \
-F "file=@$photo_path" \
-F "description=$word $definition")
mastodon_image_id=$(echo $mastodon_upload_response | jq -r .id)
curl -X POST "${mastodonEndpoint}/api/v1/statuses" \
-H "Authorization: Bearer $MASTODON_TOKEN" \
-d "status=$mastodon_caption" \
-d "visibility=public" \
-d "media_ids[]=$mastodon_image_id"
'';
serviceConfig = {
Type = "oneshot";
DynamicUser = true;
StateDirectory = "tlgwotd";
PrivateTmp = true;
LoadCredential = [
"telegram-token:${config.age.secrets.telegram-token-kmein.path}"
"mastodon-token:${config.age.secrets.mastodon-token-tlgwotd.path}"
];
};
};
age.secrets = {
mastodon-token-tlgwotd.file = ../../secrets/mastodon-token-tlgwotd.age;
};
niveum.passport.services = [
{
title = "Thesaurus Linguae Graecae Word of the Day";
description = "sends <a href=\"https://stephanus.tlg.uci.edu/\">TLG</a>'s word of the day to Telegram.";
link = "https://t.me/tlgwotd";
}
];
}

View File

@@ -41,18 +41,32 @@
'
'';
in {
niveum.telegramBots.transits = {
niveum.bots.transits = {
enable = true;
time = "*:0/1";
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["-1001796440545"];
mastodon = {
enable = true;
tokenFile = config.age.secrets.mastodon-token-transits.path;
};
telegram = {
enable = true;
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["-1001796440545"];
};
command = toString (pkgs.writers.writeDash "common-transits" ''
set -efu
now=$(${pkgs.coreutils}/bin/date +%_H:%M | ${pkgs.gnused}/bin/sed 's/^\s*//')
date=$(${pkgs.coreutils}/bin/date +'%m %d %Y')
{
${pkgs.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node" -A 2
${pkgs.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" || :
(
cd ${pkgs.astrolog}/bin
# ./astrolog -Yt -Yd -q 10 22 1999 6:32 -zN Kassel -td $date -R Uranus Neptune Pluto "North Node"
./astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node" -A 2
) | ${toSymbols} | ${pkgs.coreutils}/bin/sort -n | ${pkgs.gnugrep}/bin/grep "^$now" || :
'');
};
age.secrets = {
mastodon-token-transits.file = ../../secrets/mastodon-token-transits.age;
};
}

View File

@@ -1,28 +1,19 @@
{
pkgs,
config,
pkgs,
niveumPackages,
...
}: {
programs.chromium = {
enable = true;
extensions = [
# "ihlenndgcmojhcghmfjfneahoeklbjjh" # cVim
# "fpnmgdkabkmnadcjpehmlllkndpkmiak" # Wayback Machine
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin
"pjjgklgkfeoeiebjogplpnibpfnffkng" # undistracted
"nhdogjmejiglipccpnnnanhbledajbpd" # vuejs devtools
"eimadpbcbfnmbkopoojfekhnkhdbieeh" # dark reader
];
};
environment.systemPackages = [
niveumPackages.cro
pkgs.tor-browser
pkgs.firefox
pkgs.brave
];
home-manager.users.me = {
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
cfg = {
enableTridactylNative = true;
};
};
profiles = let
defaultSettings = {
"beacon.enabled" = false;
@@ -91,7 +82,9 @@
};
};
environment.systemPackages = [pkgs.brave];
home-manager.users.me = {
stylix.targets.firefox.profileNames = ["default"];
};
environment.variables.BROWSER = "brave";
environment.variables.BROWSER = "firefox";
}

View File

@@ -6,41 +6,50 @@
}: let
inherit (import ../lib) tmpfilesConfig;
in {
systemd.tmpfiles.rules = map tmpfilesConfig [
systemd.user.services.systemd-tmpfiles-clean = {
enable = true;
wantedBy = [ "default.target" ];
startAt = "daily";
script = "systemd-tmpfiles --user --clean";
serviceConfig = {
Type = "oneshot";
};
};
systemd.user.tmpfiles.users.me.rules = map tmpfilesConfig [
{
type = "L+";
user = config.users.users.me.name;
group = "users";
type = "d";
mode = "0755";
argument = "${config.users.users.me.home}/cloud/Seafile/Uni";
path = "${config.users.users.me.home}/uni";
age = "7d";
path = "${config.users.users.me.home}/sync/Downloads";
}
{
type = "d";
mode = "0755";
age = "7d";
path = "${config.users.users.me.home}/cloud/nextcloud/tmp";
}
] ++ map (path: tmpfilesConfig {
type = "L+";
user = config.users.users.me.name;
group = "users";
group = config.users.users.me.group;
mode = "0755";
argument = "${config.users.users.me.home}/cloud/syncthing/common/mahlzeit";
path = "${config.users.users.me.home}/mahlzeit";
}
];
argument = "${config.users.users.me.home}/sync/${path}";
path = "${config.users.users.me.home}/${path}";
}) [".ssh" ".gnupg" ".pki" ".local/share/aerc"];
services.gnome.gnome-keyring.enable = true;
security.pam.services.lightdm.enableGnomeKeyring = true;
home-manager.users.me = {
services.gnome-keyring.enable = false;
services.nextcloud-client = {
enable = false;
enable = true;
startInBackground = true;
};
systemd.user.services.nextcloud-client = {
Unit = {
Wants = ["gnome-keyring.service"];
After = ["gnome-keyring.service"];
};
};
};
systemd.user.services.nextcloud-syncer = {
enable = true;
enable = false;
wants = ["network-online.target"];
wantedBy = ["default.target"];
startAt = "*:00/10";
@@ -48,7 +57,7 @@ in {
kieran = {
user = "kieran";
passwordFile = config.age.secrets.nextcloud-password-kieran.path;
endpoint = "https://cloud.xn--kiern-0qa.de";
endpoint = "https://cloud.kmein.de";
target = "${config.users.users.me.home}/notes";
};
in ''
@@ -66,7 +75,7 @@ in {
set -efu
book="$({
${pkgs.findutils}/bin/find ${config.users.users.me.home}/cloud/syncthing/library -type f
${pkgs.findutils}/bin/find ${config.users.users.me.home}/cloud/Seafile/Books -type f
${pkgs.findutils}/bin/find ${config.users.users.me.home}/cloud/nextcloud/Books -type f
} | ${pkgs.fzf}/bin/fzf)"
exec ${pkgs.zathura}/bin/zathura "$book"
'')
@@ -103,17 +112,7 @@ in {
mode = "400";
};
fileSystems."/media/moodle" = {
device = "zaatar.r:/moodle";
fsType = "nfs";
options = [
"x-systemd.idle-timeout=600"
"noauto"
"x-systemd.automount"
];
};
services.syncthing = rec {
services.syncthing = {
enable = true;
user = "kfm";
openDefaultPorts = true;
@@ -121,16 +120,22 @@ in {
dataDir = "/home/kfm/.config/syncthing";
cert = config.age.secrets.syncthing-cert.path;
key = config.age.secrets.syncthing-key.path;
inherit ((import ../lib).syncthing) devices;
folders = let
cloud-dir = "${config.users.users.me.home}/cloud";
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/music" = {
devices = ["kabsa" "manakish" "heym" "zaatar"];
id = "music";
settings = {
inherit ((import ../lib).syncthing) devices;
folders = {
"${config.users.users.me.home}/sync" = {
devices = ["kabsa" "manakish" "fatteh"];
label = "sync";
versioning.type = "trashcan";
versioning.params.cleanoutDays = 100;
};
"${config.users.users.me.home}/mobile" = {
devices = ["kabsa" "manakish" "fatteh" "kibbeh"];
id = "mobile";
label = "mobile";
versioning.type = "trashcan";
versioning.params.cleanoutDays = 100;
};
};
};
};

View File

@@ -5,17 +5,18 @@
niveumPackages,
inputs,
...
}: let
}:
let
inherit (lib.strings) makeBinPath;
inherit (import ../lib) localAddresses kieran;
defaultApplications = (import ../lib).defaultApplications {inherit pkgs;};
in {
inherit (import ../lib) localAddresses kieran remoteDir;
defaultApplications = (import ../lib).defaultApplications { inherit pkgs; };
in
{
imports = [
inputs.self.nixosModules.system-dependent
inputs.self.nixosModules.traadfri
inputs.self.nixosModules.power-action
{
boot.supportedFilesystems = ["ntfs"];
boot.supportedFilesystems = [ "ntfs" ];
}
{
nixpkgs = {
@@ -25,13 +26,12 @@ in {
dmenu = pkgs.writers.writeDashBin "dmenu" ''exec ${pkgs.rofi}/bin/rofi -dmenu "$@"'';
};
permittedInsecurePackages = [
"qtwebkit-5.212.0-alpha4"
];
};
};
}
{
boot.cleanTmpDir = true;
boot.tmp.cleanOnBoot = true;
boot.loader.timeout = 1;
}
{
@@ -56,7 +56,6 @@ in {
enable = true;
options = {
selection-clipboard = "clipboard";
recolor-keephue = true;
# first-page-column = "1:1"; # makes side-by-side mode start on the left side
};
};
@@ -70,116 +69,91 @@ in {
users.users.me = {
name = "kfm";
description = kieran.name;
hashedPassword = "$6$w9hXyGFl/.IZBXk$5OiWzS1G.5hImhh1YQmZiCXYNAJhi3X6Y3uSLupJNYYXPLMsQpx2fwF4Xr2uYzGMV8Foqh8TgUavx1APD9rcb/";
hashedPasswordFile = config.age.secrets.kfm-password.path;
isNormalUser = true;
uid = 1000;
extraGroups = [
"pipewire"
"audio"
];
};
nix.settings.trusted-users = [ config.users.users.me.name ];
age.secrets = {
kfm-password.file = ../secrets/kfm-password.age;
};
home-manager.users.me.xdg.enable = true;
}
{
environment.interactiveShellInit = "export PATH=$PATH:$HOME/projects/niveum";
environment.shellAliases = let
wcd = pkgs.writers.writeDash "wcd" ''
cd "$(readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname)/.."
'';
where = pkgs.writers.writeDash "where" ''
readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname
'';
take = pkgs.writers.writeDash "take" ''
mkdir "$1" && cd "$1"
'';
cdt = pkgs.writers.writeDash "cdt" ''
cd "$(mktemp -d)"
pwd
'';
swallow = command: "${niveumPackages.swallow}/bin/swallow ${command}";
in {
"ß" = "${pkgs.util-linux}/bin/setsid";
cat = "${pkgs.bat}/bin/bat --style=plain";
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
cp = "cp --interactive";
ip = "${pkgs.iproute2}/bin/ip -c";
l = "ls --color=auto --time-style=long-iso --almost-all";
ls = "ls --color=auto --time-style=long-iso";
ll = "ls --color=auto --time-style=long-iso -l";
la = "ls --color=auto --time-style=long-iso --almost-all -l";
mv = "mv --interactive";
nixi = "nix repl '<nixpkgs>'";
ns = "nix-shell --run zsh";
o = "${pkgs.xdg-utils}/bin/xdg-open";
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -out";
rm = "rm --interactive";
s = "${pkgs.systemd}/bin/systemctl";
take = "source ${take}";
cdt = "source ${cdt}";
vit = "$EDITOR $(mktemp)";
tmux = "${pkgs.tmux}/bin/tmux -2";
sxiv = swallow "${pkgs.nsxiv}/bin/nsxiv";
zathura = swallow "${pkgs.zathura}/bin/zathura";
us = "${pkgs.systemd}/bin/systemctl --user";
wcd = "source ${wcd}";
im = "${pkgs.openssh}/bin/ssh weechat@makanek -t tmux attach-session -t IM";
where = "source ${where}";
yt = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -ic"; # Download video link
yta = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -xic"; # Download with audio
};
environment.interactiveShellInit = "export PATH=$PATH";
environment.shellAliases =
let
swallow = command: "${niveumPackages.swallow}/bin/swallow ${command}";
in
{
o = "${pkgs.xdg-utils}/bin/xdg-open";
ns = "nix-shell --run zsh";
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -out";
tmux = "${pkgs.tmux}/bin/tmux -2";
sxiv = swallow "${pkgs.nsxiv}/bin/nsxiv";
zathura = swallow "${pkgs.zathura}/bin/zathura";
im = "${pkgs.openssh}/bin/ssh weechat@makanek -t tmux attach-session -t IM";
yt = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -ic"; # Download video link
yta = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata --audio-format mp3 --audio-quality 0 -xic"; # Download with audio
};
}
{
i18n = {
defaultLocale = "en_DK.UTF-8";
supportedLocales = ["all"];
supportedLocales = [ "all" ];
};
}
{
services.displayManager = {
autoLogin = {
enable = true;
user = config.users.users.me.name;
};
};
services.xserver = {
enable = true;
displayManager = {
autoLogin = {
enable = true;
user = config.users.users.me.name;
};
lightdm = {
enable = true;
greeters.gtk = {
enable = true;
indicators = ["~spacer" "~host" "~spacer" "~session" "~power"];
};
};
};
};
}
{
security.wrappers = {
pmount = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.pmount}/bin/pmount";
};
pumount = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.pmount}/bin/pumount";
};
};
}
{programs.command-not-found.enable = true;}
{
home-manager.users.me = {
services.gpg-agent = rec {
displayManager.lightdm = {
enable = true;
enableZshIntegration = true;
defaultCacheTtl = 2 * 60 * 60;
maxCacheTtl = 4 * defaultCacheTtl;
greeters.gtk = {
enable = true;
indicators = [
"~spacer"
"~host"
"~spacer"
"~session"
"~power"
];
};
};
};
}
{
programs.gnupg = {
agent = {
enable = true;
pinentryPackage = pkgs.pinentry-qt;
settings = rec {
default-cache-ttl = 2 * 60 * 60;
max-cache-ttl = 4 * default-cache-ttl;
};
};
};
environment.systemPackages = [
pkgs.gnupg
(pkgs.pass.withExtensions (e: [e.pass-otp e.pass-import e.pass-genphrase]))
(pkgs.pass.withExtensions (e: [
e.pass-otp
e.pass-import
e.pass-genphrase
]))
];
}
{
@@ -192,21 +166,20 @@ in {
};
}
{
networking.hosts =
lib.mapAttrs' (name: address: {
name = address;
value = ["${name}.local"];
})
localAddresses;
networking.hosts = lib.mapAttrs' (name: address: {
name = address;
value = [ "${name}.local" ];
}) localAddresses;
}
{
home-manager.users.me.home.stateVersion = "22.05";
home-manager.backupFileExtension = "bak";
}
{
systemd.user.services.udiskie = {
after = ["udisks2.service"];
wants = ["udisks2.service"];
wantedBy = ["graphical-session.target"];
after = [ "udisks2.service" ];
wants = [ "udisks2.service" ];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${pkgs.udiskie}/bin/udiskie --verbose --no-config --notify";
};
@@ -221,29 +194,35 @@ in {
};
};
}
./android.nix
./admin-essentials.nix
./stylix.nix
./alacritty.nix
./backup.nix
./bash.nix
./beets.nix
./bluetooth.nix
./aerc.nix
./ccc.nix
./khal.nix
./chromium.nix
./browser.nix
./clipboard.nix
./cloud.nix
./direnv.nix
./docker.nix
./dunst.nix
./flix.nix
./fonts.nix
./fzf.nix
./git.nix
./hledger.nix
./htop.nix
./hu-berlin.nix
./uni.nix
./i3.nix
./i3status-rust.nix
./keyboard.nix
./mycelium.nix
./kdeconnect.nix
{ home-manager.users.me.home.file.".XCompose".source = ../lib/keyboards/XCompose; }
{ services.upower.enable = true; }
./lb.nix
./mpv.nix
./mime.nix
@@ -252,30 +231,64 @@ in {
./newsboat.nix
./flameshot.nix
./packages.nix
./virtualization.nix
./picom.nix
./stardict.nix
./polkit.nix
./power-action.nix
./printing.nix
# ./openweathermap.nix
./wallpaper.nix
./redshift.nix
./retiolum.nix
./rofi.nix
./spacetime.nix
./seafile.nix
./ssh.nix
./sshd.nix
./sound.nix
./sudo.nix
./themes.nix
./tmux.nix
./traadfri.nix
./unclutter.nix
./vscode.nix
./watson.nix
./wallpaper.nix
./zsh.nix
{
home-manager.users.me.home.file.".zshrc".text = ''
# nothing to see here
'';
}
./tor.nix
./mastodon-bot.nix
{
fileSystems."${remoteDir}/fritz" = {
device = "//192.168.178.1/FRITZ.NAS/Backup";
fsType = "cifs";
options = [
"username=ftpuser"
"password=ftppassword"
"noauto"
"nounix"
"rw"
# "noserverino" # ref https://askubuntu.com/a/1265165
"uid=${toString config.users.users.me.uid}"
"gid=${toString config.users.groups.users.gid}"
"x-systemd.automount"
"x-systemd.device-timeout=1"
"x-systemd.idle-timeout=1min"
];
};
}
{
home-manager.users.me = {
xdg.userDirs = rec {
enable = true;
documents = "${config.users.users.me.home}/cloud/nextcloud/Documents";
desktop = "/tmp";
download = "${config.users.users.me.home}/sync/Downloads";
music = "${config.users.users.me.home}/mobile/audio";
pictures = "${config.users.users.me.home}/cloud/nextcloud/Bilder";
publicShare = "${config.users.users.me.home}/cloud/nextcloud/tmp";
videos = pictures;
};
};
}
];
}

View File

@@ -3,24 +3,32 @@
pkgs,
...
}: let
inherit (import ../lib) defaultApplications colours theme;
inherit (import ../lib) defaultApplications theme;
sgr = code: string: ''\u001b[${code}m${string}\u001b[0m'';
in {
environment.systemPackages = [
(pkgs.writers.writeDashBin "notifications" ''
${pkgs.dunst}/bin/dunstctl history \
| ${pkgs.jq}/bin/jq -r '
.data[]
| map("${sgr "90" ''\(.appname.data)''} ${sgr "1" ''\(.summary.data)''} ${sgr "31" ''\(.body.data | gsub("\n"; " | "))''}")
| join("\n")'
'')
];
home-manager.users.me.services.dunst = {
enable = true;
iconTheme = (theme pkgs).icon;
settings = {
global = {
transparency = 10;
font = "Monospace 8";
geometry = "200x5-30+20";
frame_color = colours.foreground;
follow = "mouse";
indicate_hidden = true;
notification_height = 0;
separator_height = 2;
padding = 8;
horizontal_padding = 8;
separator_color = "auto";
sort = true;
markup = "full";
format = "%a\\n<b>%s</b>\\n%b";
@@ -43,22 +51,13 @@ in {
mouse_right_click = "close_current";
mouse_middle_click = "close_all";
};
urgency_low = rec {
frame_color = background;
background = colours.foreground;
foreground = colours.background;
urgency_low = {
timeout = 5;
};
urgency_normal = rec {
frame_color = background;
background = colours.foreground;
foreground = colours.background;
urgency_normal = {
timeout = 10;
};
urgency_critical = rec {
frame_color = background;
background = colours.red.dark;
foreground = colours.background;
urgency_critical = {
timeout = 0;
};
};

View File

@@ -10,13 +10,12 @@
autoCloseIdleDaemon = true;
drawColor = "#ff0000";
drawThickness = 2;
checkForUpdates = false;
showDesktopNotification = true;
disabledTrayIcon = true;
showHelp = false;
squareMagnifier = true;
uploadWithoutConfirmation = true;
buttons = ''@Variant(\0\0\0\x7f\0\0\0\vQList<int>\0\0\0\0\x10\0\0\0\x2\0\0\0\x5\0\0\0\x13\0\0\0\xa\0\0\0\x1\0\0\0\xc\0\0\0\xd\0\0\0\x6\0\0\0\x8\0\0\0\0\0\0\0\xf\0\0\0\x4\0\0\0\xb\0\0\0\x3\0\0\0\x12\0\0\0\x9)'';
# buttons = ''@Variant(\0\0\0\x7f\0\0\0\vQList<int>\0\0\0\0\x10\0\0\0\x2\0\0\0\x5\0\0\0\x13\0\0\0\xa\0\0\0\x1\0\0\0\xc\0\0\0\xd\0\0\0\x6\0\0\0\x8\0\0\0\0\0\0\0\xf\0\0\0\x4\0\0\0\xb\0\0\0\x3\0\0\0\x12\0\0\0\x9)'';
};
};
};

View File

@@ -1,98 +0,0 @@
{
config,
pkgs,
...
}: let
flixLocation = "/media/flix";
flixLocationNew = "/media/flix-new";
cacheLocation = "/var/cache/flix";
indexFilename = "index";
indexFilenameNew = "index-new";
flixUser = "flix";
flixGroup = "users";
inherit (import ../lib) tmpfilesConfig;
in {
fileSystems.${flixLocation} = {
device = "prism.r:/export/download";
fsType = "nfs";
options = [
"noauto"
"noatime"
"nodiratime"
"x-systemd.automount"
"x-systemd.device-timeout=1"
"x-systemd.idle-timeout=1min"
"x-systemd.requires=tinc.retiolum.service"
"user"
"_netdev"
];
};
fileSystems.${flixLocationNew} = {
device = "//yellow.r/public";
fsType = "cifs";
options = [
"guest"
"nofail"
"noauto"
"ro"
"x-systemd.automount"
"x-systemd.device-timeout=1"
"x-systemd.idle-timeout=1min"
];
};
systemd.tmpfiles.rules = [
(tmpfilesConfig {
type = "d";
path = cacheLocation;
mode = "0750";
user = flixUser;
group = flixGroup;
})
];
systemd.services.flix-index = {
description = "Flix indexing service";
wants = ["network-online.target"];
script = ''
cp ${flixLocation}/index ./${indexFilename}
cp ${flixLocationNew}/index ./${indexFilenameNew}
'';
startAt = "hourly";
serviceConfig = {
Type = "oneshot";
User = flixUser;
Group = flixGroup;
WorkingDirectory = cacheLocation;
};
};
users.extraUsers.${flixUser} = {
isSystemUser = true;
createHome = true;
home = cacheLocation;
group = flixGroup;
};
environment.systemPackages = [
(pkgs.writers.writeDashBin "mpv-simpsons" ''
set -efu
cd "${flixLocation}/download"
[ -f "${cacheLocation}/${indexFilename}" ] || exit 1
cat "${cacheLocation}/${indexFilename}" \
| ${pkgs.gnugrep}/bin/grep -i 'simpsons.*mkv' \
| shuf \
| ${pkgs.findutils}/bin/xargs -d '\n' ${pkgs.mpv}/bin/mpv
'')
(pkgs.writers.writeDashBin "flixmenu" ''
set -efu
(
${pkgs.gnused}/bin/sed 's#^\.#${flixLocation}#' ${cacheLocation}/${indexFilename}
${pkgs.gnused}/bin/sed 's#^\.#${flixLocationNew}#' ${cacheLocation}/${indexFilenameNew}
) | ${pkgs.dmenu}/bin/dmenu -i -p flix -l 5 "$@" \
| ${pkgs.findutils}/bin/xargs -I '{}' ${pkgs.util-linux}/bin/setsid ${pkgs.xdg-utils}/bin/xdg-open '{}'
'')
];
}

View File

@@ -22,7 +22,7 @@
egyptianHiero = zip-font "EgyptianHiero" {
url = "https://github.com/MKilani/Djehuty/archive/master.zip";
sha256 = "sha256-KbY4vedm757NWfDlgmNhslbZd+2Vs+o5PjtMMGDt61Y=";
sha256 = "sha256-S3vZxdeBj57KJsF+zaZw7sQw8T+z1aVC2CnpnZ0/x2c=";
};
antinoou = zip-font "Antinoou" {
url = "https://www.evertype.com/fonts/coptic/AntinoouFont.zip";
@@ -31,13 +31,9 @@
};
newGardiner = zip-font "NewGardiner" {
url = "https://mjn.host.cs.st-andrews.ac.uk/egyptian/fonts/NewGardiner.zip";
sha256 = "1jd0qa6shh9pqqyig2w43m9l9rv1i50l73jzkhb6g6mqxbhb1mip";
hash = "sha256-nP0y4ILt+0mlkDRdCNSeO2Gequ8wyix/qQdmujTNw3Y=";
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";
@@ -46,15 +42,27 @@
url = "http://files.qenherkhopeshef.org/jsesh/JSeshFont.ttf";
sha256 = "1203jrk2xzvgckcc5hx88kja1i3h8gm1wiyla5j6gspc0hbv56ry";
};
egyptianText = simple-ttf "EgyptianText-1.0beta" {
egyptianTextBeta = simple-ttf "EgyptianText-1.0beta" {
url = "http://c.krebsco.de/EgyptianText-v1.0-beta.ttf";
sha256 = "0cfjbk7xxnxhlp6v922psm5j1xzrv6wfk226ji2wz2yfrnkbcbsv";
};
coranica = simple-ttf "Coranica" {
url = "https://corpuscoranicum.de/fonts/coranica_1164.ttf";
sha256 = "0igi8q8b2p38x9jq8c98afsl7bf8rj32zj2052yyjgj9r88y4yi5";
};
koineGreek = simple-ttf "KoineGreek.ttf" {
url = "https://github.com/Center-for-New-Testament-Restoration/font/raw/af83eed50105344edaa5e5eddaf87696e271468c/KoineGreek.ttf";
hash = "sha256-YtC+nj7+Jl8k00rqAAqySYc8iTAOL7PixXc+LfSmnS0=";
};
egyptianText = simple-ttf "EgyptianText" {
url = "https://github.com/microsoft/font-tools/raw/1092cb23520967830001a0807eb21d6a44dda522/EgyptianOpenType/font/eot.ttf";
sha256 = "1n294vhcx90270pnsw1dbk6izd61fjvbnjrh4hcf98ff3s540x0c";
};
in {
fonts = {
enableDefaultFonts = true;
enableDefaultPackages = true;
fontDir.enable = true;
fonts = with pkgs; [
packages = with pkgs; [
alegreya
alegreya-sans
amiri
@@ -65,22 +73,27 @@ in {
charis-sil
doulos-sil
newAthenaUnicode
coranica
corefonts
crimson
eb-garamond
ipaexfont
jsesh
egyptianHiero
egyptianText
egyptianTextBeta
font-awesome_6
etBook
newGardiner
junicode2
junicode
koineGreek
# brill
ezra-sil
fira
font-awesome
galatia-sil
gentium
niveumPackages.gfs-fonts
# niveumPackages.gfs-fonts
gyre-fonts
ibm-plex
jetbrains-mono
@@ -89,11 +102,12 @@ in {
lmodern
merriweather
ocr-a
montserrat
roboto
roboto-mono
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-cjk-sans
noto-fonts-color-emoji
roboto-slab
scheherazade-new
source-code-pro
@@ -101,14 +115,14 @@ in {
source-serif-pro
theano
niveumPackages.tocharian-font
vistafonts
vista-fonts
vollkorn
zilla-slab
]; # google-fonts league-of-moveable-type
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"];
sansSerif = ["Noto Sans Display" "Noto Naskh Arabic" "Noto Sans Hebrew" "Noto Sans Devanagari" "Noto Sans CJK JP" "Noto Sans Coptic" "Noto Sans Syriac Western"];
emoji = ["Noto Color Emoji"];
};
# xelatex fails with woff files

55
configs/fysi.nix Normal file
View File

@@ -0,0 +1,55 @@
{
config,
lib,
pkgs,
...
}: let
inherit (import ../lib/email.nix) defaults;
sshIdentity = name: "${config.users.users.me.home}/.ssh/${name}";
in {
age.secrets = {
email-password-fysi = {
file = ../secrets/email-password-fysi.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
};
home-manager.users.me = {
accounts.email.accounts = {
fysi =
lib.recursiveUpdate defaults
rec {
address = "kieran@fysi.tech";
userName = address;
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-fysi.path}";
flavor = "fastmail.com";
};
};
programs.ssh.matchBlocks = rec {
"nextcloud.fysi.dev" = {
hostname = "116.203.82.203";
user = "root";
};
"lingua.miaengiadina.ch" = {
hostname = "135.181.85.233";
user = "root";
};
"cms-dev.woc2023.app".identityFile = sshIdentity "fysiweb";
"cms-master.woc2023.app".identityFile = sshIdentity "fysiweb";
"fysi-dev1" = {
hostname = "94.130.229.139";
user = "root";
identityFile = sshIdentity "fysiweb";
};
${fysi-dev1.hostname} = fysi-dev1;
"fysi-shared0" = {
hostname = "49.12.205.235";
user = "root";
identityFile = sshIdentity "fysiweb";
};
};
};
}

View File

@@ -1,37 +1,22 @@
{
pkgs,
lib,
...
}: {
environment = {
systemPackages = [pkgs.fzf];
variables = rec {
FZF_DEFAULT_COMMAND = "${pkgs.fd}/bin/fd --type f --strip-cwd-prefix --follow --no-ignore-vcs --exclude .git";
FZF_DEFAULT_OPTS =
lib.escapeShellArgs ["--height=40%"];
FZF_ALT_C_COMMAND = "${pkgs.fd}/bin/fd --type d";
FZF_ALT_C_OPTS = lib.escapeShellArgs [
"--preview='${pkgs.tree}/bin/tree -L 1 \"{}\"'"
{pkgs, ...}: {
programs.fzf = {
fuzzyCompletion = true;
keybindings = true;
};
home-manager.users.me = {
programs.fzf = rec {
enable = true;
defaultCommand = "${pkgs.fd}/bin/fd --type f --strip-cwd-prefix --follow --no-ignore-vcs --exclude .git";
defaultOptions = ["--height=40%"];
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
changeDirWidgetOptions = [
"--preview='${pkgs.tree}/bin/tree -L 1 {}'"
"--bind=space:toggle-preview"
"--preview-window=hidden"
];
FZF_CTRL_T_COMMAND = FZF_DEFAULT_COMMAND;
FZF_CTRL_T_OPTS =
lib.escapeShellArgs ["--preview='head -$LINES {}'"];
fileWidgetCommand = defaultCommand;
fileWidgetOptions = ["--preview='head -$LINES {}'"];
};
};
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
'';
}

13
configs/gaming.nix Normal file
View File

@@ -0,0 +1,13 @@
{ pkgs, ... }:
{
environment.systemPackages = [
pkgs.zeroad
pkgs.mari0
pkgs.luanti # fka minetest
];
networking.firewall = {
# for 0ad multiplayer
allowedTCPPorts = [ 20595 ];
allowedUDPPorts = [ 20595 ];
};
}

View File

@@ -1,7 +1,5 @@
{
pkgs,
config,
lib,
inputs,
...
}: let
@@ -9,17 +7,16 @@
in {
environment.systemPackages = [
pkgs.mr
pkgs.git
pkgs.gitFull
pkgs.git-crypt
pkgs.gitAndTools.gitflow
pkgs.gitAndTools.gh
pkgs.gitAndTools.git-extras
pkgs.gitAndTools.git-trim
pkgs.gitAndTools.git-absorb
pkgs.gitflow
pkgs.gh
pkgs.git-extras
# pkgs.git-trim
pkgs.git-absorb
pkgs.gitstats
pkgs.patch
pkgs.patchutils
inputs.self.packages.x86_64-linux.git-preview
];
environment.shellAliases = {
@@ -30,10 +27,8 @@ in {
home-manager.users.me = {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
userName = kieran.name;
userEmail = kieran.email;
aliases = {
package = pkgs.gitFull;
settings.alias = {
br = "branch";
co = "checkout";
ci = "commit";
@@ -47,18 +42,12 @@ in {
graph = "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all";
};
ignores = ignorePaths;
extraConfig = {
pull.ff = "only";
rebase.autoStash = true;
merge.autoStash = true;
# # ref https://github.com/dandavison/delta
# core.pager = "${pkgs.delta}/bin/delta";
# interactive.diffFilter = "${pkgs.delta}/bin/delta --color-only";
# delta.navigate = true;
# merge.conflictStyle = "diff3";
# diff.colorMoved = "default";
};
settings.user.name = kieran.name;
settings.user.email = kieran.email;
settings.pull.ff = "only";
settings.rebase.autoStash = true;
settings.merge.autoStash = true;
settings.push.autoSetupRemove = true;
};
};
}

5
configs/gnome.nix Normal file
View File

@@ -0,0 +1,5 @@
{
services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
}

View File

@@ -1,28 +1,15 @@
{
config,
pkgs,
...
}: {
}: let
ledgerDirectory = "/home/kfm/sync/src/ledger";
hora = pkgs.callPackage ../packages/hora.nix { timeLedger = "${ledgerDirectory}/time.timeclock"; };
in {
environment.systemPackages = let
ledgerDirectory = "$HOME/projects/ledger";
timeLedger = "${ledgerDirectory}/time.timeclock";
git = "${pkgs.git}/bin/git -C ${ledgerDirectory}";
in [
hora
pkgs.hledger
(pkgs.writers.writeDashBin "hora-edit" ''
$EDITOR + "${timeLedger}" && ${pkgs.git}/bin/git -C "$(${pkgs.coreutils}/bin/dirname ${timeLedger})" commit --all --message "$(${pkgs.coreutils}/bin/date -Im)"
'')
(pkgs.writers.writeDashBin "hora" ''
${pkgs.hledger}/bin/hledger -f "${timeLedger}" "$@"
'')
(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)" \
| sed 's/(fillidefilla:\(.*\))/\1/g' \
| xsv select date,amount,total,account,description
'')
(pkgs.writers.writeDashBin "hledger-git" ''
if [ "$1" = entry ]; then
${pkgs.hledger}/bin/hledger balance -V > "${ledgerDirectory}/balance.txt"

View File

@@ -20,7 +20,7 @@
show_thread_names = false;
sort_descending = true;
sort_key = "PERCENT_CPU";
tree_view = true;
tree_view = false;
update_process_names = false;
right_meters = ["Uptime" "Tasks" "LoadAverage" "Battery"];
left_meters = ["LeftCPUs2" "RightCPUs2" "Memory" "Swap"];

View File

@@ -1,86 +0,0 @@
{
config,
pkgs,
lib,
...
}: let
inherit (lib.strings) fileContents;
inherit (import ../lib) sshPort;
eduroam = {
identity = fileContents <secrets/eduroam/identity>;
password = fileContents <secrets/eduroam/password>;
};
hu-berlin-cifs-options = [
"uid=${toString config.users.users.me.uid}"
"gid=${toString config.users.groups.users.gid}"
"sec=ntlmv2"
"workgroup=german"
"credentials=${config.age.secrets.cifs-credentials-hu-berlin.path}"
"noauto"
# "x-systemd.requires=hu-vpn.service"
"x-systemd.automount"
"x-systemd.device-timeout=1"
"x-systemd.idle-timeout=1min"
];
in {
fileSystems."/media/hu-berlin/germpro2" = {
device = "//hugerm31c.user.hu-berlin.de/germpro2/ling";
fsType = "cifs";
options = hu-berlin-cifs-options;
};
fileSystems."/media/hu-berlin/germhome" = {
device = "//hugerm31c.user.hu-berlin.de/germhome/ling/meinhaki";
fsType = "cifs";
options = hu-berlin-cifs-options;
};
age.secrets.cifs-credentials-hu-berlin.file = ../secrets/cifs-credentials-hu-berlin.age;
home-manager.users.me.programs.ssh = {
matchBlocks = {
"alew.hu-berlin.de" = {
user = "centos";
hostname = "141.20.187.219";
};
};
};
environment.systemPackages = [
(pkgs.writers.writeDashBin "hu-ip" ''
${pkgs.w3m}/bin/w3m -dump meineip.hu-berlin.de | head --lines=-4 | tail --lines=+3
'')
(
pkgs.writers.writePython3Bin "hu-eduroam-install"
{
libraries = with pkgs.python3Packages; [distro pyopenssl dbus-python];
flakeIgnore = ["E501" "E123" "W504" "E722" "F821" "E226" "E126" "E265" "W291"];
}
(builtins.readFile (builtins.fetchurl {
url = "https://www.cms.hu-berlin.de/de/dl/netze/wlan/config/eduroam/linux-installer/eduroam-linux-hub.py";
sha256 = "19x2kvwxx13265b2hj5fjf53g0liw6dw7xf9j9cav67cswmz60kf";
}))
)
];
systemd.services.hu-vpn = {
enable = true;
wants = ["network-online.target"];
serviceConfig.LoadCredential = "password:${config.age.secrets.email-password-meinhark.path}";
script = ''
if ${pkgs.wirelesstools}/bin/iwgetid | ${pkgs.gnugrep}/bin/grep --invert-match eduroam
then
${pkgs.openfortivpn}/bin/openfortivpn \
--password="$(cat "$CREDENTIALS_DIRECTORY/password")" \
--config=${
pkgs.writeText "hu-berlin.config" ''
host = forti-ssl.vpn.hu-berlin.de
port = 443
username = meinhark
trusted-cert = 9e5dea8e077970d245900839f437ef7fb9551559501c7defd70af70ea568573d
''
}
fi
'';
};
}

View File

@@ -5,31 +5,37 @@
niveumPackages,
...
}: let
inherit (import ../lib) defaultApplications colours;
dashboard = pkgs.writers.writeDashBin "dashboard" ''
${pkgs.alacritty}/bin/alacritty --option font.size=4 --class dashboard --command ${pkgs.writers.writeDash "dashboard-inner" ''
exec ${pkgs.procps}/bin/watch -c -n 10 ${niveumPackages.q}/bin/q
''}
'';
inherit (import ../lib) defaultApplications;
klem = niveumPackages.klem.override {
config.dmenu = "${pkgs.dmenu}/bin/dmenu -i -p klem";
config.scripts = {
"p.r" = pkgs.writers.writeDash "p.r" ''
"p.r paste" = pkgs.writers.writeDash "p.r" ''
${pkgs.curl}/bin/curl -fSs http://p.r --data-binary @- \
| ${pkgs.coreutils}/bin/tail --lines=1 \
| ${pkgs.gnused}/bin/sed 's/\\<r\\>/krebsco.de/'
'';
# "envs.sh host" = pkgs.writers.writeDash "envs-host" ''
# ${pkgs.curl}/bin/curl -F "file=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
# '';
"envs.sh mirror" = pkgs.writers.writeDash "envs-mirror" ''
${pkgs.curl}/bin/curl -F "url=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
"envs.sh paste" = pkgs.writers.writeDash "envs-host" ''
${pkgs.curl}/bin/curl -F "file=@-" https://envs.sh
'';
# this segfaults
# "envs.sh mirror" = pkgs.writers.writeDash "envs-mirror" ''
# ${pkgs.curl}/bin/curl -F "url=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
# '';
"envs.sh shorten" = pkgs.writers.writeDash "envs-shorten" ''
${pkgs.curl}/bin/curl -F "shorten=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
'';
"ix.io" = pkgs.writers.writeDash "ix.io" ''
${pkgs.curl}/bin/curl -fSs -F 'f:1=<-' ix.io
'';
"go.r" = pkgs.writers.writeDash "go.r" ''
"go.r shorten" = pkgs.writers.writeDash "go.r" ''
${pkgs.curl}/bin/curl -fSs http://go.r -F "uri=$(${pkgs.coreutils}/bin/cat)"
'';
"0x0.st" = pkgs.writers.writeDash "0x0.st" ''
"4d2.org paste" = pkgs.writers.writeDash "4d2-paste" ''
${pkgs.curl}/bin/curl -F "file=@-" https://depot.4d2.org/
'';
"0x0.st shorten" = pkgs.writers.writeDash "0x0.st" ''
${pkgs.curl}/bin/curl -fSs https://0x0.st -F "shorten=$(${pkgs.coreutils}/bin/cat)"
'';
"rot13" = pkgs.writers.writeDash "rot13" ''
@@ -50,15 +56,14 @@
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-3.5" = pkgs.writers.writeDash "gpt" ''
${niveumPackages.gpt35}/bin/gpt
'';
gpt-4 = pkgs.writers.writeDash "gpt" ''
${niveumPackages.gpt4}/bin/gpt
'';
};
};
new-workspace = pkgs.writers.writeDash "new-workspace" ''
i3-msg workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1))
'';
move-to-new-workspace = pkgs.writers.writeDash "new-workspace" ''
i3-msg move container to workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1))
'';
in {
age.secrets = {
github-token-i3status-rust = {
@@ -73,14 +78,23 @@ in {
group = config.users.users.me.group;
mode = "400";
};
miniflux-api-token = {
file = ../secrets/miniflux-api-token.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
};
programs.slock.enable = true;
environment.systemPackages = [dashboard];
services.displayManager.defaultSession = "none+i3";
services.xserver = {
displayManager.defaultSession = "none+i3";
windowManager.i3 = {
enable = true;
package = pkgs.i3;
};
};
@@ -99,129 +113,85 @@ in {
'';
};
home-manager.users.me.xsession.windowManager.i3 = let
home-manager.users.me = let
modifier = "Mod4";
in {
enable = true;
extraConfig = ''
bindsym --release ${modifier}+Shift+w exec /run/wrappers/bin/slock
'';
config = rec {
fonts = {
names = ["Sans"];
size = 10.0;
};
inherit modifier;
window = {
titlebar = false;
border = 1;
hideEdgeBorders = "smart";
commands = [
{
criteria = {class = "floating";};
command = "floating enable";
}
{
criteria = {class = "fzfmenu";};
command = "floating enable";
}
{
criteria = {class = ".*";};
command = "border pixel 2";
}
{
criteria = {class = "mpv";};
command = lib.strings.concatStringsSep ", " [
"floating enable"
"sticky enable"
"fullscreen disable"
"resize set 640 480"
"move position mouse"
];
}
];
};
floating = {
titlebar = false;
border = 1;
};
colors = let
scheme = {
background = colours.background;
text = colours.foreground;
};
in rec {
focused =
scheme
// {
border = colours.blue.bright;
indicator = colours.blue.bright;
childBorder = colours.blue.bright;
};
unfocused =
scheme
// {
border = colours.background;
indicator = colours.background;
childBorder = colours.background;
};
focusedInactive = unfocused;
urgent =
scheme
// {
border = colours.red.bright;
indicator = colours.red.bright;
childBorder = colours.red.bright;
};
placeholder =
scheme
// {
border = colours.green.bright;
indicator = colours.green.bright;
childBorder = colours.green.bright;
};
};
bars = [
{
workspaceButtons = false;
fonts = {
names = ["Monospace" "Font Awesome 6 Free"];
size = 8.0;
};
mode = "dock"; # "hide";
infoWorkspace = "";
messageWorkspace = "";
modes.resize = {
"Escape" = ''mode "default"'';
"Return" = ''mode "default"'';
"h" = "resize shrink width 10 px or 5 ppt";
"j" = "resize grow height 10 px or 5 ppt";
"k" = "resize shrink height 10 px or 5 ppt";
"l" = "resize grow width 10 px or 5 ppt";
};
gaps.inner = 4;
floating = {
titlebar = false;
border = 1;
};
bars = [
(config.home-manager.users.me.stylix.targets.i3.exportedBarConfig
// rec {
workspaceButtons = true;
mode = "hide"; # "dock";
position = "bottom";
colors = rec {
background = colours.background;
separator = background;
statusline = colours.foreground;
bindingMode = {
background = colours.red.bright;
border = colours.background;
text = colours.foreground;
};
};
statusCommand = toString (pkgs.writers.writeDash "i3status-rust" ''
export I3RS_GITHUB_TOKEN="$(cat ${config.age.secrets.github-token-i3status-rust.path})"
export OPENWEATHERMAP_API_KEY="$(cat ${config.age.secrets.openweathermap-api-key.path})"
${pkgs.i3status-rust}/bin/i3status-rs ${
(pkgs.formats.toml {}).generate "i3status-rust.toml" (import ../lib/i3status-rust.nix {
inherit (config.niveum) batteryName wirelessInterface;
inherit (config.home-manager.users.me.accounts.email) accounts;
inherit colours;
inherit pkgs;
})
}'');
exec ${config.home-manager.users.me.programs.i3status-rust.package}/bin/i3status-rs ${config.home-manager.users.me.home.homeDirectory}/.config/i3status-rust/config-${position}.toml
'');
fonts = {
names = ["${config.stylix.fonts.sansSerif.name}" "FontAwesome 6 Free"];
size = config.stylix.fonts.sizes.desktop * 0.8;
};
})
];
window = {
titlebar = false;
border = 2;
hideEdgeBorders = "smart";
commands = [
{
criteria = {class = "floating";};
command = "floating enable";
}
{
criteria = {class = "fzfmenu";};
command = "floating enable";
}
{
criteria = {class = ".*";};
command = "border pixel 2";
}
{
criteria = {class = "mpv";};
command = lib.strings.concatStringsSep ", " [
"floating enable"
"sticky enable"
"fullscreen disable"
"resize set 640 480"
"move position mouse"
];
}
];
modes.resize = {
"Escape" = ''mode "default"'';
"Return" = ''mode "default"'';
"h" = "resize shrink width 10 px or 5 ppt";
"j" = "resize grow height 10 px or 5 ppt";
"k" = "resize shrink height 10 px or 5 ppt";
"l" = "resize grow width 10 px or 5 ppt";
};
colors = let
background = config.lib.stylix.colors.withHashtag.base00;
in {
unfocused = {
border = lib.mkForce background;
childBorder = lib.mkForce background;
};
keybindings = {
};
keybindings =
lib.listToAttrs (map (x: lib.nameValuePair "${modifier}+Shift+${toString x}" "move container to workspace ${toString x}") (lib.range 1 9))
// lib.listToAttrs (map (x: lib.nameValuePair "${modifier}+${toString x}" "workspace ${toString x}") (lib.range 1 9))
// {
"${modifier}+i" = "workspace ${infoWorkspace}";
"${modifier}+m" = "workspace ${messageWorkspace}";
"${modifier}+Shift+h" = "move left 25 px";
"${modifier}+Shift+j" = "move down 25 px";
"${modifier}+Shift+k" = "move up 25 px";
@@ -231,12 +201,10 @@ in {
"${modifier}+k" = "focus up";
"${modifier}+l" = "focus right";
"${modifier}+Shift+b" = "move window to workspace prev";
"${modifier}+Shift+n" = "move window to workspace next";
"${modifier}+Shift+x" = "exec ${move-to-new-workspace}";
"${modifier}+b" = "workspace prev";
"${modifier}+n" = "workspace next";
"${modifier}+x" = "exec ${new-workspace}";
# "${modifier}+Shift+b" = "move container to workspace prev";
# "${modifier}+Shift+n" = "move container to workspace next";
# "${modifier}+b" = "workspace prev";
# "${modifier}+n" = "workspace next";
"${modifier}+Shift+c" = "reload";
"${modifier}+Shift+q" = "kill";
@@ -245,8 +213,9 @@ in {
"${modifier}+z" = "sticky toggle";
"${modifier}+Shift+z" = "floating toggle";
"${modifier}+s" = "scratchpad show";
"${modifier}+Shift+s" = "move scratchpad";
"${modifier}+s" = ''[class="^(?i)(?!obsidian).*"] scratchpad show'';
"${modifier}+o" = ''[class="obsidian"] scratchpad show'';
"${modifier}+c" = "split h";
"${modifier}+e" = "layout toggle split";
@@ -254,43 +223,19 @@ in {
"${modifier}+r" = "mode resize";
"${modifier}+v" = "split v";
"${modifier}+w" = "layout tabbed";
"${modifier}+q" = "exec ${pkgs.writers.writeDash "newsboat-sync" ''
notify-send --app-name="newsboat" "Updating ..."
newsboat -x reload
notify-send --app-name="newsboat" "Finished updating."
''}";
"${modifier}+q" = "exec ${config.services.clipmenu.package}/bin/clipmenu";
# "${modifier}+Shift+y" = "exec ${pkgs.qutebrowser}/bin/qutebrowser";
"${modifier}+Return" = "exec ${(defaultApplications pkgs).terminal}";
"${modifier}+t" = "exec ${(defaultApplications pkgs).fileManager}";
"${modifier}+y" = "exec ${(defaultApplications pkgs).browser}";
"${modifier}+0" = "exec ${niveumPackages.menu-calc}/bin/=";
"${modifier}+d" = "exec ${pkgs.writers.writeDash "run" ''exec rofi -modi run,ssh,window -show run''}";
"${modifier}+Shift+d" = "exec ${
pkgs.writers.writeDash "notemenu" ''
set -efu
PATH=$PATH:${
lib.makeBinPath [pkgs.rofi pkgs.findutils pkgs.coreutils]
}
cd ~/notes
note_file=$({
echo diary/$(date -I).md
echo diary/$(date -I -d yesterday).md
find . ! -name '.*' -type f -printf "%T@ %p\n" | sort --reverse --numeric-sort | cut --delimiter=" " --fields=2-
} | rofi -dmenu -i -p 'notes')
if test "$note_file"
then
alacritty --working-directory ~/notes -e "$EDITOR" "$note_file"
fi
''
}";
"${modifier}+Shift+d" = "exec ${niveumPackages.notemenu}/bin/notemenu";
"${modifier}+p" = "exec rofi-pass";
"${modifier}+Shift+p" = "exec rofi-pass --insert";
"${modifier}+u" = "exec ${niveumPackages.unicodmenu}/bin/unicodmenu";
"${modifier}+Shift+u" = "exec ${pkgs.writers.writeDash "last-unicode" ''${pkgs.xdotool}/bin/xdotool type --delay 1000 "$(${pkgs.gawk}/bin/awk 'END{print $1}' ~/.cache/unicodmenu)"''}";
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
"${modifier}+F7" = "exec ${pkgs.writers.writeDash "showkeys-toggle" ''
if ${pkgs.procps}/bin/pgrep screenkey; then
exec ${pkgs.procps}/bin/pkill screenkey
@@ -298,25 +243,18 @@ in {
exec ${pkgs.screenkey}/bin/screenkey
fi
''}";
"${modifier}+F8" = "exec switch-theme toggle";
"${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85";
"${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x";
"${modifier}+F11" = "exec ${pkgs.xcalib}/bin/xcalib -invert -alter";
"${modifier}+F12" = "exec ${klem}/bin/klem";
"Print" = "exec flameshot gui";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86Calculator" = "exec ${pkgs.st}/bin/st -c floating -e ${pkgs.bc}/bin/bc";
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl pause";
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl stop";
"XF86ScreenSaver" = "exec ${niveumPackages.k-lock}/bin/k-lock";
"XF86Display" = "exec ${niveumPackages.dmenu-randr}/bin/dmenu-randr";
# key names detected with xorg.xev:
# XF86WakeUp (fn twice)
# XF86Battery (fn f3)
@@ -331,6 +269,38 @@ in {
# XF86Back
# XF86Launch1 (thinkvantage)
};
in {
stylix.targets.i3.enable = true;
xsession.windowManager.i3 = {
enable = true;
extraConfig = ''
bindsym --release ${modifier}+Shift+w exec /run/wrappers/bin/slock
exec "${pkgs.obsidian}/bin/obsidian"
for_window [class="obsidian"] , move scratchpad
assign [class="message"] ${messageWorkspace}
exec "${pkgs.writers.writeDash "irc" "exec ${pkgs.alacritty}/bin/alacritty --class message -e ssh weechat@makanek -t tmux attach-session -t IM"}"
exec "${pkgs.writers.writeDash "email" "exec ${pkgs.alacritty}/bin/alacritty --class message -e aerc"}"
assign [class="dashboard"] ${infoWorkspace}
exec ${dashboard}/bin/dashboard
'';
config = {
inherit modifier gaps modes bars floating window colors;
keybindings = keybindings // {
"${modifier}+ß" = "exec ${niveumPackages.menu-calc}/bin/=";
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
"${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85";
"${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x";
"${modifier}+F11" = "exec ${pkgs.xcalib}/bin/xcalib -invert -alter";
"Print" = "exec flameshot gui";
# "${modifier}+Shift+x" = "exec ${move-to-new-workspace}";
# "${modifier}+x" = "exec ${new-workspace}";
"XF86Display" = "exec ${niveumPackages.dmenu-randr}/bin/dmenu-randr";
};
};
};
};
}

82
configs/i3status-rust.nix Normal file
View File

@@ -0,0 +1,82 @@
{
pkgs,
config,
...
}: {
age.secrets = {
miniflux-api-token = {
file = ../secrets/miniflux-api-token.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
};
home-manager.users.me = {
programs.i3status-rust = {
enable = true;
bars.bottom = {
icons = "awesome6";
settings = {
theme.overrides = let
colours = config.lib.stylix.colors.withHashtag;
in {
idle_bg = colours.base00;
idle_fg = colours.base05;
good_bg = colours.base00;
good_fg = colours.base0B;
warning_bg = colours.base00;
warning_fg = colours.base0A;
critical_bg = colours.base00;
critical_fg = colours.base09;
info_bg = colours.base00;
info_fg = colours.base04;
separator_bg = colours.base00;
separator = " ";
};
};
blocks = [
{
block = "music";
format = "{$icon $combo $play |}";
separator = " ";
}
{
block = "net";
format = " $icon HU";
missing_format = "";
device = "ppp0";
}
{
block = "net";
format = " $icon FU";
missing_format = "";
device = "tun0";
}
{
block = "battery";
format = "$icon $percentage $time";
device = "DisplayDevice";
driver = "upower";
}
{
block = "sound";
}
{
block = "disk_space";
format = "$icon $available";
}
{
block = "memory";
format = "$icon $mem_used.eng(prefix:G)";
}
{block = "load";}
{
block = "time";
format = "$icon $timestamp.datetime(f:'%Y-%m-%d (%W %a) %H:%M', l:de_DE)";
}
];
};
};
};
}

View File

@@ -2,68 +2,129 @@
pkgs,
lib,
...
}: let
}:
let
commaSep = builtins.concatStringsSep ",";
xkbOptions = ["compose:caps" "terminate:ctrl_alt_bksp" "grp:ctrls_toggle"];
xkbOptions = [
"compose:caps"
"terminate:ctrl_alt_bksp"
"grp:ctrls_toggle"
];
languages = {
de = "T3";
gr = "polytonic";
ru = "phonetic";
ara = "buckwalter";
cop = "";
ave = "";
"in" = "san-kagapa";
il = "phonetic";
deutsch = {
code = "de";
variant = "T3";
};
greek = {
code = "gr";
variant = "polytonic";
};
russian = {
code = "ru";
variant = "phonetic";
};
arabic = {
code = "ara";
variant = "buckwalter";
}; # ../lib/keyboards/arabic;
coptic = ../lib/keyboards/coptic;
avestan = ../lib/keyboards/avestan;
gothic = ../lib/keyboards/gothic;
farsi = {
code = "ir";
variant = "qwerty";
};
syriac = {
code = "sy";
variant = "syc_phonetic";
};
sanskrit = {
code = "in";
variant = "san-kagapa";
};
gujarati = {
code = "in";
variant = "guj-kagapa";
};
urdu = {
code = "in";
variant = "urd-phonetic";
};
hebrew = {
code = "il";
variant = "phonetic";
};
};
defaultLanguage = "de";
in {
defaultLanguage = languages.deutsch;
in
{
services.libinput.enable = true;
# man 7 xkeyboard-config
services.xserver = {
layout = "de";
exportConfiguration = true; # link /usr/share/X11 properly
xkb.layout = defaultLanguage.code;
# T3: https://upload.wikimedia.org/wikipedia/commons/a/a9/German-Keyboard-Layout-T3-Version1-large.png
# buckwalter: http://www.qamus.org/transliteration.htm
xkbVariant = "T3";
xkbOptions = commaSep xkbOptions;
libinput.enable = true;
xkbDir = pkgs.symlinkJoin {
xkb.variant = defaultLanguage.variant;
xkb.options = commaSep xkbOptions;
xkb.dir = pkgs.symlinkJoin {
name = "x-keyboard-directory";
paths = [
"${pkgs.xkeyboard_config}/etc/X11/xkb"
(pkgs.linkFarm "custom-x-keyboards" [
{
name = "symbols/cop";
path = pkgs.fetchurl {
url = "http://www.moheb.de/download/cop";
sha256 = "1l0h6aq536hyinrh0i0ia355y229bjrlibii0sya5bmqh46vycia";
};
}
{
name = "symbols/ave";
path = pkgs.fetchurl {
url = "https://blog.simos.info/wp-content/uploads/2010/06/avestan.txt";
sha256 = "192zmmm3gxyhim39dsax7r87gsay2w5v2xkhwmvsfipjb60hwp5g";
};
}
])
(pkgs.linkFarm "custom-x-keyboards" (
lib.mapAttrsToList (name: value: {
name = "symbols/${name}";
path = value;
}) (lib.filterAttrs (_: value: !(value ? "code")) languages)
++ [
{
name = "symbols/ir";
path = ../lib/keyboards/farsi;
}
]
))
];
};
};
environment.etc."x11-locale".source = toString pkgs.xorg.libX11 + "share/X11/locale";
home-manager.users.me = {
home.file =
lib.mapAttrs' (name: path: lib.nameValuePair ".xkb/symbols/${name}" { source = path; })
(lib.filterAttrs (_: value: !(value ? "code")) languages) // {
".xkb/symbols/ir".source = ../lib/keyboards/farsi;
};
};
console.keyMap = "de";
environment.systemPackages =
lib.mapAttrsToList
(language: variant:
pkgs.writers.writeDashBin "kb-${language}" ''
${pkgs.xorg.setxkbmap}/bin/setxkbmap ${defaultLanguage},${language} ${languages.${defaultLanguage}},${variant} ${toString (map (option: "-option ${option}") xkbOptions)}
'')
languages;
environment.systemPackages = lib.mapAttrsToList (
language: settings:
let
code = if settings ? "code" then settings.code else language;
variant = if settings ? "variant" then settings.variant else "";
in
pkgs.writers.writeDashBin "kb-${language}" ''
if [ -z $SWAYSOCK ]; then
${pkgs.xorg.setxkbmap}/bin/setxkbmap ${defaultLanguage.code},${code} ${defaultLanguage.variant},${variant} ${
toString (map (option: "-option ${option}") xkbOptions)
}
else
swaymsg -s $SWAYSOCK 'input * xkb_layout "${defaultLanguage.code},${code}"'
swaymsg -s $SWAYSOCK 'input * xkb_variant "${defaultLanguage.variant},${variant}"'
swaymsg -s $SWAYSOCK 'input * xkb_options "${lib.concatStringsSep "," xkbOptions}"'
fi
''
) languages;
# improve held key rate
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";
systemd.user.services.gxkb = {
wantedBy = ["graphical-session.target"];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
SyslogIdentifier = "gxkb";
ExecStart = "${pkgs.gxkb}/bin/gxkb";

View File

@@ -6,7 +6,7 @@
}: let
davHome = "~/.local/share/dav";
kmeinCloud = {
davEndpoint = "https://cloud.xn--kiern-0qa.de/remote.php/dav";
davEndpoint = "https://cloud.kmein.de/remote.php/dav";
username = "kieran";
passwordFile = config.age.secrets.nextcloud-password-kieran.path;
};
@@ -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";
@@ -104,30 +103,9 @@ in {
"khal/config".text = ''
[calendars]
[[alew]]
path = ${davHome}/calendar/alew
color = "light gray"
[[personal]]
path = ${davHome}/calendar/personal
color = "light cyan"
[[uni]]
path = ${davHome}/calendar/uni-1
color = "yellow"
[[fysi]]
path = ${davHome}/calendar/fysi-1
color = "light magenta"
[[fysi_team]]
path = ${davHome}/calendar/personal_shared_by_fdf
color = "light red"
[[birthdays]]
path = ${davHome}/contacts/contacts
type = birthdays
color = "light green"
[[kalender_local]]
path = ${davHome}/calendar/*
type = discover
[default]
highlight_event_days = True
@@ -159,13 +137,7 @@ in {
[pair kalender]
a = "kalender_local"
b = "kalender_cloud"
collections = ["personal", "alew", "uni-1"]
conflict_resolution = "b wins"
[pair fysi]
a = "kalender_local"
b = "fysi_cloud"
collections = ["fysi-1", "personal_shared_by_fdf"]
collections = ["from b"]
conflict_resolution = "b wins"
[storage kontakte_local]
@@ -189,12 +161,6 @@ in {
url = "${kmeinCloud.davEndpoint}/calendars/${kmeinCloud.username}/"
username = "${kmeinCloud.username}"
password.fetch = ["command", "cat", "${kmeinCloud.passwordFile}"]
[storage fysi_cloud]
type = "caldav"
url = "${fysiCloud.davEndpoint}/calendars/${fysiCloud.username}/"
username = "${fysiCloud.username}"
password.fetch = ["command", "cat", "${fysiCloud.passwordFile}"]
'';
};
};

View File

@@ -9,7 +9,7 @@
startAt = "weekly";
serviceConfig = {
user = "kfm";
WorkingDirectory = "/home/kfm/cloud/Seafile/Books/Germanistik/LB";
WorkingDirectory = "/home/kfm/cloud/nextcloud/Books/Germanistik/LB";
};
script = ''
first_year=2019

View File

@@ -2,6 +2,13 @@
home-manager.users.me = {
xdg.mimeApps = {
enable = true;
associations = {
added = {
"x-scheme-handler/tg" = "org.telegram.desktop.desktop";
};
removed = {
};
};
defaultApplications = {
"application/epub+zip" = "org.pwmt.zathura.desktop";
"application/pdf" = "org.pwmt.zathura.desktop";
@@ -19,7 +26,7 @@
"x-scheme-handler/mailto" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
"x-scheme-handler/webcal" = "firefox.desktop";
"inode/directory" = "pcmanfm.desktop";
"x-scheme-handler/tg" = "org.telegram.desktop.desktop";
};
};
};

View File

@@ -36,8 +36,8 @@ in {
"Alt+j" = "add video-pan-y -0.05";
};
scripts = [
pkgs.mpvScripts.youtube-quality
niveumPackages.mpv-visualizer
pkgs.mpvScripts.quality-menu
pkgs.mpvScripts.visualizer
];
};
};

15
configs/mycelium.nix Normal file
View File

@@ -0,0 +1,15 @@
{ lib, ... }:
let
myceliumAddresses = import ../lib/mycelium-network.nix;
in
{
services.mycelium = {
enable = true;
openFirewall = true;
};
networking.hosts = lib.mapAttrs' (name: address: {
name = address;
value = [ "${name}.m" ];
}) myceliumAddresses;
}

View File

@@ -1,6 +1,7 @@
{
pkgs,
niveumPackages,
config,
...
}: {
environment.variables.EDITOR = pkgs.lib.mkForce "nvim";
@@ -8,66 +9,51 @@
environment.shellAliases.vim = "nvim";
environment.shellAliases.view = "nvim -R";
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
];
home-manager.users.me = {
editorconfig = {
enable = true;
settings = {
"*" = {
charset = "utf-8";
end_of_line = "lf";
trim_trailing_whitespace = true;
insert_final_newline = true;
indent_style = "space";
indent_size = 2;
};
"*.py" = {
indent_size = 4;
};
Makefile = {
indent_style = "tab";
};
"*.md" = {
trim_trailing_whitespace = false;
};
};
};
};
environment.systemPackages = [
(pkgs.writers.writeDashBin "vim" ''neovim "$@"'')
(niveumPackages.vim.override {
# stylixColors = config.lib.stylix.colors;
colorscheme = "base16-gruvbox-dark-medium";
})
# language servers
pkgs.pyright
pkgs.haskellPackages.haskell-language-server
pkgs.texlab
pkgs.nil
pkgs.gopls
pkgs.nixfmt-rfc-style
pkgs.rust-analyzer
pkgs.nodePackages.typescript-language-server
pkgs.lua-language-server
pkgs.nodePackages.vscode-langservers-extracted
pkgs.lemminx # XML LSP
pkgs.jq-lsp
pkgs.dhall-lsp-server
];
}

View File

@@ -1,47 +1,7 @@
{
lib,
pkgs,
...
}: let
profile = name: custom:
lib.recursiveUpdate {
connection.id = name;
connection.type = "wifi";
connection.interface-name = "wlp3s0";
connection.permissions = "";
wifi.mac-address-blacklist = "";
wifi.ssid = name;
wifi.mode = "infrastructure";
ipv4.dns-search = "";
ipv4.method = "auto";
ipv6.addr-gen-mode = "stable-privacy";
ipv6.dns-search = "";
ipv6.method = "auto";
proxy = {};
}
custom;
eduroamProfile = {
connection.uuid = "eae9fee6-a7d2-4120-a609-440b457d6fcf";
wifi-security = {
group = "ccmp;tkip;";
key-mgmt = "wpa-eap";
pairwise = "ccmp;";
proto = "rsn;";
};
"802-1x" = {
altsubject-matches = "DNS:srv1-radius.cms.hu-berlin.de;DNS:srv2-radius.cms.hu-berlin.de;";
anonymous-identity = "anonymous@wlan.hu-berlin.de";
ca-cert = pkgs.fetchurl {
url = "https://www.cms.hu-berlin.de/de/dl/netze/wlan/config/eduroam/t-telesec_globalroot_class_2.pem";
sha256 = "0if8aqd06sid7a0vw009zpa087wxcgdd2x6z2zs4pis5kvyqj2dk";
};
eap = "ttls;";
identity = lib.strings.fileContents <secrets/eduroam/identity>;
password = lib.strings.fileContents <secrets/eduroam/password>;
phase2-auth = "pap";
};
};
in {
}: {
programs.nm-applet.enable = true;
networking.networkmanager = {

View File

@@ -1,118 +1,17 @@
{
pkgs,
config,
lib,
...
}: let
ytdl-format = "'bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best'";
youtube-download = "${pkgs.ts}/bin/ts ${pkgs.yt-dlp}/bin/yt-dlp -f ${ytdl-format} --add-metadata";
newsboat-home = "${config.users.users.me.home}/cloud/Seafile/Documents/newsboat";
linkhandler = pkgs.writers.writeDash "linkhandler" ''
# Feed script a url or file location.
# If an image, it will view in sxiv,
# if a video or gif, it will view in mpv
# if a music file or pdf, it will download,
# otherwise it opens link in browser.
# If no url given. Opens browser. For using script as $BROWSER.
[ -z "$1" ] && { "$BROWSER"; exit; }
case "$1" in
*mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*)
setsid -f ${pkgs.mpv}/bin/mpv -quiet "$1" >/dev/null 2>&1 ;;
*png|*jpg|*jpe|*jpeg|*gif)
curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///")" >/dev/null 2>&1 & ;;
*mp3|*flac|*opus|*mp3?source*)
setsid -f tsp curl -LO "$1" >/dev/null 2>&1 ;;
*)
if [ -f "$1" ]; then "$TERMINAL" -e "$EDITOR" "$1"
else setsid -f "$BROWSER" "$1" >/dev/null 2>&1; fi ;;
esac
'';
newsboat-config = pkgs.writeText "config" ''
auto-reload no
reload-threads 8
prepopulate-query-feeds yes
# dont keep a search history
history-limit 0
datetime-format %F
text-width 85
external-url-viewer "${pkgs.urlscan}/bin/urlscan -dc -r '${linkhandler} {}'"
browser ${linkhandler}
macro , open-in-browser
macro c set browser "${pkgs.xsel}/bin/xsel -b <<<" ; open-in-browser ; set browser ${linkhandler}
macro v set browser "${pkgs.util-linux}/bin/setsid -f ${pkgs.mpv}/bin/mpv" ; open-in-browser ; set browser ${linkhandler}
macro y set browser "${youtube-download}" ; open-in-browser ; set browser ${linkhandler}
bind-key j down
bind-key k up
bind-key j next articlelist
bind-key k prev articlelist
bind-key J next-feed articlelist
bind-key K prev-feed articlelist
bind-key G end
bind-key g home
bind-key d pagedown
bind-key u pageup
bind-key l open
bind-key h quit
bind-key a toggle-article-read
bind-key n next-unread
bind-key N prev-unread
bind-key D pb-download
bind-key U show-urls
bind-key x pb-delete
save-path ${newsboat-home}/saved/
highlight all "---.*---" yellow default
# highlight feedlist ".*(0/0))" default default
highlight article "^Title:.*" yellow default bold
highlight article "^Author:.*" yellow default
highlight article "^Flags:.*" red default
highlight article "\\[[0-9][0-9]*\\]" color66 default bold
highlight article "\\[image [0-9][0-9]*\\]" color109 default bold
highlight article "\\[embedded flash: [0-9][0-9]*\\]" color66 default bold
color listfocus blue default
color listfocus_unread blue default bold
color info red default bold
urls-source "miniflux"
miniflux-url "https://feed.kmein.de"
miniflux-login "kfm"
miniflux-password "${lib.strings.fileContents <secrets/miniflux/password>}"
'';
newsboat-sql = "${pkgs.sqlite}/bin/sqlite3 ${newsboat-home}/cache.db";
in {
}: {
environment.systemPackages = [
pkgs.newsboat
(pkgs.writers.writeDashBin "newsboat-unread-count" ''
if [ -f ${newsboat-home}/cache.db.lock ]; then
${pkgs.jq}/bin/jq -n '{state: "Info", text: "", icon: "rss"}'
else
${pkgs.jq}/bin/jq -n \
--argjson unread "$(${newsboat-sql} "SELECT COUNT(DISTINCT id) FROM rss_item WHERE unread=1")" \
--argjson watchLater "$(${newsboat-sql} "SELECT COUNT(DISTINCT id) FROM rss_item WHERE flags='e' AND deleted=0")" \
'{
state: (if $unread > 0 then "Good" else "Idle" end),
text: (if $unread > 0 then "\($unread)" else "[\($watchLater)]" end),
icon: "rss"
}'
fi
'')
(pkgs.writers.writeDashBin "mpv-watch-later" ''
${newsboat-sql} "SELECT url FROM rss_item WHERE flags='e' AND deleted=0 ORDER BY pubDate DESC" \
| ${pkgs.findutils}/bin/xargs ${pkgs.mpv}/bin/mpv
(pkgs.writers.writeDashBin "miniflux-watch-later" ''
miniflux_api_token=$(cat ${config.age.secrets.miniflux-api-token.path})
random_feed_item=$(
${pkgs.curl}/bin/curl -u "$miniflux_api_token" --basic -s 'https://feed.kmein.de/v1/entries?starred=true&limit=0' \
| ${pkgs.jq}/bin/jq -r '.entries[].id' \
| ${pkgs.coreutils}/bin/shuf -n1
)
${pkgs.xdg-utils}/bin/xdg-open "https://feed.kmein.de/starred/entry/$random_feed_item"
'')
];
}

View File

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

View File

@@ -8,6 +8,8 @@
}: let
worldradio = pkgs.callPackage ../packages/worldradio.nix {};
externalNetwork = import ../lib/external-network.nix;
zoteroStyle = {
name,
sha256,
@@ -29,7 +31,7 @@
})
(zoteroStyle {
name = "apa";
sha256 = "sha256-yq4fW6hQknycLjaj5fPbXLrQlGBp5myXiOSHBU90jEc=";
sha256 = "sha256-sUf0Ov5c9aTUoLsYSRbQl3Qs9ELkb5/Tky35kH7pKuE=";
})
];
@@ -60,89 +62,83 @@ in {
};
environment.systemPackages = with pkgs; [
(pkgs.writers.writeDashBin "amfora" ''
${pkgs.st}/bin/st -e ${pkgs.amfora}/bin/amfora
'')
(pkgs.writers.writeDashBin "gpodder" ''
GPODDER_DOWNLOAD_DIR=${config.users.users.me.home}/mobile/audio/Text/podcasts exec ${pkgs.gpodder}/bin/gpodder "$@"
'')
# INTERNET
aria2
firefox
tdesktop
w3m
wget
telegram-desktop
whois
dnsutils
# FILE MANAGERS
lf
cinnamon.nemo
pcmanfm
# MEDIA
ffmpeg
simplescreenrecorder
imagemagick
exiftool
nsxiv
# ARCHIVE TOOLS
unzip
unrar
p7zip
zip
# MONITORS
htop
iotop # I/O load monitor
iftop # interface bandwidth monitor
lsof # list open files
psmisc # for killall, pstree
graphviz
# SHELL
bat # better cat
fd # better find
file # determine file type
dos2unix
genpass # generate passwords
gdu # ncurses disk usage (ncdu is broken)
rmlint # remove duplicate files
(pkgs.writers.writeDashBin "genpassphrase" ''${pkgs.genpass}/bin/genpass --passphrase | ${pkgs.gnused}/bin/sed 's/ /-/g;s/\(^\|-\)\([a-z]\)/\1\U\2/g;s/$/-'$(${pkgs.coreutils}/bin/date +%Y)'/' '')
gcc
python3Packages.jsonschema # json validation
jq # json toolkit
pup # html toolkit
htmlq
xsv # csv toolkit
fq # toolkit for yaml, xml and binaries
xan # csv toolkit
magic-wormhole-rs # file transfer
man-pages
man-pages-posix
tree
exfat # to mount windows drives
parallel # for parallel, since moreutils shadows task spooler
ripgrep # better grep
rlwrap
progress # display progress bars for pipes
# HARDWARE TOOLS
usbutils # for lsusb
pciutils # for lspci
lshw # for lshw
gnome-disk-utility
arandr # xrandr for noobs
wdisplays
libnotify # for notify-send
xclip # clipboard CLI
xdragon # drag and drop
dragon-drop # drag and drop
xorg.xkill # kill by clicking
portfolio # personal finance overview
audacity
calibre
electrum
inkscape
niveumPackages.gimp
gthumb
astrolog
obsidian
lemmeknow # identify strings
aichat # chat with llms
anki-bin # flashcards
jbofihe # lojbanic software
zoom-us # video conferencing
(pkgs.writers.writeDashBin "im" ''
weechat_password=$(${pkgs.pass}/bin/pass weechat)
exec ${weechat}/bin/weechat -t -r '/mouse enable; /remote add makanek http://${externalNetwork.makanek}:8002 -password='"$weechat_password"'; /remote connect makanek'
'')
alejandra # nix formatter
pdfgrep # search in pdf
pdftk # pdf toolkit
mupdf
poppler_utils # pdf toolkit
okular # the word is nucular
poppler-utils # pdf toolkit
kdePackages.okular # the word is nucular
xournalpp # for annotating pdfs
pdfpc # presenter console for pdf slides
niveumPackages.hc # print files as qr codes
yt-dlp
espeak
bc # calculator
pari # gp -- better calculator
rink # unit converter
niveumPackages.auc
niveumPackages.noise-waves
niveumPackages.stag
niveumPackages.cheat-sh
niveumPackages.infschmv
niveumPackages.polyglot
niveumPackages.qrpaste
niveumPackages.ttspaste
niveumPackages.new-mac # get a new mac address
@@ -154,29 +150,31 @@ in {
niveumPackages.ipa # XSAMPA to IPA converter
niveumPackages.pls
niveumPackages.mpv-tv
niveumPackages.mpv-iptv
niveumPackages.devanagari
niveumPackages.betacode # ancient greek betacode to unicode converter
niveumPackages.meteo
niveumPackages.mahlzeit
niveumPackages.vimv
pkgs.jq-lsp
niveumPackages.swallow # window swallowing
niveumPackages.literature-quote
jless # less(1) for json
niveumPackages.booksplit
niveumPackages.dmenu-randr
niveumPackages.dmenu-bluetooth
niveumPackages.manual-sort
niveumPackages.dns-sledgehammer
ts
niveumPackages.vg
niveumPackages.fkill
niveumPackages.wttr
niveumPackages.unicodmenu
niveumPackages.emailmenu
niveumPackages.closest
niveumPackages.trans
(niveumPackages.mpv-radio.override {
di-fm-key-file = config.age.secrets.di-fm-key.path;
})
(niveumPackages.mpv-radio.override {
di-fm-key-file = config.age.secrets.di-fm-key.path;
executableName = "cro-radio";
mpvCommand = "${niveumPackages.cro}/bin/cro";
})
(niveumPackages.mpv-tuner.override {
di-fm-key-file = config.age.secrets.di-fm-key.path;
})
# kmein.slide
termdown
niveumPackages.image-convert-tolino
@@ -186,11 +184,11 @@ in {
niveumPackages.menu-calc
nix-prefetch-git
niveumPackages.nix-git
nixfmt
nixfmt-rfc-style
par
qrencode
inputs.menstruation-backend.defaultPackage.x86_64-linux
# inputs.menstruation-backend.defaultPackage.x86_64-linux
inputs.agenix.packages.x86_64-linux.default
inputs.recht.defaultPackage.x86_64-linux
@@ -202,24 +200,20 @@ in {
${pkgs.openssh}/bin/ssh makanek "cd /var/lib/weechat/logs && grep --ignore-case --color=always --recursive $@" | ${pkgs.less}/bin/less --raw-control-chars
'')
(pkgs.writers.writeDashBin "ncmpcpp-zaatar" ''MPD_HOST=${(import ../lib/local-network.nix).zaatar} exec ${pkgs.ncmpcpp}/bin/ncmpcpp "$@"'')
(pkgs.writers.writeDashBin "mpc-zaatar" ''MPD_HOST=${(import ../lib/local-network.nix).zaatar} exec ${pkgs.mpc_cli}/bin/mpc "$@"'')
inputs.scripts.packages.x86_64-linux.alarm
spotify
ncspot
playerctl
nix-index
niveumPackages.nix-index-update
#krebs
niveumPackages.dic
niveumPackages.cyberlocker-tools
niveumPackages.untilport
niveumPackages.kpaste
config.nur.repos.mic92.ircsink
pkgs.nur.repos.mic92.ircsink
(haskellPackages.ghcWithHoogle (hs: [
hs.text
hs.lens
hs.bytestring
]))
(python3.withPackages (py: [
py.black
@@ -233,22 +227,14 @@ in {
]))
# python3Packages.poetry
# language servers
pyright
haskell-language-server
texlab
nil
rust-analyzer
dhall-nix
dhall-bash
dhall-json
dhall
html-tidy
nodePackages.csslint
nodePackages.jsonlint
nodePackages.prettier
nodePackages.typescript
nodePackages.yarn
deno # better node.js
nodejs
nodePackages.javascript-typescript-langserver
go
texlive.combined.scheme-full
latexrun
(aspellWithDicts (dict: [dict.de dict.en dict.en-computers]))
@@ -260,7 +246,9 @@ in {
# gnumeric
dia
pandoc
niveumPackages.man-pandoc
librsvg # pandoc depends on this to include SVG in documents
# niveumPackages.man-pandoc
typst
# proselint
asciidoctor
wordnet
@@ -270,9 +258,18 @@ in {
# nightly.rust
shellcheck
# photography
gphoto2
darktable
(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

@@ -1,13 +1,13 @@
{
services.picom = {
enable = true;
activeOpacity = 1;
# activeOpacity = 1;
fade = true;
fadeDelta = 1;
inactiveOpacity = 0.9;
shadow = true;
menuOpacity = 0.9;
shadowOpacity = 0.3;
# inactiveOpacity = 0.9;
# shadow = true;
# menuOpacity = 0.9;
# shadowOpacity = 0.3;
fadeExclude = [
"class_g = 'slock'" # don't want a transparent lock screen!
"name *?= 'slock'"

View File

@@ -12,7 +12,7 @@ in {
];
# allow connecting to .local printers
services.avahi.nssmdns = true;
services.avahi.nssmdns4 = true;
hardware.printers.ensurePrinters = [
{

View File

@@ -1,14 +1,6 @@
{
config,
pkgs,
...
}: let
inherit (import <niveum/lib>) colours;
in {
{pkgs, ...}: {
home-manager.users.me.programs.rofi = {
enable = true;
font = "Monospace 10";
theme = "${pkgs.rofi}/share/rofi/themes/Arc.rasi";
pass = {
enable = true;
extraConfig = ''

View File

@@ -1,23 +0,0 @@
{
pkgs,
config,
...
}: {
services.xserver.displayManager.sessionCommands = "${pkgs.seafile-client}/bin/seafile-applet &";
home-manager.users.me.xdg.configFile = {
"Seafile/Seafile Client.conf".source = (pkgs.formats.ini {}).generate "Seafile Client.conf" {
Behavior = {
hideDockIcon = false;
hideMainWindowWhenStarted = true;
};
Settings = {
computerName = config.networking.hostName;
lastShiburl = "https://box.hu-berlin.de";
};
UsedServerAddresses.main = "https://box.hu-berlin.de";
};
};
environment.systemPackages = [pkgs.seafile-client];
}

View File

@@ -1,12 +1,6 @@
{pkgs, ...}: {
sound.enable = true;
# realtime audio for pulseaudio
security.rtkit.enable = true;
services.pipewire = {
enable = false;
systemWide = false;
enable = true;
alsa = {
enable = true;
support32Bit = true;
@@ -15,25 +9,13 @@
jack.enable = true;
};
hardware.pulseaudio = {
enable = true;
package = pkgs.pulseaudioFull;
# copy server:/run/pulse/.config/pulse/cookie to client:~/.config/pulse/cookie to authenticate a client machine
zeroconf.discovery.enable = true;
extraConfig = ''
load-module ${
toString [
"module-tunnel-sink-new"
"server=zaatar.r"
"sink_name=zaatar"
"channels=2"
"rate=44100"
]
}
'';
};
systemd.user.services.pipewire-pulse.path = [pkgs.pulseaudio];
users.users.me.extraGroups = ["pipewire" "audio"];
services.avahi = {
enable = true;
publish.enable = true;
publish.userServices = true;
};
environment.systemPackages = [
pkgs.pavucontrol

View File

@@ -3,5 +3,6 @@
location = {
latitude = 52.517;
longitude = 13.3872;
provider = "geoclue2";
};
}

View File

@@ -1,46 +1,48 @@
{
pkgs,
config,
lib,
...
}: let
{pkgs, ...}: let
inherit (import ../lib) sshPort kieran;
externalNetwork = import ../lib/external-network.nix;
sshIdentity = name: "${config.users.users.me.home}/.ssh/${name}";
in {
users.users.me.openssh.authorizedKeys.keys = kieran.sshKeys pkgs;
users.users.me.openssh.authorizedKeys.keys = kieran.sshKeys;
programs.ssh.startAgent = true;
services.gnome.gcr-ssh-agent.enable = false;
home-manager.users.me = {
services.gpg-agent = rec {
enable = true;
enableSshSupport = true;
defaultCacheTtlSsh = 2 * 60 * 60;
maxCacheTtlSsh = 4 * defaultCacheTtlSsh;
sshKeys = [
"568047C91DE03A23883E340F15A9C24D313E847C"
"BB3EE102DB8CD45540A78A6B18B511B67061F6B4" # kfm@manakish ed25519
"3F8986755818B5762A096BE212777EAAC441DD9D" # fysiweb rsa
"0E4ABD229432486CC432639BB0986B2CDE365105" # agenix ed25519
"A1E8D32CBFCDBD2DE798E2298D795CCFD785AE06" # kfm@kabsa ed25519
];
};
# https://discourse.nixos.org/t/gnome-keyring-and-ssh-agent-without-gnome/11663
xsession.profileExtra = ''
eval $(${pkgs.gnome3.gnome-keyring}/bin/gnome-keyring-daemon --daemonize --components=ssh,secrets)
export SSH_AUTH_SOCK
'';
# services.gpg-agent = rec {
# enable = false;
# enableSshSupport = true;
# defaultCacheTtlSsh = 2 * 60 * 60;
# maxCacheTtlSsh = 4 * defaultCacheTtlSsh;
# sshKeys = [
# "568047C91DE03A23883E340F15A9C24D313E847C"
# "BB3EE102DB8CD45540A78A6B18B511B67061F6B4" # kfm@manakish ed25519
# "3F8986755818B5762A096BE212777EAAC441DD9D" # fysiweb rsa
# "0E4ABD229432486CC432639BB0986B2CDE365105" # agenix ed25519
# "A1E8D32CBFCDBD2DE798E2298D795CCFD785AE06" # kfm@kabsa ed25519
# ];
# };
};
environment.extraInit = ''
if [[ -z "$SSH_AUTH_SOCK" ]]; then
export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)"
fi
'';
# environment.extraInit = ''
# if [[ -z "$SSH_AUTH_SOCK" ]]; then
# export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)"
# fi
# '';
environment.interactiveShellInit = ''
GPG_TTY="$(tty)"
export GPG_TTY
${pkgs.gnupg}/bin/gpg-connect-agent updatestartuptty /bye > /dev/null
'';
# environment.interactiveShellInit = ''
# GPG_TTY="$(tty)"
# export GPG_TTY
# ${pkgs.gnupg}/bin/gpg-connect-agent updatestartuptty /bye > /dev/null
# '';
home-manager.users.me.programs.ssh = {
enable = true;
matchBlocks = rec {
enableDefaultConfig = false;
matchBlocks = {
"github.com" = {
hostname = "ssh.github.com";
port = 443;
@@ -80,26 +82,10 @@ in {
user = "kfm";
port = sshPort;
};
"nextcloud.fysi.dev" = {
hostname = "116.203.82.203";
user = "root";
};
"lingua.miaengiadina.ch" = {
hostname = "135.181.85.233";
user = "root";
};
"cms-dev.woc2023.app".identityFile = sshIdentity "fysiweb";
"cms-master.woc2023.app".identityFile = sshIdentity "fysiweb";
"fysi-dev1" = {
hostname = "94.130.229.139";
user = "root";
identityFile = sshIdentity "fysiweb";
};
${fysi-dev1.hostname} = fysi-dev1;
"fysi-shared0" = {
hostname = "49.12.205.235";
user = "root";
identityFile = sshIdentity "fysiweb";
fatteh = {
hostname = "fatteh.r";
user = "kfm";
port = sshPort;
};
};
};

View File

@@ -11,9 +11,13 @@ 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;
users.users.root.openssh.authorizedKeys.keys = kieran.sshKeys ++ [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPoiRIn1dBUtpApcUyGbZKN+m5KBSgKIDQjdnQ8vU0xU kfm@kibbeh" # travel laptop
];
}

View File

@@ -1,9 +1,10 @@
{
config,
pkgs,
lib,
inputs,
...
}: let
locker = x: "https://c.krebsco.de/${x}";
dictionaries = {
lojban = {
jbo-deu = pkgs.fetchzip {
@@ -29,7 +30,7 @@
sha256 = "1kmbdjqinrcxkc6jdyyrq5rl2wzhnrychyynnh91yhrjwjxlh44k";
};
Woodhouse = pkgs.fetchzip {
url = "https://c.krebsco.de/Woodhouse.zip";
url = locker "Woodhouse.zip";
sha256 = "1dvnc2679yb048q2f3hr2h34acvhan0n3iir6h9ajlrdzz48mlkq";
stripRoot = false;
};
@@ -68,39 +69,39 @@
sha256 = "1bjja3n3layfd08xa1r0a6375dxh5zi6hlv7chkhgnx800cx7hxn";
};
Roget = pkgs.fetchzip {
url = "http://download.huzheng.org/bigdict/stardict-Roget_s_II_The_New_Thesaurus_3th_Ed-2.4.2.tar.bz2";
sha256 = "1szyny9497bpyyccf9l5kr3bnw0wvl4cnsd0n1zscxpyzlsrqqbz";
url = locker "stardict-Roget_s_II_The_New_Thesaurus_3th_Ed-2.4.2.tar.bz2";
hash = "sha256-f2GcNf3+dqZ/sKBpywjdHHC7Rp6FJseY93edRJK3/us=";
};
JargonFile = pkgs.fetchzip {
url = "http://download.huzheng.org/dict.org/stardict-dictd-jargon-2.4.2.tar.bz2";
sha256 = "096phar9qpmm0fnaqv5nz8x9lpxwnfj78g4vjfcfyd7kqp7iqla4";
url = locker "stardict-dictd-jargon-2.4.2.tar.bz2";
hash = "sha256-RFEcz8XzNO+Yk5s8dKSzvF+aOvq2bKysA7VenLKC1yQ=";
};
Oxford-Collocations = pkgs.fetchzip {
url = "http://download.huzheng.org/bigdict/stardict-Oxford_Collocations_Dictionary_2nd_Ed-2.4.2.tar.bz2";
url = locker "stardict-Oxford_Collocations_Dictionary_2nd_Ed-2.4.2.tar.bz2";
sha256 = "1zkfs0zxkcn21z2lhcabrs77v4ma9hpv7qm119hpyi1d8ajcw07q";
};
Langenscheidt-Deu-En = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/german/stardict-Handw_rterbuch_Deutsch_Englisc-2.4.2.tar.bz2";
url = locker "stardict-Handw_rterbuch_Deutsch_Englisc-2.4.2.tar.bz2";
sha256 = "12q9i5azq7ylyrpb6jqbaf1rxalc3kzcwjvbinvb0yabdxb80y30";
};
Langenscheidt-En-Deu = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/german/stardict-Handw_rterbuch_Englisch_Deutsc-2.4.2.tar.bz2";
url = locker "stardict-Handw_rterbuch_Englisch_Deutsc-2.4.2.tar.bz2";
sha256 = "087b05h155j5ldshfgx91pz81h6ijq2zaqjirg7ma8ig3l96zb59";
};
Duden_Das_Fremdworterbuch = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/german/stardict-Duden_Das_Fremdworterbuch-2.4.2.tar.bz2";
url = locker "stardict-Duden_Das_Fremdworterbuch-2.4.2.tar.bz2";
sha256 = "1zrcay54ccl031s6dvjwsah5slhanmjab87d81rxlcy8fx0xd8wq";
};
Duden_De_De = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/german/stardict-Duden_De_De-2.4.2.tar.bz2";
url = locker "stardict-Duden_De_De-2.4.2.tar.bz2";
sha256 = "1fhay04w5aaj83axfmla2ql34nb60gb05dgv0k94ig7p8x4yxxlf";
};
ConciseOED = pkgs.fetchzip {
url = "http://download.huzheng.org/bigdict/stardict-Concise_Oxford_English_Dictionary-2.4.2.tar.bz2";
url = locker "stardict-Concise_Oxford_English_Dictionary-2.4.2.tar.bz2";
sha256 = "19kpcxbhqzpmhi94mp48nalgmsh6s7rsx1gb4kwkhirp2pbjcyl7";
};
Duden_Synonym = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/german/stardict-Duden_Synonym-2.4.2.tar.bz2";
url = locker "stardict-Duden_Synonym-2.4.2.tar.bz2";
sha256 = "0cx086zvb86bmz7i8vnsch4cj4fb0cp165g4hig4982zakj6f2jd";
};
};
@@ -140,32 +141,39 @@
};
oed = {
OED1 = pkgs.fetchzip {
url = "http://download.huzheng.org/bigdict/stardict-Oxford_English_Dictionary_2nd_Ed._P1-2.4.2.tar.bz2";
url = locker "stardict-Oxford_English_Dictionary_2nd_Ed._P1-2.4.2.tar.bz2";
sha256 = "0i5vv1rv44yfwyf9bfbdrb9brzhhpvz2jnh39fv8hh107nkv2vcf";
};
OED2 = pkgs.fetchzip {
url = "http://download.huzheng.org/bigdict/stardict-Oxford_English_Dictionary_2nd_Ed._P2-2.4.2.tar.bz2";
url = locker "stardict-Oxford_English_Dictionary_2nd_Ed._P2-2.4.2.tar.bz2";
sha256 = "1pk234pbq4pk55d8sjk0pp9j5sajm82f8804kf2xm2x5p387q1rg";
};
};
coptic = {
dictionary = inputs.coptic-dictionary.packages.x86_64-linux.coptic-stardict;
Crum = pkgs.fetchzip {
url = locker "stardict-Coptic-English_all_dialects-2.4.2.tar.bz2";
sha256 = "1fi281mb9yzv40wjsdapi8fzpa7x2yscz582lv2qnss9g8zzzzr9";
};
};
russian = {
LingvoGermanRussian = pkgs.fetchzip {
url = "http://download.huzheng.org/lingvo/stardict-GR-LingvoUniversal-2.4.2.tar.bz2";
url = locker "stardict-GR-LingvoUniversal-2.4.2.tar.bz2";
sha256 = "0p353gs2z4vj70hqsdhffjaaw3a4zlmcs46flipmf35lm5wmaj0g";
};
LingvoRussianGerman = pkgs.fetchzip {
url = "http://download.huzheng.org/lingvo/stardict-RG-LingvoUniversal-2.4.2.tar.bz2";
url = locker "stardict-RG-LingvoUniversal-2.4.2.tar.bz2";
sha256 = "03f9wdmkgpjifpms7dyh10ma29wf3ka1j3zlp1av0cybhdldk2a8";
};
};
turkish = {
BabylonTurkishEnglish = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/bidirectional/stardict-babylon-Babylon_Turkish_English-2.4.2.tar.bz2";
sha256 = "17rv46r95nkikg7aszqmfrbgdhz9ny52w423m8n01g3p93shdb4i";
url = locker "stardict-babylon-Babylon_Turkish_English-2.4.2.tar.bz2";
sha256 = "1zpzgk3w0536gww31bj58cmn3imnkndyjwbcr7bay8ibq2kzv44z";
};
BabylonEnglishTurkish = pkgs.fetchzip {
url = "http://download.huzheng.org/babylon/bidirectional/stardict-babylon-Babylon_English_Turkish-2.4.2.tar.bz2";
sha256 = "063dl02s8ii8snsxgma8wi49xwr6afk6ysq0v986fygx5511353f";
url = locker "stardict-babylon-Babylon_English_Turkish-2.4.2.tar.bz2";
sha256 = "0myx31xzb7nrn5m657h0bwdgm5xp93ccwp6lcpbxgjxdjm3q0hc5";
};
};
};
@@ -284,35 +292,35 @@
" | less -FR
'';
in {
environment.etc.stardict.source = toString (makeStardictDataDir ({
Crum = pkgs.fetchzip {
url = "http://download.huzheng.org/misc/stardict-Coptic-English_all_dialects-2.4.2.tar.bz2";
sha256 = "1fi281mb9yzv40wjsdapi8fzpa7x2yscz582lv2qnss9g8zzzzr9";
};
SmithBiographyMythology = pkgs.fetchzip {
url = "https://github.com/latin-dict/Smith1873/releases/download/v1.0/Smith1873-stardict.zip";
sha256 = "01h5fxacp2m60xir8kzslkfy772vs3vmz07zhdwfhcwdaxif2af2";
};
SmithAntiquities = pkgs.fetchzip {
url = "https://github.com/latin-dict/Smith1890/releases/download/v1.0/Smith1890-stardict.zip";
sha256 = "0vpsv62p2lrzmgys4d1swpnc6lqhdi7rxwkj2ngy3lz5dk3fysyb";
};
}
// dictionaries.classics
// dictionaries.sanskrit
// dictionaries.oed
// dictionaries.russian
// dictionaries.englishGerman
// dictionaries.turkish));
# environment.etc.stardict.source = toString (makeStardictDataDir ({
# Crum = pkgs.fetchzip {
# url = "http://download.huzheng.org/misc/stardict-Coptic-English_all_dialects-2.4.2.tar.bz2";
# sha256 = "1fi281mb9yzv40wjsdapi8fzpa7x2yscz582lv2qnss9g8zzzzr9";
# };
# SmithBiographyMythology = pkgs.fetchzip {
# url = "https://github.com/latin-dict/Smith1873/releases/download/v1.0/Smith1873-stardict.zip";
# sha256 = "01h5fxacp2m60xir8kzslkfy772vs3vmz07zhdwfhcwdaxif2af2";
# };
# SmithAntiquities = pkgs.fetchzip {
# url = "https://github.com/latin-dict/Smith1890/releases/download/v1.0/Smith1890-stardict.zip";
# sha256 = "0vpsv62p2lrzmgys4d1swpnc6lqhdi7rxwkj2ngy3lz5dk3fysyb";
# };
# }
# // dictionaries.classics
# // dictionaries.sanskrit
# // dictionaries.oed
# // dictionaries.russian
# // dictionaries.englishGerman
# // dictionaries.turkish));
environment.systemPackages = [
# pkgs.goldendict
(makeStardict "lsj" dictionaries.classics)
(makeStardict "sa" dictionaries.sanskrit)
(makeStardict "oed" dictionaries.oed)
(makeStardict "sd-russian" dictionaries.russian)
(makeStardict "sd" dictionaries.englishGerman)
(makeStardict "jbo" dictionaries.lojban)
(makeStardict "cop" dictionaries.coptic)
(makeStardict "sd-turkish" dictionaries.turkish)
];
}

82
configs/stylix.nix Normal file
View File

@@ -0,0 +1,82 @@
{
pkgs,
config,
lib,
inputs,
...
}: let
generatedWallpaper = pkgs.runCommand "wallpaper.png" {} ''
${inputs.wallpaper-generator.packages.x86_64-linux.wp-gen}/bin/wallpaper-generator lines \
--output $out \
${lib.concatMapStringsSep " "
(n: "--base0${lib.toHexString n}=${config.lib.stylix.colors.withHashtag."base0${lib.toHexString n}"}")
(lib.range 0 15)}
'';
in {
# https://danth.github.io/stylix/tricks.html
# stylix.image = inputs.wallpapers.outPath + "/meteora/rodrigo-soares-250630.jpg";
stylix.enable = true;
stylix.image = generatedWallpaper;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
stylix.cursor = {
name = "capitaine-cursors-white";
package = pkgs.capitaine-cursors;
size = 12;
};
home-manager.users.me = {
stylix.autoEnable = true;
};
# environment.etc."stylix/wallpaper.png".source = generatedWallpaper;
# stylix.polarity = "either";
# stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/${
# onedark
# synth-midnight-dark
# apprentice # https://romainl.github.io/Apprentice/
# one-light
# onedark
# material # https://github.com/ntpeters/base16-materialtheme-scheme
# material-palenight
# material-lighter
# tomorrow # https://github.com/chriskempson/tomorrow-theme
# tomorrow-night
# gruvbox-light-medium # https://github.com/dawikur/base16-gruvbox-scheme
# gruvbox-dark-medium
# selenized-light # https://github.com/jan-warchol/selenized
# selenized-dark
# papercolor-light
# papercolor-dark
# dracula # https://draculatheme.com/
# }.yaml";
stylix.fonts = {
serif = {
package = pkgs.noto-fonts;
name = "Noto Serif";
};
sansSerif = {
package = pkgs.noto-fonts;
name = "Noto Sans";
};
monospace = {
package = pkgs.noto-fonts;
name = "Noto Sans Mono";
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
sizes = {
terminal = 6;
applications = 10;
};
};
}

View File

@@ -1,34 +0,0 @@
{
pkgs,
lib,
config,
...
}: let
autorenkalender-package = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "autorenkalender";
rev = "cf49a7b057301332d980eb47042a626add93db66";
sha256 = "1pa7sjg33vdnjianrqldv445jdzzv3mn231ljk1j58hs0cd505gs";
};
autorenkalender =
pkgs.python3Packages.callPackage autorenkalender-package {};
in {
niveum.telegramBots.autorenkalender = {
enable = true;
time = "07:00";
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@autorenkalender"];
parseMode = "Markdown";
command = "${autorenkalender}/bin/autorenkalender";
};
age.secrets.telegram-token-kmein.file = ../../secrets/telegram-token-kmein.age;
niveum.passport.services = [
{
title = "Autorenkalender";
description = "sends <a href=\"https://www.projekt-gutenberg.org/\">Projekt Gutenberg</a>'s anniversary information to Telegram.";
link = "https://t.me/Autorenkalender";
}
];
}

View File

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

View File

@@ -1,27 +0,0 @@
{
pkgs,
config,
inputs,
lib,
...
}: let
hesychius = inputs.scripts.outPath + "/hesychius/hesychius.txt";
in {
niveum.telegramBots.hesychius = {
enable = true;
time = "08:00";
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@HesychiosAlexandreus"];
command = "${pkgs.coreutils}/bin/shuf -n1 ${hesychius}";
};
systemd.timers.telegram-bot-hesychius.timerConfig.RandomizedDelaySec = "10h";
niveum.passport.services = [
{
title = "Hesychius of Alexandria Bot";
description = "sends a random word from Hesychius of Alexandria's lexicon to Telegram.";
link = "https://t.me/HesychiosAlexandreus";
}
];
}

View File

@@ -1,23 +0,0 @@
{
pkgs,
config,
lib,
niveumPackages,
...
}: {
niveum.telegramBots.quotebot = {
enable = true;
time = "08/6:00";
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["-1001760262519"];
command = "${niveumPackages.literature-quote}/bin/literature-quote";
parseMode = "Markdown";
};
niveum.passport.services = [
{
title = "Literature quote bot";
description = "sends me and my friends three <a href=\"https://logotheca.xn--kiern-0qa.de/\">logotheca</a> quotes a day.";
}
];
}

View File

@@ -1,38 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
niveum.telegramBots.smyth = {
enable = true;
time = "08:00";
tokenFile = config.age.secrets.telegram-token-kmein.path;
chatIds = ["@HerbertWeirSmyth"];
command = toString (pkgs.writers.writeDash "random-smyth" ''
set -efu
RANDOM_SECTION=$(
${pkgs.curl}/bin/curl -sSL http://www.perseus.tufts.edu/hopper/xmltoc?doc=Perseus%3Atext%3A1999.04.0007%3Asmythp%3D1 \
| ${pkgs.gnugrep}/bin/grep -o 'ref="[^"]*"' \
| ${pkgs.coreutils}/bin/shuf -n1 \
| ${pkgs.gnused}/bin/sed 's/^ref="//;s/"$//'
)
${pkgs.curl}/bin/curl -sSL http://www.perseus.tufts.edu/hopper/text?doc=$RANDOM_SECTION\
| ${pkgs.htmlq}/bin/htmlq '#text_main' \
| ${pkgs.gnused}/bin/sed 's/<\/\?hr>//g' \
| ${pkgs.pandoc}/bin/pandoc -f html -t plain --wrap=none
'');
};
systemd.timers.telegram-bot-smyth.timerConfig.RandomizedDelaySec = "10h";
niveum.passport.services = [
{
title = "Herbert Weir Smyth Bot";
description = "sends a random section from Smyth's Ancient Greek grammar to Telegram.";
link = "https://t.me/HerbertWeirSmyth";
}
];
}

View File

@@ -1,29 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
niveum.telegramBots.tlg-wotd = {
enable = true;
time = "9:30";
chatIds = ["@tlgwotd"];
tokenFile = config.age.secrets.telegram-token-kmein.path;
command = toString (pkgs.writers.writeDash "tlg-wotd" ''
${pkgs.curl}/bin/curl -sSL http://stephanus.tlg.uci.edu/Iris/Wotd \
| ${pkgs.recode}/bin/recode html..utf8 \
| ${pkgs.jq}/bin/jq -r '
"*\(.word)* '\'''\(.definition | sub("<.*>"; "") | rtrimstr(" "))'\'''\n\nFirst occurrence: \(.firstOccurrence)\nNumber of occurrences: \(.totalOccurrences)"
'
'');
parseMode = "Markdown";
};
niveum.passport.services = [
{
title = "Thesaurus Linguae Graecae Word of the Day";
description = "sends <a href=\"https://stephanus.tlg.uci.edu/\">TLG</a>'s word of the day to Telegram.";
link = "https://t.me/tlgwotd";
}
];
}

View File

@@ -1,82 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
switch-theme = pkgs.writers.writeDashBin "switch-theme" ''
set -efux
if [ "$1" = toggle ]; then
if [ "$(${pkgs.coreutils}/bin/cat /var/theme/current_theme)" = dark ]; then
${placeholder "out"}/bin/switch-theme light
else
${placeholder "out"}/bin/switch-theme dark
fi
elif test -e "/etc/themes/$1"; then
mkdir -p /var/theme/config
${pkgs.rsync}/bin/rsync --chown=${config.users.users.me.name}:users -a --delete "/etc/themes/$1/" /var/theme/config/
echo "$1" > /var/theme/current_theme
${pkgs.coreutils}/bin/chown ${config.users.users.me.name}:users /var/theme/current_theme
${pkgs.xorg.xrdb}/bin/xrdb -merge /var/theme/config/xresources
${pkgs.procps}/bin/pkill -HUP xsettingsd
else
echo "theme $1 not found"
fi
'';
in {
systemd.services.xsettingsd = {
wantedBy = ["multi-user.target"];
after = ["display-manager.service"];
environment.DISPLAY = ":0";
serviceConfig = {
ExecStart = "${pkgs.xsettingsd}/bin/xsettingsd -c /var/theme/config/xsettings.conf";
User = config.users.users.me.name;
Restart = "always";
RestartSec = "15s";
};
};
systemd.tmpfiles.rules = [
"d /var/theme/ 755 ${config.users.users.me.name} users"
];
environment.systemPackages = [
switch-theme
pkgs.capitaine-cursors
];
home-manager.users.me = {
home.pointerCursor = {
name = "capitaine-cursors-white";
package = pkgs.capitaine-cursors;
size = 16;
};
};
environment.etc = {
"themes/light/xsettings.conf".text = ''
Net/ThemeName "Adwaita"
'';
"themes/light/xresources".text = ''
*background: #ffffff
*foreground: #000000
'';
"themes/dark/xsettings.conf".text = ''
Net/ThemeName "Adwaita-dark"
'';
"themes/dark/xresources".text = ''
*background: #000000
*foreground: #ffffff
'';
};
system.activationScripts.theme.text = ''
export DISPLAY=:0
if test -e /var/theme/current_theme; then
${switch-theme}/bin/switch-theme "$(cat /var/theme/current_theme)" ||
${switch-theme}/bin/switch-theme dark
else
${switch-theme}/bin/switch-theme dark
fi
'';
}

View File

@@ -1,33 +0,0 @@
{
lib,
config,
pkgs,
...
}: let
theme = (import <niveum/lib>).theme pkgs;
in {
environment.systemPackages = [theme.gtk.package theme.icon.package theme.cursor.package];
services.xserver.displayManager.lightdm.greeters.gtk = {
theme = {inherit (theme.gtk) name package;};
iconTheme = {inherit (theme.icon) name package;};
};
home-manager.users.me = {
gtk = {
enable = true;
iconTheme = theme.icon;
theme = theme.gtk;
};
qt = {
enable = true;
platformTheme = "gtk";
};
home.pointerCursor =
theme.cursor
// {
size = 16;
x11.enable = true;
};
};
}

View File

@@ -13,7 +13,7 @@
aggressiveResize = true;
escapeTime = 50;
historyLimit = 7000;
shortcut = "a";
shortcut = "b";
extraConfig = ''
set -g mouse on
@@ -37,15 +37,6 @@
set -g status-left-length 32
set -g status-right-length 150
set -g status-bg colour242
setw -g window-status-format "#[fg=colour12,bg=colour233] #I #[fg=white,bg=colour237] #W "
setw -g window-status-current-format "#[fg=colour12,bg=colour233] * #[fg=white,bg=colour237,bold] #W "
set -g status-left ""
set -g status-right "#[fg=colour255,bg=colour237,bold] #(hostname -I) #[default]#[fg=colour12,bg=colour233] %FT%R "
set -g status-justify left
set -g status-position bottom
'';
};

View File

@@ -1,43 +0,0 @@
{
config,
pkgs,
lib,
...
}: let
inherit (import ../lib) localAddresses;
living-room-id = 131090;
in {
environment.systemPackages = [
(pkgs.writers.writeDashBin "traadfri-party" ''
while true; do
for color in $(traadfri colours | shuf); do
echo "$color"
traadfri group "''${2:-${toString living-room-id}}" --on --colour="$color"
sleep "''${1:-2}"
done
done
'')
];
age.secrets.traadfri-key = {
file = ../secrets/traadfri-key.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
niveum.traadfri = {
enable = true;
user = "kmein";
host = localAddresses.tradfri;
keyFile = config.age.secrets.traadfri-key.path;
rooms = {
corridor = 131080;
kitchen = 131081;
bedroom = 131082;
living-room = living-room-id;
bedside = 131087;
chain = 131089;
};
};
}

151
configs/uni.nix Normal file
View File

@@ -0,0 +1,151 @@
{
config,
pkgs,
lib,
...
}: let
username = "meinhak99";
inherit (import ../lib/email.nix) defaults pronouns;
inherit (import ../lib) remoteDir;
fu-defaults = rec {
imap.host = "mail.zedat.fu-berlin.de";
imap.port = 993;
imap.tls.enable = true;
smtp.host = imap.host;
smtp.port = 465;
smtp.tls.enable = true;
folders.drafts = "Entwürfe";
folders.sent = "Gesendet";
folders.trash = "Papierkorb";
};
in {
home-manager.users.me = {
programs.ssh = {
matchBlocks = {
fu-berlin = {
user = username;
hostname = "login.zedat.fu-berlin.de";
setEnv.TERM = "xterm";
};
};
};
accounts.email.accounts = {
letos =
lib.recursiveUpdate defaults
{
userName = "slfletos";
address = "letos.sprachlit@hu-berlin.de";
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-letos.path}";
imap.host = "mailbox.cms.hu-berlin.de";
imap.port = 993;
smtp.host = "mailhost.cms.hu-berlin.de";
smtp.port = 25;
smtp.tls.useStartTls = true;
};
fu =
lib.recursiveUpdate defaults
(lib.recursiveUpdate fu-defaults
rec {
userName = "meinhak99";
address = "kieran.meinhardt@fu-berlin.de";
aliases = ["${userName}@fu-berlin.de"];
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.email-password-meinhak99.path}";
himalaya = {
enable = true;
settings.backend = "imap";
};
});
};
};
age.secrets = {
email-password-meinhak99 = {
file = ../secrets/email-password-meinhak99.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
email-password-letos = {
file = ../secrets/email-password-letos.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
fu-sftp-key = {
file = ../secrets/fu-sftp-key.age;
owner = "root";
group = "root";
mode = "400";
};
};
# if it fails with "connection reset by peer" run `sudo sshfs ... ... -o ...` manually
# it needs to say 'yes' to the server's fingerprint
system.fsPackages = [ pkgs.sshfs ];
# https://www.zedat.fu-berlin.de/tip4u_157.pdf
fileSystems = let
fu-berlin-cifs-options = [
"uid=${toString config.users.users.me.uid}"
"gid=${toString config.users.groups.users.gid}"
"rw"
"nounix"
"domain=fu-berlin"
"noauto"
"x-systemd.automount"
"x-systemd.device-timeout=1"
"x-systemd.idle-timeout=1min"
];
firstCharacter = lib.strings.substring 0 1;
home-directory-mount = user: {
"${remoteDir}/fu/${user}/home" = {
device = "${user}@login.zedat.fu-berlin.de:/home/${firstCharacter user}/${user}";
fsType = "sshfs";
options = [
"allow_other"
"_netdev"
"x-systemd.automount"
"reconnect"
"ServerAliveInterval=15"
"IdentityFile=${config.age.secrets.fu-sftp-key.path}"
];
};
};
in home-directory-mount "meinhak99";
environment.systemPackages = [
(pkgs.writers.writeDashBin "hu-vpn-split" ''
${pkgs.openfortivpn}/bin/openfortivpn \
--password="$(cat "${config.age.secrets.email-password-letos.path}")" \
--config=${
pkgs.writeText "hu-berlin-split.config" ''
host = forti-ssl.vpn.hu-berlin.de
port = 443
username = slfletos@split_tunnel
''
}
'')
(pkgs.writers.writeDashBin "hu-vpn-full" ''
${pkgs.openfortivpn}/bin/openfortivpn \
--password="$(cat "${config.age.secrets.email-password-letos.path}")" \
--config=${
pkgs.writeText "hu-berlin-full.config" ''
host = forti-ssl.vpn.hu-berlin.de
port = 443
username = slfletos@tunnel_all
''
}
'')
(pkgs.writers.writeDashBin "fu-vpn" ''
if ${pkgs.wirelesstools}/bin/iwgetid | ${pkgs.gnugrep}/bin/grep --invert-match eduroam
then
# root firefox will not open login window unless root owns Xauthority
sudo cp $XAUTHORITY /root/.Xauthority
sudo chown root: /root/.Xauthority
XAUTHORITY=/root/.Xauthority sudo ${pkgs.openconnect}/bin/openconnect vpn.fu-berlin.de --useragent=AnyConnect
fi
'')
];
}

View File

@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
users.users.me.extraGroups = [ "libvirtd" ];
virtualisation.libvirtd.enable = true;
# Enable TPM support for VMs
virtualisation.libvirtd.qemu = {
# swtpm.enable = true;
};
environment.systemPackages = with pkgs; [
virt-manager
];
}

View File

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

View File

@@ -1,6 +1,9 @@
{ config, ... }:
{
networking.wireless = {
enable = true;
networks.Aether.pskRaw = "e1b18af54036c5c9a747fe681c6a694636d60a5f8450f7dec0d76bc93e2ec85a";
secretsFile = config.age.secrets.wifi.path;
# networks.Aether.pskRaw = "e1b18af54036c5c9a747fe681c6a694636d60a5f8450f7dec0d76bc93e2ec85a";
networks.Schilfpalast.pskRaw = "ext:schilfpalast";
};
}

View File

@@ -2,11 +2,10 @@
config,
pkgs,
...
}: {
home-manager.users.me.home.file.".zshrc".text = ''
# nothing to see here
'';
}: let
promptColours.success = "cyan";
promptColours.failure = "red";
in {
environment.systemPackages = [pkgs.atuin];
environment.variables.ATUIN_CONFIG_DIR = toString (pkgs.writeTextDir "/config.toml" ''
auto_sync = true
@@ -52,13 +51,13 @@
export KEYTIMEOUT=1
hash -d nixos=/etc/nixos niveum=${config.users.users.me.home}/projects/niveum
hash -d nixos=/etc/nixos niveum=${config.users.users.me.home}/sync/src/niveum
autoload -U zmv run-help
autoload -U zmv run-help edit-command-line
fpath=(${zsh-completions}/src $fpath)
'';
promptInit = with config.niveum; ''
promptInit = ''
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' check-for-changes true
@@ -99,6 +98,8 @@
zle -N zle-line-init
zle -N zle-keymap-select
zle -N edit-command-line
bindkey -M vicmd v edit-command-line
'';
};
}

1724
flake.lock generated

File diff suppressed because it is too large Load Diff

429
flake.nix
View File

@@ -2,48 +2,134 @@
description = "niveum: packages, modules, systems";
inputs = {
self.submodules = true;
agenix.url = "github:ryantm/agenix";
flake-utils.url = "github:numtide/flake-utils";
home-manager.url = "github:nix-community/home-manager/release-22.11";
autorenkalender.url = "github:kmein/autorenkalender";
coptic-dictionary.url = "github:kmein/coptic-dictionary";
home-manager.url = "github:nix-community/home-manager/release-25.11";
menstruation-backend.url = "github:kmein/menstruation.rs";
menstruation-telegram.url = "github:kmein/menstruation-telegram";
nix-index-database.url = "github:nix-community/nix-index-database";
nixinate.url = "github:matthewcroughan/nixinate";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
nixpkgs-old.url = "github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/master";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nur.url = "github:nix-community/NUR";
recht.url = "github:kmein/recht";
retiolum.url = "github:krebs/retiolum";
scripts.url = "github:kmein/scripts";
retiolum.url = "git+https://git.thalheim.io/Mic92/retiolum";
stockholm.url = "github:krebs/stockholm";
stylix.url = "github:danth/stylix/release-25.11";
telebots.url = "github:kmein/telebots";
tinc-graph.url = "github:kmein/tinc-graph";
traadfri.url = "github:kmein/traadfri";
voidrice.url = "github:Lukesmithxyz/voidrice";
wallpaper-generator.url = "github:pinpox/wallpaper-generator/v1.1";
wallpapers.url = "github:kmein/wallpapers";
agenix.inputs.home-manager.follows = "home-manager";
agenix.inputs.nixpkgs.follows = "nixpkgs";
autorenkalender.inputs.nixpkgs.follows = "nixpkgs";
coptic-dictionary.inputs.nixpkgs.follows = "nixpkgs";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
menstruation-backend.inputs.flake-utils.follows = "flake-utils";
menstruation-backend.inputs.nixpkgs.follows = "nixpkgs";
nixinate.inputs.nixpkgs.follows = "nixpkgs";
tinc-graph.inputs.flake-utils.follows = "flake-utils";
menstruation-telegram.inputs.menstruation-backend.follows = "menstruation-backend";
menstruation-telegram.inputs.nixpkgs.follows = "nixpkgs-old";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
recht.inputs.nixpkgs.follows = "nixpkgs";
scripts.inputs.nixpkgs.follows = "nixpkgs";
stylix.inputs.nixpkgs.follows = "nixpkgs";
tinc-graph.inputs.nixpkgs.follows = "nixpkgs";
voidrice.flake = false;
wallpapers.flake = false;
};
outputs = inputs @ {
self,
nixpkgs,
nur,
home-manager,
nixinate,
agenix,
retiolum,
flake-utils,
...
}:
outputs =
inputs@{
self,
nixpkgs,
nixpkgs-unstable,
nur,
home-manager,
agenix,
retiolum,
nixinate,
flake-utils,
nix-index-database,
stylix,
...
}:
let
lib = nixpkgs.lib;
eachSupportedSystem = lib.genAttrs lib.systems.flakeExposed;
in
{
apps = nixinate.nixinate.x86_64-linux self;
apps = {
x86_64-linux =
let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
lib = nixpkgs.lib;
in
nixinate.nixinate.x86_64-linux self
// {
mock-secrets = {
type = "app";
program = toString (
pkgs.writers.writeDash "mock-secrets" ''
${pkgs.findutils}/bin/find secrets -not -path '*/.*' -type f | ${pkgs.coreutils}/bin/sort > secrets.txt
''
);
};
}
# the following error prevents remote building of ful: https://github.com/NixOS/nixpkgs/issues/177873
// builtins.listToAttrs (
map (
hostname:
let
targets = {
ful = "root@ful";
zaatar = "root@zaatar";
makanek = "root@makanek";
manakish = "root@manakish";
tahina = "root@tahina";
tabula = "root@tabula";
kabsa = "root@kabsa";
fatteh = "root@fatteh";
kibbeh = "root@kibbeh";
};
in
lib.attrsets.nameValuePair "deploy-${hostname}" {
type = "app";
program = toString (
pkgs.writers.writeDash "deploy-${hostname}" ''
exec ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch \
--max-jobs 2 \
--log-format internal-json \
--flake .#${hostname} \
--target-host ${targets.${hostname}} 2>&1 \
| ${pkgs.nix-output-monitor}/bin/nom --json
''
);
}
) (builtins.attrNames self.nixosConfigurations)
)
// {
deploy-ful = {
type = "app";
program = toString (
pkgs.writers.writeDash "deploy-ful" ''
exec ${pkgs.nix}/bin/nix run .#nixinate.ful \
--log-format internal-json 2>&1 \
| ${pkgs.nix-output-monitor}/bin/nom --json
''
);
};
};
};
# TODO overlay for packages
# TODO remove flake-utils dependency from my own repos
nixosModules = {
htgen = import modules/htgen.nix;
moodle-dl = import modules/moodle-dl.nix;
networkmanager-declarative = import modules/networkmanager-declarative.nix;
passport = import modules/passport.nix;
@@ -51,22 +137,42 @@
power-action = import modules/power-action.nix;
system-dependent = import modules/system-dependent.nix;
telegram-bot = import modules/telegram-bot.nix;
traadfri = import modules/traadfri.nix;
go-webring = import modules/go-webring.nix;
};
lib = {
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"
"zoom"
];
};
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 = [
systems/ful/configuration.nix
agenix.nixosModules.default
inputs.self.nixosModules.passport
inputs.self.nixosModules.panoptikon
inputs.self.nixosModules.go-webring
inputs.stockholm.nixosModules.reaktor2
retiolum.nixosModules.retiolum
nur.modules.nixos.default
{ nixpkgs.overlays = [ inputs.stockholm.overlays.default ]; }
{
_module.args.nixinate = {
host = "ful";
@@ -76,72 +182,52 @@
hermetic = false;
};
}
systems/ful/configuration.nix
agenix.nixosModules.default
inputs.self.nixosModules.passport
inputs.self.nixosModules.panoptikon
retiolum.nixosModules.retiolum
nur.nixosModules.nur
];
};
zaatar = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
host = "zaatar";
sshUser = "root";
buildOn = "remote";
substituteOnTarget = true;
hermetic = false;
};
}
systems/zaatar/configuration.nix
inputs.self.nixosModules.moodle-dl
agenix.nixosModules.default
retiolum.nixosModules.retiolum
];
};
kibbeh = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = niveumSpecialArgs system;
modules = [
systems/kibbeh/configuration.nix
agenix.nixosModules.default
retiolum.nixosModules.retiolum
home-manager.nixosModules.home-manager
];
};
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 = {
host = "makanek";
sshUser = "root";
buildOn = "remote";
substituteOnTarget = true;
hermetic = false;
};
}
systems/makanek/configuration.nix
inputs.self.nixosModules.telegram-bot
inputs.self.nixosModules.htgen
inputs.self.nixosModules.passport
agenix.nixosModules.default
retiolum.nixosModules.retiolum
nur.nixosModules.nur
nur.modules.nixos.default
];
};
tahina = nixpkgs.lib.nixosSystem {
tahina = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = niveumSpecialArgs system;
modules = [
systems/tahina/configuration.nix
agenix.nixosModules.default
retiolum.nixosModules.retiolum
];
};
tabula = nixpkgs.lib.nixosSystem {
tabula = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = niveumSpecialArgs system;
modules = [
systems/tabula/configuration.nix
agenix.nixosModules.default
@@ -150,164 +236,167 @@
};
manakish = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
host = "manakish";
sshUser = "root";
buildOn = "remote";
substituteOnTarget = true;
hermetic = false;
};
}
systems/manakish/configuration.nix
agenix.nixosModules.default
retiolum.nixosModules.retiolum
home-manager.nixosModules.home-manager
nur.nixosModules.nur
nix-index-database.nixosModules.default
nur.modules.nixos.default
stylix.nixosModules.stylix
];
};
kabsa = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
niveumPackages = inputs.self.packages.${system};
inherit inputs;
};
specialArgs = niveumSpecialArgs system;
modules = [
{
_module.args.nixinate = {
host = "kabsa";
sshUser = "root";
buildOn = "remote";
substituteOnTarget = true;
hermetic = false;
};
}
systems/kabsa/configuration.nix
agenix.nixosModules.default
retiolum.nixosModules.retiolum
home-manager.nixosModules.home-manager
nur.nixosModules.nur
nur.modules.nixos.default
nix-index-database.nixosModules.default
stylix.nixosModules.stylix
];
};
fatteh = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = niveumSpecialArgs system;
modules = [
systems/fatteh/configuration.nix
agenix.nixosModules.default
retiolum.nixosModules.retiolum
home-manager.nixosModules.home-manager
nur.modules.nixos.default
nix-index-database.nixosModules.default
stylix.nixosModules.stylix
];
};
};
}
// flake-utils.lib.eachSystem [flake-utils.lib.system.x86_64-linux flake-utils.lib.system.aarch64-linux] (system: let
pkgs = import nixpkgs {
inherit system;
overlays = [
nur.overlay
(self: super: {
mpv = super.mpv.override {scripts = [inputs.self.packages.${system}.mpv-visualizer];};
dmenu = super.writers.writeDashBin "dmenu" ''exec ${pkgs.rofi}/bin/rofi -dmenu "$@"'';
})
];
};
wrapScript = {
packages ? [],
name,
script,
}:
pkgs.writers.writeDashBin name ''PATH=$PATH:${nixpkgs.lib.makeBinPath (packages ++ [pkgs.findutils pkgs.coreutils pkgs.gnused pkgs.gnugrep])} ${script} "$@"'';
in {
packages = rec {
packages = eachSupportedSystem (system: let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
nur.overlays.default
(self: super: {
mpv = super.mpv.override {scripts = [super.mpvScripts.visualizer super.mpvScripts.mpris];};
dmenu = super.writers.writeDashBin "dmenu" ''exec ${pkgs.rofi}/bin/rofi -dmenu "$@"'';
})
];
};
wrapScript = {
packages ? [],
name,
script,
}:
pkgs.writers.writeDashBin name ''PATH=$PATH:${nixpkgs.lib.makeBinPath (packages ++ [pkgs.findutils pkgs.coreutils pkgs.gnused pkgs.gnugrep])} ${script} "$@"'';
in {
# linguistics and ancient world
auc = pkgs.callPackage packages/auc.nix {};
betacode = pkgs.callPackage packages/betacode.nix {};
cheat-sh = pkgs.callPackage packages/cheat-sh.nix {};
brassica = pkgs.callPackage packages/brassica.nix {}; # TODO upstream
devanagari = pkgs.callPackage packages/devanagari {};
stardict-tools = pkgs.callPackage packages/stardict-tools.nix {};
heuretes = pkgs.callPackage packages/heuretes.nix {};
ipa = pkgs.writers.writePython3Bin "ipa" {flakeIgnore = ["E501"];} (builtins.readFile packages/ipa.py);
jsesh = pkgs.callPackage packages/jsesh.nix {}; # TODO upstream
kirciuoklis = pkgs.callPackage packages/kirciuoklis.nix {};
polyglot = pkgs.callPackage packages/polyglot.nix {};
tocharian-font = pkgs.callPackage packages/tocharian-font.nix {};
gfs-fonts = pkgs.callPackage packages/gfs-fonts.nix {};
closest = pkgs.callPackage packages/closest {};
# lit
random-zeno = pkgs.callPackage packages/random-zeno.nix {};
literature-quote = pkgs.callPackage packages/literature-quote.nix {};
# krebs
brainmelter = pkgs.callPackage packages/brainmelter.nix {};
cyberlocker-tools = pkgs.callPackage packages/cyberlocker-tools.nix {};
hc = pkgs.callPackage packages/hc.nix {};
kpaste = pkgs.callPackage packages/kpaste.nix {};
pls = pkgs.callPackage packages/pls.nix {};
untilport = pkgs.callPackage packages/untilport.nix {};
radio-news = pkgs.callPackage packages/radio-news.nix {};
# window manager
swallow = pkgs.callPackage packages/swallow.nix {};
devour = pkgs.callPackage packages/devour.nix {};
cheat-sh = pkgs.callPackage packages/cheat-sh.nix {};
vimPlugins-cheat-sh-vim = pkgs.callPackage packages/vimPlugins/cheat-sh.nix {}; # TODO upstream
cro = pkgs.callPackage packages/cro.nix {};
default-gateway = pkgs.callPackage packages/default-gateway.nix {};
depp = pkgs.callPackage packages/depp.nix {};
devanagari = pkgs.callPackage packages/devanagari {};
devour = pkgs.callPackage packages/devour.nix {};
dic = pkgs.callPackage packages/dic.nix {};
dirmir = pkgs.callPackage packages/dirmir.nix {};
dmenu-bluetooth = pkgs.callPackage packages/dmenu-bluetooth.nix {};
dmenu-scrot = pkgs.callPackage packages/dmenu-scrot.nix {};
dns-sledgehammer = pkgs.callPackage packages/dns-sledgehammer.nix {};
dashboard = pkgs.callPackage packages/dashboard {};
fkill = pkgs.callPackage packages/fkill.nix {};
fzfmenu = pkgs.callPackage packages/fzfmenu.nix {};
genius = pkgs.callPackage packages/genius.nix {};
gfs-fonts = pkgs.callPackage packages/gfs-fonts.nix {};
git-preview = pkgs.callPackage packages/git-preview.nix {};
hc = pkgs.callPackage packages/hc.nix {};
heuretes = pkgs.callPackage packages/heuretes.nix {};
htgen = pkgs.callPackage packages/htgen.nix {};
gpt35 = pkgs.callPackage packages/gpt.nix {model = "gpt-3.5-turbo";};
gpt4 = pkgs.callPackage packages/gpt.nix {model = "gpt-4";};
image-convert-favicon = pkgs.callPackage packages/image-convert-favicon.nix {};
image-convert-tolino = pkgs.callPackage packages/image-convert-tolino.nix {};
infschmv = pkgs.callPackage packages/infschmv.nix {};
iolanguage = pkgs.callPackage packages/iolanguage.nix {};
ipa = pkgs.writers.writePython3Bin "ipa" {flakeIgnore = ["E501"];} (builtins.readFile packages/ipa.py);
ix = pkgs.callPackage packages/ix.nix {};
jsesh = pkgs.callPackage packages/jsesh.nix {};
k-lock = pkgs.callPackage packages/k-lock.nix {};
kirciuoklis = pkgs.callPackage packages/kirciuoklis.nix {};
klem = pkgs.callPackage packages/klem.nix {};
kpaste = pkgs.callPackage packages/kpaste.nix {};
literature-quote = pkgs.callPackage packages/literature-quote.nix {};
mahlzeit = pkgs.haskellPackages.callPackage packages/mahlzeit.nix {};
man-pandoc = pkgs.callPackage packages/man/pandoc.nix {};
man-pandoc = pkgs.callPackage packages/man/pandoc.nix {}; # TODO upstream
man-pdf = pkgs.callPackage packages/man-pdf.nix {};
mansplain = pkgs.callPackage packages/mansplain.nix {};
manual-sort = pkgs.callPackage packages/manual-sort.nix {};
menu-calc = pkgs.callPackage packages/menu-calc.nix {};
meteo = pkgs.callPackage packages/meteo.nix {};
noise-waves = pkgs.callPackage packages/noise-waves.nix {};
mpv-radio = pkgs.callPackage packages/mpv-radio.nix {di-fm-key-file = "/dev/null";};
mpv-tuner = pkgs.callPackage packages/mpv-tuner.nix {di-fm-key-file = "/dev/null";};
mpv-tv = pkgs.callPackage packages/mpv-tv.nix {};
mpv-visualizer = pkgs.callPackage packages/mpv-visualizer.nix {};
mpv-iptv = pkgs.callPackage packages/mpv-iptv.nix {};
new-mac = pkgs.callPackage packages/new-mac.nix {};
nix-git = pkgs.callPackage packages/nix-git.nix {};
nix-index-update = pkgs.callPackage packages/nix-index-update.nix {inherit system;};
opustags = pkgs.callPackage packages/opustags.nix {};
pls = pkgs.callPackage packages/pls.nix {};
notemenu = pkgs.callPackage packages/notemenu.nix {niveumPackages = self.packages.${system};};
opustags = pkgs.callPackage packages/opustags.nix {}; # TODO upstream
q = pkgs.callPackage packages/q.nix {};
qrpaste = pkgs.callPackage packages/qrpaste.nix {};
go-webring = pkgs.callPackage packages/go-webring.nix {}; # TODO upstream
rfc = pkgs.callPackage packages/rfc.nix {};
gimp = pkgs.callPackage packages/gimp.nix {};
scanned = pkgs.callPackage packages/scanned.nix {};
swallow = pkgs.callPackage packages/swallow.nix {};
text2pdf = pkgs.callPackage packages/text2pdf.nix {};
text2pdf = pkgs.callPackage packages/text2pdf.nix {}; # TODO upstream
timer = pkgs.callPackage packages/timer.nix {};
tocharian-font = pkgs.callPackage packages/tocharian-font.nix {};
trans = pkgs.callPackage packages/trans.nix {};
trans = pkgs.callPackage packages/trans.nix {}; # TODO upstream
ttspaste = pkgs.callPackage packages/ttspaste.nix {};
unicodmenu = pkgs.callPackage packages/unicodmenu.nix {};
untilport = pkgs.callPackage packages/untilport.nix {};
emailmenu = pkgs.callPackage packages/emailmenu.nix {};
stag = pkgs.callPackage packages/stag.nix {}; # TODO upstream
vg = pkgs.callPackage packages/vg.nix {};
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-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 {};
vimPlugins-vim-fsharp = pkgs.callPackage packages/vimPlugins/vim-fsharp.nix {};
vimPlugins-vim-mail = pkgs.callPackage packages/vimPlugins/vim-mail.nix {};
vimPlugins-vim-reason-plus = pkgs.callPackage packages/vimPlugins/vim-reason-plus.nix {};
vim = pkgs.callPackage packages/vim.nix {niveumPackages = self.packages.${system};};
obsidian-vim = pkgs.callPackage packages/obsidian-vim.nix {};
vimPlugins-icalendar-vim = pkgs.callPackage packages/vimPlugins/icalendar-vim.nix {}; # TODO upstream
vimPlugins-jq-vim = pkgs.callPackage packages/vimPlugins/jq-vim.nix {}; # TODO upstream
vimPlugins-typst-vim = pkgs.callPackage packages/vimPlugins/typst-vim.nix {}; # TODO upstream
vimPlugins-mdwa-nvim = pkgs.callPackage packages/vimPlugins/mdwa-nvim.nix {}; # TODO upstream
vimPlugins-vim-ernest = pkgs.callPackage packages/vimPlugins/vim-ernest.nix {}; # TODO upstream
vimPlugins-vim-256noir = pkgs.callPackage packages/vimPlugins/vim-256noir.nix {}; # TODO upstream
vimPlugins-vim-colors-paramount = pkgs.callPackage packages/vimPlugins/vim-colors-paramount.nix {}; # TODO upstream
vimPlugins-vim-fetch = pkgs.callPackage packages/vimPlugins/vim-fetch.nix {}; # TODO upstream
vimPlugins-vim-fsharp = pkgs.callPackage packages/vimPlugins/vim-fsharp.nix {}; # TODO upstream
vimPlugins-vim-mail = pkgs.callPackage packages/vimPlugins/vim-mail.nix {}; # TODO upstream
vimPlugins-vim-reason-plus = pkgs.callPackage packages/vimPlugins/vim-reason-plus.nix {}; # TODO upstream
vimv = pkgs.callPackage packages/vimv.nix {};
weechat-declarative = pkgs.callPackage packages/weechat-declarative.nix {};
weechatScripts-hotlist2extern = pkgs.callPackage packages/weechatScripts/hotlist2extern.nix {};
wttr = pkgs.callPackage packages/wttr.nix {};
itl = pkgs.callPackage packages/itl.nix {};
itools = pkgs.callPackage packages/itools.nix {itl = itl;};
weechat-declarative = pkgs.callPackage packages/weechat-declarative.nix {}; # TODO upstream
weechatScripts-hotlist2extern = pkgs.callPackage packages/weechatScripts/hotlist2extern.nix {}; # TODO upstream
dmenu-randr = pkgs.callPackage packages/dmenu-randr.nix {};
wttr = pkgs.callPackage packages/wttr.nix {}; # TODO upstream
booksplit = wrapScript {
script = inputs.voidrice.outPath + "/.local/bin/booksplit";
name = "booksplit";
packages = [pkgs.ffmpeg pkgs.glibc.bin];
};
dmenu-randr = wrapScript {
script = inputs.voidrice.outPath + "/.local/bin/displayselect";
name = "dmenu-randr";
packages = [pkgs.dmenu pkgs.bc pkgs.psmisc pkgs.util-linux pkgs.xorg.xrandr pkgs.gawk pkgs.libnotify pkgs.arandr (pkgs.writers.writeDashBin "setbg" "")];
};
tag = wrapScript {
script = inputs.voidrice.outPath + "/.local/bin/tag";
name = "tag";
packages = [pkgs.ffmpeg];
};
};
});
});
};
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
bright = "#151515";
dark = "#000000";
};
red = {
bright = "#de575c";
dark = "#de575c";
};
yellow = {
bright = "#ebe971";
dark = "#ebe971";
};
green = {
bright = "#00b853";
dark = "#00b853";
};
blue = {
bright = "#90d0f0";
dark = "#7fc6f0";
};
magenta = {
bright = "#cf9ffa";
dark = "#cf9ffa";
};
cyan = {
bright = "#4ae5e8";
dark = "#4ae5e8";
};
white = {
bright = "#ffffff";
dark = "#bbbbbb";
};
background = black.dark;
foreground = white.dark;
cursor = green.bright;
}

View File

@@ -1,37 +0,0 @@
{
black = {
bright = "#444444";
dark = "#1c1c1c";
};
red = {
bright = "#ff8700";
dark = "#af5f5f";
};
green = {
bright = "#87af87";
dark = "#5f875f";
};
yellow = {
bright = "#ffffaf";
dark = "#87875f";
};
blue = {
bright = "#8fafd7";
dark = "#5f87af";
};
magenta = {
bright = "#8787af";
dark = "#5f5f87";
};
cyan = {
bright = "#5fafaf";
dark = "#5f8787";
};
white = {
bright = "#999999";
dark = "#6c6c6c";
};
background = "#262626";
foreground = "#bcbcbc";
cursor = "#bcbcbc";
}

View File

@@ -1,37 +0,0 @@
{
black = {
dark = "#000000";
bright = "#323232";
};
red = {
dark = "#ff3333";
bright = "#ff6565";
};
green = {
dark = "#b8cc52";
bright = "#e9fe83";
};
yellow = {
dark = "#e6c446";
bright = "#fff778";
};
blue = {
dark = "#36a3d9";
bright = "#68d4ff";
};
magenta = {
dark = "#f07078";
bright = "#ffa3aa";
};
cyan = {
dark = "#95e5cb";
bright = "#c7fffc";
};
white = {
dark = "#ffffff";
bright = "#ffffff";
};
background = "#0e1419";
foreground = "#e5e1cf";
cursor = "#f19618";
}

View File

@@ -1,37 +0,0 @@
{
black = {
dark = "#000000";
bright = "#323232";
};
red = {
dark = "#ff3333";
bright = "#ff6565";
};
green = {
dark = "#86b200";
bright = "#b8e532";
};
yellow = {
dark = "#f19618";
bright = "#ffc849";
};
blue = {
dark = "#41a6d9";
bright = "#73d7ff";
};
magenta = {
dark = "#f07078";
bright = "#ffa3aa";
};
cyan = {
dark = "#4cbe99";
bright = "#7ff0cb";
};
white = {
dark = "#ffffff";
bright = "#ffffff";
};
background = "#fafafa";
foreground = "#5b6673";
cursor = "#ff6900";
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
bright = "#454545";
dark = "#222222";
};
red = {
bright = "#FA8072";
dark = "#B22222";
};
green = {
bright = "#779A3E";
dark = "#556B2F";
};
yellow = {
bright = "#DAA520";
dark = "#B8860B";
};
blue = {
bright = "#6495ED";
dark = "#4682B4";
};
magenta = {
bright = "#DA70D6";
dark = "#9932CC";
};
cyan = {
bright = "#B0E0E6";
dark = "#87CEEB";
};
white = {
bright = "#FFFFFF";
dark = "#C0C0C0";
};
background = "#000000";
foreground = "#AAAAAA";
cursor = green.bright;
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
bright = "#888888";
dark = "#222222";
};
red = {
bright = "#ef8383";
dark = "#f01818";
};
yellow = {
bright = "#efe28b";
dark = "#f8d824";
};
green = {
bright = "#23d830";
dark = "#7ed684";
};
blue = {
bright = "#b3bfef";
dark = "#7890f0";
};
magenta = {
bright = "#efb3e3";
dark = "#f078d8";
};
cyan = {
bright = "#9ce2e2";
dark = "#54e4e4";
};
white = {
bright = "#ffffff";
dark = "#a5a5a5";
};
background = "#000000";
foreground = "#bbbbbb";
cursor = green.bright;
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
bright = "#818383";
dark = "#000000";
};
red = {
bright = "#fc391f";
dark = "#c23621";
};
yellow = {
bright = "#eaec23";
dark = "#adad27";
};
green = {
bright = "#31e722";
dark = "#25bc24";
};
blue = {
bright = "#5833ff";
dark = "#492ee1";
};
magenta = {
bright = "#f935f8";
dark = "#d338d3";
};
cyan = {
bright = "#14f0f0";
dark = "#33bbc8";
};
white = {
bright = "#e9ebeb";
dark = "#cbcccd";
};
background = black.dark;
foreground = white.dark;
cursor = green.bright;
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,37 +0,0 @@
rec {
black = {
dark = "#073642";
bright = "#002b36";
};
red = {
dark = "#dc322f";
bright = "#cb4b16";
};
yellow = {
dark = "#b58900";
bright = "#657b83";
};
green = {
dark = "#859900";
bright = "#586e75";
};
blue = {
dark = "#268bd2";
bright = "#839496";
};
magenta = {
dark = "#d33682";
bright = "#6c71c4";
};
cyan = {
dark = "#2aa198";
bright = "#93a1a1";
};
white = {
dark = "#eee8d5";
bright = "#fdf6e3";
};
background = black.bright;
foreground = blue.bright;
cursor = cyan.bright;
}

View File

@@ -1,37 +0,0 @@
rec {
black = {
dark = "#073642";
bright = "#002b36";
};
red = {
dark = "#dc322f";
bright = "#cb4b16";
};
yellow = {
dark = "#b58900";
bright = "#657b83";
};
green = {
dark = "#859900";
bright = "#586e75";
};
blue = {
dark = "#268bd2";
bright = "#839496";
};
magenta = {
dark = "#d33682";
bright = "#6c71c4";
};
cyan = {
dark = "#2aa198";
bright = "#93a1a1";
};
white = {
dark = "#eee8d5";
bright = "#fdf6e3";
};
background = white.bright;
foreground = yellow.bright;
cursor = green.bright;
}

View File

@@ -1,5 +1,5 @@
pkgs: rec {
terminal = "alacritty";
browser = "${pkgs.firefox}/bin/firefox";
fileManager = "${pkgs.cinnamon.nemo}/bin/nemo";
fileManager = "${pkgs.pcmanfm}/bin/pcmanfm";
}

View File

@@ -1,4 +1,4 @@
rec {
{
tmpfilesConfig = {
type,
path,
@@ -15,6 +15,8 @@ rec {
repository = "rest:http://${host}:${toString port}/";
};
remoteDir = "/home/kfm/remote";
firewall = lib: {
accept = {
source,
@@ -40,16 +42,14 @@ rec {
sshPort = 22022;
colours = import ./colours/owickstrom-dark.nix;
theme = pkgs: {
gtk = {
name = "Adwaita-dark";
package = pkgs.gnome.gnome-themes-extra;
package = pkgs.gnome-themes-extra;
};
icon = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
package = pkgs.adwaita-icon-theme;
};
cursor = {
name = "capitaine-cursors-white";
@@ -69,20 +69,18 @@ rec {
github = "kmein";
email = "kmein@posteo.de";
name = "Kierán Meinhardt";
sshKeys = pkgs:
pkgs.lib.strings.splitString "\n" (pkgs.lib.strings.fileContents (pkgs.fetchurl {
url = "https://github.com/kmein.keys";
hash = "sha256-TvvPwplrH9cw7NE4GKqbE5ga+oBHM+TkjxYQ3b1fpLI=";
}));
sshKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDyTnGhFq0Q+vghNhrqNrAyY+CsN7nNz8bPfiwIwNpjk" # kabsa
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOiQEc8rTr7C7xVLYV7tQ99BDDBLrJsy5hslxtCEatkB" # manakish
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIByreBjBEMJKjgpKLd5XZHIUUwIhNafVqN6OUOQpJa3y" # fatteh
];
};
syncthing.devices = {
kabsa.id = "R6DEBD7-G5RYDKN-VFA3HPO-WX4DNVI-373F7OQ-AW5MZTT-3L4BDVW-Y6ROEAF";
heym.id = "HLQSG3D-WSKLA6S-MEYQ3EU-GDBGABE-PY53RQ6-SWQAP2I-Z5MVBVX-MYPJXAM";
kibbeh.id = "HLQSG3D-WSKLA6S-MEYQ3EU-GDBGABE-PY53RQ6-SWQAP2I-Z5MVBVX-MYPJXAM";
manakish.id = "AJVBWR2-VFFAGZF-7ZF5JAX-T63GMOG-NZ446WK-MC5E6WK-6X6Q2HE-QQA2JQ3";
toum.id = "CBJQXFF-FMFGWFU-2J6FMPR-SRDTSGX-7NHOYOH-CQCABKF-KQJMRJC-SDE24Q4";
zaatar.id = "CGHO6LK-ZJBAXBD-UWI7AH3-BXYARE6-EUIM7PE-O2FUCOM-VCCRNCM-IG34WQ7";
tahina.id = "UKJ2CBO-EQPKQL4-3QLRUSG-SSYR6AB-CCCUTKU-CLPYR7N-RUI5A6Y-JTL5NA4";
fatteh.id = "GSOGYT3-2GBHZXT-MNCTDIY-3BJIR4V-OHVOOMJ-ICVLKXR-U4C7RFB-HJOK3AC";
};
ignorePaths = [

View File

@@ -1,14 +1,23 @@
{lib, ...}: {
cock = rec {
user = "2210@cock.li";
address = user;
imap = "mail.cock.li";
smtp = imap;
smtpSettings = smtp: "smtp://${smtp}:587";
folders = {
drafts = "Drafts";
sent = "Sent";
trash = "Trash";
rec {
thunderbirdProfile = "donnervogel";
pronouns = builtins.concatStringsSep "/" [
"er"
"he"
"is"
"οτος"
"هو"
"̄ϥ"
"он"
"han"
""
];
defaults = {
thunderbird = {
enable = true;
profiles = [thunderbirdProfile];
};
aerc.enable = true;
realName = "Kierán Meinhardt";
folders.inbox = "INBOX";
};
}

View File

@@ -1,224 +0,0 @@
{
pkgs,
wirelessInterface,
colours,
batteryName,
accounts,
}: let
inherit (pkgs) lib;
setsid = script:
pkgs.writers.writeDash "setsid-command" ''
${pkgs.util-linux}/bin/setsid ${script}
'';
in {
theme = {
name = "plain";
overrides = {
critical_fg = colours.red.bright;
good_fg = colours.green.bright;
idle_fg = colours.foreground;
info_fg = colours.cyan.bright;
warning_fg = colours.yellow.bright;
warning_bg = colours.background;
critical_bg = colours.background;
good_bg = colours.background;
idle_bg = colours.background;
info_bg = colours.background;
separator = "";
separator_bg = "auto";
separator_fg = colours.black.bright;
};
};
icons.name = "awesome6";
icons.overrides.rss = "";
icons.overrides.vpn = "";
icons.overrides.irc = "";
block = [
{
block = "weather";
autolocate = true;
format = "{location}: {temp}C";
service = {
name = "openweathermap";
city_id = "2950159";
units = "metric";
};
}
{
block = "custom";
interval = 60 * 5;
command = let
spacetime = import ../configs/spacetime.nix;
in
pkgs.writers.writePython3 "sun.py" {
libraries = [pkgs.python3Packages.astral];
flakeIgnore = ["E121" "E501"];
}
''
import astral
import astral.moon
import astral.sun
current_phase = astral.moon.phase()
city = astral.LocationInfo("Berlin", "Germany", "${spacetime.time.timeZone}", ${toString spacetime.location.latitude}, ${toString spacetime.location.longitude})
sun = astral.sun.sun(city.observer, date=astral.today(), tzinfo=city.timezone)
print("{} {} {}{}".format(sun["sunrise"].strftime("%R"), sun["sunset"].strftime("%R"), "" if current_phase < 14 else "", round(current_phase, 1)))
'';
}
{
block = "github";
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;
command = pkgs.writers.writeDash "todo" ''
${pkgs.todoman}/bin/todo --porcelain | ${pkgs.jq}/bin/jq -r '
map(select(.due != null))
| (map(select(.due < now)) | length) as $overdue
| (map(select(.due >= now and .due < now + (60 * 60 * 24))) | length) as $dueToday
| {
icon: "tasks",
text: (($overdue + $dueToday) as $sum | if $sum > 0 then $sum | tostring else "" end),
state: (
if $overdue > 0 then
"Critical"
elif $dueToday > 0 then
"Warning"
else
"Idle"
end
)
}
'
'';
json = true;
hide_when_empty = true;
}
{
block = "custom";
interval = 60 * 5;
command = let
query-account = name: account: "${pkgs.writers.writeDash "query-imap-${name}" ''
password=$(${toString account.passwordCommand})
${pkgs.coreutils}/bin/timeout 1 ${pkgs.curl}/bin/curl -sSL -u ${lib.escapeShellArg account.userName}:"$password" imaps://${account.imap.host} -X 'STATUS INBOX (UNSEEN)' \
| ${pkgs.gnugrep}/bin/grep -Eo '[0-9]+' \
| sed 's/^/{"${name}":/;s/$/}/'
''} &";
in
pkgs.writers.writeDash "unread-mail" ''
{
${lib.concatStringsSep "\n" (lib.mapAttrsToList query-account accounts)}
wait
} | jq -s 'if length == 0 then {text: "", icon: "mail", state: "Idle"} else
add
| (values | add) as $sum
| {
text: (if $sum > 0 then $sum | tostring else "" end),
icon: "mail",
state: (
if .["hu-student"] > 0 or .["hu-employee"] > 0 or .posteo > 0 then
"Warning"
elif $sum > 0 then
"Info"
else
"Idle"
end
)
} end'
'';
json = true;
hide_when_empty = true;
}
{
block = "custom";
interval = 60;
command = pkgs.writers.writeDash "weechat" ''
ssh -o ConnectTimeout=1 makanek cat /var/lib/weechat/hotlist.txt | sed 's/,/\n/g' | wc -l | jq '{
text: (if . > 0 then . | tostring else "" end),
state: (if . > 0 then "Info" else "Idle" end),
icon: "irc"
}'
'';
json = true;
hide_when_empty = true;
}
{
block = "custom";
interval = 5;
command = pkgs.writers.writeDash "hu-berlin-vpn" ''
PATH=${lib.makeBinPath [pkgs.systemd]}
(systemctl is-active --quiet openvpn-hu-berlin.service && echo '{"state": "Good", "text": "OpenVPN", "icon": "vpn"}') \
|| (systemctl is-active --quiet hu-vpn.service && echo '{"state": "Good", "text": "PPP+SSL", "icon": "vpn"}') \
|| echo '{"state": "Idle", "icon": "vpn", "text": ""}'
'';
json = true;
hide_when_empty = true;
}
{
block = "net";
device = wirelessInterface;
format = "{ssid} {signal_strength}";
}
{
block = "battery";
device = batteryName;
}
{
block = "sound";
on_click = "pavucontrol";
}
{
block = "disk_space";
format = "{icon} {available}";
}
{
block = "memory";
display_type = "memory";
format_mem = "{mem_used;G}";
clickable = false;
}
{block = "load";}
{
block = "custom";
interval = 1;
json = true;
command = pkgs.writers.writeDash "time" ''
${pkgs.jq}/bin/jq -n \
--arg now "$(${pkgs.coreutils}/bin/date +'%Y-%m-%d (%W %a) %H:%M')" \
--argjson nextEvent "$(
${pkgs.khal}/bin/khal list --format "{start}" --day-format "" $(${pkgs.coreutils}/bin/date +'%Y-%m-%d %H:%M') 2>/dev/null \
| ${pkgs.gnugrep}/bin/grep -E '[0-9]{2}:[0-9]{2}' \
| ${pkgs.coreutils}/bin/head -1 \
| ${pkgs.coreutils}/bin/date --date="$(cat)" +%s
)" \
'{
text: $now,
icon: "time",
state: (
($nextEvent - now) as $deltaT
| if $deltaT < (5 * 60) then
"Critical"
elif $deltaT < (15 * 60) then
"Warning"
elif $deltaT < (60 * 60) then
"Info"
else
"Idle"
end
)
}'
'';
}
];
}

34
lib/keyboards/XCompose Normal file
View File

@@ -0,0 +1,34 @@
# Import default rules from the system Compose file
include "%L"
# Custom definitions
<Multi_key> <U0634> <U0634> : "ژ" U0698 # ز + ز = ژ
<Multi_key> <U063A> <U063A> : "گ" U06AF # غ + غ = گ
<Multi_key> <U0641> <U0641> : "ڤ" U06A4 # ف + ف = ڤ
<Multi_key> <U062C> <U062C> : "چ" U0686 # ج + ج = چ
<Multi_key> <U0628> <U0628> : "پ" U067E # ب + ب = پ
<Multi_key> <U0643> <U0643> : "ک" U06A9 # ك + ك = ک
<Multi_key> <U064A> <U064A> : "ی" U06CC # ي + ي = ی
<Multi_key> <U0647> <U064A> : "ۀ" U06C0 # ه + ي = ۀ
<Multi_key> <E> <E> : "ɛ" U025B
<Multi_key> <O> <O> : "ɔ" U0254
<Multi_key> <s> <h> : "ʃ" U0283
<Multi_key> <g> <h> : "ɣ" U0283
<Multi_key> <b> <h> : "β" U0283
<Multi_key> <p> <h> : "ɸ" U0283
<Multi_key> <z> <h> : "ʒ" U0292
<Multi_key> <e> <i> : "ɪ" U026A
<Multi_key> <e> <u> : "ʊ" U028A
<Multi_key> <colon> <colon> : "ː" U02D0
<Multi_key> <question> <period> : "ʔ" U0294
<Multi_key> <period> <question> : "ʕ" U0295
<Multi_key> <apostrophe> <period> : "ˈ" U02C8
<Multi_key> <period> <apostrophe> : "ˌ" U02CC
<dead_belowring> <nobreakspace> : "̥" U0325 # COMBINING RING BELOW
<dead_belowbreve> <nobreakspace> : "̮" U032E # COMBINING BREVE BELOW
<dead_invertedbreve> <nobreakspace> : "̑" U0311 # COMBINING INVERTED BREVE
<dead_belowmacron> <nobreakspace> : "̱" U0331 # COMBINING MACRON BELOW
<dead_belowcircumflex> <nobreakspace> : "̯" U032F # COMBINING INVERTED BREVE BELOW
<dead_circumflex> <Multi_key> <underscore> <e> : "ᵊ" U1D4A
# TODO zwnj

23
lib/keyboards/arabic Normal file
View File

@@ -0,0 +1,23 @@
// Arabic keyboard using Buckwalter transliteration
// http://www.qamus.org/transliteration.htm
// Martin Vidner
// stolen from https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/2505a3ec2605ea7303bc6de68acf96578f0fd424/symbols/ara#L179
// TODO 06CC ARABIC LETTER FARSI YEH
default partial alphanumeric_keys
xkb_symbols "buckwalter" {
include "ara(buckwalter)"
name[Group1] = "Arabic (Buckwalter + Persian)";
key <AE09> {[ 0x1000669, parenleft ] };
key <AE10> {[ 0x1000660, parenright ] };
key <AD10> {[ Arabic_tehmarbuta, 0x100067E ] }; // پ
key <AD11> {[ 0x100200C, 0x1000671 ] }; // alif wasla, ZWNJ
key <AD12> {[ 0x10006C0, Arabic_hamzaonyeh ] }; // ۀ
key <AC05> {[ Arabic_ghain, 0x10006AF ] }; // گ
key <AC07> {[ Arabic_jeem, 0x1000686 ] }; // چ
key <AB03> {[ 0x10006A9, 0x1000698 ] }; // ک ژ
key <AB04> {[ Arabic_theh, 0x10006A4 ] }; // ڤ
key <AB09> {[ period, Arabic_hamzaonalef ] };
};

60
lib/keyboards/avestan Normal file
View File

@@ -0,0 +1,60 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com/p/keyboardlayouteditor
//
// Version 0.2, changed AD09.
partial default alphanumeric_keys
xkb_symbols "avestan"
{
name[Group1] = "Iran - Avestan";
key <AB01> { [ U10B30, U10B32 ] }; // 𐬰 𐬲
key <AB02> { [ U10B11, U10B12 ] }; // 𐬑 𐬒
key <AB03> { [ U10B17, UE102 ] }; // 𐬗 
key <AB04> { [ U10B2C, U10B13 ] }; // 𐬬 𐬓
key <AB05> { [ U10B20, U10B21 ] }; // 𐬠𐬡
key <AB06> { [ U10B25, U10B27 ] }; // 𐬥 𐬧
key <AB07> { [ U10B28, U10B29 ] }; // 𐬨 𐬩
key <AB08> { [ U10B3C, U10B39 ] }; // 𐬼 𐬹
key <AB09> { [ U10B3E, U10B3D ] }; // 𐬾 𐬽
key <AB10> { [ U10B3F, periodcentered ] }; // 𐬿 ·
key <AC01> { [ U10B00, U10B01 ] }; // 𐬀 𐬁
key <AC02> { [ U10B2F, U10B31 ] }; // 𐬯 𐬱
key <AC03> { [ U10B1B, U10B1C ] }; // 𐬛 𐬜
key <AC04> { [ U10B1F, U10B16 ] }; // 𐬟 𐬖
key <AC05> { [ U10B14, U10B15 ] }; // 𐬔 𐬕
key <AC06> { [ U10B35, UE100 ] }; // 𐬵 
key <AC07> { [ U10B18, U10B24 ] }; // 𐬘 𐬤
key <AC08> { [ U10B10, UE101 ] }; // 𐬐 
key <AC09> { [ U10B2E, UE103 ] }; // 𐬮 
key <AC10> { [ U10B3B, U10B3A ] }; // 𐬻 𐬺
key <AC11> { [ U10B1D ] }; // 𐬝
key <AD01> { [ U10B22, U10B23 ] }; // 𐬢 𐬣
key <AD02> { [ U10B33, U10B34 ] }; // 𐬳 𐬴
key <AD03> { [ U10B08, U10B09 ] }; // 𐬈 𐬉
key <AD04> { [ U10B2D, U10B26 ] }; // 𐬭 𐬦
key <AD05> { [ U10B19, U10B1A ] }; // 𐬙 𐬚
key <AD06> { [ U10B2B, U10B2A ] }; // 𐬫 𐬪
key <AD07> { [ U10B0E, U10B0F ] }; // 𐬎 𐬏
key <AD08> { [ U10B0C, U10B0D ] }; // 𐬌 𐬍
key <AD09> { [ U10B0A, U10B0B ] }; // 𐬊 𐬋
key <AD10> { [ U10B1E ] }; // 𐬞
key <AD11> { [ U10B06, U10B07 ] }; // 𐬆 𐬇
key <AD12> { [ U10B02, U10B03 ] }; // 𐬂 𐬃
key <AE01> { [ U10B78 ] }; // 𐭸
key <AE02> { [ U10B79 ] }; // 𐭹
key <AE03> { [ U10B7A ] }; // 𐭺
key <AE04> { [ U10B7B ] }; // 𐭻
key <AE05> { [ U10B7C ] }; // 𐭼
key <AE06> { [ U10B7D ] }; // 𐭽
key <AE07> { [ U10B7E ] }; // 𐭾
key <AE08> { [ U10B7F ] }; // 𐭿
key <BKSL> { [ U10B04, U10B05 ] }; // 𐬄 𐬅
key <LSGT> { [ U10B04, U10B05 ] }; // 𐬄 𐬅
};

79
lib/keyboards/coptic Normal file
View File

@@ -0,0 +1,79 @@
// Coptic keyboard symbols for XKB and PC keyboard
// based on the mapping of logos
// (C) 2006 Moheb Mekhaiel <mohebm@gmx.de>
//
// Permission is granted to anyone to use, distribute and modify
// this file in any way, provided that the above copyright notice
// is left intact and the author of the modification summarizes
// the changes in this header.
//
// This file is distributed without any expressed or implied warranty.
partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Coptic";
key <TLDE> { [ U0308, U0311, U0361, U2CE5 ] };
key <AE01> { type[Group1] = "FOUR_LEVEL",
[ 1, U0304, VoidSymbol, U2CE6 ] };
key <AE02> { [ 2, U0306, U2CFD, U2CE7 ] };
key <AE03> { [ 3, U0374, U2056, U2CE8 ] };
key <AE04> { [ 4, U0375, U2058, U2CE9 ] };
key <AE05> { [ 5, U0307, U2059, U2CEA ] };
key <AE06> { [ 6, U0323, U2C8B, U2C8A ] };
key <AE07> { [ 7, U2CE4 ] };
key <AE08> { [ 8, U002A, U2026 ] };
key <AE09> { [ 9, parenleft, U201C, plusminus ] };
key <AE10> { [ 0, parenright, U201D, degree ] };
key <AE11> { [ U00B7, underscore, U2013, U2014 ] };
key <AE12> { [ U2E17, U0305, U033F ] };
key <BKSL> { [ U0300, U007C, backslash, U007C ] };
key <AD01> { [ U2C91, U2C90 ] };
key <AD02> { [ U2CB1, U2CB0 ] };
key <AD03> { [ U2C89, U2C88 ] };
key <AD04> { [ U2CA3, U2CA2 ] };
key <AD05> { [ U2CA7, U2CA6, U03EF, U03EE ] };
key <AD06> { [ U2CAF, U2CAE ] };
key <AD07> { [ U2CA9, U2CA8 ] };
key <AD08> { [ U2C93, U2C92 ] };
key <AD09> { [ U2C9F, U2C9E ] };
key <AD10> { [ U2CA1, U2CA0 ] };
key <AD11> { [ bracketleft,braceleft, U2018 ] };
key <AD12> { [ bracketright,braceright,U2019 ] };
key <AC01> { [ U2C81, U2C80 ] };
key <AC02> { [ U2CA5, U2CA4, U03E3, U03E2 ] };
key <AC03> { [ U2C87, U2C86, U03EF, U03EE ] };
key <AC04> { [ U2CAB, U2CAA, U03E5, U03E4 ] };
key <AC05> { [ U2C85, U2C84, U03EB, U03EA ] };
key <AC06> { [ U2C8F, U2C8E, U03E9, U03E8 ] };
key <AC07> { [ U03EB, U03EA, U03EB, U03EA ] };
key <AC08> { [ U2C95, U2C94, U03E7, U03E6 ] };
key <AC09> { [ U2C97, U2C96 ] };
key <AC10> { [ semicolon, colon, U2053, dead_doubleacute ] };
key <AC11> { [ apostrophe, U2CFF, U0022 ] };
key <AB01> { [ U2C8D, U2C8C ] };
key <AB02> { [ U2C9D, U2C9C ] };
key <AB03> { [ U2CAD, U2CAC, U03ED, U03EC ] };
key <AB04> { [ U03E3, U03E2, U03E3, U03E2 ] };
key <AB05> { [ U2C83, U2C82 ] };
key <AB06> { [ U2C9B, U2C9A ] };
key <AB07> { [ U2C99, U2C98 ] };
key <AB08> { [ comma, less, U00AB, U2039 ] };
key <AB09> { [ period, greater, U00BB, U203A ] };
key <AB10> { [ U0301, U2CFE, slash, question ] };
key <RALT> { type[Group1]="TWO_LEVEL",
[ ISO_Level3_Shift, Multi_key ] };
modifier_map Mod5 { <RALT> };
//include "level3(ralt_switch_multikey)"
// End alphanumeric section
};

114
lib/keyboards/farsi Normal file
View File

@@ -0,0 +1,114 @@
// https://github.com/gpuminingir/Farsi-Phonetic-Keyboard-Linux
// by @gpuminingir
partial alphanumeric_keys
xkb_symbols "qwerty" {
// Classic Finnish keyboard layout without dead keys and {[]} on asdf + AltG
name[Group1]="Persian (QWERTY)";
include "ir(pesq_part_basic)"
include "ir(pesq_part_ext)"
include "ir(pesq_part_keypad)"
include "nbsp(zwnj2nb3nnb4)"
include "level3(ralt_switch)"
};
hidden partial alphanumeric_keys
xkb_symbols "pesq_part_basic" {
// Persian digits
key <AE01> { [ Arabic_1, exclam, exclam ] }; // ١ ! !
key <AE02> { [ Arabic_2, at, at ] }; // ٢ @ @
key <AE03> { [ Arabic_3, numbersign, numbersign ] }; // ٣ # #
key <AE04> { [ Farsi_4, dollar, dollar ] }; // ۴ $ $
key <AE05> { [ Farsi_5, percent, percent ] }; // ۵ % %
key <AE06> { [ Farsi_6, asciicircum, asciicircum ] }; // ۶ ^ ^
key <AE07> { [ Arabic_7, ampersand, ampersand ] }; // ٧ & &
key <AE08> { [ Arabic_8, KP_Multiply, KP_Multiply ] }; // ٨ * *
key <AE09> { [ Arabic_9, Armenian_parenright, Armenian_parenright, Armenian_parenleft ] }; // ٩ ) ) (
key <AE10> { [ Farsi_0, Armenian_parenleft, Armenian_parenleft ] }; // ۰ ( (
key <AE11> { [ underbar, KP_Subtract, KP_Subtract ] }; // _
key <AE12> { [ KP_Equal, KP_Add, KP_Add ] }; // = + +
// Persian letters and symbols
key <AD01> { [ Arabic_qaf, Arabic_ghain ] }; // ق غ
key <AD02> { [ Arabic_sheen ] }; // ش
key <AD03> { [ Arabic_ain ] }; // ع
key <AD04> { [ Arabic_ra ] }; // ر
key <AD05> { [ Arabic_teh, Arabic_tah ] }; // ت ط
key <AD06> { [ Farsi_yeh ] }; // ى
key <AD07> { [ Arabic_waw ] }; // و
key <AD08> { [ Farsi_yeh ] }; // ى
key <AD09> { [ Arabic_waw ] }; // و
key <AD10> { [ Arabic_peh ] }; // پ
key <AD11> { [ bracketright, braceleft ] }; // ] } {
key <AD12> { [ bracketleft, braceright ] }; // [ { }
key <AC01> { [ Arabic_alef, Arabic_maddaonalef, Arabic_maddaonalef ] }; // ا آ آ
key <AC02> { [ Arabic_seen, Arabic_sad, Arabic_sheen, Arabic_sheen ] }; // س ص ش
key <AC03> { [ Arabic_dal, Arabic_thal ] }; // د ذ ذ
key <AC04> { [ Arabic_feh ] }; // ف
key <AC05> { [ Arabic_gaf, Arabic_ghain ] }; // گ
key <AC06> { [ Arabic_heh, Arabic_hah ] }; // ە ح ه
key <AC07> { [ Arabic_jeem, Arabic_jeh ] }; // ج ژ ژ
key <AC08> { [ Arabic_keheh ] }; // ک
key <AC09> { [ Arabic_lam ] }; // ل
key <AC10> { [ Arabic_semicolon, colon ] }; // ؛ : ։
key <AC11> { [ Arabic_comma, quotedbl, quotedbl ] }; // ، ” ”
key <AB01> { [ Arabic_zain, Arabic_dad, Arabic_zah, Arabic_zah ] }; // ض ض ز خ
key <AB02> { [ Arabic_khah, Arabic_zah ] }; // ظ خ
key <AB03> { [ Arabic_theh, Arabic_tcheh ] }; // چ ث
key <AB04> { [ Arabic_hamza, Arabic_waw ] }; // و
key <AB05> { [ Arabic_beh ] }; // ب
key <AB06> { [ Arabic_noon ] }; // ن
key <AB07> { [ Arabic_meem ] }; // م
key <AB08> { [ Arabic_comma, rightcaret, leftcaret ] }; // , > <
key <AB09> { [ period, leftcaret, rightcaret ] }; // . < >
key <AB10> { [ slash, Arabic_question_mark, question ] }; // / ?
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus, 0x1002212 ] };
key <BKSL> { [ backslash, bar, 0x1002010 ] };
key <TLDE> { [ U02DC, UFDFC, UFDF2 ] }; // ˜ ﷼ ﷲ
};
hidden partial alphanumeric_keys
xkb_symbols "pesq_part_ext" {
// Persian and ASCII digits
key <AE01> { [ Farsi_1, exclam, grave, 1 ] };
key <AE02> { [ Farsi_2, 0x100066c, at, 2 ] };
key <AE03> { [ Farsi_3, 0x100066b, numbersign, 3 ] };
key <AE04> { [ Farsi_4, 0x100fdfc, dollar, 4 ] };
key <AE05> { [ Farsi_5, 0x100066a, percent, 5 ] };
key <AE06> { [ Farsi_6, multiply, asciicircum, 6 ] };
key <AE07> { [ Farsi_7, Arabic_comma, ampersand, 7 ] };
key <AE08> { [ Farsi_8, asterisk, enfilledcircbullet, 8 ] };
key <AE09> { [ Farsi_9, parenright, 0x100200e, 9 ] };
key <AE10> { [ Farsi_0, parenleft, 0x100200f, 0 ] };
};
hidden partial alphanumeric_keys
xkb_symbols "pesq_part_keypad" {
// Persian digits and Mathematical operators
key <KPDV> { [ division, XF86_Ungrab ] };
key <KPMU> { [ multiply, XF86_ClearGrab ] };
key <KPSU> { [ 0x1002212, XF86_Prev_VMode ] };
key <KPAD> { [ plus, XF86_Next_VMode ] };
key <KPEN> { [ KP_Enter ] };
key <KPEQ> { [ equal ] };
key <KP7> { [ KP_Home, Farsi_7 ] };
key <KP8> { [ KP_Up, Farsi_8 ] };
key <KP9> { [ KP_Prior, Farsi_9 ] };
key <KP4> { [ KP_Left, Farsi_4 ] };
key <KP5> { [ KP_Begin, Farsi_5 ] };
key <KP6> { [ KP_Right, Farsi_6 ] };
key <KP1> { [ KP_End, Farsi_1 ] };
key <KP2> { [ KP_Down, Farsi_2 ] };
key <KP3> { [ KP_Next, Farsi_3 ] };
key <KP0> { [ KP_Insert, Farsi_0 ] };
key <KPDL> { [ KP_Delete, 0x100066b ] };
};

69
lib/keyboards/gothic Normal file
View File

@@ -0,0 +1,69 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com/p/keyboardlayouteditor
//
// Version 0.2, changed AD09.
partial default alphanumeric_keys
xkb_symbols "Gothic"
{
name[Group1] = "Gothic";
key <AB01> { [ U10336, U10336 ] }; // Z: 𐌶
key <AB02> { [ U10347, U10347 ] }; // X: 𐍇
key <AB03> { [ U10343, U10343 ] }; // C: 𐍃
key <AB04> { [ U10338, U10338 ] }; // V: 𐌸
key <AB05> { [ U10331, U10331 ] }; // B: 𐌱
key <AB06> { [ U1033D, U10341 ] }; // n: 𐌽 N: 𐍁
key <AB07> { [ U1033C, U1033C ] }; // M: 𐌼
key <AB08> { [ U10B3C, U10B39 ] };
key <AB09> { [ U10349, U10349 ] };
key <AB10> { [ U10B3F, periodcentered ] };
key <AC01> { [ U10330, U10330 ] }; // A: 𐌰
key <AC02> { [ U10343, U10343 ] }; // S: 𐍃
key <AC03> { [ U10333, U10338 ] }; // d: 𐌳 D: 𐌸
key <AC04> { [ U10346, U10346 ] }; // F: 𐍆
key <AC05> { [ U10332, U10332 ] }; // G: 𐌲
key <AC06> { [ U10337, U10337 ] }; // H: 𐌷
key <AC07> { [ U1033E, U1033E ] }; // J: 𐌾
key <AC08> { [ U1033A, U1033A ] }; // K: 𐌺
key <AC09> { [ U1033B, U1033B ] }; // L: 𐌻
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AD01> { [ U10335, U10335 ] }; // Q: 𐌵
key <AD02> { [ U10345, U10345 ] }; // W: 𐍅
key <AD03> { [ U10334, U10334 ] }; // E: 𐌴
key <AD04> { [ U10342, U10342 ] }; // R: 𐍂
key <AD05> { [ U10344, U10338 ] }; // t: 𐍄 T: 𐌸
key <AD06> { [ U10348, U1034A ] }; // y: 𐍈 Y: 𐍊
key <AD07> { [ U1033F, U1033F ] }; // U: 𐌿
key <AD08> { [ U10339, U10339 ] }; // I: 𐌹
key <AD09> { [ U10349, U10349 ] }; // O: 𐍉
key <AD10> { [ U10340, U10340 ] }; // P: 𐍀
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
key <BKSL> { [ U10B04, U10B05 ] };
key <LSGT> { [ U10B04, U10B05 ] };
};

Some files were not shown because too many files have changed in this diff Show More