Compare commits

..

151 commits

Author SHA1 Message Date
efcf81af5f
flake.lock: Add
Flake lock file updates:

• Added input 'crane':
    'github:ipetkov/crane/ef80ead953c1b28316cc3f8613904edc2eb90c28' (2024-11-08)
• Added input 'fenix':
    'github:nix-community/fenix/87e4581cdfecbac602220fe76c67b37d2d1ee995' (2024-11-09)
• Added input 'fenix/nixpkgs':
    follows 'nixpkgs'
• Added input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/dd9cd22514cb1001a0a2374b36a85eb75245f27b' (2024-11-08)
• Added input 'helix-inline-diags':
    'github:helix-editor/helix/b53dafe326d51b7f64a1c52379e3d4150cd2991e' (2024-11-05)
• Added input 'helix-inline-diags/crane':
    follows 'crane'
• Added input 'helix-inline-diags/flake-utils':
    'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a' (2024-09-17)
• Added input 'helix-inline-diags/flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Added input 'helix-inline-diags/nixpkgs':
    follows 'nixpkgs'
• Added input 'helix-inline-diags/rust-overlay':
    'github:oxalica/rust-overlay/25685cc2c7054efc31351c172ae77b21814f2d42' (2024-10-07)
• Added input 'helix-inline-diags/rust-overlay/nixpkgs':
    follows 'helix-inline-diags/nixpkgs'
• Added input 'home-manager':
    'github:nix-community/home-manager/2f607e07f3ac7e53541120536708e824acccfaa8' (2024-11-05)
• Added input 'home-manager/nixpkgs':
    follows 'nixpkgs'
• Added input 'lix-module':
    'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=691193879d96bdfd1e6ab5ebcca2fadc7604cf34' (2024-11-09)
• Added input 'lix-module/flake-utils':
    'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a' (2024-09-17)
• Added input 'lix-module/flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Added input 'lix-module/flakey-profile':
    'github:lf-/flakey-profile/243c903fd8eadc0f63d205665a92d4df91d42d9d' (2024-04-12)
• Added input 'lix-module/lix':
    'b967f1d5fe.tar.gz?narHash=sha256-WnT6MpgrMKgqV2Rs%2BMfU88%2BKO%2B/njELPOtGoNhoX2oA%3D&rev=b967f1d5fe9d1bf58e6159e9b426c5b341489397' (2024-11-09)
• Added input 'lix-module/nixpkgs':
    follows 'nixpkgs'
• Added input 'mac-brcm-fw':
    'path:/home/jade/nix-configs/mac-brcm-fw?lastModified=1727366922&narHash=sha256-%2BkW8ogc6DykjMVlrr%2B3vWKs9ZUdJ9EW72LbY7k/Qvh4%3D' (2024-09-26)
• Added input 'nixos-hardware':
    'github:networkException/nixos-hardware/8e28b9ee431b265d1fc74b8b819ea0816344c4a1' (2023-06-27)
• Added input 'nixpkgs':
    'github:NixOS/nixpkgs/4aa36568d413aca0ea84a1684d2d46f55dbabad7' (2024-11-05)
• Added input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/205fd4226592cc83fd4c0885a3e4c9c400efabb5' (2024-07-09)
• Added input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/4a2c7def574d031cbf3d7110969f2ca5f38f8ed7' (2024-11-09)
2024-11-09 23:30:51 +01:00
81cf7bb89e
add some software 2024-11-09 23:30:12 +01:00
854c8c8fb2
flake.lock: Update
Flake lock file updates:

• Updated input 'crane':
    'github:ipetkov/crane/5b03654ce046b5167e7b0bccbd8244cb56c16f0e' (2024-09-26)
  → 'github:ipetkov/crane/a376dd1efac7bce448857c62961c6311be26cb09' (2024-10-01)
• Updated input 'fenix':
    'github:nix-community/fenix/a9d2e5fa8d77af05240230c9569bbbddd28ccfaf' (2024-10-01)
  → 'github:nix-community/fenix/b85dddb88366113db4616a64925a8b2a23854f98' (2024-10-02)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/28830ff2f1158ee92f4852ef3ec35af0935d1562' (2024-09-30)
  → 'github:rust-lang/rust-analyzer/e1a76671af2fbc74c84c18ba18fcda5e653d7531' (2024-10-01)
• Updated input 'home-manager':
    'github:nix-community/home-manager/ffe2d07e771580a005e675108212597e5b367d2d' (2024-09-26)
  → 'github:nix-community/home-manager/437ec62009fa8ceb684eb447d455ffba25911cf9' (2024-10-01)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/06cf0e1da4208d3766d898b7fdab6513366d45b9' (2024-09-29)
  → 'github:NixOS/nixpkgs/27e30d177e57d912d614c88c622dcfdb2e6e6515' (2024-10-01)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/e277415cfed1a4c5bd96183e8ba51c60f046fe22' (2024-10-01)
  → 'github:NixOS/nixpkgs/35d02934a17a4fdc53a8857826ed35f3694e5f1c' (2024-10-02)
2024-11-09 23:30:10 +01:00
a60a561301
obs virtualcam 2024-11-09 23:29:05 +01:00
f8492fc9e9
desktop adjustments 2024-11-09 23:29:05 +01:00
6a706007c8
fix suspension 2024-11-03 19:48:04 +01:00
30f0f7ec20
setup uni java things 2024-11-03 19:46:36 +01:00
65f16fd33c
flake.lock: Update
Flake lock file updates:

• Updated input 'crane':
    'github:ipetkov/crane/fd86b78f5f35f712c72147427b1eb81a9bd55d0b' (2024-10-07)
  → 'github:ipetkov/crane/fa8b7445ddadc37850ed222718ca86622be01967' (2024-10-18)
• Updated input 'fenix':
    'github:nix-community/fenix/ea96690b28eb5a859d28bcf02887a26e3854e4f3' (2024-10-12)
  → 'github:nix-community/fenix/d66cda53e8193a878742dcadb5bb75f4df7c3c0a' (2024-10-22)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/0fb804acb375b02a3beeaceeb75b71969ef37b15' (2024-10-09)
  → 'github:rust-lang/rust-analyzer/de2ff17bc513807412d7bbaba1d995a774938583' (2024-10-21)
• Updated input 'helix-inline-diags':
    'github:helix-editor/helix/a7651f5bf027ec98645d571ab05a685d97e1b772' (2024-10-11)
  → 'github:helix-editor/helix/6d64e6288add793caf1c841ea295518414c04ea0' (2024-10-21)
• Updated input 'helix-inline-diags/flake-utils':
    'github:numtide/flake-utils/d465f4819400de7c8d874d50b982301f28a84605' (2024-02-28)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a' (2024-09-17)
• Updated input 'helix-inline-diags/rust-overlay':
    'github:oxalica/rust-overlay/e86c0fb5d3a22a5f30d7f64ecad88643fe26449d' (2024-03-05)
  → 'github:oxalica/rust-overlay/25685cc2c7054efc31351c172ae77b21814f2d42' (2024-10-07)
• Removed input 'helix-inline-diags/rust-overlay/flake-utils'
• Updated input 'home-manager':
    'github:nix-community/home-manager/d57112db877f07387ce7104b5ac346ede556d2d7' (2024-10-12)
  → 'github:nix-community/home-manager/5ec753a1fc4454df9285d8b3ec0809234defb975' (2024-10-21)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7' (2024-10-09)
  → 'github:NixOS/nixpkgs/1997e4aa514312c1af7e2bda7fad1644e778ff26' (2024-10-20)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/162ee4189cf5c0449a642f3f5aa7566faac77476' (2024-10-12)
  → 'github:NixOS/nixpkgs/29dccd64f527eebafce219e7ca2bfda5fee75456' (2024-10-22)
2024-10-22 20:21:42 +02:00
b245efa86e
add java support 2024-10-14 08:43:14 +02:00
eb723ef181
flake.lock: Update
Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/b135535125e24270dddddc8cfab455533492e4ad' (2024-10-10)
  → 'github:nix-community/fenix/ea96690b28eb5a859d28bcf02887a26e3854e4f3' (2024-10-12)
