Compare commits

...

63 commits

Author SHA1 Message Date
bad
5159c86b68 Add stapler 2023-05-21 00:16:41 +02:00
mae
30cc4f16e5 Add support for hexediting to nvim 2023-04-30 18:26:56 +02:00
mae
af53ec73c7 Update flake.lock 2023-04-29 22:48:48 +02:00
MaeIsBad
816d8a5762 Let qt choose which driver to use 2023-04-28 13:00:59 +02:00
mae
4c80362d2e Replace homegrown podman module 2023-04-27 22:02:06 +02:00
MaeIsBad
d923ee70e9 Add nixgl wrappers to path 2023-04-24 14:02:07 +02:00
MaeIsBad
939488c18f Update flake.lock 2023-04-24 10:35:10 +02:00
mae
e70127846b Update flake.lock 2023-04-16 01:24:32 +02:00
mae
64fbf1790e Change default git config 2023-04-16 01:24:11 +02:00
bad
3980e568d7 Update flake.lock 2023-04-15 13:57:28 +02:00
bad
3f5de69df3 Remove unused dbus-update-activation-environment from sway startup 2023-04-01 21:24:56 +02:00
bad
4af8dd317e Fix wine tray icons 2023-04-01 21:24:56 +02:00
Bad
4258b2d215 Configure ssh via settings 2023-03-19 14:38:34 +01:00
Bad
04289143f0 Rename programs.mako to services.mako 2023-03-19 14:37:10 +01:00
Bad
fbb59f1345 Add dart lsp 2023-03-19 14:36:16 +01:00
Bad
15e0e96372 Update flakes 2023-03-19 14:19:17 +01:00
bad
6360968d7d Install amd drivers 2023-02-08 13:25:03 +01:00
Bad
ab3a9b739e Update 2023-01-14 20:36:28 +01:00
Bad
c13fe4b6df Add three_dee to laptop profile 2023-01-05 23:58:10 +01:00
Bad
8251871461 Add cargo-nextest to rust 2023-01-05 23:57:37 +01:00
Bad
e8a6de9434 Update flake.lock 2023-01-05 23:57:01 +01:00
Bad
46bf2b9982 Update flake.lock 2022-12-07 09:58:26 +01:00
Bad
7233055dcc Rebind caps to esc 2022-11-30 09:46:04 +01:00
Bad
ed875677e8 Add elixir shell history options 2022-11-23 10:53:02 +01:00
MaeIsBad
38b4bd6adb Fix portable home-manager profiles 2022-11-23 09:41:54 +01:00
Bad
bb616f3315 Add opaque color to waybar 2022-11-21 12:21:13 +01:00
Bad
c3606d6881 Update flake.lock 2022-11-21 12:21:01 +01:00
Bad
a5bddc90af Update to elixir 1.14 2022-11-20 19:44:57 +01:00
Bad
fead989bba Switch to cmp-nvim 2022-11-19 17:11:02 +01:00
Bad
f9bb2843ed Update flake.lock 2022-11-18 21:20:38 +01:00
Bad
942ef52349 Update flake.lock 2022-11-01 12:16:13 +01:00
Bad
7e1b6cd0aa Update flake.lock 2022-10-26 12:13:00 +02:00
Bad
ea347ed312 Switch to nixpkgs-unstable 2022-10-20 18:26:28 +02:00
Bad
15806203c1 update flake.lock 2022-10-11 21:12:21 +02:00
Bad
96ac0c628b Switch to nixos unstable 2022-10-11 21:12:21 +02:00
MaeIsBad
f3406f1ae9 Update riley gender api endpoints 2022-10-11 10:02:26 +02:00
MaeIsBad
0db4f6a3e8 Add cargo bin to path 2022-09-26 09:04:53 +02:00
Bad
379e2be202 Add elixir 2022-09-25 22:56:54 +02:00
Bad
77fa076012 Update flake.lock 2022-09-23 19:00:17 +02:00
Bad
3638b3b8d1 Update flake.lock 2022-09-23 00:05:26 +02:00
MaeIsBad
aca90f4d7b Update flake.lock 2022-09-21 14:57:16 +02:00
MaeIsBad
3fbe1e57a6 Add .local/bin to paht 2022-09-21 14:56:03 +02:00
MaeIsBad
87874134fc Use mako from git 2022-09-21 11:14:24 +02:00
bad
3a4d27e505 Dont manage work git or podman with hm 2022-09-20 15:28:19 +02:00
bad
41455b2558 Switch the normal config to use the refactored modules 2022-09-19 15:56:01 +02:00
bad
93c596d4d1 Move default editor to neovim config 2022-09-19 15:51:26 +02:00
bad
bb817e9dec Move alacritty into a separate module 2022-09-19 15:41:22 +02:00
bad
4d1a550da9 Work config 2022-09-19 12:38:27 +02:00
Bad
ef99fd18f3 Move waydroid into the virtualization profile 2022-09-15 23:51:28 +02:00
Bad
2f728dba86 Fix dnscrypt config 2022-09-15 23:51:03 +02:00
Bad
c539d4ce5c Rename dnscrypt to dns 2022-09-13 17:37:16 +02:00
Bad
5c827d5478 Update flake.lock 2022-09-12 01:38:01 +02:00
Bad
6c16b6fe48 Add thunderbird 2022-09-10 18:55:00 +02:00
Bad
396eef3e3e Enable dnscrypt ipv6 support 2022-09-09 17:44:17 +02:00
Bad
a09c622d71 Update flake.lock 2022-09-09 17:43:17 +02:00
Bad
b713a53961 Add docker-compose podman compat 2022-09-08 14:45:12 +02:00
Bad
4d9aeb70ca Update flake.lock 2022-09-08 11:45:55 +02:00
Bad
4de6ac078d Enable git lfs support 2022-09-08 11:45:42 +02:00
Bad
f481387d5c Suspend instead of hibernating 2022-09-05 20:33:22 +02:00
Bad
6469740fe3 Update flake.lock 2022-09-05 20:26:02 +02:00
Bad
329b93e7b7 Fix pulseaudio profile 2022-09-05 20:24:17 +02:00
Bad
226db222e2 Disable hfstpd 2022-09-03 18:01:51 +02:00
Bad
e391a8d310 Add pyright lsp 2022-09-03 18:00:46 +02:00
43 changed files with 605 additions and 772 deletions

View file

@ -1,5 +0,0 @@
status = [ "check" ]
required_approvals = 1
up_to_date_approvals = true

View file