• Updated input 'helix-inline-diags':
    'github:helix-editor/helix/761f70d61179f38152e76c1f224589a53b62d00f' (2024-10-08)
  → 'github:helix-editor/helix/a7651f5bf027ec98645d571ab05a685d97e1b772' (2024-10-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/038630363e7de57c36c417fd2f5d7c14773403e4' (2024-10-07)
  → 'github:nix-community/home-manager/d57112db877f07387ce7104b5ac346ede556d2d7' (2024-10-12)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/6b955bdbb9efe4a5c047746323951fe1bdf8d01b' (2024-10-10)
  → 'github:NixOS/nixpkgs/162ee4189cf5c0449a642f3f5aa7566faac77476' (2024-10-12)
2024-10-12 20:07:48 +02:00
8134abcf86
remove firefox stupid fucking llm bullshit 2024-10-11 21:18:14 +02:00
8d34a32f24
add tabby cat 2024-10-11 08:52:24 +02:00
da38ff265d
update/fix nu stuff 2024-10-11 08:51:35 +02:00
70145c2a66
try fixing env stuff (again) 2024-10-11 08:51:20 +02:00
6022a6e330
set log-format to multiline 2024-10-11 08:50:47 +02:00
5c16f2df1b
fix jrnl not working anymore 2024-10-11 08:50:19 +02:00
be22d9da42
flake.lock: Update
Flake lock file updates:

• Updated input 'crane':
    'github:ipetkov/crane/96fd12c7100e9e05fa1a0a5bd108525600ce282f' (2024-08-31)
  → 'github:ipetkov/crane/fd86b78f5f35f712c72147427b1eb81a9bd55d0b' (2024-10-07)
• Updated input 'fenix':
    'github:nix-community/fenix/0774f58cf1025bbb713971deecc7f07c856be6ed' (2024-09-02)
  → 'github:nix-community/fenix/b135535125e24270dddddc8cfab455533492e4ad' (2024-10-10)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/779d9eee2ea403da447278a7007c9627c8878856' (2024-09-01)
  → 'github:rust-lang/rust-analyzer/0fb804acb375b02a3beeaceeb75b71969ef37b15' (2024-10-09)
• Updated input 'helix-inline-diags':
    'github:helix-editor/helix/1b5295a3f3d7cccd96eed5bfd394807a4dae87fc' (2024-08-28)
  → 'github:helix-editor/helix/761f70d61179f38152e76c1f224589a53b62d00f' (2024-10-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/471e3eb0a114265bcd62d11d58ba8d3421ee68eb' (2024-09-01)
  → 'github:nix-community/home-manager/038630363e7de57c36c417fd2f5d7c14773403e4' (2024-10-07)
• Updated input 'lix-module':
    'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=cecf70b77539c1a593f60ec9d0305b5e537ab6a9' (2024-08-13)
  → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d' (2024-10-01)
• Updated input 'lix-module/flake-utils':
    'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a' (2024-09-17)
• Updated input 'lix-module/lix':
    'f9a3bf6ccc.tar.gz?narHash=sha256-XDcqLVPcsMhORerIPuQ1XNALtDvG6QRA2dKyNrccXyg%3D&rev=f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44' (2024-08-13)
  → 'a16ceb9411.tar.gz?narHash=sha256-7kaZRZCWG8PmxwIDTVKjJo3VtAGDun7mqfAMlucQbdQ%3D&rev=a16ceb9411c57993d811c6bebb517742fe3d34e3' (2024-09-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/12228ff1752d7b7624a54e9c1af4b222b3c1073b' (2024-08-31)
  → 'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7' (2024-10-09)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/66a352a3f27a2eb2f27e42a13c6fe245d3be2b98' (2024-09-02)
  → 'github:NixOS/nixpkgs/6b955bdbb9efe4a5c047746323951fe1bdf8d01b' (2024-10-10)
2024-10-10 14:40:29 +02:00
92a7e6021d
set up easyroam/eduroam (well, mostly kloenk did it)
Co-authored-by: kloenk <me@kloenk.dev>
2024-10-04 18:13:21 +02:00
b7fe5a0014
enable touchpad tapping 2024-10-03 19:31:56 +02:00
f9b59e8ed2
setup teams window assignment 2024-10-03 19:31:47 +02:00
cdb1b93296
make evolution setup cooler(tm) 2024-10-03 19:31:26 +02:00
effe29cd74
continue work on ICE tacho 2024-10-03 19:31:13 +02:00
f0b640eeed
fix bar layout 2024-10-03 19:30:56 +02:00
f903d1b45e
do things 2024-09-26 19:15:58 +02:00
b4dfef1d6d
traveldings stuff! 2024-09-11 02:09:08 +02:00
54a1e34fa6
refactor bottomBar smol bit 2024-09-10 22:07:27 +02:00
bd3674accf
continue working on traveldings (get live checkin thing working maybe??) 2024-09-10 21:37:18 +02:00
258d4639d7
fix event countdowns not skipping past events 2024-09-07 18:32:06 +02:00
4f1e43e923
continue work on wayland things 2024-09-07 18:31:54 +02:00
718fe00b46
start working on bar pinger and traewelling client 2024-09-07 18:31:37 +02:00
867514362a
improve workspace selector styling 2024-09-02 22:07:47 +02:00
37a4235e5c
add gui workspace switching 2024-09-02 20:40:47 +02:00
a9525ec467
add workspace monitor to bottom bar and remove waybar 2024-09-02 20:33:22 +02:00
089740ffaf
remove some unused software 2024-09-02 19:17:58 +02:00
c01c5da7c4
add Departure Mono font 2024-09-02 19:14:45 +02:00
e920f9c206
add frequently used programs 2024-09-02 19:08:10 +02:00
47ba1e5796
fix broken/deprecated things 2024-09-02 19:07:58 +02:00
6aab08ec9b
do more bar things 2024-09-02 19:07:19 +02:00
ac3df09b6b
replace top bar with eww bar 2024-08-28 09:12:28 +02:00
fcb7c0cd68
flake.lock: Update 2024-08-26 13:42:26 +02:00
3157730a5f
use typst-lsp from stable 2024-08-26 13:42:20 +02:00
d3d62ce5a5
correct browser in notification daemon settings 2024-08-26 13:42:09 +02:00
a29f210273
start eww bar setup 2024-08-26 13:41:37 +02:00
3c11d4177b
flake.lock: Update
Flake lock file updates:

• Updated input 'crane':
    'github:ipetkov/crane/852a59f9672c3413d75bca2b3e9cb4c661cacfc3' (2024-08-03)
  → 'github:ipetkov/crane/4c6c77920b8d44cd6660c1621dea6b3fc4b4c4f4' (2024-08-06)
• Updated input 'fenix':
    'github:nix-community/fenix/0caa626457f1f4f8273a89775bf9081b7fc09823' (2024-08-04)
  → 'github:nix-community/fenix/d5f1b280af93acddbcce948d946bb5db2f8035fe' (2024-08-09)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/aa00ddcf654a35ba0eafe17247cf189958d33182' (2024-08-02)
  → 'github:rust-lang/rust-analyzer/dab022fb3127466e47e29e40769b11174b3e0ac3' (2024-08-08)
• Updated input 'helix-inline-diags':
    'github:helix-editor/helix/0a4432b104099534f7a25b8ea4148234db146ab6' (2024-08-02)
  → 'github:helix-editor/helix/e604d9f8e0fea2223a357be7c9dc6088daef47e7' (2024-08-09)
• Updated input 'home-manager':
    'github:nix-community/home-manager/afc892db74d65042031a093adb6010c4c3378422' (2024-08-02)
  → 'github:nix-community/home-manager/b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e' (2024-08-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d04953086551086b44b6f3c6b7eeb26294f207da' (2024-08-02)
  → 'github:NixOS/nixpkgs/cb9a96f23c491c081b38eab96d22fa958043c9fa' (2024-08-04)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/e17a38ddc27fc9c7a81b986c5866f83238d8b23e' (2024-08-03)
  → 'github:NixOS/nixpkgs/0048951e7a3eba3dce8bf6ba893390d29375c5d0' (2024-08-09)
2024-08-09 20:04:42 +02:00
2582b3796e
add command to find out when next the event is 2024-08-09 20:04:02 +02:00
f07c54346b
remove zellij autostart and add keyboard shortcut for it 2024-08-09 20:02:59 +02:00
e603b5ecd5
add event counter to shell startup 2024-08-09 20:02:08 +02:00
bb3ed01418
new window in same dir 2024-08-09 20:01:46 +02:00
62539db84d
do flag thing help 2024-08-02 21:29:25 +02:00
3d2719f2f7
add TODO 2024-08-01 20:14:38 +02:00
b23856722c
fix weird bug with some flags sometimes crashing (on even numbers) 2024-08-01 20:01:04 +02:00
6f5884a8a3
add hrt counter to shell startup 2024-08-01 10:27:38 +02:00
e597a95826
fix networking dispatcher script thingy 2024-08-01 08:43:47 +02:00
1b802a90de
move some graphics stuff into individual modules/files 2024-08-01 08:40:49 +02:00
ddd6ecd055
move some graphics stuff into individual modules/files 2024-08-01 08:37:19 +02:00
b63db1934d
rework and fix some hardware key stuff 2024-08-01 08:17:09 +02:00
2b13d1c0bb
fix displayManager warnings and clean up displayManager configs 2024-08-01 08:07:17 +02:00
d8e2f19ced
shell: fix and clean up plugin loading 2024-08-01 07:44:41 +02:00
ab61d680ac
disable firefox's latest bullshit 2024-07-30 22:07:07 +02:00
73ed59e2a7
fix latest update 2024-07-30 22:07:07 +02:00
e222066a87
do program stuffs 2024-07-28 21:11:44 +02:00
7995708a59
update desktop 2024-07-28 20:55:32 +02:00
020a9276d5
sway things (more or less successful) 2024-07-28 20:54:07 +02:00
f22a20b08c
add some programs and set up nix auto gc 2024-07-28 20:54:07 +02:00
c64f321cc5
setup nushell plugins 2024-07-28 20:54:07 +02:00
ee901946e2
more bar 2024-07-28 20:54:07 +02:00
737bdba912
Merge branch 'main' of ssh://forge.katzen.cafe:2222/schrottkatze/nix-configs 2024-07-28 20:45:43 +02:00
ee44af814e
make swaylock work 2024-06-17 17:22:03 +02:00
f05b49fa81
flake.lock: Update 2024-06-12 13:27:57 +02:00
5a1252da4b
update nushell stuff 2024-06-12 13:26:34 +02:00
b3fe297a4a
add logseq 2024-06-12 13:26:05 +02:00
11d200f60b
more sway stuff 2024-06-12 13:25:51 +02:00
a20ee22543
fix home manager search alias 2024-06-12 13:25:10 +02:00
e3767b5441
fix hw key 2024-06-12 13:24:47 +02:00
8c81b94e47
helix inline diags 2024-06-12 13:23:20 +02:00
81246671df
setup sway 2024-06-12 11:11:13 +02:00
093fe30d75
fix unused markdown uses 2024-05-06 21:49:22 +02:00
e64935cf00
fix crane warnings 2024-05-06 21:49:11 +02:00
a3777bd73a
change editor timeout to 200ms 2024-05-06 21:33:30 +02:00
73bbc7c616
jrnl: shorten command and add inquire 2024-05-06 21:33:14 +02:00
caaa7c7c6b
fix deprecation warnings 2024-05-06 21:32:14 +02:00
90d6d6ae85
go lesbian 2024-05-06 21:27:45 +02:00
d628301131
flake.lock: Update
Flake lock file updates:

• Updated input 'crane':
    'github:ipetkov/crane/45ea0059fb325132fdc3c39faffb0941d25d08d3' (2024-04-18)
  → 'github:ipetkov/crane/a5eca68a2cf11adb32787fc141cddd29ac8eb79c' (2024-04-24)
• Updated input 'fenix':
    'github:nix-community/fenix/3247290e1bba55878a2c62d43894d0309d29c918' (2024-04-20)
  → 'github:nix-community/fenix/94be183087845937b0fd77281c37d0796572b899' (2024-04-28)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/c83d8cf5844fff3d6e243ab408669222059af1c6' (2024-04-19)
  → 'github:rust-lang/rust-analyzer/f216be4a0746142c5f30835b254871256a7637b8' (2024-04-27)
• Updated input 'home-manager':
    'github:nix-community/home-manager/057117a401a34259c9615ce62218aea7afdee4d3' (2024-04-19)
  → 'github:nix-community/home-manager/c1609d584a6b5e9e6a02010f51bd368cb4782f8e' (2024-04-27)
• Updated input 'mac-brcm-fw':
    'path:/home/jade/nix-configs/mac-brcm-fw?lastModified=1709065070&narHash=sha256-%2BkW8ogc6DykjMVlrr%2B3vWKs9ZUdJ9EW72LbY7k/Qvh4%3D' (2024-02-27)
  → 'path:/home/jade/nix-configs/mac-brcm-fw?lastModified=1701030348&narHash=sha256-%2BkW8ogc6DykjMVlrr%2B3vWKs9ZUdJ9EW72LbY7k/Qvh4%3D' (2023-11-26)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
  → 'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856' (2024-04-25)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/e402c3eb6d88384ca6c52ef1c53e61bdc9b84ddd' (2024-04-17)
  → 'github:NixOS/nixpkgs/12430e43bd9b81a6b4e79e64f87c624ade701eaf' (2024-04-28)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/c0f9060ec3937d5a7cf3ce6c698e14d989b453e5' (2024-04-20)
  → 'github:NixOS/nixpkgs/30ddacc06345a478f9528fa29e2c8857b90381b2' (2024-04-28)
2024-04-28 16:01:22 +02:00
d425621e01
jrnl: some add aliases 2024-04-23 08:04:03 +02:00
aaec1f1f78
jrnl: adding entries now works!! 2024-04-22 21:25:29 +02:00
b967f6e90e
jrnl: markdown generation 2024-04-22 11:44:26 +02:00
0bf5ed0c76
jrnl: simplify (or complexify, if you dont like iterators and zero-copy) the parsing 2024-04-22 11:15:45 +02:00
28bebd5aaa
switch evolution nixpkgs-stable 2024-04-20 20:19:57 +02:00
84f7301f72
fix rustdoc aliases 2024-04-20 20:19:41 +02:00
df13761fc8
jrnl: put modules in its own respective files 2024-04-20 20:11:04 +02:00
78bb79e258
jrnl: add entry listing 2024-04-20 20:07:07 +02:00
83c0fac427
flake.lock: Update
Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/fd47b1f9404fae02a4f38bd9f4b12bad7833c96b' (2024-04-18)
  → 'github:nix-community/fenix/3247290e1bba55878a2c62d43894d0309d29c918' (2024-04-20)
• Updated input 'fenix/nixpkgs':
    'github:nixos/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8' (2024-04-16)
  → 'github:nixos/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/46702ffc1a02a2ac153f1d1ce619ec917af8f3a6' (2024-04-17)
  → 'github:rust-lang/rust-analyzer/c83d8cf5844fff3d6e243ab408669222059af1c6' (2024-04-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/f46814ec7cbef9c2aef18ca1cbe89f2bb1e8c394' (2024-04-17)
  → 'github:nix-community/home-manager/057117a401a34259c9615ce62218aea7afdee4d3' (2024-04-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8' (2024-04-16)
  → 'github:NixOS/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/53a2c32bc66f5ae41a28d7a9a49d321172af621e' (2024-04-15)
  → 'github:NixOS/nixpkgs/e402c3eb6d88384ca6c52ef1c53e61bdc9b84ddd' (2024-04-17)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/2948912cdede361087742c672ff921cd80ac9ec2' (2024-04-18)
  → 'github:NixOS/nixpkgs/c0f9060ec3937d5a7cf3ce6c698e14d989b453e5' (2024-04-20)
2024-04-20 16:28:36 +02:00
d1dee45d9c
make rustdoc alias more practical 2024-04-20 16:09:26 +02:00
4a97a34afc
make lcr faster 2024-04-20 16:09:09 +02:00
20daa94697
add more shell preventions 2024-04-18 18:47:22 +02:00
54b25b154a
jrnl: proper parsing and improve rust-analyzer stuff working 2024-04-18 18:47:06 +02:00
3b9aaf5f59
flake.lock: Update
Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/402051dcf16bcaa14dcbd96d2d5b4a97664eb35c' (2024-04-16)
  → 'github:nix-community/fenix/fd47b1f9404fae02a4f38bd9f4b12bad7833c96b' (2024-04-18)
• Updated input 'fenix/nixpkgs':
    'github:nixos/nixpkgs/cfd6b5fc90b15709b780a5a1619695a88505a176' (2024-04-12)
  → 'github:nixos/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8' (2024-04-16)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/90cfa8035f98d3ab0f7f4f1e77f4f5e3b0a7370b' (2024-04-15)
  → 'github:rust-lang/rust-analyzer/46702ffc1a02a2ac153f1d1ce619ec917af8f3a6' (2024-04-17)
• Updated input 'home-manager':
    'github:nix-community/home-manager/31357486b0ef6f4e161e002b6893eeb4fafc3ca9' (2024-04-10)
  → 'github:nix-community/home-manager/f46814ec7cbef9c2aef18ca1cbe89f2bb1e8c394' (2024-04-17)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6' (2024-04-08)
  → 'github:NixOS/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8' (2024-04-16)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167' (2024-04-08)
  → 'github:NixOS/nixpkgs/53a2c32bc66f5ae41a28d7a9a49d321172af621e' (2024-04-15)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/ca74eb22840662bbd4aca7c38a35a02d16f0dd0a' (2024-04-10)
  → 'github:NixOS/nixpkgs/2948912cdede361087742c672ff921cd80ac9ec2' (2024-04-18)
2024-04-18 16:11:47 +02:00
dd12eb12ae
jrnl: add basic cli 2024-04-16 22:06:12 +02:00
52a6173f0b
add rust support to config 2024-04-16 21:37:01 +02:00
5c2deec279
add nr alias and prevent bash usage on basic level 2024-04-16 21:36:43 +02:00
33732a192b
add jellyfin-media-player 2024-04-16 21:36:26 +02:00
3aa834cf57
fix nerdfonts getting shittier 2024-04-16 21:36:14 +02:00
117c771fc4
remove fspy, add openscad 2024-04-16 21:36:00 +02:00
69c04bb3e2
switch bitwarden to nixpkgs-stbale 2024-04-16 21:35:47 +02:00
3ba9b95d09
move helix to normal unstable again 2024-04-16 21:35:32 +02:00
4e34aeb208
flake.lock: Update
Flake lock file updates:

• Updated input 'arion':
    'github:hercules-ci/arion/d2d48c9ec304ac80c84ede138b8c6f298d07d995' (2024-03-05)
  → 'github:hercules-ci/arion/1886d25075aaf24c8bc687b3d2a87ae1f5d154ec' (2024-04-05)
• Updated input 'arion/flake-parts':
    'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
  → 'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
• Updated input 'arion/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/0ca27bd58e4d5be3135a4bef66b582e57abe8f4a' (2024-02-21)
  → 'github:hercules-ci/hercules-ci-effects/64e7763d72c1e4c1e5e6472640615b6ae2d40fbf' (2024-03-15)
• Updated input 'arion/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
  → 'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
• Updated input 'arion/nixpkgs':
    'github:NixOS/nixpkgs/b8697e57f10292a6165a20f03d2f42920dfaf973' (2024-03-03)
  → 'github:NixOS/nixpkgs/fd281bd6b7d3e32ddfa399853946f782553163b5' (2024-04-03)
• Updated input 'home-manager':
    'github:nix-community/home-manager/80546b220e95a575c66c213af1b09fe255299438' (2024-04-02)
  → 'github:nix-community/home-manager/31357486b0ef6f4e161e002b6893eeb4fafc3ca9' (2024-04-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
  → 'github:NixOS/nixpkgs/4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6' (2024-04-08)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/219951b495fc2eac67b1456824cc1ec1fd2ee659' (2024-03-28)
  → 'github:NixOS/nixpkgs/d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167' (2024-04-08)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/7781caa09d74b971a059a0240a03c5dd68acf3e5' (2024-04-03)
  → 'github:NixOS/nixpkgs/ca74eb22840662bbd4aca7c38a35a02d16f0dd0a' (2024-04-10)
2024-04-10 17:38:26 +02:00
0ec8e0adee
add b612 font 2024-04-10 17:37:36 +02:00
5ddab9b274
add libjxl 2024-04-10 17:37:24 +02:00
e53b2e1c90
fix some opensearch stuff 2024-04-04 02:57:03 +02:00
9ed3cde274
configure helix 2024-04-03 19:04:00 +02:00
c1d4aba9c3
update helix to 24.3 2024-04-03 18:37:15 +02:00
c5f02511eb
flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/587719494ed18a184c98c4d55dde9469af4446bf' (2024-03-14)
  → 'github:nix-community/home-manager/80546b220e95a575c66c213af1b09fe255299438' (2024-04-02)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
  → 'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/51063ed4f2343a59fdeebb279bb81d87d453942b' (2024-03-12)
  → 'github:NixOS/nixpkgs/219951b495fc2eac67b1456824cc1ec1fd2ee659' (2024-03-28)
2024-04-03 17:57:24 +02:00
937562a815
fix recursive line count (lcr) 2024-04-03 17:56:13 +02:00
a2e61d05c2
add selection counter to helix status bar 2024-04-03 17:55:59 +02:00
643d47e4a1
add macchanger 2024-04-03 17:55:47 +02:00
76dc4942d2
add anonymous pro font 2024-04-03 17:55:39 +02:00
3a62b76f49
add scribus fancy tool stuff stuffs 2024-04-03 17:55:30 +02:00
d3cf76ca8d
remove gimp plugins 2024-04-03 17:55:18 +02:00
410c891ec1
printing things 2024-04-03 17:54:04 +02:00
b4ad21962e
flake.lock: Update
Flake lock file updates:

• Updated input 'arion':
    'github:hercules-ci/arion/2b1fa9a8e9e40bb8e65a677c6fdd66dae4f4676e' (2024-02-14)
  → 'github:hercules-ci/arion/d2d48c9ec304ac80c84ede138b8c6f298d07d995' (2024-03-05)
• Updated input 'arion/flake-parts':
    'github:hercules-ci/flake-parts/b253292d9c0a5ead9bc98c4e9a26c6312e27d69f' (2024-02-01)
  → 'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
• Updated input 'arion/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/d5cbf433a6ae9cae05400189a8dbc6412a03ba16' (2023-12-31)
  → 'github:hercules-ci/hercules-ci-effects/0ca27bd58e4d5be3135a4bef66b582e57abe8f4a' (2024-02-21)
• Updated input 'arion/nixpkgs':
    'github:NixOS/nixpkgs/f9d39fb9aff0efee4a3d5f4a6d7c17701d38a1d8' (2024-02-11)
  → 'github:NixOS/nixpkgs/b8697e57f10292a6165a20f03d2f42920dfaf973' (2024-03-03)
• Updated input 'home-manager':
    'github:nix-community/home-manager/4de84265d7ec7634a69ba75028696d74de9a44a7' (2024-03-03)
  → 'github:nix-community/home-manager/587719494ed18a184c98c4d55dde9469af4446bf' (2024-03-14)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8' (2024-02-29)
  → 'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/79baff8812a0d68e24a836df0a364c678089e2c7' (2024-03-01)
  → 'github:NixOS/nixpkgs/51063ed4f2343a59fdeebb279bb81d87d453942b' (2024-03-12)
2024-03-14 16:05:42 +01:00
98125d7d71
add devd 2024-03-14 16:04:48 +01:00
275c852d4d
more helix setup stuff 2024-03-14 16:04:08 +01:00
c5bb22722b
add legendary launcher and wine stuff 2024-03-14 16:03:43 +01:00
9bf0eadaa0
make typed more stable 2024-03-08 07:58:44 +01:00
1d8f6f9c71
replace libreoffice with onlyoffice 2024-03-08 07:58:27 +01:00
b455f5019c
increase trackpoint sensitivity 2024-03-08 07:57:32 +01:00
14adf2731f
create input module for catbook-j 2024-03-06 11:31:47 +01:00
d002a100dd
glorious refactor (part 2 2024-03-06 11:09:02 +01:00
2a5e635c0d
make terminal module default module thingy 2024-03-05 18:51:30 +01:00
7bacabf0d3
biiiiig refactor (part 1) 2024-03-05 17:10:35 +01:00
9a7768ff5b
move git and mprocs configs to shell module 2024-03-05 13:53:39 +01:00
ede1765ee8
move hardware key configs into one file 2024-03-05 13:49:22 +01:00
7829fcd0ce
merge kmscon and tty configs 2024-03-05 13:38:05 +01:00
193b006557
add aliases for toggling caps lock 2024-03-05 13:10:25 +01:00
991cc8fc88
add input remapping module with easier configuration 2024-03-05 13:10:08 +01:00
01d070eb40
flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/2f3367769a93b226c467551315e9e270c3f78b15' (2024-02-29)
  → 'github:nix-community/home-manager/4de84265d7ec7634a69ba75028696d74de9a44a7' (2024-03-03)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9099616b93301d5cf84274b184a3a5ec69e94e08' (2024-02-28)
  → 'github:NixOS/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8' (2024-02-29)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/c8e74c2f83fe12b4e5a8bd1abbc090575b0f7611' (2024-02-28)
  → 'github:NixOS/nixpkgs/79baff8812a0d68e24a836df0a364c678089e2c7' (2024-03-01)
2024-03-03 14:33:18 +01:00
b5020cdbc7
disable "easy" insert mode keybinds 2024-03-03 14:27:38 +01:00
e2d8337e99
disable "easy" insert mode keybinds 2024-03-03 14:23:02 +01:00
1c0b4d13dc
put fonts into their own module 2024-03-03 14:22:43 +01:00
beba034c17
try dispatcher script fix try one 2024-03-01 18:22:58 +01:00
d7b141428a
add inter font 2024-03-01 18:22:45 +01:00
9057c3600f
fix glog command 2024-02-29 19:48:57 +01:00
efe7614539
mprocs kb shortcuts 2024-02-29 19:48:45 +01:00
03abcccb51
make idle timeout less aggro 2024-02-29 19:48:14 +01:00
a1e2fceac9
add libertine font 2024-02-29 19:47:43 +01:00
95329f4a0b
flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/1d085ea4444d26aa52297758b333b449b2aa6fca' (2024-02-26)
  → 'github:nix-community/home-manager/2f3367769a93b226c467551315e9e270c3f78b15' (2024-02-29)
• Updated input 'mac-brcm-fw':
    'path:/home/jade/nix-configs/mac-brcm-fw?lastModified=1701034142&narHash=sha256-%2BkW8ogc6DykjMVlrr%2B3vWKs9ZUdJ9EW72LbY7k/Qvh4%3D' (2023-11-26)
  → 'path:/home/jade/nix-configs/mac-brcm-fw?lastModified=1709065070&narHash=sha256-%2BkW8ogc6DykjMVlrr%2B3vWKs9ZUdJ9EW72LbY7k/Qvh4%3D' (2024-02-27)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/73de017ef2d18a04ac4bfd0c02650007ccb31c2a' (2024-02-24)
  → 'github:NixOS/nixpkgs/9099616b93301d5cf84274b184a3a5ec69e94e08' (2024-02-28)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/5bf1cadb72ab4e77cb0b700dab76bcdaf88f706b' (2024-02-25)
  → 'github:NixOS/nixpkgs/c8e74c2f83fe12b4e5a8bd1abbc090575b0f7611' (2024-02-28)
2024-02-29 19:42:50 +01:00
b927205c9d
fix gitui keymap 2024-02-28 17:06:21 +01:00
4f01412843
make typst live editing and preview a thing 2024-02-28 17:06:04 +01:00
65039f4f17
set up and configure mprocs 2024-02-28 17:05:28 +01:00
2c32facb60 Merge pull request 'Configure jj' (#1) from push-pqvqptxrrmyk into main
Reviewed-on: #1
2024-02-27 20:15:07 +00:00
2d825d531f Configure jj 2024-02-27 21:02:10 +01:00
105 changed files with 6013 additions and 1266 deletions

3
.gitignore vendored
View file

@ -1,2 +1,5 @@
result
.direnv/
programs/*/target
target
*openapi.json

2056
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

5
Cargo.toml Normal file
View file

@ -0,0 +1,5 @@
[workspace]
resolver = "2"
members = [ "programs/bar-pinger", "programs/bar-ws-monitor",
"programs/jrnl"
, "programs/traveldings"]

View file

@ -5,12 +5,23 @@
config,
pkgs,
lib,
lix-module,
rs-programs,
...
}:
with lib;
with builtins; {
imports = [lix-module.nixosModules.default];
nix = {
package = pkgs.nixVersions.stable;
settings = {
extra-substituters = [
"https://cache.lix.systems"
];
trusted-public-keys = [
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
];
};
extraOptions = ''
experimental-features = nix-command flakes
keep-outputs = true
@ -22,20 +33,22 @@ with builtins; {
config = {
allowUnfree = true;
permittedInsecurePackages = [
"electron-27.3.11"
"nodejs-16.20.0"
];
};
overlays = [rs-programs];
};
environment = {
systemPackages = with pkgs; [
# pynitrokey
# nitrokey-app2
veracrypt
overskride
pulsemixer
htmlq
prusa-slicer
zed-editor
wget
git
neofetch
@ -46,33 +59,38 @@ with builtins; {
iw
btop
nodejs
jdk8
jdk11
maven
jetbrains.idea-ultimate
jetbrains.rust-rover
jdk
libsecret
gh
nix-prefetch-scripts
fzf
glab
ripgrep
sl
lolcat
appimage-run
git-crypt
file
whois
p7zip
file
nmap
cmatrix
tree
socat
smartmontools
mprocs
dig
aria2
usbutils
cyme
numbat
devd
libjxl
s10e-jrnl
ungoogled-chromium
scc
speedtest-rs
];
};
@ -83,6 +101,7 @@ with builtins; {
};
services = {
systemd-lock-handler.enable = true;
openssh = {
enable = true;
# settings.PasswordAuthentication = false;
@ -90,29 +109,6 @@ with builtins; {
};
};
console.colors = [
"282828"
"cc241d"
"98971a"
"d79921"
"458588"
"b16286"
"689d6a"
"a89984"
"928374"
"fb4934"
"b8bb26"
"fabd2f"
"83a598"
"d3869b"
"8ec07c"
"ebdbb2"
];
# nitrokey
services.udev.packages = [pkgs.nitrokey-udev-rules];
services.pcscd.enable = true;
programs = {
ssh.startAgent = false;
gnupg.agent = {
@ -124,6 +120,8 @@ with builtins; {
mtr.enable = true;
};
hardware.gpgSmartcards.enable = true;
time.timeZone = "Europe/Berlin";
home-manager.users.jade = {
@ -142,7 +140,6 @@ with builtins; {
boot.kernel.sysctl."vm.max_map_count" = 2147483642;
hardware = {
opengl.enable = true;
uinput.enable = true;
bluetooth.enable = true;
# keyboard.uhk.enable = true;
@ -157,9 +154,6 @@ with builtins; {
users.users.jade = {
isNormalUser = true;
extraGroups = ["wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark"];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOaE8TFsIazpn4OnHvHcRpOFr9FfvMaWOiEjmHsmnAoE cardno:000F_70CD7D05"
];
};
zramSwap = {
@ -167,5 +161,11 @@ with builtins; {
algorithm = "zstd";
};
users.defaultUserShell = pkgs.nushellFull;
users.defaultUserShell = pkgs.nushell;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 60d";
};
}

View file

@ -1,95 +1,51 @@
{
"nodes": {
"arion": {
"inputs": {
"flake-parts": "flake-parts",
"haskell-flake": "haskell-flake",
"hercules-ci-effects": "hercules-ci-effects",
"nixpkgs": "nixpkgs"
},
"crane": {
"locked": {
"lastModified": 1707923576,
"narHash": "sha256-vch1hvgoB2TEl1+0J9h5uPkTrL4zNFUxE/razagkqQQ=",
"owner": "hercules-ci",
"repo": "arion",
"rev": "2b1fa9a8e9e40bb8e65a677c6fdd66dae4f4676e",
"lastModified": 1731098351,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "arion",
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"easymacros": {
"fenix": {
"inputs": {
"flake-utils": "flake-utils",
"naersk": "naersk",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1662552013,
"narHash": "sha256-ENoDCKs6gKcGYa06LhCVhro0FVntcy5GBvShS+TPvMY=",
"ref": "refs/heads/main",
"rev": "43405b3bcf786513adc6534ed0e6618c458ba2cb",
"revCount": 38,
"type": "git",
"url": "https://gitlab.com/obsidianical/easymacros.git"
},
"original": {
"type": "git",
"url": "https://gitlab.com/obsidianical/easymacros.git"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"arion",
"nixpkgs": [
"nixpkgs"
]
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1706830856,
"narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f",
"lastModified": 1731133750,
"narHash": "sha256-gZ3m8e176ai+akwiayg7Mve73rcUCD0+l6OMMFhGEYI=",
"owner": "nix-community",
"repo": "fenix",
"rev": "87e4581cdfecbac602220fe76c67b37d2d1ee995",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"arion",
"hercules-ci-effects",
"nixpkgs"
]
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1656065134,
"narHash": "sha256-oc6E6ByIw3oJaIyc67maaFcnjYOz1mMcOtHxbEf9NwQ=",
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "bee6a7250dd1b01844a2de7e02e4df7d8a0a206c",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
@ -99,87 +55,60 @@
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"id": "flake-utils",
"type": "indirect"
}
},
"flake-utils_3": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"id": "flake-utils",
"type": "indirect"
}
},
"gumseite": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_4"
},
"flakey-profile": {
"locked": {
"lastModified": 1680175611,
"narHash": "sha256-0VevgW7qjE3rDSudFr/XIQrMmPowDgLO9jkM4AFkR/o=",
"ref": "refs/heads/master",
"rev": "57f43b774151e34bbf3de5f159924aca93750561",
"revCount": 2,
"type": "git",
"url": "https://gitlab.com/schrottkatze/gum-schulsachen.git"
},
"original": {
"type": "git",
"url": "https://gitlab.com/schrottkatze/gum-schulsachen.git"
}
},
"haskell-flake": {
"locked": {
"lastModified": 1675296942,
"narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=",
"owner": "srid",
"repo": "haskell-flake",
"rev": "c2cafce9d57bfca41794dc3b99c593155006c71e",
"lastModified": 1712898590,
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
"owner": "lf-",
"repo": "flakey-profile",
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "0.1.0",
"repo": "haskell-flake",
"owner": "lf-",
"repo": "flakey-profile",
"type": "github"
}
},
"hercules-ci-effects": {
"helix-inline-diags": {
"inputs": {
"flake-parts": "flake-parts_2",
"crane": [
"crane"
],
"flake-utils": "flake-utils",
"nixpkgs": [
"arion",
"nixpkgs"
]
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1704029560,
"narHash": "sha256-a4Iu7x1OP+uSYpqadOu8VCPY+MPF3+f6KIi+MAxlgyw=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "d5cbf433a6ae9cae05400189a8dbc6412a03ba16",
"lastModified": 1730790589,
"narHash": "sha256-xJ6bQ4VmdTB7A+dMbmOMaZ8a6erB6rkZkB+yzqD7gd4=",
"owner": "helix-editor",
"repo": "helix",
"rev": "b53dafe326d51b7f64a1c52379e3d4150cd2991e",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"owner": "helix-editor",
"repo": "helix",
"type": "github"
}
},
@ -190,11 +119,11 @@
]
},
"locked": {
"lastModified": 1708988456,
"narHash": "sha256-RCz7Xe64tN2zgWk+MVHkzg224znwqknJ1RnB7rVqUWw=",
"lastModified": 1730837930,
"narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1d085ea4444d26aa52297758b333b449b2aa6fca",
"rev": "2f607e07f3ac7e53541120536708e824acccfaa8",
"type": "github"
},
"original": {
@ -203,30 +132,47 @@
"type": "github"
}
},
"karton": {
"lix": {
"flake": false,
"locked": {
"lastModified": 1731164513,
"narHash": "sha256-WnT6MpgrMKgqV2Rs+MfU88+KO+/njELPOtGoNhoX2oA=",
"rev": "b967f1d5fe9d1bf58e6159e9b426c5b341489397",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/b967f1d5fe9d1bf58e6159e9b426c5b341489397.tar.gz?rev=b967f1d5fe9d1bf58e6159e9b426c5b341489397"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"
}
},
"lix-module": {
"inputs": {
"naersk": "naersk_2",
"nixpkgs": "nixpkgs_6",
"utils": "utils"
"flake-utils": "flake-utils_2",
"flakey-profile": "flakey-profile",
"lix": "lix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1683146576,
"narHash": "sha256-ZaXE/mmVWgZkfnlY56PFuuCMDyUhNtkKuLzkle6Lg8s=",
"ref": "refs/heads/master",
"rev": "5002f11bf360e4508fc73c28fa0aa0f80bf0713d",
"revCount": 188,
"lastModified": 1731185731,
"narHash": "sha256-RNaIu43b9PoXEhW4OqXUNZKY/jezQyCYWwdv1M0VjsA=",
"ref": "refs/heads/main",
"rev": "691193879d96bdfd1e6ab5ebcca2fadc7604cf34",
"revCount": 117,
"type": "git",
"url": "https://gitlab.com/obsidianical/microbin.git"
"url": "https://git.lix.systems/lix-project/nixos-module"
},
"original": {
"type": "git",
"url": "https://gitlab.com/obsidianical/microbin.git"
"url": "https://git.lix.systems/lix-project/nixos-module"
}
},
"mac-brcm-fw": {
"flake": false,
"locked": {
"lastModified": 1701034142,
"lastModified": 1727366922,
"narHash": "sha256-+kW8ogc6DykjMVlrr+3vWKs9ZUdJ9EW72LbY7k/Qvh4=",
"path": "/home/jade/nix-configs/mac-brcm-fw",
"type": "path"
@ -236,81 +182,6 @@
"type": "path"
}
},
"meowsite": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1678920998,
"narHash": "sha256-YM7MdYYoL/Wgmg8nmMVnAm33WwzdA2JFwMHKfOxNBXs=",
"ref": "refs/heads/master",
"rev": "f40a32b22bc96b07cb78fb5751cf92d5f30b1c24",
"revCount": 11,
"type": "git",
"url": "https://gitlab.com/obsidianical/meowsite.git"
},
"original": {
"type": "git",
"url": "https://gitlab.com/obsidianical/meowsite.git"
}
},
"naersk": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1655042882,
"narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=",
"owner": "nix-community",
"repo": "naersk",
"rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"naersk_2": {
"inputs": {
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1671096816,
"narHash": "sha256-ezQCsNgmpUHdZANDCILm3RvtO1xH8uujk/+EqNvzIOg=",
"owner": "nix-community",
"repo": "naersk",
"rev": "d998160d6a076cfe8f9741e56aeec7e267e3e114",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "master",
"repo": "naersk",
"type": "github"
}
},
"naersk_3": {
"inputs": {
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1671096816,
"narHash": "sha256-ezQCsNgmpUHdZANDCILm3RvtO1xH8uujk/+EqNvzIOg=",
"owner": "nix-community",
"repo": "naersk",
"rev": "d998160d6a076cfe8f9741e56aeec7e267e3e114",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "master",
"repo": "naersk",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1687903496,
@ -329,27 +200,26 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1707689078,
"narHash": "sha256-UUGmRa84ZJHpGZ1WZEBEUOzaPOWG8LZ0yPg1pdDF/yM=",
"lastModified": 1730785428,
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f9d39fb9aff0efee4a3d5f4a6d7c17701d38a1d8",
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github"
},
"original": {
"owner": "NixOS",
"id": "nixpkgs",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1708831307,
"narHash": "sha256-0iL/DuGjiUeck1zEaL+aIe2WvA3/cVhp/SlmTcOZXH4=",
"lastModified": 1720535198,
"narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5bf1cadb72ab4e77cb0b700dab76bcdaf88f706b",
"rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5",
"type": "github"
},
"original": {
@ -358,204 +228,101 @@
"type": "indirect"
}
},
"nixpkgs_10": {
"nixpkgs-unstable-small": {
"locked": {
"lastModified": 1675614288,
"narHash": "sha256-i3Rc/ENnz62BcrSloeVmAyPicEh4WsrEEYR+INs9TYw=",
"lastModified": 1731136819,
"narHash": "sha256-qGmBFnq3/9AiiLZUOVxDsU5j6ysL3PXA8KRp7muJWMs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d25de6654a34d99dceb02e71e6db516b3b545be6",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1656755932,
"narHash": "sha256-TGThfOxr+HjFK464+UoUE6rClp2cwxjiKvHcBVdIGSQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "660ac43ff9ab1f12e28bfb31d4719795777fe152",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1656755932,
"narHash": "sha256-TGThfOxr+HjFK464+UoUE6rClp2cwxjiKvHcBVdIGSQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "660ac43ff9ab1f12e28bfb31d4719795777fe152",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1679966490,
"narHash": "sha256-k0jV+y1jawE6w4ZvKgXDNg4+O9NNtcaWwzw8gufv0b4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5b7cd5c39befee629be284970415b6eb3b0ff000",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1677852945,
"narHash": "sha256-liiVJjkBTuBTAkRW3hrI8MbPD2ImYzwUpa7kvteiKhM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1677852945,
"narHash": "sha256-liiVJjkBTuBTAkRW3hrI8MbPD2ImYzwUpa7kvteiKhM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1674407282,
"narHash": "sha256-2qwc8mrPINSFdWffPK+ji6nQ9aGnnZyHSItVcYDZDlk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ab1254087f4cdf4af74b552d7fc95175d9bdbb49",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1708807242,
"narHash": "sha256-sRTRkhMD4delO/hPxxi+XwLqPn8BuUq6nnj4JqLwOu0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "73de017ef2d18a04ac4bfd0c02650007ccb31c2a",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1675614288,
"narHash": "sha256-i3Rc/ENnz62BcrSloeVmAyPicEh4WsrEEYR+INs9TYw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d25de6654a34d99dceb02e71e6db516b3b545be6",
"rev": "4a2c7def574d031cbf3d7110969f2ca5f38f8ed7",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable-small",
"type": "indirect"
}
},
"root": {
"inputs": {
"arion": "arion",
"easymacros": "easymacros",
"gumseite": "gumseite",
"crane": "crane",
"fenix": "fenix",
"helix-inline-diags": "helix-inline-diags",
"home-manager": "home-manager",
"karton": "karton",
"lix-module": "lix-module",
"mac-brcm-fw": "mac-brcm-fw",
"meowsite": "meowsite",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable",
"wordsofgod": "wordsofgod"
"nixpkgs-unstable-small": "nixpkgs-unstable-small"
}
},
"utils": {
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
"lastModified": 1731056261,
"narHash": "sha256-TPeXChHVcaCBAoE349K7OZH4We5/2ys1GgG4IiwjwOs=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "dd9cd22514cb1001a0a2374b36a85eb75245f27b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"utils_2": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"wordsofgod": {
"rust-overlay": {
"inputs": {
"naersk": "naersk_3",
"nixpkgs": "nixpkgs_10",
"utils": "utils_2"
"nixpkgs": [
"helix-inline-diags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1675936524,
"narHash": "sha256-cr6lknWz+2N4mq6csfdYLUBNTxB2MbaEGH8yQyk3XbA=",
"ref": "refs/heads/master",
"rev": "93c03cbe6f7bac22c7c5023d4bcba3af837ce43b",
"revCount": 8,
"type": "git",
"url": "https://gitlab.com/obsidianical/wordsofgod.git"
"lastModified": 1728268235,
"narHash": "sha256-lJMFnMO4maJuNO6PQ5fZesrTmglze3UFTTBuKGwR1Nw=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "25685cc2c7054efc31351c172ae77b21814f2d42",
"type": "github"
},
"original": {
"type": "git",
"url": "https://gitlab.com/obsidianical/wordsofgod.git"
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},

View file

@ -4,6 +4,18 @@
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
nixpkgs-stable.url = "nixpkgs/nixos-23.11";
nixpkgs-unstable-small.url = "nixpkgs/nixos-unstable-small";
helix-inline-diags = {
url = "github:helix-editor/helix";
inputs = {
crane.follows = "crane";
nixpkgs.follows = "nixpkgs";
};
};
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@ -13,25 +25,55 @@
url = "path:/home/jade/nix-configs/mac-brcm-fw";
flake = false;
};
#mms.url = "github:mkaito/nixos-modded-minecraft-servers";
easymacros.url = "git+https://gitlab.com/obsidianical/easymacros.git";
meowsite.url = "git+https://gitlab.com/obsidianical/meowsite.git";
wordsofgod.url = "git+https://gitlab.com/obsidianical/wordsofgod.git";
karton.url = "git+https://gitlab.com/obsidianical/microbin.git";
arion.url = "github:hercules-ci/arion";
gumseite.url = "git+https://gitlab.com/schrottkatze/gum-schulsachen.git";
crane = {
url = "github:ipetkov/crane";
};
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
nixpkgs-stable,
nixpkgs-unstable-small,
helix-inline-diags,
lix-module,
home-manager,
nixos-hardware,
mac-brcm-fw,
fenix,
crane,
...
} @ inputs: let
pkgs = nixpkgs.legacyPackages."x86_64-linux";
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
pkgs-stable = nixpkgs-stable.legacyPackages.${system};
pkgs-unstable-small = nixpkgs-unstable-small.legacyPackages.${system};
crane-lib = crane.mkLib nixpkgs.legacyPackages.${system};
rs-toolchain = with fenix.packages.${system};
combine [
complete.toolchain
];
# rs-platform = pkgs.makeRustPlatform {
# cargo = rs-toolchain;
# rustc = rs-toolchain;
# };
rs-programs = final: prev: {
# s10e-jrnl = rs-platform.buildRustPackage {
# pname = "jrnl";
# version = "0.0.1";
# src = ./programs/jrnl;
# cargoLock.lockFile = ./programs/jrnl/Cargo.lock;
# };
s10e-jrnl = crane-lib.buildPackage {
pname = "s10e-bs";
version = "0.0.1";
src = crane-lib.cleanCargoSource (crane-lib.path ./.);
};
};
in {
devShells."x86_64-linux".default = pkgs.mkShell {
buildInputs = [
@ -43,13 +85,16 @@
xmobar
statgrab
]))
rs-toolchain
pkgs.haskell-language-server
pkgs.pkg-config
pkgs.openssl
];
};
nixosConfigurations = {
monosodium-glutamate-g = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module helix-inline-diags;
};
system = "x86_64-linux";
modules = [
@ -58,6 +103,9 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit pkgs-unstable-small pkgs-stable;
};
home-manager.users.jade = {
nixosConfig,
pkgs,
@ -71,7 +119,7 @@
};
catbook-j = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module helix-inline-diags;
};
system = "x86_64-linux";
modules = [
@ -80,6 +128,9 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit pkgs-unstable-small pkgs-stable;
};
home-manager.users.jade = {
nixosConfig,
pkgs,
@ -93,7 +144,7 @@
};
potatobook-g = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
inherit inputs pkgs-unstable-small rs-programs lix-module helix-inline-diags;
};
system = "x86_64-linux";
modules = [
@ -103,6 +154,9 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit pkgs-unstable-small pkgs-stable;
};
home-manager.users.jade = {
nixosConfig,
pkgs,

View file

@ -9,34 +9,32 @@
}: {
nixpkgs.config.permittedInsecurePackages = [
"electron-25.9.0"
"electron-27.3.11"
];
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../common.nix
../../modules
./modules
];
jade = {
flatpak.enable = true;
hwKey.pamAuth.enable = true;
desktop = {
compositing.enable = true;
dm.autoLogin = {
enable = true;
delay = 5;
};
syncthing.enable = true;
kdeconnect.enable = true;
cloud.enable = true;
social.enable = true;
mail.enable = true;
gaming.enable = true;
evremap.enable = true;
};
terminal.enable = true;
};
hardware.trackpoint = {
enable = true;
# device = "MELF0410:00 1FD2:7007";
device = "DELL081C:00 044E:121F Mouse";
sensitivity = 255;
};
security.pam.services.swaylock = {};
hardware.usb-modeswitch.enable = true;
systemd.services."ModemManager".enable = true;
@ -44,19 +42,7 @@
systemd.services."ModemManager".wantedBy = ["multi-user.target"];
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkDefault "va_gl");
};
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
intel-ocl
intel-media-driver
intel-vaapi-driver
intel-compute-runtime
libvdpau-va-gl
mesa.drivers
];
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
};
programs.wireshark.enable = true;
@ -69,8 +55,6 @@
hardware.bluetooth.enable = true;
services.blueman.enable = true;
services.xserver.libinput.touchpad.tapping = false;
environment.systemPackages = [
pkgs.plantuml
pkgs.mqttui
@ -88,55 +72,11 @@
"/crypto_keyfile.bin" = null;
};
# nixpkgs = {
# overlays = [
# (self: super: {
# linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
# structuredExtraConfig = with lib.kernel; {
# "FB" = yes;
# "FRAMEBUFFER_CONSOLE" = yes;
# "VGA_CONSOLE" = yes;
# "VIDEO_SELECT" = yes;
# LOGO = lib.mkForce yes;
# LOGO_LINUX_CLUT224 = yes;
# };
# ignoreConfigErrors = true;
# });
# })
# ];
# };
boot.kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [
# {
# name = "fomx";
# patch = ../../other/0001-fomx.patch;
# }
# ];
services.xserver.displayManager.autoLogin = {
enable = true;
user = "jade";
};
networking.hostName = "catbook-j"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
# networking
networking.networkmanager.enable = true;
security.pam.services.jade.u2fAuth = true;
programs.i3lock.u2fSupport = true;
security.pam.u2f = {
enable = true;
cue = true;
control = "sufficient";
authFile = "/home/jade/.ssh/u2f_keys";
};
networking.hostName = "catbook-j";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";

View file

@ -0,0 +1,6 @@
{...}: {
imports = [
./input.nix
./graphics.nix
];
}

View file

@ -0,0 +1,12 @@
{pkgs, ...}: {
hardware.graphics = {
extraPackages = with pkgs; [
intel-ocl
intel-media-driver
intel-vaapi-driver
intel-compute-runtime
libvdpau-va-gl
mesa.drivers
];
};
}

View file

@ -0,0 +1,27 @@
{...}: {
# key remapping
jade.input.remapping = {
enable = true;
devices."AT Translated Set 2 keyboard" = {
swapKeys = [
["KEY_Y" "KEY_Z"]
["KEY_LEFTALT" "KEY_LEFTMETA"]
];
dual_role = [
{
input = "KEY_CAPSLOCK";
hold = ["KEY_LEFTCTRL"];
tap = ["KEY_ESC"];
}
];
};
};
hardware.trackpoint = {
enable = true;
device = "TPPS/2 IBM TrackPoint";
sensitivity = 256;
};
services.libinput.touchpad.tapping = true;
}

View file

@ -6,39 +6,19 @@
./hardware-configuration.nix
../../common.nix
../../modules
./modules
];
# nixpkgs = {
# overlays = [
# (self: super: {
# linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
# structuredExtraConfig = with lib.kernel; {
# "FB" = yes;
# "FRAMEBUFFER_CONSOLE" = yes;
# "VGA_CONSOLE" = yes;
# "VIDEO_SELECT" = yes;
# LOGO = lib.mkForce yes;
# LOGO_LINUX_CLUT224 = yes;
# };
# ignoreConfigErrors = true;
# });
# })
# ];
# };
jade = {
flatpak.enable = true;
hwKey.pamAuth.enable = true;
desktop = {
compositing.enable = true;
syncthing.enable = true;
kdeconnect.enable = true;
cloud.enable = true;
social.enable = true;
gaming.enable = true;
mail.enable = true;
evremap.enable = false;
};
terminal.enable = true;
};
boot = {
loader = {
@ -46,16 +26,8 @@
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
# latest linux kernel
#boot.kernelPackages = pkgs.linuxPackages_latest;
#boot.kernelPackages = pkgs.linux_zen_xeniafied;
kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [
# {
# name = "fomx";
# patch = ../other/0001-fomx.patch;
# }
# ];
binfmt.emulatedSystems = ["aarch64-linux"];
};
@ -82,31 +54,15 @@
enableRedistributableFirmware = true;
};
security.pam.services.jade.u2fAuth = true;
programs.i3lock.u2fSupport = true;
security.pam.u2f = {
enable = true;
cue = true;
control = "sufficient";
authFile = "/home/jade/.ssh/u2f_keys";
};
# missing: menu-qalc picom-jonaburg
environment.systemPackages = with pkgs; [
# TODO: clean up.
libGL
libreoffice-fresh
wireshark
awesomebump
zenstates
zenmonitor
nvtop-amd
radeontop
rgp
tea
blender-hip
jdk8
jdk11
];
programs = {
wireshark.enable = true;
@ -126,23 +82,7 @@
# networking.firewall.allowedTCPPorts = [ 4713 ];
systemd.services."NetworkManager-wait-online".enable = false;
systemd.services = {
create-swapfile = {
serviceConfig.Type = "oneshot";
wantedBy = ["swap-swapfile.swap"];
script = ''
swapfile="/swap/swapfile"
if [[ -f "$swapfile" ]]; then
echo "Swap file $swapfile already exists, taking no action"
else
echo "Setting up swap file $swapfile"
${pkgs.coreutils}/bin/truncate -s 0 "$swapfile"
${pkgs.e2fsprogs}/bin/chattr +C "$swapfile"
fi
'';
};
};
swapDevices = [{device = "/swap/swapfile";}];
# release channel
system.stateVersion = "22.05"; # Did you read the comment?
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -12,34 +12,32 @@
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "uas" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
device = "/dev/disk/by-uuid/efb8f256-5b14-4b52-a2d9-ae4b91ecb711";
fsType = "btrfs";
options = ["subvol=@root" "compress=zstd:3"];
options = ["subvol=@"];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs";
options = ["subvol=@home" "compress=zstd:3"];
};
boot.initrd.luks.devices."luks-919f9b8b-2804-447a-97e0-f7f515d0be56".device = "/dev/disk/by-uuid/919f9b8b-2804-447a-97e0-f7f515d0be56";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D63E-18C9";
device = "/dev/disk/by-uuid/3FAD-A6B4";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices = [
{
device = "/swap/swapfile";
size = (1024 * 64) + (1024 * 8); # 72G
}
];
fileSystems."/swap" = {
device = "/dev/disk/by-uuid/efb8f256-5b14-4b52-a2d9-ae4b91ecb711";
fsType = "btrfs";
options = ["subvol=swap"];
};
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
@ -47,7 +45,9 @@
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp9s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wg0-mullvad.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,5 @@
{...}: {
imports = [
./graphics.nix
];
}

View file

@ -0,0 +1,7 @@
{pkgs, ...}: {
environment.systemPackages = [
pkgs.nvtop-amd
pkgs.radeontop
pkgs.rgp
];
}

View file

@ -65,9 +65,10 @@
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
services.xserver.libinput.touchpad.disableWhileTyping = true;
services.xserver.libinput.touchpad.tapping = false;
services.libinput.touchpad = {
disableWhileTyping = true;
tapping = false;
};
networking.networkmanager.enable = true;
networking.hostName = "potatobook-g";
@ -116,17 +117,8 @@
services.gnome.gnome-keyring.enable = true;
programs.seahorse.enable = true;
security.pam.services.jade.enableGnomeKeyring = true;
security.pam.services.jade.u2fAuth = true;
systemd.services."NetworkManager-wait-online".enable = false;
programs.i3lock.u2fSupport = true;
security.pam.u2f = {
enable = true;
cue = true;
control = "sufficient";
authFile = "/home/jade/.ssh/u2f_keys";
};
# services.pixiecore =
# let

View file

@ -1,13 +1,13 @@
upgrade: update build
test:
sudo nixos-rebuild test --flake . --impure
sudo nixos-rebuild test --flake . --impure --log-format multiline
build:
sudo nixos-rebuild switch --flake . --impure --fast
sudo nixos-rebuild switch --flake . --impure --fast --log-format multiline
update:
nix flake update --commit-lock-file
nix flake update --commit-lock-file --log-format multiline
build-mac:
sudo nixos-rebuild switch --flake . --impure --override-input mac-brcm-fw path:/home/jade/mac-brcm-fw --fast
sudo nixos-rebuild switch --flake . --impure --override-input mac-brcm-fw path:/home/jade/mac-brcm-fw --fast --log-format multiline

View file

@ -2,10 +2,10 @@
imports = [
./shell
./desktop
./terminal.nix
./flatpak.nix
./hardware
./firewall.nix
./git.nix
./kmscon.nix
./desktop-environment
./input
./graphics.nix
];
}

View file

@ -0,0 +1,24 @@
{pkgs, ...}: {
programs = {
noisetorch.enable = true;
};
services = {
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
};
environment.systemPackages = with pkgs; [
pavucontrol
volumeicon
playerctl
pulseaudioFull
cava
helvum
];
hardware.pulseaudio.enable = pkgs.lib.mkForce false;
# sound.mediaKeys.enable = true;
}

View file

@ -0,0 +1,12 @@
{...}: {
imports = [
./audio.nix
./eduroam.nix
./flatpak.nix
./home
./dm.nix
];
services.upower = {
enable = true;
};
}

View file

@ -0,0 +1,36 @@
{
pkgs,
config,
lib,
...
}: let
cfg = config.jade.desktop.dm;
in
with lib; {
options.jade.desktop.dm.autoLogin = {
enable = mkEnableOption "Enable Autologin";
delay = mkOption {
type = types.int;
default = 0;
};
};
config.services = {
displayManager = {
autoLogin = {
enable = cfg.autoLogin.enable;
user = "jade";
};
defaultSession = "sway";
sessionPackages = [
pkgs.sway
];
};
xserver.displayManager.gdm = {
enable = true;
banner = "Meow :3";
autoLogin = {
delay = cfg.autoLogin.delay;
};
};
};
}

View file

@ -0,0 +1,56 @@
# Thanks @ kloenk (@kloenk@catcatnya.com) for making this for me at MRMCD 2024 :33
{pkgs, ...}: let
caDir = "/var/lib/easyroam";
uuid = "821ad781-76a3-447f-a2e8-c7f18a1df3bc";
in {
systemd.services.easyroam = {
requires = ["NetworkManager.service"];
after = ["NetworkManager.service"];
requiredBy = ["network-online.target"];
path = with pkgs; [networkmanager openssl gnused];
script = ''
set -x
openssl pkcs12 -password pass: -in ${caDir}/my_easyroam_cert.p12 -legacy -nokeys | openssl x509 > ${caDir}/easyroam_client_cert.pem
cn=$(openssl x509 -noout -subject -in ${caDir}/easyroam_client_cert.pem -legacy | sed 's/.*CN = \(.*\), C.*/\1/')
openssl pkcs12 -legacy -password pass: -in ${caDir}/my_easyroam_cert.p12 -nodes -nocerts | openssl rsa -aes256 -passin pass: -passout pass:meow -out ${caDir}/easyroam_client_key.pem
openssl pkcs12 -password pass: -in ${caDir}/my_easyroam_cert.p12 -legacy -cacerts -nokeys > ${caDir}/easyroam_root_ca.pem
nmcli connection modify --temporary uuid ${uuid} 802-1x.identity "$cn"
'';
serviceConfig = {
Type = "oneshot";
};
};
networking.networkmanager.ensureProfiles.profiles.eduroam = {
"802-1x" = {
ca-cert = "${caDir}/easyroam_root_ca.pem";
client-cert = "${caDir}/easyroam_client_cert.pem";
domain-suffix-match = "easyroam.eduroam.de";
eap = "tls;";
identity = "meow";
private-key = "${caDir}/easyroam_client_key.pem";
private-key-password = "meow";
};
connection = {
id = "eduroam";
type = "wifi";
inherit uuid;
};
ipv4 = {
method = "auto";
};
ipv6 = {
addr-gen-mode = "default";
method = "auto";
};
proxy = {};
wifi = {
mode = "infrastructure";
ssid = "eduroam";
};
wifi-security = {
key-mgmt = "wpa-eap";
};
};
}

View file

@ -0,0 +1,16 @@
{
config,
lib,
pkgs,
...
}: {
services.flatpak.enable = true;
xdg.portal = {
enable = true;
# TODO
config.common.default = "*";
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
};
}

View file

@ -0,0 +1,28 @@
{...}: {
services.picom = {
enable = true;
backend = "glx";
shadow = true;
shadowOffsets = [(-40) (-30)];
shadowOpacity = 0.2;
shadowExclude = [
"class_g ?= 'Notify-osd'"
"_GTK_FRAME_EXTENTS@:c"
"!(class_g = 'Rofi' || class_g = 'Dunst')"
];
vSync = true;
settings = {
"shadow-radius" = 40;
# fading rofi
"fading" = true;
"fade-in-step" = 0.25;
"fade-out-step" = 0.2;
"fade-delta" = 20;
"fade-exclude" = ["class_g != 'Rofi'"];
# use damage information
"use-damage" = true;
};
};
}

View file

@ -0,0 +1,27 @@
{...}: {
home-manager.users.jade = {...}: {
imports = [
./notifications.nix
./terminal.nix
./compositing.nix
./panels
./xmonad
./sway
];
services.gpg-agent = {
enable = true;
enableNushellIntegration = true;
enableSshSupport = true;
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
emoji = [];
monospace = [];
sansSerif = ["Atkinson Hyperlegible"];
serif = [];
};
};
};
}

View file

@ -0,0 +1,17 @@
{pkgs, ...}: {
services.dunst = {
enable = true;
settings = {
global = {
dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst";
browser = "${pkgs.firefox}/bin/firefox";
mouse_left_click = "context";
mouse_middle_click = "close_current";
background = "#282828";
foreground = "#ebdbb2";
frame_color = "#504945";
frame_width = 2;
};
};
};
}

View file

@ -0,0 +1,7 @@
{...}: {
imports = [
./xmobar
./polybar.nix
./eww
];
}

View file

@ -0,0 +1,65 @@
(include "bottomBar/workspaces.yuck")
(include "bottomBar/traveldings.yuck")
(defwindow bottomBar
:monitor 0
:stacking "fg"
:wm-ignore true
:exclusive true
:geometry (geometry
:width "100%"
:height "32px"
:anchor "bottom center")
(bottomBar))
(defwidget bottomBar []
(overlay
:class "bottomBar"
(transform
:translate-y "1.5px"
(centerbox
(box
:halign "start"
(workspaceWidget)
)
(box
:halign "center"
(traveldings)
)
(box
:halign "end"
; (label :text "${iceData.speed}km/h")
(iceTacho)
)
)
)
(box
:class "lesbianFlag"
:height 1
( flagEl :flipped true :color "#D52D00")
( flagEl :flipped true :color "#EF7627")
( flagEl :flipped true :color "#FF9A56")
( flagEl :flipped true :color "#FFFFFF")
( flagEl :flipped true :color "#D162A4")
( flagEl :flipped true :color "#B55690")
( flagEl :flipped true :color "#A30262")
)
)
)
(defwidget iceTacho []
(box
:class "iceTacho"
:tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})"
(circular-progress
:value { iceTachoData.frac * 60 + 20 }
:thickness 3
)
(label :text "${iceTachoData.speed} km/h")
)
)
(deflisten iceTachoData
:initial "null"
{ "~/.config/eww/scripts/iceTacho.nu" }
)

View file

@ -0,0 +1,37 @@
(defwidget traveldings []
(revealer
:class "traveldings"
:transition "crossfade"
:reveal { traveldings_data != "null" }
(traveldingsBarWidget)
)
)
(defwidget traveldingsBarWidget []
(overlay
(box
:width 640
(label
:halign "start"
:text "${traveldings_data.line} -> ${strlength(traveldings_data.arrival_station) > 24 ? "${substring(traveldings_data.arrival_station, 0, 24)}…" : traveldings_data.arrival_station}${traveldings_data.arrival_platform_data_available ? " (Gl. ${traveldings_data.arrival_platform_real})" : ""}"
)
(label
:halign "end"
:text { traveldings_data.time_left >= 3600 ? formattime(traveldings_data.time_left, "noch %-Hh %-Mmin", "Etc/UTC") : formattime(traveldings_data.time_left, "noch %-Mmin", "Etc/UTC") }
)
)
(box
(progress
:class { traveldings_data.live ? "traveldings_live" : "traveldings_disconnected" }
:value {traveldings_data.progress * 100}
:orientation "horizontal"
)
)
)
)
(deflisten traveldings_data
:initial "null"
"traveldings current"
)

View file

@ -0,0 +1,17 @@
(defwidget workspaceWidget []
(box
:class "workspaces"
(for workspace in workspaces
(button
:class "${workspace.urgent ? "urgent" : ""} ${workspace.focused ? "focused" : 0}"
:onclick "swaymsg workspace ${workspace.name}"
(label :text "${workspace.name}")
)
)
)
)
(deflisten workspaces
:initial "[]"
"bar-ws-monitor"
)

View file

@ -0,0 +1,37 @@
label {
font: 14pt "FiraCode Nerd Font";
}
.workspaces button {
border: 0px;
background-color: #282828;
}
.workspaces button.urgent {
background-color: #cc241d;
}
.workspaces button.focused {
background-color: #504935;
}
.traveldings progressbar trough {
border: none;
background-color: #3c3836;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.traveldings progressbar.traveldings_live progress {
background-color: #79740e;
border-bottom-left-radius: 0;
}
.traveldings progressbar.traveldings_disconnected progress {
background-color: #cc241d;
}
.traveldingsWindow {
border-radius: 15px;
}

View file

@ -0,0 +1,2 @@
(include "topBar/topBar.yuck")
(include "bottomBar/bottomBar.yuck")

View file

@ -0,0 +1,55 @@
#!/usr/bin/env nu
const ICONS = [
[ normal charging];
[ 󰂎 󰢟 ]
[ 󰁺 󰢜 ]
[ 󰁻 󰂆 ]
[ 󰁼 󰂇 ]
[ 󰁽 󰂈 ]
[ 󰁾 󰢝 ]
[ 󰁿 󰂉 ]
[ 󰂀 󰢞 ]
[ 󰂁 󰂊 ]
[ 󰂂 󰂋 ]
[ 󰁹 󰂅 ]
];
def main [ path: string ] {
loop {
let fract = get_bat_charge_fraction $path;
let is_charging = get_bat_charging_status $path;
let percent = ($fract * 100) | math round;
print $"<span foreground=\"#d65d0e\">(get_bat_icon $fract $is_charging)</span> ($percent)<span foreground=\"#7c6f64\">%</span>";
sleep 2sec;
}
}
def get_bat_charge_fraction [
path: string
] {
let energy_full = open $"/sys/class/power_supply/($path)/energy_full" | into float;
let energy_now = open $"/sys/class/power_supply/($path)/energy_now" | into float;
$energy_now / $energy_full
}
def get_bat_charging_status [
path: string
] {
let status = open $"/sys/class/power_supply/($path)/status";
if ($status == Charging) {
true
} else {
false
}
}
def get_bat_icon [
frac: float
is_charging = false
] {
$ICONS | get (($frac * 10) | math round) | get (if ($is_charging) { "charging" } else { "normal" })
}

View file

@ -0,0 +1,38 @@
#!/usr/bin/env nu
const TABLE = {
401: 280
402: 280
403: 330
406: 330
407: 320
408: 320
411: 230
415: 230
412: 265
605: 200
};
def main [ ] {
loop {
if ((iw dev wlp4s0 link | lines | filter {|it| $it =~ "WIFIonICE" } | length) == 1) {
let iceData = http get https://iceportal.de/api1/rs/status;
let tzn = $iceData.tzn;
let br = $iceData.series;
let speed = $iceData.speed;
let speedfrac = $speed / ($TABLE | get $br);
print ({
tzn: $tzn,
br: $br,
speed: $speed,
frac: $speedfrac
} | to json -r);
sleep 2sec;
} else {
print "null";
sleep 5sec;
}
}
}

View file

@ -0,0 +1,27 @@
(deflisten bat0
:initial "<span foreground=\"#cc241d\">BAT0 ERR</span>"
{ "~/.config/eww/scripts/bat.nu BAT0"}
)
(deflisten bat1
:initial "<span foreground=\"#cc241d\">BAT1 ERR</span>"
{ "~/.config/eww/scripts/bat.nu BAT1"}
)
(defwidget cpu []
(box
:class "cpuIndicator"
(label
:markup "<span foreground=\"#d65d0e\"></span> ${strlength(round(EWW_CPU.avg, 0)) == 1 ? " ${round(EWW_CPU.avg, 0)}" : round(EWW_CPU.avg, 0)}<span foreground=\"#7c6f64\">%</span>"
)
)
)
(defwidget mem []
(box
:class "memIndicator"
(label
:markup "<span foreground=\"#d65d0e\"> </span> ${round(EWW_RAM.used_mem_perc, 0)}<span foreground=\"#7c6f64\">%</span>"
)
)
)

View file

@ -0,0 +1,10 @@
(defwidget time []
(label
:markup {
formattime(
EWW_TIME,
"<span foreground=\"#d65d0e\"></span> %Y<span foreground=\"#7c6f64\">-</span>%m<span foreground=\"#7c6f64\">-</span>%d <span foreground=\"#d65d0e\"></span> %H<span foreground=\"#7c6f64\">:</span>%M<span foreground=\"#7c6f64\">:</span>%S "
)
}
)
)

View file

@ -0,0 +1,58 @@
(include "topBar/time.yuck")
(include "topBar/sysinfo.yuck")
(include "util.yuck")
(defwindow topBar
:monitor 0
:stacking "fg"
:wm-ignore true
:exclusive true
:geometry (geometry
:width "100%"
:height "32px"
:anchor "top center")
(topBar))
(defwidget topBar []
(overlay
:class "topBar"
(transform
:translate-y "-1.5px"
(centerbox
(box
:halign "start"
:spacing 12
:space-evenly false
(label :text " ")
(cpu)
(sep)
(mem)
(sep)
(label :markup bat0)
(sep)
(label :markup bat1)
)
(box
:halign "center"
(systray
:icon-size 18
:spacing 3
)
)
(box
:halign "end"
(time)
)
)
)
(box
:class "transFlag"
:height 1
( flagEl :flipped false :color "#5BCEFA")
( flagEl :flipped false :color "#F5A9B8")
( flagEl :flipped false :color "#FFFFFF")
( flagEl :flipped false :color "#F5A9B8")
( flagEl :flipped false :color "#5BCEFA")
)
)
)

View file

@ -0,0 +1,11 @@
(defwidget flagEl [color ?flipped]
(box
:style "border-${flipped ? "top" : "bottom"}: 3px solid ${color}"
:halign "fill"
)
)
(defwidget sep []
(label :text "|")
)

View file

@ -0,0 +1,6 @@
{ ... }: {
programs.eww = {
enable = true;
configDir = ./configDir;
};
}

View file

@ -0,0 +1,146 @@
{
config,
lib,
pkgs,
...
}: {
services.polybar = {
enable = true;
package = pkgs.polybarFull;
script = "";
settings = {
colors = {
background = "#282828";
background-alt = "#3c3836";
foreground = "#ebdbb2";
primary = "#d65d0e";
secondary = "#fe8019";
alert = "#cc241d";
disabled = "#504945";
};
"bar/status" = {
# Style
bottom = true;
width = "100%";
height = "24px";
radius = 0;
tray-position = "center";
background = "\${colors.background}";
foreground = "\${colors.foreground}";
line-size = "4px";
border-color = "#00000000";
padding-left = 0;
padding-right = 1;
module-margin = 1;
separator = "|";
separator-foreground = "\${colors.disabled}";
font-0 = "FiraCode Nerd Font";
modules-left = "xworkspaces xwindow";
modules-right = "memory cpu wlan bat0 bat1";
cursor-click = "pointer";
cursor-scroll = "ns-resize";
enable-ipc = true;
wm-restack = "generic";
override-redirect = false;
};
"module/xworkspaces" = {
type = "internal/xworkspaces";
label-active = "";
label-active-padding = 1;
label-occupied = "";
label-occupied-padding = 1;
label-urgent = "";
label-urgent-foreground = "\${colors.alert}";
label-urgent-padding = 1;
label-empty = "";
label-empty-foreground = "\${colors.disabled}";
label-empty-padding = 1;
};
"module/xwindow" = {
type = "internal/xwindow";
label = "%title:0:60:...%";
};
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = "󰍛 ";
format-prefix-foreground = "\${colors.primary}";
label = "%percentage_used:2%%";
};
"module/cpu" = {
type = "internal/cpu";
interval = "2";
format-prefix = "󰻠 ";
format-prefix-foreground = "\${colors.primary}";
label = "%percentage:2%%";
};
"network-base" = {
type = "internal/network";
interval = 5;
format-connected = "<ramp-signal> <label-connected>";
format-disconnected = "<label-disconnected>";
label-disconnected = "󰣼";
label-disconnected-foreground = "#d65d0e";
ramp.signal = [
"%{F#cc241d}󰣾"
"%{F#d79921}󰣴"
"%{F#98971a}󰣶"
"%{F#98971a}󰣸"
"%{F#98971a}󰣺"
];
};
"module/wlan" = {
"inherit" = "network-base";
interface-type = "wireless";
label-connected = "%{F#F0C674}%{F-} %local_ip%";
};
"battery-base" = {
type = "internal/battery";
poll-interval = 1;
time-format = "%H%{F#7c6f64}:%{F#d5c4a1}%M";
label-charging = "%{F#98971a}󰚥 %{F#ebdbb2}%percentage%%%{F#d5c4a1} %time%";
format-charging = "<ramp-capacity> <label-charging>";
label-discharging = "%{F#ebdbb2}%percentage%%%{F#bdae93} %time%";
format-discharging = "<ramp-capacity> <label-discharging>";
label-full = "%{F#98971a}󰁹%{F#ebdbb2} %percentage%%";
format-full = "<label-full>";
label-low = "%{F#cc241d}󰂎%{F#ebdbb2} %percentage%%";
format-low = "<label-low>";
ramp.capacity = [
"%{F#cc241d}󰁺"
"%{F#d79921}󰁻"
"%{F#98971a}󰁼"
"%{F#98971a}󰁽"
"%{F#98971a}󰁾"
"%{F#98971a}󰁿"
"%{F#98971a}󰂀"
"%{F#98971a}󰂁"
"%{F#98971a}󰂂"
"%{F#98971a}󰁹"
];
};
"module/bat0" = {
"inherit" = "battery-base";
battery = "BAT0";
adapter = "ADP1";
};
"module/bat1" = {
"inherit" = "battery-base";
battery = "BAT1";
adapter = "ADP1";
};
"settings" = {
screenchange-reload = true;
pseudo-transparency = true;
};
};
};
}

View file

@ -0,0 +1,27 @@
{
lib,
pkgs,
...
}: let
xmobarGhc = pkgs.haskellPackages.ghcWithPackages (pkgs:
with pkgs; [
xmobar
statgrab
]);
in {
home = {
packages = [xmobarGhc];
file."xmobar.hs" = rec {
source = ./xmobar.hs;
target = ".config/xmobar/xmobar.hs";
onChange = ''
${xmobarGhc}/bin/ghc -threaded ${target}
${pkgs.busybox}/bin/pkill xmobar
${pkgs.haskellPackages.xmonad}/bin/xmonad --restart
'';
};
};
programs.xmobar = {
enable = true;
};
}

View file

@ -0,0 +1,206 @@
{
pkgs,
lib,
config,
...
}: {
programs.wofi.enable = true;
programs.swaylock.enable = true;
services.network-manager-applet.enable = true;
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-wlr];
# sway = {
# default = ["wlr"];
# };
config.common.default = "*";
};
services.swayidle = {
enable = true;
events = [
{
event = "before-sleep";
command = "${pkgs.swaylock}/bin/swaylock -fF -c 442244";
}
{
event = "lock";
command = "swaylock -c 441144";
}
];
};
wayland.windowManager.sway = {
enable = true;
systemd = {
enable = true;
};
wrapperFeatures = {
base = true;
gtk = true;
};
config = {
modes = {
resize = {
Down = "resize grow height 10 px";
Escape = "mode default";
Left = "resize shrink width 10 px";
Return = "mode default";
Right = "resize grow width 10 px";
Up = "resize shrink height 10 px";
h = "resize shrink width 10 px";
j = "resize grow height 10 px";
k = "resize shrink height 10 px";
l = "resize grow width 10 px";
};
};
terminal = "kitty";
output = {
"*" = {
bg = "${../xmonad/wallpaper/wallpaper.jpg} fill";
};
};
input = {
"*" = {
xkb_layout = "us";
xkb_variant = "altgr-intl";
};
};
startup = [
{
command = "eww open-many topBar bottomBar";
}
{
command = "sleep 1 && mullvad-gui";
}
];
bars = [];
menu = "wofi -d";
modifier = "Mod4";
assigns = {
"1" = [
{class = "^Signal$";}
{class = "^Element$";}
{class = "^Evolution$";}
{class = "^teams-for-linux$";}
];
"2" = [
{app_id = "^firefox$";}
];
};
keybindings = with {
#mod = config.xsession.windowManager.i3.config.modifier;
# mod = "Mod1";
mod = config.wayland.windowManager.sway.config.modifier;
};
lib.mkOptionDefault {
# switch window focus
"${mod}+h" = "focus left";
"${mod}+j" = "focus down";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
# move windows
"${mod}+Shift+h" = "move left";
"${mod}+Shift+j" = "move down";
"${mod}+Shift+k" = "move up";
"${mod}+Shift+l" = "move right";
# layout shit
"${mod}+shift+semicolon" = "split h";
"${mod}+semicolon" = "split v";
"${mod}+f" = "fullscreen toggle";
"${mod}+Shift+w" = "layout tabbed";
"${mod}+e" = "layout toggle split";
"${mod}+Shift+space" = "floating toggle";
# focus parents/children
# "${mod}+Shift+a" = "focus parent";
# "${mod}+Shift+c" = "focus child";
# screenshot
# "${mod}+w" = "exec window-screenshot.sh";
"${mod}+s" = "exec gscreenshot -csf $HOME/Pictures/screenshots";
"${mod}+a" = "exec gscreenshot -cf $HOME/Pictures/screenshots";
# "${mod}+t" = "exec ocr-screenshot.sh";
# rofi fuckery
"${mod}+d" = "exec wofi -S drun --allow-images";
"${mod}+i" = "exec rofimoji --selector wofi -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy";
# audio
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status";
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status";
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status";
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status";
"XF86AudioNext" = "exec playerctl next";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioPause" = "exec playerctl pause";
"XF86AudioPlay" = "exec playerctl play";
"XF86AudioStop" = "exec playerctl stop";
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
"XF86KbdBrightnessUp" = "exec brillo -kA 10.0";
"XF86KbdBrightnessDown" = "exec brillo -kU 10.0";
};
focus = {
wrapping = "yes";
};
fonts = {
names = ["Atkinson Hyperlegible"];
style = "Regular";
size = 9.0;
};
gaps = {
#top = 24;
inner = 15;
outer = 0;
smartGaps = true;
smartBorders = "on";
};
colors = {
background = "#1d2021";
focused = {
background = "#282828";
border = "#504945";
childBorder = "#7c6f64";
indicator = "#504945";
text = "#ebdbb2";
};
focusedInactive = {
background = "#1d2021";
border = "#504945";
childBorder = "#665c54";
indicator = "#664c54";
text = "#d5c4a1";
};
placeholder = {
background = "#1d2021";
border = "#00ff00";
childBorder = "#504945";
indicator = "#504945";
text = "#928374";
};
unfocused = {
background = "#1d2021";
border = "#3c3836";
childBorder = "#504945";
indicator = "#504945";
text = "#bdae93";
};
urgent = {
background = "#9d0006";
border = "#cc241d";
childBorder = "#3c3836";
indicator = "#fb4943";
text = "#ebdbb2";
};
};
window = {
border = 2;
titlebar = false;
};
};
};
}

View file

@ -0,0 +1,37 @@
{...}: {
programs.kitty = {
enable = true;
font = {
name = "FiraCode Nerd Font";
size = 11;
};
keybindings = {
"ctrl+shift+n" = "new_os_window_with_cwd";
};
settings = {
#adjust_column_width = "70%";
color0 = "#282828";
color8 = "#928374";
color1 = "#cc241d";
color9 = "#fb4934";
color2 = "#98971a";
color10 = "#b8bb26";
color3 = "#d79921";
color11 = "#fabd2f";
color4 = "#458588";
color12 = "#83a598";
color5 = "#b16286";
color13 = "#d3869b";
color6 = "#689d6a";
color14 = "#8ec07c";
color7 = "#a89984";
color15 = "#ebdbb2";
foreground = "#ebdbb2";
background = "#282828";
confirm_os_window_close = 0;
};
};
home.sessionVariables = {
TERMINAL = "kitty";
};
}

View file

@ -0,0 +1,9 @@
{pkgs, ...}: {
imports = [./wallpaper];
home.packages = [pkgs.xmonadctl];
xsession.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
config = ./xmonad.hs;
};
}