@ -2,16 +2,17 @@
"nodes": { "nodes": {
"agenix": { "agenix": {
"inputs": { "inputs": {
"darwin": "darwin",
"nixpkgs": [ "nixpkgs": [
"nixos" "nixos"
] ]
}, },
"locked": { "locked": {
"lastModified": 1662046976, "lastModified": 1682101079,
"narHash": "sha256-BrTReGRhkVm/Kmmf4zQrL+oYWy0sds/BDBgXNX1CL3c=", "narHash": "sha256-MdAhtjrLKnk2uiqun1FWABbKpLH090oeqCSiWemtuck=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "9f136ecfa5bf954538aed3245e4408cf87c85097", "rev": "2994d002dcff5353ca1ac48ec584c7f6589fe447",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -36,17 +37,39 @@
} }
}, },
"darwin": { "darwin": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1673295039,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"darwin_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixos" "nixos"
] ]
}, },
"locked": { "locked": {
"lastModified": 1661882940, "lastModified": 1682009832,
"narHash": "sha256-4LaVFnV22WrOA0aolqqk9dXrM8crikcrLQt29G18F7M=", "narHash": "sha256-QdNOeFE7sI+0ddqVfn9vQDCUs7OdxhJ7evo9sdyP82Y=",
"owner": "LnL7", "owner": "LnL7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "80cec5115aae74accc4ccfb9f84306d7863f0632", "rev": "a1ee4d333b092bc055655fb06229eb3013755812",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -55,7 +78,7 @@
"type": "github" "type": "github"
} }
}, },
"darwin_2": { "darwin_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"digga", "digga",
@ -126,7 +149,7 @@
"digga": { "digga": {
"inputs": { "inputs": {
"blank": "blank", "blank": "blank",
"darwin": "darwin_2", "darwin": "darwin_3",
"deploy": [ "deploy": [
"deploy" "deploy"
], ],
@ -136,9 +159,7 @@
"home-manager": [ "home-manager": [
"home" "home"
], ],
"latest": [ "latest": "latest",
"latest"
],
"nixlib": [ "nixlib": [
"nixos" "nixos"
], ],
@ -150,15 +171,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1659622306, "lastModified": 1659623226,
"narHash": "sha256-Kpfm2PNs+kZU0W7qcugoPATLG8I2P7FJFGTgsf1LJiU=", "narHash": "sha256-ewEjGFjQf37ymcqBoO8q2SrvfKGgm8nW91NJ+0NQufw=",
"owner": "divnix", "owner": "divnix",
"repo": "digga", "repo": "digga",
"rev": "d1193743a535d7fbbc7f3eda4e51295b10bd4d2c", "rev": "34877733b78cb9e8a1345328a7e1a380101bee41",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "divnix", "owner": "divnix",
"ref": "home-manager-22.11",
"repo": "digga", "repo": "digga",
"type": "github" "type": "github"
} }
@ -169,11 +191,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1662101031, "lastModified": 1682749232,
"narHash": "sha256-dTlT6J6+Rv6zno/VhJusBwgV7iFNRUdY4GgH7BUPWYk=", "narHash": "sha256-tZdhmgUIuSrRB8j1fTa5JVdewdNf0crNwDMnNIKfYqE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "42e17909b3c69577303fd0c7ae138df3f4888de2", "rev": "30d4a659367f2399cdc9e813c516ae53d46ab266",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -217,11 +239,11 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1648199409, "lastModified": 1668681692,
"narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=", "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "64a525ee38886ab9028e6f61790de0832aa3ef03", "rev": "009399224d5e398d03b22badca40a37ac85412a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -296,12 +318,15 @@
} }
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": {
"systems": "systems"
},
"locked": { "locked": {
"lastModified": 1659877975, "lastModified": 1681202837,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -327,11 +352,11 @@
}, },
"flake-utils_5": { "flake-utils_5": {
"locked": { "locked": {
"lastModified": 1644229661, "lastModified": 1667395993,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -347,16 +372,15 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1656169755, "lastModified": 1682759296,
"narHash": "sha256-Nlnm4jeQWEGjYrE6hxi/7HYHjBSZ/E0RtjCYifnNsWk=", "narHash": "sha256-FgBfP1e+TnED0lT3L9G6KJ6j07xQElFMRdLIsmKQ0Ss=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "4a3d01fb53f52ac83194081272795aa4612c2381", "rev": "27d89b49e3cd3c83b9609a6ff9173a9b8d2d9ad4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-22.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -379,11 +403,11 @@
}, },
"latest": { "latest": {
"locked": { "locked": {
"lastModified": 1662019588, "lastModified": 1657356697,
"narHash": "sha256-oPEjHKGGVbBXqwwL+UjsveJzghWiWV0n9ogo1X6l4cw=", "narHash": "sha256-sT38tcx7m0Quz+Uj6jzx+yRa2+EVW2C3cE0FkROXUzQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2da64a81275b68fdad38af669afeda43d401e94b", "rev": "87e7965bbcdbac3d103e3ed14ff04f719a4f7a58",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -393,6 +417,22 @@
"type": "github" "type": "github"
} }
}, },
"latest_2": {
"locked": {
"lastModified": 1682764772,
"narHash": "sha256-PU1Til56N5L2SNHSbNavjzbDlYs5THfQqVjXtUpZHgM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0c97d307e68209414977ae270db9d9afafde21b6",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -400,11 +440,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1659610603, "lastModified": 1679567394,
"narHash": "sha256-LYgASYSPYo7O71WfeUOaEUzYfzuXm8c8eavJcel+pfI=", "narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=",
"owner": "nmattia", "owner": "nmattia",
"repo": "naersk", "repo": "naersk",
"rev": "c6a45e4277fa58abd524681466d3450f896dc094", "rev": "88cd22380154a2c36799fe8098888f0f59861a15",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -413,29 +453,52 @@
"type": "github" "type": "github"
} }
}, },
"nixgl": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixos"
]
},
"locked": {
"lastModified": 1676383589,
"narHash": "sha256-KCkWZXCjH+C4Kn7fUGSrEl5btk+sERHhZueSsvVbPWc=",
"owner": "guibou",
"repo": "nixGL",
"rev": "c917918ab9ebeee27b0dd657263d3f57ba6bb8ad",
"type": "github"
},
"original": {
"owner": "guibou",
"repo": "nixGL",
"type": "github"
}
},
"nixos": { "nixos": {
"locked": { "locked": {
"lastModified": 1662025319, "lastModified": 1682692304,
"narHash": "sha256-ZJlBQ7jXynq4+Jg9+DgOe8FJG8sDIeFFYP3V3K98KUs=", "narHash": "sha256-9/lyXN2BpHw+1xE+D2ySBSLMCHWqiWu5tPHBMRDib8M=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b82ccafb54163ab9024e893e578d840577785fea", "rev": "937a9d1ee7b1351d8c55fff6611a8edf6e7c1c37",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-22.05", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1662092548, "lastModified": 1680876084,
"narHash": "sha256-nmAbyJ5+DBXcNJ2Rcy/Gx84maqtLdr6xEe82+AXCaY8=", "narHash": "sha256-eP9yxP0wc7XuVaODugh+ajgbFGaile2O1ihxiLxOuvU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "786633331724f36967853b98d9100b5cfaa4d798", "rev": "3006d2860a6ed5e01b0c3e7ffb730e9b293116e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -446,11 +509,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1662019588, "lastModified": 1682692304,
"narHash": "sha256-oPEjHKGGVbBXqwwL+UjsveJzghWiWV0n9ogo1X6l4cw=", "narHash": "sha256-9/lyXN2BpHw+1xE+D2ySBSLMCHWqiWu5tPHBMRDib8M=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2da64a81275b68fdad38af669afeda43d401e94b", "rev": "937a9d1ee7b1351d8c55fff6611a8edf6e7c1c37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -471,11 +534,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1654975372, "lastModified": 1672979485,
"narHash": "sha256-wkNZ16akgKViuZzE/IM+bux4uaJ04KIwUeexH8gBjgw=", "narHash": "sha256-LrY0K1yya3nvRlGDc98wm68ozVj7E6a1EXXEr7eHp8E=",
"owner": "berberman", "owner": "berberman",
"repo": "nvfetcher", "repo": "nvfetcher",
"rev": "d4b237c10f14f72f8266b0f658faad822e491e55", "rev": "0a9ac5fd07b52467d81163b1f8c94c12e5c9aff9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -517,11 +580,11 @@
"pycdc": "pycdc" "pycdc": "pycdc"
}, },
"locked": { "locked": {
"lastModified": 1645880943, "lastModified": 1667669150,
"narHash": "sha256-mNtN0sk6NJILwdzCFgRzZ5xVFmfCkNCryV0HaKWRlQ0=", "narHash": "sha256-woULzWmHqrpfSDCo10QhZOGa6rB+E9ZqL4cjwX6u8TA=",
"ref": "refs/heads/mistress", "ref": "refs/heads/mistress",
"rev": "8459beb3385a9c4f45d8b4ad58ad90c7a5f503e4", "rev": "6ee2339943853341cdc07bc6505df5125a1c45c3",
"revCount": 4, "revCount": 5,
"type": "git", "type": "git",
"url": "https://im.badat.dev/bad/pwnix.git" "url": "https://im.badat.dev/bad/pwnix.git"
}, },
@ -533,11 +596,11 @@
"pycdc": { "pycdc": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1637645353, "lastModified": 1664922278,
"narHash": "sha256-iLf0pwmIF13/IS+vzpudT5O54Jj933pBZi0gbiz6Ebc=", "narHash": "sha256-whpsEjk/nnnAUH68kzZBCs7azA13B0FTUy5NuF7kQrA=",
"owner": "zrax", "owner": "zrax",
"repo": "pycdc", "repo": "pycdc",
"rev": "99b35a114a6fb84352ca92802c1a26fb8692a7b0", "rev": "44a730f3a889503014fec94ae6e62d8401cb75e5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -549,29 +612,31 @@
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"darwin": "darwin", "darwin": "darwin_2",
"deploy": "deploy", "deploy": "deploy",
"digga": "digga", "digga": "digga",
"fenix": "fenix", "fenix": "fenix",
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_3",
"home": "home", "home": "home",
"latest": "latest", "latest": "latest_2",
"naersk": "naersk", "naersk": "naersk",
"nixgl": "nixgl",
"nixos": "nixos", "nixos": "nixos",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nvfetcher": "nvfetcher", "nvfetcher": "nvfetcher",
"peerix": "peerix", "peerix": "peerix",
"pwnix": "pwnix" "pwnix": "pwnix",
"stable": "stable"
} }
}, },
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1662066014, "lastModified": 1682710505,
"narHash": "sha256-DE4FsE2sxd9nFtG+8+lnv/IBbtf+6rAlKjIdfpWN488=", "narHash": "sha256-03cthpkTbEdQF7wpmJjPuBvwcQ5eSV4jDfWj8Evg4Lk=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "93c52e41ec0d297c7512adf5936d8c464c820618", "rev": "370b72c7dd3dcdb1efe92224ab1622e44639cb07",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -581,6 +646,37 @@
"type": "github" "type": "github"
} }
}, },
"stable": {
"locked": {
"lastModified": 1682669017,
"narHash": "sha256-Vi+p4y3wnl0/4gcwTdmCO398kKlDaUrNROtf3GOD2NY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7449971a3ecf857b4a554cf79b1d9dcc1a4647d8",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"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"
}
},
"utils": { "utils": {
"locked": { "locked": {
"lastModified": 1637014545, "lastModified": 1637014545,

View file

@ -4,23 +4,23 @@
nixConfig.extra-experimental-features = "nix-command flakes"; nixConfig.extra-experimental-features = "nix-command flakes";
inputs = inputs =
{ {
nixos.url = "github:nixos/nixpkgs/nixos-22.05"; stable.url = "github:nixos/nixpkgs/nixos-22.11";
latest.url = "github:nixos/nixpkgs/nixos-unstable"; nixos.url = "github:nixos/nixpkgs/nixos-unstable";
latest.url = "github:nixos/nixpkgs/master";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
digga.url = "github:divnix/digga"; digga.url = "github:divnix/digga/home-manager-22.11";
digga.inputs.nixpkgs.follows = "nixos"; digga.inputs.nixpkgs.follows = "nixos";
digga.inputs.nixpkgs-unstable.follows = "latest"; digga.inputs.nixpkgs-unstable.follows = "latest";
digga.inputs.latest.follows = "latest";
digga.inputs.nixlib.follows = "nixos"; digga.inputs.nixlib.follows = "nixos";
digga.inputs.home-manager.follows = "home"; digga.inputs.home-manager.follows = "home";
digga.inputs.deploy.follows = "deploy"; digga.inputs.deploy.follows = "deploy";
home.url = "github:nix-community/home-manager/release-22.05"; home.url = "github:nix-community/home-manager";
#home.url = "github:nix-community/home-manager/release-22.05";
# home.url = "path:/home/mae/home-manager"; # home.url = "path:/home/mae/home-manager";
home.inputs.nixpkgs.follows = "latest"; home.inputs.nixpkgs.follows = "latest";
home.inputs.utils.follows = "flake-utils";
darwin.url = "github:LnL7/nix-darwin"; darwin.url = "github:LnL7/nix-darwin";
darwin.inputs.nixpkgs.follows = "nixos"; darwin.inputs.nixpkgs.follows = "nixos";
@ -45,10 +45,13 @@
nixos-hardware.url = "github:nixos/nixos-hardware"; nixos-hardware.url = "github:nixos/nixos-hardware";
fenix.url = "github:nix-community/fenix"; fenix.url = "github:nix-community/fenix";
# fenix.inputs.nixpkgs.follows = "nixos";
pwnix.url = "git+https://im.badat.dev/bad/pwnix.git"; pwnix.url = "git+https://im.badat.dev/bad/pwnix.git";
pwnix.inputs.nixpkgs.follows = "nixos"; pwnix.inputs.nixpkgs.follows = "nixos";
nixgl.url = "github:guibou/nixGL";
nixgl.inputs.nixpkgs.follows = "nixos";
nixgl.inputs.flake-utils.follows = "flake-utils";
}; };
outputs = outputs =
@ -62,6 +65,7 @@
, nvfetcher , nvfetcher
, deploy , deploy
, peerix , peerix
, nixgl
, ... , ...
} @ inputs: } @ inputs:
digga.lib.mkFlake digga.lib.mkFlake
@ -75,12 +79,12 @@
imports = [ (digga.lib.importOverlays ./overlays) ]; imports = [ (digga.lib.importOverlays ./overlays) ];
overlays = [ overlays = [
# fenix.overlay breaks the cache, because it uses the system nixpkgs # fenix.overlay breaks the cache, because it uses the system nixpkgs
(_: super: let pkgs = fenix.inputs.nixpkgs.legacyPackages.${super.system}; in fenix.overlay pkgs pkgs) (_: super: let pkgs = fenix.inputs.nixpkgs.legacyPackages.${super.system}; in fenix.overlays.default pkgs pkgs)
agenix.overlay agenix.overlays.default
nvfetcher.overlay
./pkgs/default.nix ./pkgs/default.nix
peerix.overlay peerix.overlay
nixgl.overlay
]; ];
}; };
latest = { }; latest = { };
@ -134,9 +138,7 @@
base = [ direnv git ]; base = [ direnv git ];
}; };
}; };
users = { users = digga.lib.rakeLeaves ./users;
nixos = { suites, ... }: { imports = suites.base; };
}; # digga.lib.importers.rakeLeaves ./users/hm;
}; };
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;

View file

@ -1,18 +0,0 @@
{ profiles, ... }:
{
# build with: `bud build bootstrap bootstrapIso`
# reachable on the local link via ssh root@fe80::47%eno1
# where 'eno1' is replaced by your own machine's network
# interface that has the local link to the target machine
imports = [
# profiles.networking
profiles.core
profiles.users.root # make sure to configure ssh keys
profiles.users.nixos
];
boot.loader.systemd-boot.enable = true;
# will be overridden by the bootstrapIso instrumentation
fileSystems."/" = { device = "/dev/disk/by-label/nixos"; };
}

54
hosts/stapler.nix Normal file
View file

@ -0,0 +1,54 @@
{ suites, pkgs, ... }:
{
imports = suites.lap;
system.stateVersion = "22.11";
boot.loader.efi.canTouchEfiVariables = true;
hardware.cpu.intel.updateMicrocode = false;
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/4727151b-8c08-4d35-b9e5-36575a4f3d12";
fsType = "btrfs";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/5303-C8B9";
fsType = "vfat";
};
boot.kernelParams = [ "intel_pstate=no_hwp" ];
fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];
boot.loader.grub = {
enable = true;
version = 2;
device = "nodev";
efiSupport = true;
enableCryptodisk = true;
gfxmodeEfi = "1024x768";
};
boot.loader.efi.efiSysMountPoint = "/boot";
boot.initrd.luks.devices = {
root = {
device = "/dev/disk/by-uuid/e0b1eb49-9bc5-462e-9576-52f59475aad3";
};
};
hardware.opengl.extraPackages = with pkgs; [
intel-ocl
intel-compute-runtime
];
networking.networkmanager.enable = true;
}