View file

@ -0,0 +1,9 @@
{...}: {
home.file.wallpaper = {
target = "Pictures/wallpaper.jpg";
source = ./wallpaper.jpg;
onChange = ''
feh --bg-fill ~/Pictures/wallpaper.jpg;
'';
};
}

View file

Before

Width:  |  Height:  |  Size: 8.4 MiB

After

Width:  |  Height:  |  Size: 8.4 MiB

View file

@ -68,7 +68,10 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) =
-- TODO: other media keys
((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+"),
((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-"),
((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle")
((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle"),
((0, xF86XK_AudioNext), spawn "playerctl next"),
((0, xF86XK_AudioPrev), spawn "playerctl previous"),
((0, xF86XK_AudioPause), spawn "playerctl play-pause")
]
++ [ ((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9],

View file

@ -1,39 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
config = {
programs = {
noisetorch.enable = true;
};
services = {
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
};
hardware.pulseaudio.enable = pkgs.lib.mkForce false;
sound.mediaKeys.enable = true;
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
pavucontrol
pulseaudioFull
easyeffects
cava
volumeicon
playerctl
helvum
];
xsession.windowManager.i3.config.startup = [
{
command = "pkill volumeicon; volumeicon";
always = true;
}
];
};
};
}

View file

@ -2,6 +2,7 @@
config,
lib,
pkgs,
pkgs-stable,
...
}: let
cfg = config.jade.desktop.cloud;
@ -14,7 +15,7 @@ in
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
fluent-reader
bitwarden
pkgs-stable.bitwarden
rofi-rbw
];
};

View file

@ -1,42 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.compositing;
in
with lib; {
options.jade.desktop.compositing = {
enable = mkEnableOption "Enable compositing with picom";
};
config = mkIf cfg.enable {
services.picom = {
enable = true;
backend = "glx";
shadow = true;
shadowOffsets = [(-40) (-30)];
shadowOpacity = 0.2;
shadowExclude = [
"class_g ?= 'Notify-osd'"
"_GTK_FRAME_EXTENTS@:c"
"!(class_g = 'Rofi' || class_g = 'Dunst')"
];
vSync = true;
settings = {
"shadow-radius" = 40;
# fading rofi
"fading" = true;
"fade-in-step" = 0.25;
"fade-out-step" = 0.2;
"fade-delta" = 20;
"fade-exclude" = ["class_g != 'Rofi'"];
# use damage information
"use-damage" = true;
};
};
# }}}
};
}

View file

@ -1,32 +1,31 @@
{pkgs, ...}: {
fonts.packages = with pkgs; [
(nerdfonts.override {fonts = ["FiraCode"];})
montserrat
noto-fonts
atkinson-hyperlegible
arkpandora_ttf
liberation_ttf
caladea
carlito
garamond-libre
ocr-a
amiri
];
fonts.fontDir.enable = true;
{
pkgs,
pkgs-stable,
...
}: {
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
audacity
krita
gimp-with-plugins
# gimp-with-plugins
gimp
inkscape-with-extensions
obs-studio
kdenlive
fspy
scribus
scribus
lilypond
gnuplot
graphviz
povray
openscad-unstable
openscad-lsp
pkgs-stable.font-manager
fontforge-gtk
libreoffice
onlyoffice-bin_latest
typst
rawtherapee

View file

@ -15,68 +15,41 @@
in
with lib; {
imports = [
./audio.nix
./gaming.nix
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
./dunst.nix
./compositing.nix
./ios-compat.nix
./syncthing.nix
./kdeconnect.nix
./themeing.nix
./cloud.nix
./networking.nix
./polybar.nix
./social.nix
./mail.nix
./specific-hardware
./evremap.nix
./xmonad.nix
./fonts.nix
./firefox.nix
./x.nix
./obs.nix
];
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
];
};
programs.seahorse.enable = true;
security.pam.services.jade.enableGnomeKeyring = true;
virtualisation.libvirtd.enable = true;
services = {
printing.enable = true;
gnome.gnome-keyring.enable = true;
xserver = {
printing = {
enable = true;
xkb = {
layout = "us";
variant = "altgr-intl";
};
libinput = {
enable = true;
};
desktopManager = {
xterm.enable = false;
};
displayManager = {
defaultSession = "none+xmonad";
gdm.enable = true;
};
windowManager.xmonad = {
enable = true;
};
drivers = [
pkgs.gutenprint
pkgs.gutenprintBin
pkgs.hplip
pkgs.brlaser
pkgs.brgenml1lpr
pkgs.brgenml1cupswrapper
pkgs.ptouch-driver
];
};
gnome.gnome-keyring.enable = true;
};
programs.xss-lock = {
@ -85,8 +58,11 @@ in
};
services.illum.enable = true;
services.avahi.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
services.smartd = {
enable = true;
notifications.x11.enable = true;
@ -94,6 +70,9 @@ in
};
home-manager.users.jade = {pkgs, ...}: {
home.sessionVariables = {
"S10E_JRNL_FILE_LOC" = "/home/jade/Docs/jrnl.md";
};
programs.ssh = {
controlMaster = "yes";
};
@ -125,6 +104,7 @@ in
xclip
xmacro
xorg.xev
gscreenshot
syncplay
@ -132,20 +112,16 @@ in
xfce.thunar
xfce.tumbler
xfce.thunar-archive-plugin
gnome.file-roller
file-roller
# media/file viewers
vlc
mpv
evince
nomacs
jellyfin-media-player
# from environment.systemPackages cleanup
font-manager
xdotool
xorg.xwininfo
gparted
# uhk-agent
cool-retro-term
xdg-desktop-portal-gtk
virt-manager
ddccontrol-db
@ -153,7 +129,7 @@ in
gitg
gpick
qdirstat
ffmpeg_5
ffmpeg_7-full
# external
libnotify
@ -183,6 +159,11 @@ in
oneko
plover.dev
mupdf
inotify-tools
logseq
];
xsession = {
enable = true;

View file

@ -1,19 +0,0 @@
{...}: {
home-manager.users.jade = {pkgs, ...}: {
services.dunst = {
enable = true;
settings = {
global = {
dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst";
browser = "${pkgs.librewolf}/bin/librewolf";
mouse_left_click = "context";
mouse_middle_click = "close_current";
background = "#282828";
foreground = "#ebdbb2";
frame_color = "#504945";
frame_width = 2;
};
};
};
};
}

View file

@ -1,39 +0,0 @@
{
pkgs,
config,
lib,
...
}: let
cfg = config.jade.desktop.evremap;
evremap = pkgs.rustPlatform.buildRustPackage {
pname = "evremap";
version = "0.1.0";
src = pkgs.fetchFromGitHub {
owner = "wez";
repo = "evremap";
rev = "4480c4eda223b98899b0fbd926bc34f7bd0e1a18";
sha256 = "sha256-BxSrphgW1n465FX6bKVkq6O0XE2JqanfSYlsGwWUWkQ=";
};
cargoHash = "";
cargoLock.lockFile = ../../other/evremap.Cargo.lock;
postPatch = ''
cp ${../../other/evremap.Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [pkgs.pkg-config];
buildInputs = [pkgs.libevdev];
};
in
with lib; {
options.jade.desktop.evremap = {
enable = mkEnableOption "Enable evremap";
};
config = mkIf cfg.enable {
systemd.services.evremap = {
script = "${evremap}/bin/evremap remap ${../../other/remaps-${config.networking.hostName}.toml}";
wantedBy = ["multi-user.target"];
unitConfig = {
Restart = "on-failure";
};
};
};
}

View file

@ -31,6 +31,7 @@
"youtube-mrbeastify"
"return-youtube-dislikes"
"multi-account-containers"
"tabby-cat-friend"
];
Extensions.Uninstall = [
"google@search.mozilla.org"
@ -82,12 +83,16 @@
"Home manager Options" = {
urls = [
{
template = "https://mipmip.github.io/home-manager-option-search/";
template = "https://home-manager-options.extranix.com/";
params = [
{
name = "query";
value = "{searchTerms}";
}
{
name = "release";
value = "master";
}
];
}
];
@ -97,7 +102,13 @@
"NixOS Wiki" = {
urls = [
{
template = "https://nixos.wiki/index.php?title=Special:Search&amp;search={searchTerms}&amp;namespace=0";
template = "https://nixos.wiki/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
@ -106,15 +117,16 @@
"Noogle" = {
urls = [
{
template = "https://noogle.dev/q?term={searchTerms}";
template = "https://noogle.dev/q";
params = [
{
name = "q";
name = "term";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["ngl"];
};
"lib.rs" = {
urls = [
@ -146,6 +158,14 @@
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = ["docs"];
};
"rust docs direct open" = {
urls = [
{
template = "https://docs.rs/{searchTerms}";
}
];
definedAliases = ["doc" "docd"];
};
"rust std docs" = {
urls = [
{
@ -161,6 +181,19 @@
icon = "https://doc.rust-lang.org/favicon.ico";
definedAliases = ["std"];
};
"MDN" = {
urls = [
{
template = "https://developer.mozilla.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"Amazon.de".metaData.hidden = true;
@ -183,6 +216,8 @@
"browser.aboutwelcome.enabled" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.menu.showViewImageInfo" = true;
"browser.shopping.experience2023.active" = false;
"browser.shopping.experience2023.survey.enabled" = false;
"identity.fxaccounts.enabled" = true;
"browser.tabs.firefox-view" = true;
@ -194,6 +229,19 @@
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.hideLocalhost" = false;
"browser.ml.chat.prompt.prefix" = "";
"browser.ml.chat.prompts.0" = "";
"browser.ml.chat.prompts.1" = "";
"browser.ml.chat.prompts.2" = "";
"browser.ml.chat.prompts.3" = "";
"browser.ml.chat.provider" = "";
"browser.ml.chat.shortcuts" = false;
"browser.ml.chat.shortcuts.custom" = false;
"browser.ml.chat.shortcuts.longPress" = "";
"browser.ml.chat.sidebar" = false;
"geo.provider.network.logging.enabled" = true;
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
@ -219,6 +267,9 @@
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
"dom.private-attribution.submission.enabled" = false;
"browser.newtabpage.activity-stream.feeds.showWeather" = false;
"browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
@ -284,8 +335,7 @@
"privacy.window.maxInnerWidth" = 1600;
"privacy.window.maxInnerHeight" = 900;
"privacy.resistFingerprinting.block_mozAddonManager" = true;
"privacy.resistFingerprinting.letterboxing" = true;
"privacy.resistFingerprinting.letterboxing.dimensions" = "";
"privacy.resistFingerprinting.letterboxing" = false;
"widget.non-native-theme.enabled" = true;
"browser.link.open_newwindow" = 3;
"browser.link.open_newwindow.restriction" = 0;

20
modules/desktop/fonts.nix Normal file
View file

@ -0,0 +1,20 @@
{pkgs, ...}: {
fonts.packages = with pkgs; [
(nerdfonts.override {fonts = ["FiraCode" "AnonymousPro"];})
montserrat
noto-fonts
atkinson-hyperlegible
arkpandora_ttf
liberation_ttf
caladea
carlito
garamond-libre
ocr-a
amiri
libertine
inter
b612
departure-mono
];
fonts.fontDir.enable = true;
}

View file

@ -16,6 +16,10 @@ in
home.packages = with pkgs; [
lutris
prismlauncher
legendary-gl
wineWowPackages.stable
dxvk_2
vkd3d-proton
];
};
};

View file

@ -1,7 +1,7 @@
{
config,
lib,
pkgs,
pkgs-stable,
...
}: let
cfg = config.jade.desktop.mail;
@ -20,7 +20,7 @@ in
enable = mkEnableOption "Enable thunderbird mail stuff";
};
config = mkIf cfg.enable {
home-manager.users.jade = {pkgs, ...}: {
home-manager.users.jade = {pkgs-stable, ...}: {
accounts.email.accounts = {
"Jade" = rec {
inherit imap smtp;

View file

@ -6,7 +6,7 @@
}: let
addNuShebang = path:
builtins.concatStringsSep "\n\n" [
"#!${pkgs.nushellFull}/bin/nu"
"#!${pkgs.nushell}/bin/nu"
(builtins.readFile path)
];
in {
@ -63,6 +63,7 @@ in {
networkmanagerapplet
mullvad-vpn
speedtest-cli
macchanger
];
};
};

23
modules/desktop/obs.nix Normal file
View file

@ -0,0 +1,23 @@
{
pkgs,
config,
...
}: {
environment.systemPackages = [
(pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
})
];
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
boot.extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
security.polkit.enable = true;
}

View file

@ -1,150 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
config = {
home-manager.users.jade = {pkgs, ...}: {
services.polybar = {
enable = true;
package = pkgs.polybarFull;
script = "";
settings = {
colors = {
background = "#282828";
background-alt = "#3c3836";
foreground = "#ebdbb2";
primary = "#d65d0e";
secondary = "#fe8019";
alert = "#cc241d";
disabled = "#504945";
};
"bar/status" = {
# Style
bottom = true;
width = "100%";
height = "24px";
radius = 0;
tray-position = "center";
background = "\${colors.background}";
foreground = "\${colors.foreground}";
line-size = "4px";
border-color = "#00000000";
padding-left = 0;
padding-right = 1;
module-margin = 1;
separator = "|";
separator-foreground = "\${colors.disabled}";
font-0 = "FiraCode Nerd Font";
modules-left = "xworkspaces xwindow";
modules-right = "memory cpu wlan bat0 bat1";
cursor-click = "pointer";
cursor-scroll = "ns-resize";
enable-ipc = true;
wm-restack = "generic";
override-redirect = false;
};
"module/xworkspaces" = {
type = "internal/xworkspaces";
label-active = "";
label-active-padding = 1;
label-occupied = "";
label-occupied-padding = 1;
label-urgent = "";
label-urgent-foreground = "\${colors.alert}";
label-urgent-padding = 1;
label-empty = "";
label-empty-foreground = "\${colors.disabled}";
label-empty-padding = 1;
};
"module/xwindow" = {
type = "internal/xwindow";
label = "%title:0:60:...%";
};
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = "󰍛 ";
format-prefix-foreground = "\${colors.primary}";
label = "%percentage_used:2%%";
};
"module/cpu" = {
type = "internal/cpu";
interval = "2";
format-prefix = "󰻠 ";
format-prefix-foreground = "\${colors.primary}";
label = "%percentage:2%%";
};
"network-base" = {
type = "internal/network";
interval = 5;
format-connected = "<ramp-signal> <label-connected>";
format-disconnected = "<label-disconnected>";
label-disconnected = "󰣼";
label-disconnected-foreground = "#d65d0e";
ramp.signal = [
"%{F#cc241d}󰣾"
"%{F#d79921}󰣴"
"%{F#98971a}󰣶"
"%{F#98971a}󰣸"
"%{F#98971a}󰣺"
];
};
"module/wlan" = {
"inherit" = "network-base";
interface-type = "wireless";
label-connected = "%{F#F0C674}%{F-} %local_ip%";
};
"battery-base" = {
type = "internal/battery";
poll-interval = 1;
time-format = "%H%{F#7c6f64}:%{F#d5c4a1}%M";
label-charging = "%{F#98971a}󰚥 %{F#ebdbb2}%percentage%%%{F#d5c4a1} %time%";
format-charging = "<ramp-capacity> <label-charging>";
label-discharging = "%{F#ebdbb2}%percentage%%%{F#bdae93} %time%";
format-discharging = "<ramp-capacity> <label-discharging>";
label-full = "%{F#98971a}󰁹%{F#ebdbb2} %percentage%%";
format-full = "<label-full>";
label-low = "%{F#cc241d}󰂎%{F#ebdbb2} %percentage%%";
format-low = "<label-low>";
ramp.capacity = [
"%{F#cc241d}󰁺"
"%{F#d79921}󰁻"
"%{F#98971a}󰁼"
"%{F#98971a}󰁽"
"%{F#98971a}󰁾"
"%{F#98971a}󰁿"
"%{F#98971a}󰂀"
"%{F#98971a}󰂁"
"%{F#98971a}󰂂"
"%{F#98971a}󰁹"
];
};
"module/bat0" = {
"inherit" = "battery-base";
battery = "BAT0";
adapter = "ADP1";
};
"module/bat1" = {
"inherit" = "battery-base";
battery = "BAT1";
adapter = "ADP1";
};
"settings" = {
screenchange-reload = true;
pseudo-transparency = true;
};
};
};
};
};
}

View file

@ -11,13 +11,23 @@ in
enable = mkEnableOption "Enable social apps";
};
config = mkIf cfg.enable {
home-manager.users.jade = {pkgs, ...}: {
home-manager.users.jade = {
pkgs,
pkgs-stable,
...
}: {
home.packages = with pkgs; [
evolutionWithPlugins
signal-desktop
mumble
element-desktop
pkgs.evolution-data-server-gtk4
];
};
programs.evolution = {
enable = true;
plugins = [pkgs.evolution-ews];
};
services.gnome.evolution-data-server.enable = true;
services.gnome.evolution-data-server.plugins = [];
};
}

View file

@ -37,7 +37,7 @@
};
qt = {
enable = true;
platformTheme = "gtk";
platformTheme.name = "gtk";
};
};
};

16
modules/desktop/x.nix Normal file
View file

@ -0,0 +1,16 @@
{pkgs, ...}: {
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
};
windowManager.xmonad = {
enable = true;
};
};
security.polkit.enable = true;
programs.sway.enable = true;
}

View file

@ -1,43 +0,0 @@
{
lib,
pkgs,
...
}: {
home-manager.users.jade = {
config,
pkgs,
...
}: let
xmobarGhc = pkgs.haskellPackages.ghcWithPackages (pkgs:
with pkgs; [
xmobar
statgrab
]);
in {
home.packages = [xmobarGhc pkgs.xmonadctl];
programs.xmobar = {
enable = true;
};
home.file."xmobar.hs" = rec {
source = ../../haskell/xmobar/xmobar.hs;
target = ".config/xmobar/xmobar.hs";
onChange = ''
${xmobarGhc}/bin/ghc -threaded ${target}
${pkgs.busybox}/bin/pkill xmobar
${pkgs.haskellPackages.xmonad}/bin/xmonad --restart
'';
};
xsession.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
config = ../../haskell/xmonad/xmonad.hs;
};
home.file.wallpaper = {
target = "Pictures/wallpaper.jpg";
source = ../../other/wallpaper.jpg;
onChange = ''
feh --bg-fill ~/Pictures/wallpaper.jpg;
'';
};
};
}

View file

@ -1,24 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.flatpak;
in
with lib; {
options.jade.flatpak = {
enable = mkEnableOption "Enable flatpak";
};
config = mkIf cfg.enable {
services.flatpak.enable = true;
xdg.portal = {
enable = true;
# TODO
config.common.default = "*";
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
};
};
}

View file

@ -1,67 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
home-manager.users.jade = {pkgs, ...}: {
programs.git = {
enable = true;
userName = "Schrottkatze";
userEmail = "git@schrottkatze.de";
aliases = {
a = "add";
c = "commit";
ca = "commit --all";
p = "push";
pl = "pull";
s = "status";
};
signing = {
key = "${pkgs.writeText "red_nk3.pub" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOaE8TFsIazpn4OnHvHcRpOFr9FfvMaWOiEjmHsmnAoE cardno:000F_70CD7D05"}";
signByDefault = true;
};
extraConfig = {
gpg = {
format = "ssh";
};
};
};
programs.gitui = {
enable = true;
keyConfig = ''
(
open_help: Some(( code: F(1), modifiers: ( bits: 0,),)),
move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)),
move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)),
move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)),
popup_up: Some(( code: Char('p'), modifiers: ( bits: 2,),)),
popup_down: Some(( code: Char('n'), modifiers: ( bits: 2,),)),
page_up: Some(( code: Char('b'), modifiers: ( bits: 2,),)),
page_down: Some(( code: Char('f'), modifiers: ( bits: 2,),)),
home: Some(( code: Char('g'), modifiers: ( bits: 0,),)),
end: Some(( code: Char('G'), modifiers: ( bits: 1,),)),
shift_up: Some(( code: Char('K'), modifiers: ( bits: 1,),)),
shift_down: Some(( code: Char('J'), modifiers: ( bits: 1,),)),
edit_file: Some(( code: Char('I'), modifiers: ( bits: 1,),)),
status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)),
diff_reset_lines: Some(( code: Char('u'), modifiers: ( bits: 0,),)),
diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)),
stashing_save: Some(( code: Char('w'), modifiers: ( bits: 0,),)),
stashing_toggle_index: Some(( code: Char('m'), modifiers: ( bits: 0,),)),
stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
abort_merge: Some(( code: Char('M'), modifiers: ( bits: 1,),)),
)
'';
};
};
}