View file

@ -1,5 +0,0 @@
final: prev: {
manix = prev.manix.overrideAttrs (o: rec{
inherit (prev.sources.manix) pname version src;
});
}

View file

@ -3,35 +3,10 @@ let
latest = channels.latest; latest = channels.latest;
in in
{ {
__dontExport = true; # overrides clutter up actual creations __dontExport = true; # overrides clutter up actual creations
inherit (latest) inherit (latest)
cachix asdf;
nix-direnv
minetest
dhall
discord
element-desktop
rage
ghidra
podman
nixpkgs-fmt
qutebrowser
nvfetcher
signal-desktop
delve
neovim
polymc
lutris
sumneko-lua-language-server
cargo-crev
cargo-fuzz
tdesktop
vimPlugins
neovim-unwrapped;
latest = latest; latest = latest;
haskellPackages = prev.haskellPackages.override haskellPackages = prev.haskellPackages.override

View file

@ -8,6 +8,10 @@
rocm-opencl-runtime rocm-opencl-runtime
amdvlk amdvlk
]; ];
hardware.opengl.extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.kernelModules = [ "amdgpu" ];
services.xserver.videoDrivers = [ "amdgpu" ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
} }

View file

@ -1,7 +1,6 @@
{ ... }: { ... }:
{ {
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
hardware.bluetooth.hsphfpd.enable = true;
services.blueman.enable = true; services.blueman.enable = true;
services.ofono.enable = true; services.ofono.enable = true;
} }

View file

@ -2,16 +2,44 @@
let inherit (lib) fileContents; let inherit (lib) fileContents;
in in
{ {
# Cachix # Cachix
nix = { nix = {
binaryCaches = [ settings = {
substituters = [
"https://cache.nixos.org/" "https://cache.nixos.org/"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
]; ];
binaryCachePublicKeys = [ trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
]; ];
trusted-users = [ "root" "@wheel" ];
system-features = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
sandbox = true;
auto-optimise-store = true;
};
registry = {
nixpkgs.flake = self.inputs.nixos;
latest.flake = self.inputs.latest;
stable.flake = self.inputs.stable;
pwnix.flake = self.inputs.pwnix;
};
# Improve nix store disk usage
gc.automatic = true;
optimise.automatic = true;
# Generally useful nix option defaults
extraOptions = ''
keep-outputs = true
keep-derivations = true
fallback = true
'';
}; };
# For rage encryption, all hosts need a ssh key pair # For rage encryption, all hosts need a ssh key pair
@ -20,11 +48,6 @@ in
openFirewall = lib.mkDefault false; openFirewall = lib.mkDefault false;
}; };
# This is just a representation of the nix default
nix.systemFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
nix.registry.nixpkgs.flake = self.inputs.nixos;
nix.registry.latest.flake = self.inputs.latest;
nix.registry.pwnix.flake = self.inputs.pwnix;
# Fix zsh autocompletion with home-manager # Fix zsh autocompletion with home-manager
environment.pathsToLink = [ "/share/zsh" ]; environment.pathsToLink = [ "/share/zsh" ];
@ -92,27 +115,6 @@ in
}; };
}; };
nix = {
# Improve nix store disk usage
autoOptimiseStore = true;
gc.automatic = true;
optimise.automatic = true;
# Prevents impurities in builds
useSandbox = true;
# give root and @wheel special privileges with nix
trustedUsers = [ "root" "@wheel" ];
# Generally useful nix option defaults
extraOptions = ''
keep-outputs = true
keep-derivations = true
fallback = true
'';
};
time.timeZone = "Europe/Warsaw"; time.timeZone = "Europe/Warsaw";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";

View file

@ -2,15 +2,13 @@
networking = { networking = {
nameservers = [ "127.0.0.1" "::1" ]; nameservers = [ "127.0.0.1" "::1" ];
resolvconf.useLocalResolver = true; resolvconf.useLocalResolver = true;
# If using dhcpcd:
dhcpcd.extraConfig = "nohook resolv.conf";
# If using NetworkManager: # If using NetworkManager:
networkmanager.dns = "none"; # networkmanager.dns = "none";
}; };
services.dnscrypt-proxy2 = { services.dnscrypt-proxy2 = {
enable = true; enable = true;
settings = { settings = {
ipv6_servers = false; ipv6_servers = true;
require_dnssec = true; require_dnssec = true;
cloaking_rules = ./cloaking_rules; cloaking_rules = ./cloaking_rules;
@ -19,7 +17,7 @@
"https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md"
"https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md"
]; ];
cache_file = "/var/lib/dnscrypt-proxy2/public-resolvers.md"; cache_file = "/var/lib/dnscrypt-proxy/public-resolvers.md";
minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3";
}; };
}; };
@ -28,4 +26,8 @@
enable = true; enable = true;
bindInterface = false; bindInterface = false;
}; };
services.avahi = {
enable = true;
nssmdns = true;
};
} }

View file

@ -6,9 +6,8 @@
steam-run steam-run
minetest minetest
mumble mumble
polymc
(retroarch.override { cores = [ libretro.snes9x ]; }) (retroarch.override { cores = [ libretro.snes9x ]; })
olympus olympus
godot godot_4
]; ];
} }

View file

@ -10,33 +10,6 @@
pulse.enable = true; pulse.enable = true;
# If you want to use JACK applications, uncomment this # If you want to use JACK applications, uncomment this
#jack.enable = true; #jack.enable = true;
wireplumber.enable = true;
#bluetooth config
media-session.config.bluez-monitor.rules = [
{
# Matches all cards
matches = [{ "device.name" = "~bluez_card.*"; }];
actions = {
"update-props" = {
"bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
# mSBC is not expected to work on all headset + adapter combinations.
"bluez5.msbc-support" = true;
# SBC-XQ is not expected to work on all headset + adapter combinations.
"bluez5.sbc-xq-support" = true;
};
};
}
{
matches = [
# Matches all sources
{ "node.name" = "~bluez_input.*"; }
# Matches all outputs
{ "node.name" = "~bluez_output.*"; }
];
actions = {
"node.pause-on-idle" = false;
};
}
];
}; };
} }

View file

@ -0,0 +1,5 @@
{pkgs, ...}: {
boot.enableContainers = false;
virtualisation.podman.enable = true;
virtualisation.podman.defaultNetwork.settings.dns_enabled = true;
}

View file

@ -4,6 +4,5 @@
hardware.pulseaudio = { hardware.pulseaudio = {
enable = true; enable = true;
package = pkgs.pulseaudioFull; package = pkgs.pulseaudioFull;
extraModules = [ pkgs.pulseaudio-modules-bt ];
}; };
} }

View file

@ -7,6 +7,7 @@
cargo-watch cargo-watch
cargo-fuzz cargo-fuzz
cargo-expand cargo-expand
cargo-nextest
]; ];
environment.variables.RUST_SRC_PATH = "${pkgs.fenix.latest.rust-src}/lib/rustlib/src/rust/library/"; environment.variables.RUST_SRC_PATH = "${pkgs.fenix.latest.rust-src}/lib/rustlib/src/rust/library/";
} }

View file

@ -1,10 +1,12 @@
{ ... }: { { ... }: {
services.openssh = { services.openssh = {
enable = true; enable = true;
forwardX11 = true; settings = {
permitRootLogin = "no"; X11Forwarding = true;
PermitRootLogin = "no";
PasswordAuthentication = false;
};
startWhenNeeded = true; startWhenNeeded = true;
openFirewall = true; openFirewall = true;
passwordAuthentication = false;
}; };
} }

View file

@ -5,6 +5,7 @@
}; };
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
virtualisation.waydroid.enable = true;
virtualisation.spiceUSBRedirection.enable = true; virtualisation.spiceUSBRedirection.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
environment.systemPackages = with pkgs; [ virt-manager ]; environment.systemPackages = with pkgs; [ virt-manager ];

View file

@ -2,7 +2,7 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
pavucontrol pavucontrol
signal-desktop signal-desktop
tdesktop telegram-desktop
firefox-wayland firefox-wayland
chromium chromium
nomacs nomacs
@ -10,6 +10,7 @@
gimp gimp
krita krita
inkscape inkscape
thunderbird
syncplay syncplay
pcmanfm pcmanfm
ark ark
@ -21,6 +22,5 @@
services.gvfs.enable = true; services.gvfs.enable = true;
services.udisks2.enable = true; services.udisks2.enable = true;
services.devmon.enable = true; services.devmon.enable = true;
virtualisation.waydroid.enable = true;
boot.supportedFilesystems = [ "ntfs" ]; boot.supportedFilesystems = [ "ntfs" ];
} }

View file

@ -1,7 +1,7 @@
{ profiles, ... }: { profiles, ... }:
with profiles; rec { with profiles; rec {
base = [ users.root core dnscrypt ]; base = [ users.root core dns ];
workstation = base ++ [ sway develop game profiles.workstation ssh flatpak torrents pwn tor rust virtualization java networkmanager pipewire flatpak peerix tailscale users.mae ]; workstation = base ++ [ sway develop game profiles.workstation ssh flatpak torrents pwn tor rust virtualization java networkmanager pipewire flatpak tailscale podman users.mae ];
desktop = workstation ++ [ amd three_dee ]; desktop = workstation ++ [ amd ];
lap = workstation ++ [ laptop bluetooth print ]; lap = workstation ++ [ laptop bluetooth print ];
} }

View file