3
modules/graphics.nix Normal file
View file

@ -0,0 +1,3 @@
{...}: {
hardware.graphics.enable = true;
}

View file

@ -7,5 +7,6 @@
imports = [
./spacenav.nix
./wacom.nix
./hardware_key.nix
];
}

View file

@ -0,0 +1,35 @@
{
pkgs,
config,
lib,
...
}: let
cfg = config.jade.hwKey;
in
with lib; {
options.jade.hwKey = {
pamAuth.enable = mkEnableOption "Enable PAM authentication with hardware keys";
};
config = {
# nitrokey
services.udev.packages = [pkgs.nitrokey-udev-rules];
# smartcard daemon
services.pcscd.enable = true;
# authenticate using hw key
security.pam = {
services.jade.u2fAuth = cfg.pamAuth.enable;
u2f = {
enable = true;
control = "sufficient";
settings = {
cue = true;
authFile = "/home/jade/.ssh/u2f_keys";
};
};
};
programs.i3lock.u2fSupport = true;
};
}

16
modules/input/default.nix Normal file
View file

@ -0,0 +1,16 @@
{...}: {
imports = [
./evremap.nix
];
services = {
libinput = {
enable = true;
};
xserver = {
xkb = {
layout = "us";
variant = "altgr-intl";
};
};
};
}

110
modules/input/evremap.nix Normal file
View file

@ -0,0 +1,110 @@
{
pkgs,
config,
lib,
utils,
...
}: let
cfg = config.jade.input.remapping;
evremap = pkgs.rustPlatform.buildRustPackage {
pname = "evremap";
version = "0.1.0";
src = pkgs.fetchFromGitHub {
owner = "wez";
repo = "evremap";
rev = "4480c4eda223b98899b0fbd926bc34f7bd0e1a18";
sha256 = "sha256-BxSrphgW1n465FX6bKVkq6O0XE2JqanfSYlsGwWUWkQ=";
};
cargoHash = "";
cargoLock.lockFile = ../../other/evremap.Cargo.lock;
postPatch = ''
cp ${../../other/evremap.Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [pkgs.pkg-config];
buildInputs = [pkgs.libevdev];
};
toml = pkgs.formats.toml {};
in
with lib; {
options.jade.input.remapping = {
enable = mkEnableOption "Enable evremap";
devices = mkOption {
type = types.attrsOf (types.submodule ({name, ...}: {
options = {
device_name = mkOption {
type = types.str;
description = "The device name";
default = name;
};
remap = mkOption {
type = types.listOf (types.submodule ({...}: {
options.input = mkOption {type = types.listOf types.str;};
options.output = mkOption {type = types.listOf types.str;};
}));
default = [];
};
swapKeys = mkOption {
description = "Lists with two keys to be swapped on the keyboard layout.";
type = types.listOf (
# verify that each key swapping list contains two elements
types.addCheck (types.listOf types.str) (v: builtins.length v == 2)
);
default = [];
};
dual_role = mkOption {
type = types.listOf (types.submodule ({...}: {
options.input = mkOption {type = types.str;};
options.hold = mkOption {type = types.listOf types.str;};
options.tap = mkOption {type = types.listOf types.str;};
}));
default = [];
};
};
}));
};
};
config = mkIf cfg.enable (
with builtins; let
devs = map ({
device_name,
remap,
swapKeys,
dual_role,
}: {
inherit device_name dual_role;
# expand swapKeys to normal remaps
remap = concatLists [
remap
(lib.lists.flatten (map (keys: [
{
input = [(head keys)];
output = [(lib.lists.last keys)];
}
{
input = [(lib.lists.last keys)];
output = [(head keys)];
}
])
swapKeys))
];
}) (attrValues cfg.devices);
in {
# generate numbered systemd services for each device to be remapped
# https://github.com/wez/evremap/issues/17
systemd.services = listToAttrs (genList (i: {
name = "evremap${toString i}";
value = let
cfgFile = toml.generate "remaps-${toString i}.toml" (elemAt devs i);
in {
script = "${evremap}/bin/evremap remap ${cfgFile}";
wantedBy = ["multi-user.target"];
unitConfig = {
Restart = "on-failure";
};
};
}) (length devs));
environment.systemPackages = [evremap];
}
);
}

View file

@ -6,6 +6,9 @@
./zellij.nix
./carapace.nix
./direnv.nix
./tty.nix
./git.nix
./mprocs.nix
];
programs.mosh.enable = true;
}