@ -1,19 +1,21 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
programs.zsh.enable = true;
users.users.mae = { users.users.mae = {
uid = 1000; uid = 1000;
isNormalUser = true; isNormalUser = true;
hashedPassword = "$6$vyS4lqYbl3$OXztJnAC5ZayA4eCBSIRlYtsi9u1HnafsfNL28l4CJh0BISVlSj6D48CA80cshnvYW/EEzfEj7z4zTNFpJAT/."; hashedPassword = "$6$vyS4lqYbl3$OXztJnAC5ZayA4eCBSIRlYtsi9u1HnafsfNL28l4CJh0BISVlSj6D48CA80cshnvYW/EEzfEj7z4zTNFpJAT/.";
shell = pkgs.zsh; shell = pkgs.zsh;
extraGroups = [ "wheel" "video" "lp" "scanner" "adbusers" "render" "libvirtd" "podman" "docker" ]; extraGroups = [ "wheel" "video" "lp" "scanner" "adbusers" "render" "libvirtd" ];
}; };
home-manager.users.mae = { pkgs, ... }: { home-manager.users.mae = { pkgs, ... }: {
imports = [ ../profiles/direnv ../profiles/git ../profiles/zsh ../profiles/neovim ../profiles/syncthing ../profiles/kdeconnect ../profiles/podman ../profiles/alacritty ../profiles/tmux ../profiles/mpv ../profiles/sway ]; imports = [ ../profiles/core ../profiles/direnv ../profiles/git ../profiles/zsh ../profiles/neovim ../profiles/syncthing ../profiles/kdeconnect ../profiles/tmux ../profiles/mpv ../profiles/sway ../profiles/podman ];
mae.alacritty.enable = true;
home.sessionVariables = { home.sessionVariables = {
XDG_DATA_DIRS = "$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share"; XDG_DATA_DIRS = "$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share";
EDITOR = "${pkgs.neovim}/bin/nvim";
MOZ_ENABLE_WAYLAND = 1; MOZ_ENABLE_WAYLAND = 1;
}; };
home.stateVersion = "18.09"; home.stateVersion = "18.09";

View file

@ -0,0 +1,33 @@
{ pkgs, ... }: {
imports = [ ../profiles/core ../profiles/direnv ../profiles/zsh ../profiles/neovim ../profiles/syncthing ../profiles/kdeconnect ../profiles/tmux ../profiles/mpv ../profiles/sway ];
home.stateVersion = "22.11";
targets.genericLinux.enable = true;
home.packages = [ pkgs.home-manager pkgs.element-desktop pkgs.nixgl.nixGLIntel pkgs.nixgl.nixVulkanIntel ];
wayland.windowManager.sway.extraSessionCommands = ''
export WLR_NO_HARDWARE_CURSORS=1
'';
mae.alacritty = {
enable = true;
# libglWrapper = true;
};
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = 1;
};
gtk = {
enable = true;
theme = {
name = "Arc-Dark";
package = pkgs.arc-theme;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
};
programs.go = {
enable = true;
goPath = ".local/go";
};
}

View file

@ -0,0 +1,83 @@
{ pkgs, lib, config, ... }:
let
cfg = config.mae.alacritty;
alacrittyLibGL = pkgs.symlinkJoin {
name = "alacritty-nixgl";
paths = [
(pkgs.writeShellScriptBin
"alacritty"
''
${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel ${pkgs.alacritty}/bin/alacritty "$@"
'')
pkgs.alacritty
];
};
in
{
options.mae.alacritty = {
enable = lib.mkEnableOption "Enable the alacritty terminal";
libglWrapper = lib.mkOption {
default = false;
type = lib.types.bool;
description = "Wrap alacritty in libgl to make it work on non nixos systems";
};
};
config = lib.mkIf cfg.enable {
fonts.fontconfig.enable = true;
home.packages = [
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
programs.alacritty = {
package = lib.mkIf cfg.libglWrapper alacrittyLibGL;
enable = true;
settings = {
window = {
padding = {
x = 6;
y = 6;
};
};
font = {
normal = {
family = "JetBrainsMono Nerd Font";
};
size = 12;
};
colors = {
primary = {
background = "#161821";
foreground = "#d2d4de";
};
normal = {
black = "#161821";
red = "#e27878";
green = "#b4be82";
yellow = "#e2a478";
blue = "#84a0c6";
magenta = "#a093c7";
cyan = "#89b8c2";
white = "#c6c8d1";
};
bright = {
black = "#6b7089";
red = "#e98989";
green = "#c0ca8e";
yellow = "#e9b189";
blue = "#91acd1";
magenta = "#ada0d3";
cyan = "#95c4ce";
white = "#d2d4de";
};
};
cursor = {
style = "Block";
blinking = "On";
};
live_config_reload = false;
mouse = {
hide_when_typing = false;
};
};
};
};
}

View file

@ -0,0 +1,20 @@
{ lib, pkgs, config, ... }:
let
cfg = config.mae.nvim.dart;
in
with lib;
{
options.mae.nvim.dart.enable = lib.mkEnableOption "Enable dart support in neovim";
config = mkIf cfg.enable {
mae.nvim.lsp.servers.dartls = {
enable = true;
script = ''
{
cmd = { "${pkgs.latest.dart}/bin/dart", "language-server" },
}
'';
};
programs.neovim.plugins = with pkgs.vimPlugins; [ dart-vim-plugin ];
};
}

View file

@ -10,13 +10,18 @@ in
./go.nix ./go.nix
./rust.nix ./rust.nix
./nix.nix ./nix.nix
./python.nix
./clangd.nix ./clangd.nix
./elixir.nix
./dart.nix
./hexeditor.nix
]; ];
options.mae.nvim = { options.mae.nvim = {
enable = mkEnableOption "enable neovim"; enable = mkEnableOption "enable neovim";
}; };
config = { config = {
home.sessionVariables.EDITOR = "${pkgs.neovim}/bin/nvim";
programs.neovim = mkIf cfg.enable { programs.neovim = mkIf cfg.enable {
enable = true; enable = true;
vimdiffAlias = true; vimdiffAlias = true;
@ -30,7 +35,6 @@ in
config = "colorscheme iceberg"; config = "colorscheme iceberg";
} }
vim-sleuth vim-sleuth
]; ];
extraPackages = with pkgs; [ extraPackages = with pkgs; [
nodePackages.prettier nodePackages.prettier
@ -40,6 +44,7 @@ in
set termguicolors set termguicolors
set ic set ic
set mouse=
set number set number
set autoindent set autoindent

View file

@ -0,0 +1,22 @@
{ lib, pkgs, config, ... }:
let
cfg = config.mae.nvim.elixir;
in
with lib;
{
options.mae.nvim.elixir.enable = lib.mkEnableOption "Enable elixir support in neovim";
config = mkIf cfg.enable {
mae.nvim.lsp.servers.elixirls = {
enable = true;
script = ''
{
cmd = { "${pkgs.elixir_ls}/bin/elixir-ls" },
}
'';
};
home.packages = with pkgs; [ elixir_1_14 ];
home.sessionVariables."ELIXIR_ERL_OPTIONS" = "-kernel shell_history enabled";
programs.neovim.plugins = with pkgs.vimPlugins; [ vim-elixir ];
};
}

View file

@ -0,0 +1,22 @@
{ lib, pkgs, config, ... }:
let
cfg = config.mae.nvim.hexeditor;
in
{
options.mae.nvim.hexeditor.enable = lib.mkEnableOption "Enable hexediting in neovim";
config = lib.mkIf cfg.enable {
programs.neovim.extraConfig = ''
augroup Binary
au!
au BufReadPre *.bin let &bin=1
au BufReadPost *.bin if &bin | %!xxd
au BufReadPost *.bin set ft=xxd | endif
au BufWritePre *.bin if &bin | %!xxd -r
au BufWritePre *.bin endif
au BufWritePost *.bin if &bin | %!xxd
au BufWritePost *.bin set nomod | endif
augroup END
'';
};
}

View file

@ -12,12 +12,16 @@ let
}; };
}; };
mkLspLangConfig = name: cfg: '' mkLspLangConfig = name: cfg: ''
require'lspconfig'["${name}"].setup(require'coq'.lsp_ensure_capabilities(${cfg.script})) local cfg = ${cfg.script}
cfg["capabilities"] = require('cmp_nvim_lsp').default_capabilities()
require'lspconfig'["${name}"].setup(cfg)
''; '';
mkLspLangConfigs = cfgs: lib.strings.concatStringsSep "\n" ((lib.attrsets.mapAttrsToList mkLspLangConfig cfgs)); mkLspLangConfigs = cfgs: lib.strings.concatStringsSep "\n" ((lib.attrsets.mapAttrsToList mkLspLangConfig cfgs));
in in
{ {
options.mae.nvim.lsp = { options.mae.nvim.lsp = {
enable = mkEnableOption "Enable lsp support in nvim with nvim-lspconfig and cmp-nvim"; enable = mkEnableOption "Enable lsp support in nvim with nvim-lspconfig and cmp-nvim";
servers = mkOption { servers = mkOption {
type = types.attrsOf lspLangConfigType; type = types.attrsOf lspLangConfigType;
@ -28,13 +32,50 @@ in
config = mkIf cfg.lsp.enable { config = mkIf cfg.lsp.enable {
programs.neovim = { programs.neovim = {
plugins = with pkgs.vimPlugins; [ plugins = with pkgs.vimPlugins; [
nvim-snippy
cmp-nvim-lsp
cmp-buffer
cmp-path
cmp-tmux
cmp-snippy
{ {
plugin = coq_nvim; plugin = nvim-cmp;
config = '' config = ''
vim.g.coq_settings = { local cmp = require'cmp'
xdg = true,
auto_start = true cmp.setup({
} snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
require('snippy').expand_snippet(args.body)
end,
},
window = {},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'snippy' },
{ name = 'path' }
}, {
{ name = 'buffer' },
{ name= 'tmux' }
})
})
-- Set configuration for specific filetype.
cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it.
}, {
{ name = 'buffer' },
})
})
''; '';
type = "lua"; type = "lua";
} }

View file

@ -0,0 +1,19 @@
{ lib, pkgs, config, ... }:
let
cfg = config.mae.nvim.python;
in
with lib;
{
options.mae.nvim.python.enable = lib.mkEnableOption "Enable python language support in neovim";
config = mkIf cfg.enable {
mae.nvim.lsp.servers.pyright = {
enable = true;
script = ''
{
cmd = { "${pkgs.nodePackages.pyright}/bin/pyright-langserver", "--stdio" },
}
'';
};
};
}

View file

@ -1,123 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.virtualisation.containers;
inherit (lib) mkOption types;
toml = pkgs.formats.toml { };
in
{
options.virtualisation.containers = {
enable =
mkOption {
type = types.bool;
default = false;
description = ''
This option enables the common /etc/containers configuration module.
'';
};
ociSeccompBpfHook.enable = mkOption {
type = types.bool;
default = false;
description = "Enable the OCI seccomp BPF hook";
};
containersConf.settings = mkOption {
type = toml.type;
default = { };
description = "containers.conf configuration";
};
containersConf.cniPlugins = mkOption {
type = types.listOf types.package;
defaultText = ''
[
pkgs.cni-plugins
]
'';
example = lib.literalExample ''
[
pkgs.cniPlugins.dnsname
]
'';
description = ''
CNI plugins to install on the system.
'';
};
registries = {
search = mkOption {
type = types.listOf types.str;
default = [ "docker.io" "quay.io" ];
description = ''
List of repositories to search.
'';
};
insecure = mkOption {
default = [ ];
type = types.listOf types.str;
description = ''
List of insecure repositories.
'';
};
block = mkOption {
default = [ ];
type = types.listOf types.str;
description = ''
List of blocked repositories.
'';
};
};
policy = mkOption {
default = { };
type = types.attrs;
example = lib.literalExample ''
{
default = [ { type = "insecureAcceptAnything"; } ];
transports = {
docker-daemon = {
"" = [ { type = "insecureAcceptAnything"; } ];
};
};
}
'';
description = ''
Signature verification policy file.
If this option is empty the default policy file from
<literal>skopeo</literal> will be used.
'';
};
};
config = lib.mkIf cfg.enable {
virtualisation.containers.containersConf.cniPlugins = [ pkgs.cni-plugins ];
virtualisation.containers.containersConf.settings = {
network.cni_plugin_dirs = map (p: "${lib.getBin p}/bin") cfg.containersConf.cniPlugins;
engine = {
init_path = "${pkgs.catatonit}/bin/catatonit";
} // lib.optionalAttrs cfg.ociSeccompBpfHook.enable {
hooks_dir = [ config.boot.kernelPackages.oci-seccomp-bpf-hook ];
};
};
xdg.configFile."containers/containers.conf".source =
toml.generate "containers.conf" cfg.containersConf.settings;
xdg.configFile."containers/registries.conf".source = toml.generate "registries.conf" {
registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
};
xdg.configFile."containers/policy.json".source =
if cfg.policy != { } then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
else "${pkgs.skopeo.src}/default-policy.json";
};
}

View file

@ -1,7 +0,0 @@
{ ... }: {
imports = [
./podman.nix
./containers.nix
./podman-dnsname.nix
];
}

View file

@ -1,36 +0,0 @@
{ config, lib, pkgs, ... }:
let
inherit (lib)
mkOption
mkIf
types
;
cfg = config.services.podman;
in
{
options = {
services.podman = {
defaultNetwork.dnsname.enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable DNS resolution in the default podman network.
'';
};
};
};
config = {
virtualisation.containers.containersConf.cniPlugins = mkIf cfg.defaultNetwork.dnsname.enable [ pkgs.dnsname-cni ];
services.podman.defaultNetwork.extraPlugins =
lib.optional cfg.defaultNetwork.dnsname.enable {
type = "dnsname";
domainName = "dns.podman";
capabilities.aliases = true;
};
};
}

View file

@ -1,183 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.podman;
toml = pkgs.formats.toml { };
json = pkgs.formats.json { };
inherit (lib) mkOption types;
podmanPackage = (pkgs.podman.override { inherit (cfg) extraPackages; });
# Provides a fake "docker" binary mapping to podman
dockerCompat = pkgs.runCommandNoCC "${podmanPackage.pname}-docker-compat-${podmanPackage.version}"
{
outputs = [ "out" "man" ];
inherit (podmanPackage) meta;
} ''
mkdir -p $out/bin
ln -s ${podmanPackage}/bin/podman $out/bin/docker
mkdir -p $man/share/man/man1
for f in ${podmanPackage.man}/share/man/man1/*; do
basename=$(basename $f | sed s/podman/docker/g)
ln -s $f $man/share/man/man1/$basename
done
'';
net-conflist = pkgs.runCommand "87-podman-bridge.conflist"
{
nativeBuildInputs = [ pkgs.jq ];
extraPlugins = builtins.toJSON cfg.defaultNetwork.extraPlugins;
jqScript = ''
. + { "plugins": (.plugins + $extraPlugins) }
'';
} ''
jq <${cfg.package}/etc/cni/net.d/87-podman-bridge.conflist \
--argjson extraPlugins "$extraPlugins" \
"$jqScript" \
>$out
'';
in
{
imports = [
./podman-dnsname.nix
#./podman-network-socket.nix
(lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
];
meta = {
maintainers = lib.teams.podman.members;
};
options.services.podman = {
enable =
mkOption {
type = types.bool;
default = false;
description = ''
This option enables Podman, a daemonless container engine for
developing, managing, and running OCI Containers on your Linux System.
It is a drop-in replacement for the <command>docker</command> command.
'';
};
dockerSocket.enable = mkOption {
type = types.bool;
default = false;
description = ''
Make the Podman socket available in place of the Docker socket, so
Docker tools can find the Podman socket.
Podman implements the Docker API.
'';
};
dockerCompat = mkOption {
type = types.bool;
default = false;
description = ''
Create an alias mapping <command>docker</command> to <command>podman</command>.
'';
};
enableNvidia = mkOption {
type = types.bool;
default = false;
description = ''
Enable use of NVidia GPUs from within podman containers.
'';
};
extraPackages = mkOption {
type = with types; listOf package;
default = [ ];
example = lib.literalExample ''
[
pkgs.gvisor
]
'';
description = ''
Extra packages to be installed in the Podman wrapper.
'';
};
package = lib.mkOption {
type = types.package;
default = podmanPackage;
internal = true;
description = ''
The final Podman package (including extra packages).
'';
};
defaultNetwork.extraPlugins = lib.mkOption {
type = types.listOf json.type;
default = [ ];
description = ''
Extra CNI plugin configurations to add to podman's default network.
'';
};
};
config = lib.mkIf cfg.enable (lib.mkMerge [
{
home.packages = [ cfg.package ]
++ lib.optional cfg.dockerCompat dockerCompat;
xdg.configFile."cni/net.d/87-podman-bridge.conflist".source = net-conflist;
virtualisation.containers = {
enable = true; # Enable common /etc/containers configuration
containersConf.settings = lib.optionalAttrs cfg.enableNvidia {
engine = {
conmon_env_vars = [ "PATH=${lib.makeBinPath [ pkgs.nvidia-podman ]}" ];
runtimes.nvidia = [ "${pkgs.nvidia-podman}/bin/nvidia-container-runtime" ];
};
};
};
systemd.user = {
services.podman = {
Unit = {
Description = "Podman API Service";
Requires = "podman.socket";
After = "podman.socket";
Documentation = "man:podman-system-service(1)";
StartLimitIntervalSec = 0;
};
Service = {
Type = "exec";
KillMode = "process";
Environment = "LOGGING=\" --log-level=info\"";
ExecStart = [ "" "${cfg.package}/bin/podman $LOGGING system service" ];
};
Install = {
WantedBy = [ "multi-user.target" ];
};
};
sockets.podman = {
Unit = {
Description = "Podman API Socket";
Documentation = "man:podman-system-service(1)";
};
Socket = {
ListenStream = "%t/podman/podman.sock";
SocketMode = 0660;
};
Install.WantedBy = [ "sockets.target" ];
};
};
}
(lib.mkIf cfg.dockerSocket.enable {
home.sessionVariables."DOCKER_HOST" = "unix:///run/user/$UID/podman/podman.sock";
})
]);
}

View file

@ -1,53 +0,0 @@
{
programs.alacritty = {
enable = true;
settings = {
window = {
padding = {
x = 6;
y = 6;
};
};
font = {
normal = {
family = "JetBrainsMono Nerd Font";
};
size = 12;
};
colors = {
primary = {
background = "#161821";
foreground = "#d2d4de";
};
normal = {
black = "#161821";
red = "#e27878";
green = "#b4be82";
yellow = "#e2a478";
blue = "#84a0c6";
magenta = "#a093c7";
cyan = "#89b8c2";
white = "#c6c8d1";
};
bright = {
black = "#6b7089";
red = "#e98989";
green = "#c0ca8e";
yellow = "#e9b189";
blue = "#91acd1";
magenta = "#ada0d3";
cyan = "#95c4ce";
white = "#d2d4de";
};
};
cursor = {
style = "Block";
blinking = "On";
};
live_config_reload = false;
mouse = {
hide_when_typing = false;
};
};
};
}

View file

@ -0,0 +1,3 @@
{
home.sessionPath = [ "$HOME/.local/bin" "$HOME/.cargo/bin/" ];
}

View file

@ -1,12 +1,13 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true;
extraConfig = { extraConfig = {
init.defaultBranch = "mistress"; init.defaultBranch = "mistress";
pull.ff = "only"; pull.ff = "only";
}; };
userEmail = "badatnames@tutanota.com"; userEmail = "git@badat.dev";
userName = "bad"; userName = "mae";
}; };
} }

View file

@ -9,6 +9,9 @@
rust.enable = true; rust.enable = true;
go.enable = true; go.enable = true;
clangd.enable = true; clangd.enable = true;
#python.enable = true; python.enable = true;
elixir.enable = true;
dart.enable = true;
hexeditor.enable = true;
}; };
} }

View file

@ -1,6 +1,17 @@
{ pkgs, ... }: { pkgs, config, ... }:
let
podman_sock = "unix://$XDG_RUNTIME_DIR/podman/podman.sock";
podmanCompose = pkgs.runCommand "docker-compose-podman-compat"
{
buildInputs = [ pkgs.makeWrapper ];
} ''
mkdir -p $out/bin
makeWrapper '${pkgs.docker-compose}/bin/docker-compose' "$out/bin/podman-compose" \
--set-default "DOCKER_HOST" '${podman_sock}' \
--set-default DOCKER_BUILDKIT 0
'';
in
{ {
services.podman.enable = true; home.packages = [ podmanCompose ];
services.podman.defaultNetwork.dnsname.enable = true; home.sessionVariables.DOCKER_HOST = podman_sock;
services.podman.dockerSocket.enable = true;
} }

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }@inputs: { pkgs, lib, config, ... }@inputs:
let let
rofi = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; }; rofi = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; };
scripts = ((import ./scripts.nix) inputs); scripts = ((import ./scripts.nix) inputs);
@ -8,7 +8,7 @@ in
wayland.windowManager.sway = rec { wayland.windowManager.sway = rec {
enable = true; enable = true;
config = { config = {
terminal = "${pkgs.alacritty}/bin/alacritty"; terminal = "alacritty";
menu = "${rofi}/bin/rofi -show combi"; menu = "${rofi}/bin/rofi -show combi";
modifier = "Mod4"; modifier = "Mod4";
output = { output = {
@ -22,6 +22,7 @@ in
accel_profile = "flat"; accel_profile = "flat";
dwt = "disabled"; dwt = "disabled";
pointer_accel = "0.0"; pointer_accel = "0.0";
xkb_options = "caps:escape";
}; };
}; };
bars = [{ bars = [{
@ -30,24 +31,20 @@ in
}]; }];
floating.criteria = [{ title = "Steam - Update News"; }]; floating.criteria = [{ title = "Steam - Update News"; }];
startup = [ startup = [
# Copied from https://git.sr.ht/~sumner/home-manager-config/tree/master/item/modules/window-manager/wayland.nix#L64 # Support for old style xembed tray icons, mostly used by wine
# See https://github.com/nix-community/home-manager/issues/2028 { command = "${pkgs.plasma-workspace}/bin/xembedsniproxy"; }
# Make all the pinentry stuff work
# See: https://github.com/NixOS/nixpkgs/issues/119445#issuecomment-820507505
# and: https://github.com/NixOS/nixpkgs/issues/57602#issuecomment-820512097
{ command = "dbus-update-activation-environment WAYLAND_DISPLAY"; }
]; ];
keybindings = lib.mkOptionDefault { keybindings = lib.mkOptionDefault {
"XF86PowerOff" = "exec systemctl hibernate"; "XF86PowerOff" = "exec systemctl suspend";
}; };
}; };
wrapperFeatures.gtk = true; wrapperFeatures.gtk = true;
systemdIntegration = true; systemdIntegration = true;
extraSessionCommands = '' extraSessionCommands = ''
#export SDL_VIDEODRIVER=wayland #export SDL_VIDEODRIVER=wayland
# needs qt5.qtwayland in systemPackages
export QT_QPA_PLATFORM=wayland export QT_WAYLAND_FORCE_DPI=physical
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# Fix for some Java AWT applications (e.g. Android Studio), # Fix for some Java AWT applications (e.g. Android Studio),
# use this if they aren't displayed properly: # use this if they aren't displayed properly:
export _JAVA_AWT_WM_NONREPARENTING=1 export _JAVA_AWT_WM_NONREPARENTING=1
@ -67,8 +64,9 @@ in
exec = pkgs.writeShellScript "riley-gender" '' exec = pkgs.writeShellScript "riley-gender" ''
set -euo pipefail set -euo pipefail
until ping -c1 google.com >/dev/null 2>&1; do :; done until ping -c1 google.com >/dev/null 2>&1; do :; done
gender="$(${pkgs.curl}/bin/curl 'https://rly.cx/api/gender')" summary="$(${pkgs.curl}/bin/curl 'https://riley.lgbt/api/summary')"
pronouns="$(${pkgs.curl}/bin/curl 'https://rly.cx/api/pronouns')" pronouns="$(echo $summary | jq -r '.pronouns')"
gender="$(echo $summary | jq -r '.gender')"
echo -n "Riley: $gender ($pronouns)" echo -n "Riley: $gender ($pronouns)"
''; '';
}; };
@ -100,7 +98,7 @@ in
}; };
}; };
programs.mako = { services.mako = {
enable = true; enable = true;
defaultTimeout = 2000; defaultTimeout = 2000;
}; };

View file

@ -1,40 +1,23 @@
* {
all: unset;
}
* { * {
/* `otf-font-awesome` is required to be installed for icons */ /* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 11px;
} }
window#waybar { window#waybar {
background-color: rgba(43, 48, 59, 0.5); background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff; color: #ffffff;
transition-property: background-color; transition-property: background-color;
transition-duration: .5s; transition-duration: .5s;
} }
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
#workspaces button { #workspaces button {
padding: 0 5px; padding: 0px 10px;
background-color: transparent; background-color: transparent;
color: #ffffff; color: #ffffff;
/* Use box-shadow instead of border so the text isn't offset */ /* Use box-shadow instead of border so the text isn't offset */
@ -59,11 +42,6 @@ window#waybar.chromium {
background-color: #eb4d4b; background-color: #eb4d4b;
} }
#mode {
background-color: #64727D;
border-bottom: 3px solid #ffffff;
}
#clock, #clock,
#battery, #battery,
#cpu, #cpu,
@ -76,32 +54,26 @@ window#waybar.chromium {
#custom-media, #custom-media,
#mode, #mode,
#idle_inhibitor, #idle_inhibitor,
#scratchpad,
#custom-riley-gender, #custom-riley-gender,
#mpd { #mpd {
padding: 0 10px; padding: 5px 10px;
color: #ffffff; color: #ffffff;
} }
#tray * { #mode {
padding: 0 5px; background-color: #64727D;
border-bottom: 3px solid #ffffff;
} }
#custom-riley-gender { #custom-riley-gender {
background-color: #7D9EFF; background-color: #7D9EFF;
} }
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces { .modules-left > widget:first-child > #workspaces {
margin-left: 0; margin-left: 0;
} }
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces { .modules-right > widget:last-child > #workspaces {
margin-right: 0; margin-right: 0;
} }
@ -158,44 +130,17 @@ label:focus {
background-color: #90b1b1; background-color: #90b1b1;
} }
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio { #pulseaudio {
background-color: #f1c40f; background-color: #f1c40f;
color: #000000; color: #000000;
} }
#pulseaudio.muted { #pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45; color: #2a5c45;
} }
#custom-media { #tray * {
background-color: #66cc99; padding: 0 5px;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
} }
#tray { #tray {
@ -210,53 +155,3 @@ label:focus {
-gtk-icon-effect: highlight; -gtk-icon-effect: highlight;
background-color: #eb4d4b; background-color: #eb4d4b;
} }
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}

View file

@ -1,11 +0,0 @@
{ pkgs, ... }:
{
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
ms-vsliveshare.vsliveshare
vscodevim.vim
];
};
}

View file

@ -28,6 +28,8 @@
${builtins.readFile ./p10k.zsh} ${builtins.readFile ./p10k.zsh}
''; '';
}; };
programs.direnv.enableZshIntegration = true; programs.direnv.enableZshIntegration = true;
home.packages = [ pkgs.fzf ];
} }