60
modules/shell/git.nix Normal file
View file

@ -0,0 +1,60 @@
{
config,
lib,
pkgs,
...
}: {
home-manager.users.jade = {
pkgs,
config,
...
}: {
programs.git = {
enable = true;
userName = "Schrottkatze";
userEmail = "git@schrottkatze.de";
aliases = {
a = "add";
c = "commit";
ca = "commit --all";
p = "push";
pl = "pull";
s = "status";
};
signing = {
key = "${pkgs.writeText "red_nk3.pub" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOaE8TFsIazpn4OnHvHcRpOFr9FfvMaWOiEjmHsmnAoE cardno:000F_70CD7D05"}";
signByDefault = true;
};
extraConfig = {
gpg = {
format = "ssh";
};
};
};
programs.jujutsu = {
enable = true;
settings = {
user = {
name = config.programs.git.userName;
email = config.programs.git.userEmail;
};
};
};
programs.gitui = {
enable = true;
keyConfig = ''
(
move_left: Some(( code: Char('h'), modifiers: "")),
move_right: Some(( code: Char('l'), modifiers: "")),
move_up: Some(( code: Char('k'), modifiers: "")),
move_down: Some(( code: Char('j'), modifiers: "")),
stash_open: Some(( code: Char('l'), modifiers: "")),
open_help: Some(( code: F(1), modifiers: "")),
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
)
'';
};
};
}

View file

@ -1,5 +1,13 @@
{config, ...}: {
home-manager.users.jade = {pkgs, ...}: {
{
config,
helix-inline-diags,
...
}: {
home-manager.users.jade = {
pkgs,
pkgs-stable,
...
}: {
home = {
sessionVariables.EDITOR = "hx";
packages = [
@ -7,15 +15,55 @@
pkgs.vscode-langservers-extracted
pkgs.nodePackages.typescript-language-server
pkgs.emmet-language-server
pkgs-stable.typst-lsp
pkgs.jdt-language-server
];
};
programs.helix = {
enable = true;
defaultEditor = true;
package = helix-inline-diags.outputs.packages."x86_64-linux".default;
settings = {
theme = "gruvbox";
editor = {
line-number = "relative";
lsp.display-messages = true;
bufferline = "multiple";
color-modes = true;
cursorline = true;
auto-save = true;
auto-format = true;
end-of-line-diagnostics = "hint";
inline-diagnostics = {
cursor-line = "hint";
other-lines = "error";
};
lsp = {
display-messages = true;
display-inlay-hints = true;
};
popup-border = "popup";
shell = ["nu" "-c"];
statusline.left = [
"mode"
"spinner"
"spacer"
"version-control"
"file-name"
"diagnostics"
"read-only-indicator"
"file-modification-indicator"
"spacer"
];
statusline.right = [
"workspace-diagnostics"
"register"
"position"
"selections"
"file-encoding"
"file-type"
];
idle-timeout = 50;
indent-guides = {
render = true;
character = "";
@ -33,37 +81,88 @@
};
};
};
keys.normal = {
space."=" = ":fmt";
keys = {
normal = {
space."=" = ":fmt";
};
insert = {
up = "no_op";
down = "no_op";
left = "no_op";
right = "no_op";
pageup = "no_op";
pagedown = "no_op";
home = "no_op";
end = "no_op";
};
};
};
languages = {
language-server."nu-builtin-lsp" = {
command = "${config.users.defaultUserShell}/bin/nu";
args = ["--lsp"];
};
language-server."rust-analyzer" = {
config = {
check.command = "clippy";
language-server = {
"nu-builtin-lsp" = {
command = "${config.users.defaultUserShell}/bin/nu";
args = ["--lsp"];
};
"rust-analyzer" = {
config = {
check.command = "check";
completion.snippets.custom = {
"pub fn" = {
prefix = ["pfn" "pubfn"];
postfix = ["pfn"];
body = [
"pub fn $\{receiver\}() {"
"\\t$1"
"}"
];
scope = "type";
};
};
completion.termSearch.enable = true;
diagnostics.enable = true;
inlayHints = {
bindingModeHints.enable = true;
closureCaptureHints.enable = true;
closureReturnTypeHints.enable = true;
discriminantHints.enable = true;
expressionAdjustmentHints = {
hideOutsideUnsafe = true;
};
lifetimeElisionHints.enable = "skip_trivial";
};
interpret.tests = true;
lens = {
references = {
adt.enable = true;
trait.enable = true;
};
};
typing.autoClosingAngleBrackets.enable = true;
};
};
"emmet-language-server" = {
command = "emmet-language-server";
args = ["--stdio"];
};
"psalm" = {
command = "psalm";
args = ["--language-server"];
};
"typst-lsp" = {
config = {
exportPdf = "onType";
};
};
};
language-server."emmet-language-server" = {
command = "emmet-language-server";
args = ["--stdio"];
};
# "php" = {
# name = "php";
# file-types = [ "php" ];
# language-server = {
# command = "psalm";
# args = ["--language-server"];
# };
# };
language = [
{
name = "nu";
language-servers = ["nu-builtin-lsp"];
}
{
name = "php";
language-servers = ["psalm"];
}
{
name = "nix";
formatter = {

24
modules/shell/mprocs.nix Normal file
View file

@ -0,0 +1,24 @@
{...}: {
home-manager.users.jade = {
pkgs,
lib,
...
}: {
home = {
packages = [pkgs.mprocs];
};
xdg.configFile."mprocs/mprocs.yaml" = {
text = builtins.toJSON {
proc_list_width = 15;
keymap_procs = {
"<l>" = {c = "toggle-focus";};
};
keymap_term = {
"<C-a>" = null;
# Ctrl-m so it doesnt overlap with zellij or helix
"<C-M>" = {c = "toggle-focus";};
};
};
};
};
}

View file

@ -12,17 +12,30 @@
home.packages = [
pkgs.pueue
];
home.file."shell-startup" = {
source = ../../other/scripts/desktop/shell-startup.nu;
target = ".config/nushell/shell-startup.nu";
};
programs.nushell = {
enable = true;
package = config.users.defaultUserShell;
configFile.source = ../../other/config.nu;
envFile.source = ../../other/env.nu;
# extraConfig = ''
# source ${pkgs.nu_scripts}/share/nu_scripts/modules/nix/nix.nu;
# use ${pkgs.nu_scripts}/share/nu_scripts/modules/background_task/job.nu;
# '';
extraConfig = ''
plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query;
plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars;
plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats;
plugin use query;
plugin use polars;
plugin use formats;
nu ${../../other/scripts/desktop/shell-startup.nu};
'';
extraEnv = ''
'';
};
programs.starship.enableNushellIntegration = true;
# programs.starship.enableNushellIntegration = true;
programs.carapace.enableNushellIntegration = true;
programs.direnv.enableNushellIntegration = true;
};

View file

@ -2,6 +2,7 @@
home-manager.users.jade = {pkgs, ...}: {
programs.starship = {
enable = true;
enableNushellIntegration = false;
settings = {
format = "$all$directory$character";
character = {

View file

@ -34,6 +34,26 @@
(getAttr (substring 5 2 (toUpper color)) hexLookupTable)
]);
in {
# TODO: global colorscheme vars for everything
console.colors = [
"282828"
"cc241d"
"98971a"
"d79921"
"458588"
"b16286"
"689d6a"
"a89984"
"928374"
"fb4934"
"b8bb26"
"fabd2f"
"83a598"
"d3869b"
"8ec07c"
"ebdbb2"
];
services.kmscon = {
enable = true;
fonts = [

View file

@ -1,49 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.terminal;
in
with lib; {
options.jade.terminal = {
enable = mkEnableOption "Enable Kitty";
};
config = mkIf cfg.enable {
environment.sessionVariables = rec {
TERMINAL = "kitty";
};
home-manager.users.jade = {pkgs, ...}: {
programs.kitty = {
enable = true;
font = {
name = "FiraCode Nerd Font";
size = 11;
};
settings = {
#adjust_column_width = "70%";
color0 = "#282828";
color8 = "#928374";
color1 = "#cc241d";
color9 = "#fb4934";
color2 = "#98971a";
color10 = "#b8bb26";
color3 = "#d79921";
color11 = "#fabd2f";
color4 = "#458588";
color12 = "#83a598";
color5 = "#b16286";
color13 = "#d3869b";
color6 = "#689d6a";
color14 = "#8ec07c";
color7 = "#a89984";
color15 = "#ebdbb2";
foreground = "#ebdbb2";
background = "#282828";
confirm_os_window_close = 0;
};
};
};
};
}

View file

@ -42,6 +42,7 @@ let dark_theme = {
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_external_resolved: light_cyan_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
@ -231,18 +232,47 @@ $env.config = {
}
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
use_grid_icons: true
footer_mode: "25" # always, never, number_of_rows, auto
float_precision: 2 # the precision for displaying floats in tables
buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
use_ansi_coloring: true
bracketed_paste: true # enable bracketed paste, currently useless on windows
edit_mode: vi # emacs, vi
shell_integration: true # enables terminal shell integration. Off by default, as some terminals have issues with this.
shell_integration: {
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
osc2: true
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
osc7: true
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
osc8: true
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
osc9_9: false
# osc133 is several escapes invented by Final Term which include the supported ones below.
# 133;A - Mark prompt start
# 133;B - Mark prompt end
# 133;C - Mark pre-execution
# 133;D;exit - Mark execution finished with exit code
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
osc133: true
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
# 633;A - Mark prompt start
# 633;B - Mark prompt end
# 633;C - Mark pre-execution
# 633;D;exit - Mark execution finished with exit code
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
# and also helps with the run recent menu in vscode
osc633: false
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
reset_application_mode: true
}
use_kitty_protocol: false
highlight_resolved_externals: true
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
hooks: {
pre_execution: [{ null }] # run before the repl input is run
pre_prompt: { null }
pre_execution: [{ $env.CMD_COUNT = $env.CMD_COUNT + 1; }] # run before the repl input is run
env_change: {
PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input
}
@ -304,6 +334,27 @@ $env.config = {
]
keybindings: [
################################################################################
# Custom keybinds #
################################################################################
{
name: undo_change
modifier: control
keycode: char_z
mode: [vi_normal, vi_insert]
event: [
{ edit: Clear }
{
edit: InsertString
value: "zellij attach main -c"
}
{ send: Enter }
]
}
################################################################################
# Default keybinds #
################################################################################
{
name: completion_menu
modifier: none
@ -779,7 +830,7 @@ def start_zellij [] {
}
}
start_zellij
# start_zellij
def nsp [
...programs: string
@ -787,11 +838,18 @@ def nsp [
nix shell ...($programs | each {|it| $"nixpkgs#($it)" })
}
def nr [
program: string
] {
nix run $"nixpkgs#($program)"
}
def lcr [
file_extension: string
] {
ls $"**/*.($file_extension)"
| each {|file|
ls **/*
| where name ends-with $".($file_extension)"
| par-each {|file|
open $file.name
| lines --skip-empty
| length }
@ -806,15 +864,22 @@ def glog [
| split column "»¦«" commit subject name email date
}
def ed [
file: path
...cmdargs: string
def typed [
name: string
] {
let ext = $file | path parse | get extension;
match $ext {
"typ" => {|| zellij run --direction down -- typst watch $file ($cmdargs | prepend '--open' | str join ' ') }
};
hx $file
touch $"($name).typ"
typst compile $"($name).typ"
mprocs --names Editor,Viewer,Notify $"hx '($name).typ'" $"while true; do mupdf-x11 '($name).pdf' && break; done" $"while inotifywait -e modify '($name).pdf' ; do pkill -HUP mupdf; done"
}
def nev [ unit = day ] {
( ( open Docs/dates.csv
| update datetime {|it| $it.datetime | into datetime }
| first
).datetime - (date now)
)
| into duration
| format duration $unit
}
alias gnix = cd ~/nix-configs;
@ -834,3 +899,11 @@ alias cr = cargo run;
alias cl = cargo clippy;
alias cb = cargo build;
alias cch = cargo check;
alias togglecaps = xdotool key Caps_Lock;
alias TOGGLECAPS = togglecaps;
alias bash = echo $"(ansi red)no, fuck that shit!";
alias sh = echo $"(ansi red)no, fuck that shit!";
alias zsh = echo $"(ansi red)no, fuck that shit!";
alias fish = echo $"(ansi red)no, fuck that shit!";

View file

@ -2,36 +2,18 @@
#
# version = "0.84.0"
def create_left_prompt [] {
mut home = ""
try {
if $nu.os-info.name == "windows" {
$home = $env.USERPROFILE
} else {
$home = $env.HOME
}
}
let dir = ([
($env.PWD | str substring 0..($home | str length) | str replace $home "~"),
($env.PWD | str substring ($home | str length)..)
] | str join)
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold })
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold })
let path_segment = $"($path_color)($dir)"
$path_segment | str replace --all (char path_sep) $"($separator_color)/($path_color)"
}
source /home/jade/.config/nushell/shell-startup.nu;
$env.STARSHIP_SHELL = "nu";
$env.CMD_COUNT = 0;
def create_right_prompt [] {
# create a right prompt in magenta with green separators and am/pm underlined
let time_segment = ([
(ansi reset)
(ansi magenta)
(date now | format date '%Y/%m/%d %r')
] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}")
(ansi purple)
(date now | format date '%Y/%m/%d %R')
]) | str join;
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
(ansi rb)
@ -43,8 +25,26 @@ def create_right_prompt [] {
}
# Use nushell functions to define your right and left prompt
$env.PROMPT_COMMAND = {|| create_left_prompt }
# $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
$env.PROMPT_COMMAND = {||
starship prompt --cmd-duration $env.CMD_DURATION_MS $'--status=($env.LAST_EXIT_CODE)'
| lines
| filter { is-not-empty }
| update 0 {|item|
let len = (term size | get columns) - ($item | ansi strip | str length --grapheme-clusters) - (create_right_prompt | ansi strip | str length --grapheme-clusters);
# $item | append (flag $TRANS "-" $len) | str join
let deco = if ($env.CMD_COUNT == 0) {
flag $TRANS "=" $len
} else if ($env.CMD_COUNT | is even) {
flag $LESBIAN "-" $len
} else {
flag $TRANS "-" $len
};
$item | append $deco | str join
}
| str join "\n"
}
$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
# The prompt indicators are environmental variables that represent
# the state of the prompt

View file

@ -1,22 +0,0 @@
device_name = "AT Translated Set 2 keyboard"
[[remap]]
input = [ "KEY_Y" ]
output = [ "KEY_Z" ]
[[remap]]
input = [ "KEY_Z" ]
output = [ "KEY_Y" ]
[[remap]]
input = [ "KEY_LEFTALT" ]
output = [ "KEY_LEFTMETA" ]
[[remap]]
input = [ "KEY_LEFTMETA" ]
output = [ "KEY_LEFTALT" ]
[[dual_role]]
input = "KEY_CAPSLOCK"
hold = ["KEY_LEFTCTRL"]
tap = ["KEY_ESC"]

View file

@ -0,0 +1,68 @@
def "is even" [] {
$in mod 2 == 0
}
# TODO: flag stuff as module to be used in other stuff in shell
const TRANS = [ 5BCEFA F5A9B8 FFFFFF F5A9B8 5BCEFA ];
const LESBIAN = [ D52D00 EF7627 FF9A56 FFFFFF D162A4 B55690 A30262 ];
const ENBY = [ FCF434 FFFFFF 9C59D1 2C2C2C ];
def flag [
colors: list<string>
character = "="
width = -1,
] {
use std;
let out_size = if ($width == -1) {
term size | get columns
} else { $width };
let col_size = $out_size / ($colors | length) | math floor;
mut rest = $out_size - ($col_size * ($colors | length));
mut cols = $colors | wrap color | insert width $col_size | flatten;
let last = ($colors | length) - 1;
if not ($rest | is even) {
$rest = $rest - 1;
$cols = (if not ($colors | length | is even) {
$cols | update (($colors | length) / 2 | math floor) { $in | update width {|w| ($w.width + 1)}}
} else {
$cols | update $last { $in | update width {|w| ($w.width + 1)}}
});
};
std assert ($rest | is even);
let amount = $rest / 2;
$cols = ($cols | update 0 { $in | update width {|w| ($w.width + $amount) } } | update $last { $in | update width {|w| ($w.width + $amount) } });
$cols | each {|col|
$character | std repeat $col.width | prepend (ansi {fg: $"#($col.color)" }) | str join
} | prepend (ansi attr_bold) | append (ansi reset) | str join
}
def main [] {
print (flag $LESBIAN);
let next_events = open ~/Docs/dates.csv
| update datetime {|ev| $ev.datetime | into datetime }
| sort-by datetime
| filter {|ev| ($ev.datetime > (date now))}
| first
| each {|ev| $"(ansi attr_bold)($ev.event)(ansi reset) in (ansi attr_bold)(tfmt ($ev.datetime - (date now)))s(ansi reset)" };
print $"Hi jade, you're on HRT for (ansi reset)(ansi attr_bold)((date now) - ('2024-02-18T20:53' | into datetime) | format duration month)s(ansi reset) now! | Next Event: ($next_events)";
}
def tfmt [dur: duration] {
if ($dur < 1hr) {
return ($dur | format duration min);
} else if ($dur < 1day) {
return ($dur | format duration hr);
} else {
return ($dur | format duration day);
}
}

View file

@ -14,6 +14,8 @@ def main [
systemd-cat echo $"($currentnet) \(($interface)): ($type)";
if $interface starts-with 'wlp' {
^$"/etc/networkhooks/($currentnet).nu" $interface $type
let p = $"/etc/networkhooks/($currentnet).nu";
systemd-cat echo $p;
^$p $interface $type
}
}

View file

@ -0,0 +1,6 @@
[package]
name = "bar-pinger"
version = "0.1.0"
edition = "2021"
[dependencies]

View file

@ -0,0 +1,5 @@
// const ADDRS: [&str] = ["katzen.cafe", "fucktorio.s10e.de", "9.9.9.9"];
fn main() {
// let pingers = ADDRS.iter.map(|addr| Command::new("ping").args([addr]));
}

View file

@ -0,0 +1,9 @@
[package]
name = "bar-ws-monitor"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0.209", features = [ "derive" ] }
serde_json = "1.0.127"
swayipc = "3.0.2"

View file

@ -0,0 +1,53 @@
use core::panic;
use serde::Serialize;
use swayipc::{Connection, Event, EventType, Fallible, Workspace, WorkspaceChange};
fn main() -> Fallible<()> {
let mut con = Connection::new()?;
let mut workspaces: Vec<WsData> = con
.get_workspaces()?
.into_iter()
.map(|ws| ws.into())
.collect();
println!("{}", serde_json::ser::to_string(&workspaces).unwrap());
for ev in con.subscribe([EventType::Workspace])? {
// the lazy/ugly solution!
// we create a new connection and request workspaces again and again and again
// TODO: properly handle events one by one
let mut con = Connection::new()?;
workspaces = con
.get_workspaces()?
.into_iter()
.map(|ws| ws.into())
.collect();
println!("{}", serde_json::ser::to_string(&workspaces).unwrap());
}
Ok(())
}
#[derive(Debug, Serialize)]
struct WsData {
name: String,
focused: bool,
urgent: bool,
}
impl From<Workspace> for WsData {
fn from(
Workspace {
name,
focused,
urgent,
..
}: Workspace,
) -> Self {
WsData {
name,
focused,
urgent,
}
}
}

1041
programs/jrnl/Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

18
programs/jrnl/Cargo.toml Normal file
View file

@ -0,0 +1,18 @@
[package]
name = "j"
version = "0.1.0"
edition = "2021"
[dependencies]
chrono = "0.4.38"
clap = { version = "4.5.4", features = ["derive", "env"] }
dirs = "5.0.1"
ego-tree = "0.6.2"
indexmap = "2.2.6"
markdown = "0.3.0"
owo-colors = "4.0.0"
petgraph = "0.6.4"
ratatui = "0.26.2"
temp-file = "0.1.8"
termsize = "0.1.9"
inquire = "0.7.5"

View file

@ -0,0 +1,2 @@
pub mod add_entry;
pub mod list_entries;

View file

@ -0,0 +1,60 @@
use std::{
env,
fs::{self, OpenOptions},
io::{self, Write},
path::PathBuf,
process::Command,
};
use inquire::Text;
use temp_file::{TempFile, TempFileBuilder};
use crate::md::{Entry, ToMd};
// TODO: the usual (better error handling)
pub fn add_entry(path: PathBuf, title: Option<String>) -> io::Result<()> {
if !path.exists() {
eprintln!("Journal file does not exist at {path:?}, exiting...");
std::process::exit(1);
}
let title = Text::new("Title").prompt().unwrap();
let tmp = TempFileBuilder::new()
.suffix(".jrnl-entry.md")
.build()
.unwrap();
let editor = match env::var("EDITOR") {
Ok(val) => val,
Err(env::VarError::NotPresent) => {
eprintln!("EDITOR not set, exiting...");
std::process::exit(1);
}
_ => unreachable!(),
};
let mut editor_cmd = Command::new(&editor);
editor_cmd.arg(tmp.path());
editor_cmd.status().unwrap();
let content = fs::read_to_string(tmp.path()).unwrap();
let now = chrono::offset::Local::now();
let entry = Entry {
timestamp: now.fixed_offset(),
title: &title,
content: &content,
};
let mut file = OpenOptions::new()
.write(true)
.append(true)
.open(path)
.unwrap();
write!(file, "{}", entry.to_md())?;
Ok(())
}

View file

@ -0,0 +1,31 @@
use owo_colors::OwoColorize;
use std::{fs, io, path::PathBuf};
use crate::md::Doc;
pub fn list_entries(path: PathBuf) -> io::Result<()> {
let file = fs::read_to_string(path)?;
if let Some(doc) = Doc::new(&file) {
// TODO: testing, so this shit doesn't blow the fuck up in our face anymore
let termsize::Size { cols, .. } = termsize::get().unwrap();
assert!(cols > 0, "we don't have a terminal width.");
for (i, entry) in doc.entries.into_iter().enumerate() {
let n = format!("{:>2}", i + 1);
let r = format!(". {}", entry.title,);
let l = format!(" {} ", crate::utils::format_datetime(entry.timestamp));
let fuck_you_debugging = cols as usize - (n.len() + r.chars().count() + l.len());
dbg!(fuck_you_debugging);
let padding = " ".repeat(fuck_you_debugging);
println!("{}{r}{padding}{}", n.cyan(), l.white())
}
println!("d");
Ok(())
} else {
eprintln!("Parsing error...");
std::process::exit(1);
}
}

47
programs/jrnl/src/main.rs Normal file
View file

@ -0,0 +1,47 @@
use clap::{Parser, Subcommand};
use std::{fs, io, path::PathBuf};
use crate::{
commands::add_entry::add_entry,
commands::list_entries::list_entries,
md::{Doc, ToMd},
};
mod commands;
mod md;
mod utils;
#[derive(Debug, Parser)]
struct Cli {
#[arg(env)]
s10e_jrnl_file_loc: PathBuf,
#[command(subcommand)]
command: Option<Command>,
}
#[derive(Debug, Subcommand)]
enum Command {
#[command(aliases = ["l", "ls", "list"])]
ListEntries,
#[command(aliases = ["a", "add-entry"])]
Add { title: Option<String> },
}
fn main() -> io::Result<()> {
let cli = Cli::parse();
println!("Hello, world!");
println!("cli: {cli:#?}");
match cli.command {
Some(Command::ListEntries) => list_entries(cli.s10e_jrnl_file_loc.clone()),
Some(Command::Add { title }) => add_entry(cli.s10e_jrnl_file_loc.clone(), title),
None => {
// TODO: handle btter
let file = fs::read_to_string(cli.s10e_jrnl_file_loc)?;
let doc = Doc::new(&file).unwrap();
println!("{}", doc.to_md());
Ok(())
}
}
}

67
programs/jrnl/src/md.rs Normal file
View file

@ -0,0 +1,67 @@
use chrono::{DateTime, FixedOffset};
use std::convert::identity;
pub trait ToMd {
fn to_md(&self) -> String;
}
#[derive(Debug)]
pub struct Doc<'src> {
pub entries: Vec<Entry<'src>>,
}
impl<'src> Doc<'src> {
// TODO: better parsing errors?
pub fn new(f: &'src str) -> Option<Self> {
let entries = f
.split("\n## ")
.map(|s| s.split_once("\n"))
.skip(1)
.filter_map(identity)
.map(|(title, content)| (title.split_once(": "), content))
.map(|(title, content)| {
if let Some((ts, title)) = title {
Some(Entry {
timestamp: DateTime::parse_from_rfc3339(ts).unwrap(),
title,
content: content.trim_matches('\n'),
})
} else {
None
}
})
.collect::<Vec<_>>();
entries.iter().all(|it| it.is_some()).then_some(Self {
entries: entries.into_iter().filter_map(identity).collect(),
})
}
}
impl ToMd for Doc<'_> {
fn to_md(&self) -> String {
let mut r = "# Journal\n\n".to_owned();
self.entries.iter().fold(r, |mut r, it| r + &it.to_md())
}
}
#[derive(Debug, Clone)]
pub struct Entry<'src> {
pub timestamp: DateTime<FixedOffset>,
pub title: &'src str,
pub content: &'src str,
}
impl ToMd for Entry<'_> {
fn to_md(&self) -> String {
format!(
"## {}: {}\n\n{}\n\n",
self.timestamp
.fixed_offset()
.to_rfc3339_opts(chrono::SecondsFormat::Secs, false),
self.title,
self.content
)
}
}

View file

@ -0,0 +1,15 @@
use chrono::{DateTime, FixedOffset};
pub fn format_datetime(ts: DateTime<FixedOffset>) -> String {
ts.format("%A, %-d. %B %Y %R").to_string()
}
pub fn format_datetime_padded(ts: DateTime<FixedOffset>) -> String {
format!(
"{:>9}{}{:<9}{}",
ts.format("%A, "),
ts.format("%d. "),
ts.format("%B"),
ts.format(" %Y %R"),
)
}

View file

@ -0,0 +1,14 @@
[package]
name = "traveldings"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0.209", features = ["derive"] }
serde_json = "1.0.128"
reqwest = {version = "0.12.7", default-features = false, features = ["rustls-tls", "charset", "http2"]}
tokio = { version = "1", features = ["full"] }
thiserror = "1"
anyhow = "1"
chrono = { version = "0.4", features = ["serde"]}
clap = { version = "4.5", features = ["derive"]}

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