Compare commits
41 Commits
a1dfeff98b
...
master
Author | SHA1 | Date | |
---|---|---|---|
c543bc13ea | |||
b4d1681b99 | |||
6c32ffbe94 | |||
6787243414 | |||
d350807e8c | |||
f872c8db0c | |||
8c53c66c4d | |||
0f07029660 | |||
8010d771a1 | |||
7f4c41429e | |||
6d21fe4262 | |||
c081f95aaf | |||
452a34c7e8 | |||
15c4616b91 | |||
07274a0364 | |||
3bb8db1349 | |||
65a3dcdc08 | |||
9fe40bfd13 | |||
07943d4f95 | |||
815a79ff41 | |||
32ddceba8f | |||
55ba4125d6 | |||
b9274f546f | |||
fd246d7daf | |||
edae0d2bb0 | |||
1cb23dd0a4 | |||
ab1052193a | |||
6dadb2008c | |||
18f9cc3fa8 | |||
9295ad7010 | |||
e3cf2379ab | |||
f6c3f676b2 | |||
d57017382a | |||
1d7690eab4 | |||
67d68a9946 | |||
9af362b5c8 | |||
a0ae09452f | |||
711859e660 | |||
1c1e496425 | |||
97229a521f | |||
7d8190210b |
197
flake.lock
generated
197
flake.lock
generated
@ -1,21 +1,5 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"alacritty-theme": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1746029512,
|
|
||||||
"narHash": "sha256-3/NrywVhUfw5l8pkZdm6XqFFMcDl9DLB/ss5qF/MzsM=",
|
|
||||||
"owner": "alacritty",
|
|
||||||
"repo": "alacritty-theme",
|
|
||||||
"rev": "2f97742d8d7c65f5b0562d124c1efd5e28294a97",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "alacritty",
|
|
||||||
"repo": "alacritty-theme",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"base16-schemes": {
|
"base16-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -54,11 +38,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727447169,
|
"lastModified": 1749105467,
|
||||||
"narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
|
"narHash": "sha256-hXh76y/wDl15almBcqvjryB50B0BaiXJKk20f314RoE=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
|
"rev": "6bc76b872374845ba9d645a2f012b764fecd765f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -74,11 +58,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745812220,
|
"lastModified": 1752113600,
|
||||||
"narHash": "sha256-hotBG0EJ9VmAHJYF0yhWuTVZpENHvwcJ2SxvIPrXm+g=",
|
"narHash": "sha256-7LYDxKxZgBQ8LZUuolAQ8UkIB+jb4A2UmiR+kzY9CLI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "d0c543d740fad42fe2c035b43c9d41127e073c78",
|
"rev": "79264292b7e3482e5702932949de9cbb69fedf6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -90,11 +74,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -106,11 +90,11 @@
|
|||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -127,11 +111,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1751413152,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -159,21 +143,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1659877975,
|
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_3": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
@ -191,7 +160,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
@ -209,6 +178,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_4": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -216,11 +203,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746369725,
|
"lastModified": 1752202894,
|
||||||
"narHash": "sha256-m3ai7LLFYsymMK0uVywCceWfUhP0k3CALyFOfcJACqE=",
|
"narHash": "sha256-knafgng4gCjZIUMyAEWjxxdols6n/swkYnbWr+oF+1w=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "1a1793f6d940d22c6e49753548c5b6cb7dc5545d",
|
"rev": "fab659b346c0d4252208434c3c4b3983a4b38fec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -258,16 +245,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737371634,
|
"lastModified": 1748294338,
|
||||||
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
|
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
|
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"ref": "v0.0.7",
|
"ref": "v0.0.8",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -340,11 +327,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713543440,
|
"lastModified": 1752054764,
|
||||||
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
|
"narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixgl",
|
"repo": "nixgl",
|
||||||
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
|
"rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -361,11 +348,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746370919,
|
"lastModified": 1751986921,
|
||||||
"narHash": "sha256-GQBxpSecizbDQnJsY0K8KTn4LgRIT24eOQ76Zj2P2Kw=",
|
"narHash": "sha256-lRVaL5ZOzg3OJNcp5RgCwgrXi/gdVgYAs9pGJKSenOc=",
|
||||||
"owner": "doronbehar",
|
"owner": "doronbehar",
|
||||||
"repo": "nix-matlab",
|
"repo": "nix-matlab",
|
||||||
"rev": "c24abc7ff629bdc85522e75da5b0143affd57403",
|
"rev": "2b6e33435a188dc8870e420abf4969d2b1b4ee8b",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -376,11 +363,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746341346,
|
"lastModified": 1752048960,
|
||||||
"narHash": "sha256-WjupK5Xpc+viJlJWiyPHp/dF4aJItp1BPuFsEdv2/fI=",
|
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "0833dc8bbc4ffa9cf9b0cbfccf1c5ec8632fc66e",
|
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -391,11 +378,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702272962,
|
"lastModified": 1743014863,
|
||||||
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
|
"narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
|
"rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -422,11 +409,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746183838,
|
"lastModified": 1751274312,
|
||||||
"narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=",
|
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bf3287dac860542719fe7554e21e686108716879",
|
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -450,11 +437,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746232882,
|
"lastModified": 1751984180,
|
||||||
"narHash": "sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ=",
|
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7a2622e2c0dbad5c4493cb268aba12896e28b008",
|
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -470,14 +457,15 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nuschtosSearch": "nuschtosSearch"
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746360866,
|
"lastModified": 1752158208,
|
||||||
"narHash": "sha256-FYpcHko595nQ+d4KpwTj3o1cJUn912xaIxRb8rntz7I=",
|
"narHash": "sha256-XbXYLUtaB/wHvZYefvaDPbo4eYj27kbtowHfww9bqLw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "f7f2dd042f28d235f7bf16cb31dbaee8f35159ca",
|
"rev": "b728cf43d97814df43f5d9bd9dafac9072ccd9e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -496,11 +484,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745046075,
|
"lastModified": 1749730855,
|
||||||
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
|
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "search",
|
"repo": "search",
|
||||||
"rev": "066afe8643274470f4a294442aadd988356a478f",
|
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -511,7 +499,6 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"alacritty-theme": "alacritty-theme",
|
|
||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
@ -526,7 +513,7 @@
|
|||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"sheet-organizer": "sheet-organizer",
|
"sheet-organizer": "sheet-organizer",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"systems": "systems_5",
|
"systems": "systems_7",
|
||||||
"yazi-flavors": "yazi-flavors"
|
"yazi-flavors": "yazi-flavors"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -559,11 +546,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745310711,
|
"lastModified": 1751606940,
|
||||||
"narHash": "sha256-ePyTpKEJTgX0gvgNQWd7tQYQ3glIkbqcW778RpHlqgA=",
|
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "5e3e92b16d6fdf9923425a8d4df7496b2434f39c",
|
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -633,6 +620,36 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_5": {
|
"systems_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
@ -652,11 +669,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -668,11 +685,11 @@
|
|||||||
"yazi-flavors": {
|
"yazi-flavors": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742023253,
|
"lastModified": 1751970029,
|
||||||
"narHash": "sha256-nhIhCMBqr4VSzesplQRF6Ik55b3Ljae0dN+TYbzQb5s=",
|
"narHash": "sha256-RtunaCs1RUfzjefFLFu5qLRASbyk5RUILWTdavThRkc=",
|
||||||
"owner": "yazi-rs",
|
"owner": "yazi-rs",
|
||||||
"repo": "flavors",
|
"repo": "flavors",
|
||||||
"rev": "68326b4ca4b5b66da3d4a4cce3050e5e950aade5",
|
"rev": "d3fd3a5d774b48b3f88845f4f0ae1b82f106d331",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -28,10 +28,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Various flakes
|
# Various flakes
|
||||||
alacritty-theme = {
|
|
||||||
url = "github:alacritty/alacritty-theme";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
yazi-flavors = {
|
yazi-flavors = {
|
||||||
url = "github:yazi-rs/flavors";
|
url = "github:yazi-rs/flavors";
|
||||||
flake = false;
|
flake = false;
|
||||||
|
@ -6,8 +6,9 @@
|
|||||||
./features/direnv
|
./features/direnv
|
||||||
./features/topgrade
|
./features/topgrade
|
||||||
./features/neovim
|
./features/neovim
|
||||||
./features/kitty
|
./features/ghostty
|
||||||
./features/wezterm
|
./features/wezterm
|
||||||
|
./features/alacritty
|
||||||
./features/yazi
|
./features/yazi
|
||||||
./features/emacs
|
./features/emacs
|
||||||
|
|
||||||
@ -20,7 +21,7 @@
|
|||||||
|
|
||||||
hostName = "aspi";
|
hostName = "aspi";
|
||||||
is-nixos = true;
|
is-nixos = true;
|
||||||
terminal = "kitty";
|
terminal = "alacritty";
|
||||||
|
|
||||||
# ------- ----------
|
# ------- ----------
|
||||||
# | eDP-1 | | HDMI-A-1 |
|
# | eDP-1 | | HDMI-A-1 |
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
import = [
|
|
||||||
"~/.config/alacritty/theme/themes/smoooooth.toml"
|
|
||||||
]
|
|
@ -1,15 +1,12 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.packages = with pkgs; [alacritty];
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
home.file = {
|
settings = {};
|
||||||
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
|
theme = "smoooooth";
|
||||||
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "alacritty") "alacritty";
|
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "alacritty") "alacritty";
|
||||||
|
16
homes/julian/features/ghostty/default.nix
Normal file
16
homes/julian/features/ghostty/default.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.ghostty = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
settings = {
|
||||||
|
theme = "catppuccin-mocha";
|
||||||
|
font-size = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "ghostty") "ghostty";
|
||||||
|
}
|
@ -24,8 +24,10 @@ in {
|
|||||||
};
|
};
|
||||||
cursorTheme = {
|
cursorTheme = {
|
||||||
package = pkgs.apple-cursor;
|
package = pkgs.apple-cursor;
|
||||||
name = "macOS-BigSur";
|
name = "macOS";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
}
|
}
|
||||||
|
@ -40,15 +40,29 @@ in {
|
|||||||
programs.imv.enable = true; # TODO: what is that
|
programs.imv.enable = true; # TODO: what is that
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# hyprpicker # TODO
|
hyprpicker
|
||||||
# hyprcursor # TODO
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
# grimblast
|
|
||||||
frajul.hyprshot-gui
|
frajul.hyprshot-gui
|
||||||
frajul.wl-ocr
|
frajul.wl-ocr
|
||||||
|
|
||||||
wf-recorder
|
wf-recorder
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "toggle-screen-mirroring" (
|
||||||
|
builtins.readFile ./toggle-screen-mirroring.sh
|
||||||
|
))
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "correct-workspace-locations" (
|
||||||
|
lib.concatStringsSep "\n" (
|
||||||
|
builtins.concatLists (
|
||||||
|
map (
|
||||||
|
monitor:
|
||||||
|
map (ws: "hyprctl dispatch moveworkspacetomonitor ${ws} ${monitor.name}") monitor.workspaces
|
||||||
|
)
|
||||||
|
config.monitors
|
||||||
|
)
|
||||||
|
)
|
||||||
|
))
|
||||||
];
|
];
|
||||||
|
|
||||||
services.cliphist = {
|
services.cliphist = {
|
||||||
@ -141,11 +155,17 @@ in {
|
|||||||
settings = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
# Environment variables programs like emacs have access to
|
||||||
|
env = "TERMINAL,${config.terminal}";
|
||||||
|
|
||||||
# Monitors
|
# Monitors
|
||||||
monitor = ",preferred,auto,1";
|
monitor = ",preferred,auto,1";
|
||||||
|
|
||||||
# Autostart
|
# Autostart
|
||||||
exec-once = ["firefox"];
|
exec-once = [
|
||||||
|
(lib.getExe pkgs.firefox)
|
||||||
|
(lib.getExe pkgs.waybar)
|
||||||
|
];
|
||||||
|
|
||||||
# Look and Feel
|
# Look and Feel
|
||||||
general = {
|
general = {
|
||||||
@ -196,6 +216,7 @@ in {
|
|||||||
|
|
||||||
exec = [
|
exec = [
|
||||||
"hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
|
"hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
|
||||||
|
"correct-workspace-locations"
|
||||||
];
|
];
|
||||||
|
|
||||||
misc = {
|
misc = {
|
||||||
@ -263,7 +284,7 @@ in {
|
|||||||
# opening applications
|
# opening applications
|
||||||
"$mod, D, exec, wofi --show drun,run"
|
"$mod, D, exec, wofi --show drun,run"
|
||||||
"$mod, E, exec, pcmanfm"
|
"$mod, E, exec, pcmanfm"
|
||||||
"$mod, Return, exec, kitty"
|
"$mod, Return, exec, ${config.terminal}"
|
||||||
"$mod, B, exec, firefox"
|
"$mod, B, exec, firefox"
|
||||||
"$mod, C, exec, qalculate-gtk"
|
"$mod, C, exec, qalculate-gtk"
|
||||||
|
|
||||||
@ -271,7 +292,9 @@ in {
|
|||||||
"$mod SHIFT, E, exec, wlogout -p layer-shell"
|
"$mod SHIFT, E, exec, wlogout -p layer-shell"
|
||||||
"$mod, Escape, exec, wlogout -p layer-shell"
|
"$mod, Escape, exec, wlogout -p layer-shell"
|
||||||
"$mod SHIFT, R, exec, hyprctl reload"
|
"$mod SHIFT, R, exec, hyprctl reload"
|
||||||
|
"$mod, Print, exec, hyprshot-gui"
|
||||||
", Print, exec, hyprshot-gui"
|
", Print, exec, hyprshot-gui"
|
||||||
|
"$mod, P, exec, toggle-screen-mirroring; correct-workspace-locations"
|
||||||
|
|
||||||
# "$mod SHIFT, E, exec, pkill Hyprland"
|
# "$mod SHIFT, E, exec, pkill Hyprland"
|
||||||
# "$mod, G, togglegroup,"
|
# "$mod, G, togglegroup,"
|
||||||
|
@ -15,14 +15,16 @@ in {
|
|||||||
|
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultTimeout = 5000; # milliseconds, can be overwritten by notification sender
|
settings = {
|
||||||
# backgroundColor = "#${palette.base00}"; TODO fix
|
defaultTimeout = "5000"; # milliseconds, can be overwritten by notification sender
|
||||||
# textColor = "#${palette.base05}";
|
backgroundColor = "#${palette.base00}";
|
||||||
# borderColor = "#${palette.base0D}";
|
textColor = "#${palette.base05}";
|
||||||
# progressColor = "over #${palette.base02}";
|
borderColor = "#${palette.base0D}";
|
||||||
# extraConfig = ''
|
progressColor = "over #${palette.base02}";
|
||||||
# [urgency=high]
|
extraConfig = ''
|
||||||
# border-color=#${palette.base09}
|
[urgency=high]
|
||||||
# '';
|
border-color=#${palette.base09}
|
||||||
|
# '';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
67
homes/julian/features/hyprland/toggle-screen-mirroring.sh
Normal file
67
homes/julian/features/hyprland/toggle-screen-mirroring.sh
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#! /usr/bin/env sh
|
||||||
|
|
||||||
|
# A hyprland script for a laptop-external-monitor setup, toggling between which is in use
|
||||||
|
|
||||||
|
# Launch at startup to make hyprland disable the internal monitor if an external monitor is detected and enabled
|
||||||
|
# Additionally it's called with a keybind to switch between a laptop monitor and an external display
|
||||||
|
# Ideally the conditional monitor behaviour was instead done directly in hyprland.conf, but I'm not sure whether that's possible
|
||||||
|
#
|
||||||
|
# Relevant info:
|
||||||
|
# - hyprctl monitors: identifies currently enabled monitors
|
||||||
|
# - hyprctl monitors all: identifies ALL connected monitors - including those not in use
|
||||||
|
#
|
||||||
|
# Suggested use:
|
||||||
|
# Add this line somewhere after the regular monitor configuration in hyprland.conf:
|
||||||
|
# exec = /path/to/hyprland-monitors-toggle.sh
|
||||||
|
# Add a keybind to run this script on demand:
|
||||||
|
# bind =,SomeKeyHere, exec, /path/to/hyprland-monitors-toggle.sh
|
||||||
|
|
||||||
|
#move_all_workspaces_to_monitor() {
|
||||||
|
# TARGET_MONITOR="$1"
|
||||||
|
|
||||||
|
# hyprctl workspaces | grep ^workspace | cut --delimiter ' ' --fields 3 | xargs -I '{}' hyprctl dispatch moveworkspacetomonitor '{}' "$TARGET_MONITOR"
|
||||||
|
|
||||||
|
# # Previous approach
|
||||||
|
# #hyprctl swapactiveworkspaces $EXTERNAL_MONITOR $INTERNAL_MONITOR
|
||||||
|
#}
|
||||||
|
|
||||||
|
# TODO: Detect these instead of hardcoding them
|
||||||
|
INTERNAL_MONITOR="eDP-1"
|
||||||
|
EXTERNAL_MONITOR="HDMI-A-1"
|
||||||
|
|
||||||
|
# NUM_MONITORS=$(hyprctl monitors all | grep --count Monitor)
|
||||||
|
# NUM_MONITORS_ACTIVE=$(hyprctl monitors | grep --count Monitor)
|
||||||
|
|
||||||
|
# Make sure all
|
||||||
|
# if [ "$NUM_MONITORS_ACTIVE" -eq 1 ]; then
|
||||||
|
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||||
|
# exit
|
||||||
|
# fi
|
||||||
|
|
||||||
|
MIRROR_SETTING=$(hyprctl monitors all -j | jq -r '.[] | select(.name == "HDMI-A-1") | .mirrorOf')
|
||||||
|
|
||||||
|
# # For dynamically toggling which monitor is active later via a keybind
|
||||||
|
# if [ "$NUM_MONITORS" -gt 1 ]; then # Handling multiple monitors
|
||||||
|
# if hyprctl monitors | cut --delimiter ' ' --fields 2 | grep --quiet ^$EXTERNAL_MONITOR; then
|
||||||
|
# hyprctl keyword monitor $INTERNAL_MONITOR,preferred,0x0,1
|
||||||
|
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||||
|
# hyprctl keyword monitor "$EXTERNAL_MONITOR, disable"
|
||||||
|
# else
|
||||||
|
# hyprctl keyword monitor $EXTERNAL_MONITOR,preferred,0x0,1
|
||||||
|
# move_all_workspaces_to_monitor $EXTERNAL_MONITOR
|
||||||
|
# hyprctl keyword monitor "$INTERNAL_MONITOR, disable"
|
||||||
|
# fi
|
||||||
|
# else # If the external monitor is disconnected without running this script first, it might become the case that no monitor is on - therefore turn on the laptop monitor!
|
||||||
|
# hyprctl keyword monitor $INTERNAL_MONITOR,preferred,0x0,1
|
||||||
|
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||||
|
# fi
|
||||||
|
|
||||||
|
echo setting:
|
||||||
|
echo $MIRROR_SETTING
|
||||||
|
if [ "$MIRROR_SETTING" = "none" ]; then
|
||||||
|
echo "mirroring..."
|
||||||
|
hyprctl keyword monitor "$EXTERNAL_MONITOR, preferred, auto, 1, mirror, $INTERNAL_MONITOR"
|
||||||
|
else
|
||||||
|
hyprctl keyword monitor "$EXTERNAL_MONITOR, disable" # shortly disable monitor so waybar recognizes the new monitor again # TODO: find better solution
|
||||||
|
hyprctl keyword monitor "$EXTERNAL_MONITOR, preferred, auto, 1"
|
||||||
|
fi
|
@ -12,7 +12,14 @@
|
|||||||
|
|
||||||
"modules-center": [],
|
"modules-center": [],
|
||||||
|
|
||||||
"modules-right": ["idle_inhibitor", "disk", "cpu", "memory", "pulseaudio", "battery", "clock", "tray"],
|
"modules-right": ["idle_inhibitor", "custom/nixos-update", "disk", "cpu", "memory", "pulseaudio", "battery", "clock", "tray"],
|
||||||
|
|
||||||
|
"custom/nixos-update": {
|
||||||
|
"exec": "frajul-auto-upgrade-status",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 2,
|
||||||
|
"on-click-right": "frajul-auto-upgrade-toggle"
|
||||||
|
},
|
||||||
|
|
||||||
"hyprland/workspaces": {
|
"hyprland/workspaces": {
|
||||||
"on-scroll-up": "hyprctl dispatch workspace m+1",
|
"on-scroll-up": "hyprctl dispatch workspace m+1",
|
||||||
@ -35,6 +42,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"idle_inhibitor": {
|
"idle_inhibitor": {
|
||||||
|
"start-activated": true,
|
||||||
"format": "{icon}",
|
"format": "{icon}",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"activated": "",
|
"activated": "",
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
in {
|
in {
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = true;
|
# systemd.enable = true;
|
||||||
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
|
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -142,8 +142,8 @@ bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
|
|||||||
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
||||||
|
|
||||||
# Monitor config
|
# Monitor config
|
||||||
set $monitor_left "DVI-D-0"
|
set $monitor_left "DVI-D-1"
|
||||||
set $monitor_right "DVI-D-1"
|
set $monitor_right "DVI-D-2"
|
||||||
|
|
||||||
workspace $ws1 output $monitor_left
|
workspace $ws1 output $monitor_left
|
||||||
workspace $ws2 output $monitor_left
|
workspace $ws2 output $monitor_left
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
start_if_not_running()
|
|
||||||
{
|
|
||||||
program=$1
|
|
||||||
pidof -sq $program
|
|
||||||
if [ "$?" -eq "1" ]; then
|
|
||||||
start_program $1
|
|
||||||
else
|
|
||||||
echo "$program is already running"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start_program()
|
|
||||||
{
|
|
||||||
program=$1
|
|
||||||
echo "Starting $program..."
|
|
||||||
$program & > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-messaging.json'
|
|
||||||
start_program nheko
|
|
||||||
sleep 0.1
|
|
||||||
start_program telegram-desktop
|
|
||||||
sleep 0.1
|
|
||||||
start_program thunderbird
|
|
||||||
sleep 0.1
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
HDMI_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"
|
|
||||||
LAPTOP_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"
|
|
||||||
|
|
||||||
HDMI_ICON=$(pactl info | grep -q $HDMI_SINK && echo "checkbox")
|
|
||||||
LAPTOP_ICON=$(pactl info | grep -q $LAPTOP_SINK && echo "checkbox")
|
|
||||||
|
|
||||||
HDMI_VOLUME=$(pactl get-sink-volume $HDMI_SINK | head -n 1 | awk '{print $5}')
|
|
||||||
LAPTOP_VOLUME=$(pactl get-sink-volume $LAPTOP_SINK | head -n 1 | awk '{print $5}')
|
|
||||||
|
|
||||||
read -r -d '' CONF <<EOF
|
|
||||||
Open Pavucontrol,pavucontrol,pavucontrol
|
|
||||||
|
|
||||||
^sep()
|
|
||||||
HDMI - $HDMI_VOLUME,pactl set-default-sink $HDMI_SINK,$HDMI_ICON
|
|
||||||
Laptop - $LAPTOP_VOLUME,pactl set-default-sink $LAPTOP_SINK,$LAPTOP_ICON
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "$CONF" | jgmenu --simple
|
|
@ -151,6 +151,7 @@
|
|||||||
pyright.enable = true;
|
pyright.enable = true;
|
||||||
dockerls.enable = true;
|
dockerls.enable = true;
|
||||||
lua_ls.enable = true;
|
lua_ls.enable = true;
|
||||||
|
clangd.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
FLAKE = "/home/julian/.dotfiles";
|
NH_FLAKE = "/home/julian/.dotfiles";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
# geogebra
|
# geogebra
|
||||||
cheese
|
cheese
|
||||||
handbrake
|
handbrake
|
||||||
kitty # Terminal
|
# kitty # Terminal, already available as feature
|
||||||
libnotify
|
libnotify
|
||||||
libreoffice
|
libreoffice
|
||||||
mate.engrampa
|
mate.engrampa
|
||||||
|
@ -29,6 +29,10 @@
|
|||||||
standalone
|
standalone
|
||||||
amsmath
|
amsmath
|
||||||
preview
|
preview
|
||||||
|
# needed for org mode export
|
||||||
|
wrapfig
|
||||||
|
capt-of
|
||||||
|
biblatex
|
||||||
;
|
;
|
||||||
})
|
})
|
||||||
matlab # Using nix-matlab overlay defined in flake
|
matlab # Using nix-matlab overlay defined in flake
|
||||||
@ -58,6 +62,7 @@
|
|||||||
|
|
||||||
## My scripts
|
## My scripts
|
||||||
frajul.deploy-to-pianopi
|
frajul.deploy-to-pianopi
|
||||||
|
frajul.rtklib
|
||||||
|
|
||||||
(pkgs.writeShellScriptBin "matlab-rsp" ''
|
(pkgs.writeShellScriptBin "matlab-rsp" ''
|
||||||
matlab -desktop -sd "/home/julian/git/uwa-channel-model" -softwareopengl
|
matlab -desktop -sd "/home/julian/git/uwa-channel-model" -softwareopengl
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
programs.yazi.enable = true;
|
programs.yazi.enable = true;
|
||||||
programs.yazi.enableFishIntegration = true;
|
programs.yazi.enableFishIntegration = true;
|
||||||
programs.yazi.settings.manager = {
|
programs.yazi.settings.manager = {
|
||||||
sort_by = "modified";
|
sort_by = "mtime";
|
||||||
sort_reverse = true;
|
sort_reverse = true;
|
||||||
show_hidden = true;
|
show_hidden = true;
|
||||||
};
|
};
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
"flakes"
|
"flakes"
|
||||||
"ca-derivations"
|
"ca-derivations"
|
||||||
];
|
];
|
||||||
# warn-dirty = false; # TODO: do I want it? also for systems
|
warn-dirty = false; # TODO: do I want it? also for systems
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
./features/direnv
|
./features/direnv
|
||||||
./features/topgrade
|
./features/topgrade
|
||||||
./features/neovim
|
./features/neovim
|
||||||
./features/kitty
|
./features/ghostty
|
||||||
./features/wezterm
|
./features/wezterm
|
||||||
./features/yazi
|
./features/yazi
|
||||||
./features/emacs
|
./features/emacs
|
||||||
|
|
||||||
./features/hyprland
|
# ./features/hyprland
|
||||||
# ./features/i3
|
./features/i3
|
||||||
|
|
||||||
./features/suites/cli
|
./features/suites/cli
|
||||||
./features/suites/desktop
|
./features/suites/desktop
|
||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
hostName = "kardorf";
|
hostName = "kardorf";
|
||||||
is-nixos = true;
|
is-nixos = true;
|
||||||
terminal = "kitty";
|
terminal = "ghostty";
|
||||||
|
|
||||||
# --------- ---------
|
# --------- ---------
|
||||||
# | DVI-D-1 | | DVI-D-2 |
|
# | DVI-D-1 | | DVI-D-2 |
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
is-nixos = false;
|
is-nixos = false;
|
||||||
# terminal = "kitty";
|
# terminal = "kitty";
|
||||||
|
|
||||||
|
home.sessionPath = ["/snap/bin"];
|
||||||
|
|
||||||
home.packages =
|
home.packages =
|
||||||
lib.lists.concatMap (packages-list-file: import packages-list-file {inherit pkgs;})
|
lib.lists.concatMap (packages-list-file: import packages-list-file {inherit pkgs;})
|
||||||
[
|
[
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
../common/global
|
../common/global
|
||||||
../common/users/julian
|
../common/users/julian
|
||||||
|
../common/optional/binarycaches.nix
|
||||||
|
|
||||||
../common/optional/remote-builder.nix
|
../common/optional/remote-builder.nix
|
||||||
../common/optional/boot-efi.nix
|
../common/optional/boot-efi.nix
|
||||||
@ -31,6 +32,10 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
overrideSettings = false;
|
overrideSettings = false;
|
||||||
};
|
};
|
||||||
|
frajulAutoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
flakePath = "/home/julian/.dotfiles";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
extraGroups = [
|
extraGroups = [
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"wheel"
|
"wheel"
|
||||||
|
"docker"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -30,14 +31,27 @@
|
|||||||
substituters = [
|
substituters = [
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org/"
|
"https://cache.nixos.org/"
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
];
|
];
|
||||||
trusted-public-keys = ["nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
|
|
||||||
|
|
||||||
trusted-users = ["nix"];
|
trusted-users = ["nix"];
|
||||||
max-jobs = "auto";
|
max-jobs = "auto";
|
||||||
cores = 0;
|
cores = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
system.autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
flake = "git+https://gitlab.julian-mutter.de/julian/dotfiles";
|
||||||
|
flags = [
|
||||||
|
"--recreate-lock-file" # update lock file
|
||||||
|
];
|
||||||
|
dates = "02:13";
|
||||||
|
};
|
||||||
|
|
||||||
# optimize store by hardlinking store files
|
# optimize store by hardlinking store files
|
||||||
nix.optimise.automatic = true;
|
nix.optimise.automatic = true;
|
||||||
nix.optimise.dates = ["03:15"];
|
nix.optimise.dates = ["03:15"];
|
||||||
@ -241,4 +255,17 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.gitlab-runner.enable = true;
|
||||||
|
# runner for everything else
|
||||||
|
#
|
||||||
|
sops.secrets."gitlab_runner_token".sopsFile = ./secrets.yaml;
|
||||||
|
services.gitlab-runner.services.default = {
|
||||||
|
# File should contain at least these two variables:
|
||||||
|
authenticationTokenConfigFile = config.sops.secrets."gitlab_runner_token".path;
|
||||||
|
dockerImage = "alpine:latest";
|
||||||
|
dockerVolumes = [
|
||||||
|
"/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
16
hosts/common/global/auto-upgrade.nix
Normal file
16
hosts/common/global/auto-upgrade.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
system.hydraAutoUpgrade = {
|
||||||
|
# Only enable if not dirty
|
||||||
|
enable = inputs.self ? rev;
|
||||||
|
dates = "*:0/10"; # Every 10 minutes
|
||||||
|
instance = "http://hydra.julian-mutter.de";
|
||||||
|
project = "dotfiles";
|
||||||
|
jobset = "main";
|
||||||
|
job = "hosts.${config.networking.hostName}";
|
||||||
|
oldFlakeRef = "self";
|
||||||
|
};
|
||||||
|
}
|
@ -2,6 +2,7 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
outputs,
|
outputs,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports =
|
imports =
|
||||||
@ -22,7 +23,12 @@
|
|||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
# Networking
|
# Networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs; [
|
||||||
|
networkmanager-openconnect
|
||||||
|
];
|
||||||
|
};
|
||||||
services.resolved.enable = true;
|
services.resolved.enable = true;
|
||||||
|
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
@ -26,26 +26,6 @@
|
|||||||
];
|
];
|
||||||
# warn-dirty = false;
|
# warn-dirty = false;
|
||||||
|
|
||||||
# Setup binary caches
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://hyprland.cachix.org"
|
|
||||||
"http://binarycache.julian-mutter.de"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-users = [
|
|
||||||
"root"
|
|
||||||
"@wheel"
|
|
||||||
]; # needed for devenv to add custom caches
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Make programs like nextcloud client access saved passwords
|
# Make programs like nextcloud client access saved passwords
|
||||||
programs.seahorse.enable = true;
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
programs.seahorse.enable = true;
|
||||||
|
programs.ssh.askPassword = lib.mkForce "${pkgs.seahorse}/libexec/seahorse/ssh-askpass"; # Solve conflicting definition in seahorse and plasma6
|
||||||
|
|
||||||
# Make authentication work for e.g. gparted
|
# Make authentication work for e.g. gparted
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
|
25
hosts/common/optional/binarycaches.nix
Normal file
25
hosts/common/optional/binarycaches.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
outputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# Setup binary caches
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
|
"http://binarycache.julian-mutter.de"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
|
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-users = [
|
||||||
|
"root"
|
||||||
|
"@wheel"
|
||||||
|
]; # needed for devenv to add custom caches
|
||||||
|
};
|
||||||
|
}
|
@ -13,7 +13,7 @@ in {
|
|||||||
PasswordAuthentication = false;
|
PasswordAuthentication = false;
|
||||||
PermitRootLogin = "no";
|
PermitRootLogin = "no";
|
||||||
|
|
||||||
# TODO: what does this d
|
# TODO: what does this do
|
||||||
# Let WAYLAND_DISPLAY be forwarded
|
# Let WAYLAND_DISPLAY be forwarded
|
||||||
AcceptEnv = "WAYLAND_DISPLAY";
|
AcceptEnv = "WAYLAND_DISPLAY";
|
||||||
X11Forwarding = true;
|
X11Forwarding = true;
|
||||||
@ -34,7 +34,7 @@ in {
|
|||||||
# publicKeyFile = ../../${hostname}/ssh_host_ed25519_key.pub;
|
# publicKeyFile = ../../${hostname}/ssh_host_ed25519_key.pub;
|
||||||
# extraHostNames =
|
# extraHostNames =
|
||||||
# [
|
# [
|
||||||
# "${hostname}.m7.rs"
|
# # "${hostname}.m7.rs"
|
||||||
# ]
|
# ]
|
||||||
# ++
|
# ++
|
||||||
# # Alias for localhost if it's the same host
|
# # Alias for localhost if it's the same host
|
||||||
|
@ -14,29 +14,38 @@ sops:
|
|||||||
- recipient: age1ee5udznhadk6m7jtglu4709rep080yjyd2ukzdl8jma4mm92y3psv0slpg
|
- recipient: age1ee5udznhadk6m7jtglu4709rep080yjyd2ukzdl8jma4mm92y3psv0slpg
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTY3lFZlIyRnZOMzNQdnJ2
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxV2IzcEZ6eGYxbXAvaEta
|
||||||
Z0xQQnY1eHFYekVMV3M0UE5hK2xkbStveFRnCncwVVduSEFFQkpwME5XQzF2Z0tK
|
c3RLbmZubnVEL1EwSlNNY3ZNbkVSUXN5ZDBZClRTYWwzbHhDK1VsMzVVL0VMVzZF
|
||||||
MnhFQ3ZZMk51aGJHUmJFbHA4d1dmdkEKLS0tIHBkVEhaZEY5ZGtYcXRkZzREa0xR
|
SEQ0ZHVMdytrY0xXUEppQkpNZEZ3VFkKLS0tIG95ZkJLWTZBWWpIOEQ4bHpBNWEx
|
||||||
eUNsNjE2VS9MTjNtYWluUjJhYXVuTmcKq175s9vx1tPVS+voO+HSkyaT+GbjC/Z+
|
QXVpMTNSNzU1dTBPYjlsc1BvNHZ3dDgKMHrT9DCC5W6UwC1Mfq6YCwkvZtDs3I7j
|
||||||
PyKVKyqFAJCRcNP2byaFgAHjXtDFZdipt/0lbw+4UfHrZGpn+9B59Q==
|
vKlnanFp8hMMyYONRVlkvh+vOGQdbgXco4Z5nr02LQDu6Rwm4jSp9g==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
|
- recipient: age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByRmxCNUE4MTdZNWlOcmxX
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKTnpqclVmVHR3M1ZvMDZ0
|
||||||
RmhDS2NpQ0hoWG83SDlIeVhXaFdxNE4yTUVzCkRxS3M5aU5mdWZkYnpNeC9YR3BX
|
eEtrbnhpTW5uZlhOYWFxbktxcTJ3bXZISkhzClpud2tNVzUvT2N2SkRadWk5aVpE
|
||||||
N1NEdzlyTm9YT3NQSnowWTZUc1FvYWsKLS0tICs2OVo2djNjUW0yOG41ZTJQeFFB
|
S2VkTFlIVUhFclA0WEh5cEp0Qjg3ejgKLS0tIDNXY0lpKys4Q3NBRFcya2RoSG1F
|
||||||
djFENU5USG1QSnRVdlErN1h5bXJhYzQKPDvAHIMR/vT47zbeK3NsS+jSl4HSFRIA
|
YW0raHlNekdWT3p0WHpGMk9xMmgzWFUKCue4GvgmH3nJBa7ny7rqft5MuSWHqAsP
|
||||||
NbSKwTbEGn963metTh4HJItdWBAOyiCc3l1Ye49ms9JhYM8n4wHLRQ==
|
5HnaAudL+rh2j1swm635QUrf9UnpUznE5NSOGrQDmA6RCBypNM4rsw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
|
- recipient: age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVeHJ3NmMzaTh0Zm13Vm1r
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBESlZOeHY0T01ra0gwMS8z
|
||||||
RmNtMi9FYmJGUmxXeEppM3Fnazl1NTl3ajJjCjFrbXM4WGdOV05qckhkbjlSODZR
|
R3c1eW45WVkyeTBuRlFMRngrb2NFL1hkcmhRCitwZ3lweXM0di9EdEdQZmF4ZUZr
|
||||||
a0VuakllVTdOc2Uxd3BqRmtsN3NJdHcKLS0tIHRRMXFEcWNZOFE4dFJycGdGTzdP
|
M1hqNkM3Q1Jrb09Kb2M0ZkhTcFZPYkkKLS0tIHpCTEFCV0JlRzQwK3hndDJ4aHVC
|
||||||
WittUTFFNU5kUWdGcncwdWRQSi9STTgK3GuwolsItCEt3Dh5Lycb8TjfaHTuV/JB
|
S1o0QVlXSVl0dmlpWUQ3ZXdqUU5maTgKY4UJPx37CU5OUgkqYWlz9+0rA+dQkrH9
|
||||||
P2KSuVsbgjYuCJSknYmSZ+9gdTYC8cVqDnKo7HYFNrCDHZ0P4QwGSg==
|
+/kTT/2qZ2Op67WKtlas7arC7BjU8uygM208q+nr48Lic5n1fMtnXA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age15lxw97z03q40xrdscnxqqugh5ky5aqrerg2t2rphkcqm6rnllurq8v98q5
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvYkdwSy9vc0lEWXJIdWRw
|
||||||
|
VmJ2NStaZDVxaG1LNU1NQlErdElPdkQvY3pjCkJyL1BRR2w1dmpqYnk5Tys3eHpX
|
||||||
|
c0FJdzA1bU5GWWhrUWhOK1Jqa2lTaU0KLS0tIDMzMEQwL3I0ckVyYWFubU9VNlAr
|
||||||
|
NlBud3VHczNnMm5wOGhHdEoxTG5CNDgK4s7cFGvUCeztjjIAWtMW7TUqFP+YEQIg
|
||||||
|
So5A7DGxVsUcqarTUPazpIBBlO4n9zj79Qe+eQd6ti0EZG6sYX6+2Q==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-04-23T07:00:17Z"
|
lastmodified: "2025-04-23T07:00:17Z"
|
||||||
mac: ENC[AES256_GCM,data:JgaTIRbzD0hs2o86xUlQrPN2cPXvsuTH/zKG5xbQIDaYcEvD/mkuVa3hfnYKrA91kWg2Y1DgEi9583+o6UCl/+ldY4ptu+xpnYfyQFdhM4rB+KoP/pDt8vQKQ3zAX8fpAkugCgTTbuvm3TfQ1nt98V8boyhCn4JHNC1T0j7ZtZI=,iv:G3YJOLeDWDKuANo2mxS2JAdrRaonD87CU9BpCZZrlRs=,tag:mcKIdP5cSQUwNL2tcv/o6g==,type:str]
|
mac: ENC[AES256_GCM,data:JgaTIRbzD0hs2o86xUlQrPN2cPXvsuTH/zKG5xbQIDaYcEvD/mkuVa3hfnYKrA91kWg2Y1DgEi9583+o6UCl/+ldY4ptu+xpnYfyQFdhM4rB+KoP/pDt8vQKQ3zAX8fpAkugCgTTbuvm3TfQ1nt98V8boyhCn4JHNC1T0j7ZtZI=,iv:G3YJOLeDWDKuANo2mxS2JAdrRaonD87CU9BpCZZrlRs=,tag:mcKIdP5cSQUwNL2tcv/o6g==,type:str]
|
||||||
|
@ -23,6 +23,7 @@ in {
|
|||||||
"docker"
|
"docker"
|
||||||
"git"
|
"git"
|
||||||
"gamemode"
|
"gamemode"
|
||||||
|
"dialout"
|
||||||
];
|
];
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = lib.splitString "\n" (
|
openssh.authorizedKeys.keys = lib.splitString "\n" (
|
||||||
|
@ -5,13 +5,18 @@
|
|||||||
../common/global
|
../common/global
|
||||||
../common/users/julian
|
../common/users/julian
|
||||||
../common/users/wolfi
|
../common/users/wolfi
|
||||||
|
../common/optional/binarycaches.nix
|
||||||
|
|
||||||
|
../common/optional/xserver.nix
|
||||||
../common/optional/remote-builder.nix
|
../common/optional/remote-builder.nix
|
||||||
../common/optional/boot-efi.nix
|
../common/optional/boot-efi.nix
|
||||||
|
|
||||||
../common/optional/greetd.nix
|
# ../common/optional/greetd.nix
|
||||||
# ../common/optional/gdm.nix
|
|
||||||
# ../common/optional/i3.nix
|
../common/optional/gdm.nix
|
||||||
|
../common/optional/i3.nix
|
||||||
|
|
||||||
|
../common/optional/openssh.nix
|
||||||
|
|
||||||
../common/optional/authentication.nix
|
../common/optional/authentication.nix
|
||||||
../common/optional/pcmanfm.nix
|
../common/optional/pcmanfm.nix
|
||||||
@ -29,8 +34,7 @@
|
|||||||
|
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
# services.xserver.desktopManager.xfce.enable = true;
|
services.desktopManager.plasma6.enable = true;
|
||||||
services.xserver.desktopManager.plasma6.enable = true;
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
@ -80,9 +80,10 @@
|
|||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
# Use latest version of driver
|
||||||
# hardware.nvidia.modesetting.enable = true; # produces errors, display manager fails to start
|
# hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
||||||
|
hardware.nvidia.modesetting.enable = true; # produces errors, display manager fails to start
|
||||||
|
|
||||||
# hardware.nvidia.nvidiaSettings = true;
|
hardware.nvidia.nvidiaSettings = true;
|
||||||
hardware.nvidia.open = false;
|
hardware.nvidia.open = false;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
../common/global
|
../common/global
|
||||||
../common/users/julian
|
../common/users/julian
|
||||||
|
../common/optional/binarycaches.nix
|
||||||
|
|
||||||
../common/optional/pipewire.nix
|
../common/optional/pipewire.nix
|
||||||
../common/optional/remote-builder.nix
|
../common/optional/remote-builder.nix
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
{
|
{lib, ...}: {
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.terminal = lib.mkOption {
|
options.terminal = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
example = "alacritty";
|
example = "alacritty";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
# hydra-auto-upgrade = import ./hydra-auto-upgrade.nix;
|
# hydra-auto-upgrade = import ./hydra-auto-upgrade.nix;
|
||||||
syncthing = import ./syncthing.nix;
|
syncthing = import ./syncthing.nix;
|
||||||
|
frajulAutoUpgrade = import ./frajul-auto-upgrade.nix;
|
||||||
}
|
}
|
||||||
|
154
modules/nixos/frajul-auto-upgrade.nix
Normal file
154
modules/nixos/frajul-auto-upgrade.nix
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.modules.frajulAutoUpgrade;
|
||||||
|
|
||||||
|
flagFile = "/var/lib/frajul-auto-upgrade/flag";
|
||||||
|
lockFile = "/var/lib/frajul-auto-upgrade/lock";
|
||||||
|
lastStatusFile = "/var/lib/frajul-auto-upgrade/last-status";
|
||||||
|
lastAttemptFile = "/var/lib/frajul-auto-upgrade/last-attempt";
|
||||||
|
in {
|
||||||
|
options.modules.frajulAutoUpgrade = {
|
||||||
|
enable = lib.mkEnableOption "NixOS auto-upgrade on boot";
|
||||||
|
|
||||||
|
user = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "root";
|
||||||
|
description = "User account to run the upgrade service as.";
|
||||||
|
};
|
||||||
|
|
||||||
|
flakePath = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
description = "The path to your flake";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
# Ensure the flag directory exists
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /var/lib/frajul-auto-upgrade 0755 root root -"
|
||||||
|
"f ${flagFile} 0766 root root -"
|
||||||
|
"f ${lastStatusFile} 0644 root root -"
|
||||||
|
"f ${lastAttemptFile} 0644 root root -"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.writeShellScriptBin "frajul-auto-upgrade" ''
|
||||||
|
#!/bin/sh
|
||||||
|
FLAG_FILE="${flagFile}"
|
||||||
|
LOCK_FILE="${lockFile}"
|
||||||
|
LAST_STATUS_FILE="${lastStatusFile}"
|
||||||
|
LAST_ATTEMPT_FILE="${lastAttemptFile}"
|
||||||
|
|
||||||
|
TODAY=$(date +%Y-%m-%d)
|
||||||
|
|
||||||
|
if [ ! -f "$FLAG_FILE" ] || [ "$(cat "$FLAG_FILE")" != "enabled" ]; then
|
||||||
|
echo "Auto upgrade disabled. Exiting."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if already attempted today
|
||||||
|
if [ -f "$LAST_ATTEMPT_FILE" ]; then
|
||||||
|
LAST_ATTEMPT_DATE=$(cut -d' ' -f1 "$LAST_ATTEMPT_FILE")
|
||||||
|
if [ "$LAST_ATTEMPT_DATE" = "$TODAY" ]; then
|
||||||
|
echo "Update already attempted today. Skipping."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$LOCK_FILE" ]; then
|
||||||
|
echo "Already running"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $$ > "$LOCK_FILE"
|
||||||
|
trap 'rm -f "$LOCK_FILE"' EXIT
|
||||||
|
|
||||||
|
if nix flake update --flake "${cfg.flakePath}" && nixos-rebuild switch --flake "${cfg.flakePath}"; then
|
||||||
|
echo "success" > "$LAST_STATUS_FILE"
|
||||||
|
else
|
||||||
|
echo "failure" > "$LAST_STATUS_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Write full timestamp
|
||||||
|
date '+%Y-%m-%d %H:%M:%S' > "$LAST_ATTEMPT_FILE"
|
||||||
|
'')
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "frajul-auto-upgrade-status" ''
|
||||||
|
#!/bin/sh
|
||||||
|
FLAG_FILE="${flagFile}"
|
||||||
|
LOCK_FILE="${lockFile}"
|
||||||
|
LAST_STATUS_FILE="${lastStatusFile}"
|
||||||
|
LAST_ATTEMPT_FILE="${lastAttemptFile}"
|
||||||
|
|
||||||
|
if [ -f "$LOCK_FILE" ]; then
|
||||||
|
ICON=" "
|
||||||
|
STATUS="running"
|
||||||
|
elif [ -f "$FLAG_FILE" ] && [ "$(cat "$FLAG_FILE")" == "enabled" ]; then
|
||||||
|
LAST_STATUS="unknown"
|
||||||
|
LAST_ATTEMPT="never"
|
||||||
|
if [ -f "$LAST_STATUS_FILE" ]; then
|
||||||
|
LAST_STATUS=$(cat "$LAST_STATUS_FILE")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$LAST_ATTEMPT_FILE" ]; then
|
||||||
|
LAST_ATTEMPT=$(cat "$LAST_ATTEMPT_FILE")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$LAST_STATUS" = "success" ]; then
|
||||||
|
ICON=""
|
||||||
|
elif [ "$LAST_STATUS" = "failure" ]; then
|
||||||
|
ICON=""
|
||||||
|
else
|
||||||
|
ICON=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
STATUS="enabled (last attempt: $LAST_ATTEMPT, $LAST_STATUS)"
|
||||||
|
else
|
||||||
|
ICON=" "
|
||||||
|
STATUS="disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "{\"text\": \"$ICON\", \"tooltip\": \"NixOS Auto Update: $STATUS\"}"
|
||||||
|
'')
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "frajul-auto-upgrade-toggle" ''
|
||||||
|
#!/bin/sh
|
||||||
|
FLAG_FILE="${flagFile}"
|
||||||
|
LOCK_FILE="${lockFile}"
|
||||||
|
|
||||||
|
if [ ! -f "$FLAG_FILE" ] || [ "$(cat "$FLAG_FILE")" != "enabled" ]; then
|
||||||
|
echo "enabled" > "$FLAG_FILE"
|
||||||
|
else
|
||||||
|
echo "disabled" > "$FLAG_FILE"
|
||||||
|
if [ -f "$LOCK_FILE" ]; then
|
||||||
|
kill -TERM "$(cat "$LOCK_FILE")"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.services.frajul-auto-upgrade = {
|
||||||
|
description = "Frajul's NixOS Auto Upgrade";
|
||||||
|
after = ["network-online.target"];
|
||||||
|
restartIfChanged = false; # Do not start service on nixos switch
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
User = cfg.user;
|
||||||
|
ExecStart = "/run/current-system/sw/bin/frajul-auto-upgrade";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.timers.frajul-auto-upgrade = {
|
||||||
|
description = "Run Frajul's NixOS Auto Upgrade at boot";
|
||||||
|
wantedBy = ["timers.target"];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "1min";
|
||||||
|
AccuracySec = "10s";
|
||||||
|
Unit = "frajul-auto-upgrade.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
129
modules/nixos/hydra-auto-upgrade.nix
Normal file
129
modules/nixos/hydra-auto-upgrade.nix
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.system.hydraAutoUpgrade;
|
||||||
|
in {
|
||||||
|
# Taken from Misterio
|
||||||
|
options = {
|
||||||
|
system.hydraAutoUpgrade = {
|
||||||
|
enable = lib.mkEnableOption "periodic hydra-based auto upgrade";
|
||||||
|
operation = lib.mkOption {
|
||||||
|
type = lib.types.enum ["switch" "boot"];
|
||||||
|
default = "switch";
|
||||||
|
};
|
||||||
|
dates = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "04:40";
|
||||||
|
example = "daily";
|
||||||
|
};
|
||||||
|
|
||||||
|
instance = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
example = "http://hydra.julian-mutter.de";
|
||||||
|
};
|
||||||
|
project = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
example = "dotfiles";
|
||||||
|
};
|
||||||
|
jobset = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
example = "main";
|
||||||
|
};
|
||||||
|
job = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = config.networking.hostName;
|
||||||
|
};
|
||||||
|
|
||||||
|
oldFlakeRef = lib.mkOption {
|
||||||
|
type = lib.types.nullOr lib.types.str;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Current system's flake reference
|
||||||
|
|
||||||
|
If non-null, the service will only upgrade if the new config is newer
|
||||||
|
than this one's.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = cfg.enable -> !config.system.autoUpgrade.enable;
|
||||||
|
message = ''
|
||||||
|
hydraAutoUpgrade and autoUpgrade are mutually exclusive.
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
systemd.services.nixos-upgrade = {
|
||||||
|
description = "NixOS Upgrade";
|
||||||
|
restartIfChanged = false;
|
||||||
|
unitConfig.X-StopOnRemoval = false;
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
|
||||||
|
path = with pkgs; [
|
||||||
|
config.nix.package.out
|
||||||
|
config.programs.ssh.package
|
||||||
|
coreutils
|
||||||
|
curl
|
||||||
|
gitMinimal
|
||||||
|
gnutar
|
||||||
|
gzip
|
||||||
|
jq
|
||||||
|
nvd
|
||||||
|
];
|
||||||
|
|
||||||
|
script = let
|
||||||
|
buildUrl = "${cfg.instance}/job/${cfg.project}/${cfg.jobset}/${cfg.job}/latest";
|
||||||
|
in
|
||||||
|
(lib.optionalString (cfg.oldFlakeRef != null) ''
|
||||||
|
eval="$(curl -sLH 'accept: application/json' "${buildUrl}" | jq -r '.jobsetevals[0]')"
|
||||||
|
flake="$(curl -sLH 'accept: application/json' "${cfg.instance}/eval/$eval" | jq -r '.flake')"
|
||||||
|
echo "New flake: $flake" >&2
|
||||||
|
new="$(nix flake metadata "$flake" --json | jq -r '.lastModified')"
|
||||||
|
echo "Modified at: $(date -d @$new)" >&2
|
||||||
|
|
||||||
|
echo "Current flake: ${cfg.oldFlakeRef}" >&2
|
||||||
|
current="$(nix flake metadata "${cfg.oldFlakeRef}" --json | jq -r '.lastModified')"
|
||||||
|
echo "Modified at: $(date -d @$current)" >&2
|
||||||
|
|
||||||
|
if [ "$new" -le "$current" ]; then
|
||||||
|
echo "Skipping upgrade, not newer" >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
'')
|
||||||
|
+ ''
|
||||||
|
profile="/nix/var/nix/profiles/system"
|
||||||
|
path="$(curl -sLH 'accept: application/json' ${buildUrl} | jq -r '.buildoutputs.out.path')"
|
||||||
|
|
||||||
|
if [ "$(readlink -f "$profile")" = "$path" ]; then
|
||||||
|
echo "Already up to date" >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Building $path" >&2
|
||||||
|
nix build --no-link "$path"
|
||||||
|
|
||||||
|
echo "Comparing changes" >&2
|
||||||
|
nvd --color=always diff "$profile" "$path"
|
||||||
|
|
||||||
|
echo "Activating configuration" >&2
|
||||||
|
"$path/bin/switch-to-configuration" test
|
||||||
|
|
||||||
|
echo "Setting profile" >&2
|
||||||
|
nix build --no-link --profile "$profile" "$path"
|
||||||
|
|
||||||
|
echo "Adding to bootloader" >&2
|
||||||
|
"$path/bin/switch-to-configuration" boot
|
||||||
|
'';
|
||||||
|
|
||||||
|
startAt = cfg.dates;
|
||||||
|
after = ["network-online.target"];
|
||||||
|
wants = ["network-online.target"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -12,4 +12,5 @@
|
|||||||
acer-battery-health-mode = pkgs.callPackage ./acer-battery-health-mode {};
|
acer-battery-health-mode = pkgs.callPackage ./acer-battery-health-mode {};
|
||||||
pob2 = pkgs.callPackage ./pob2 {};
|
pob2 = pkgs.callPackage ./pob2 {};
|
||||||
wl-ocr = pkgs.callPackage ./wl-ocr {};
|
wl-ocr = pkgs.callPackage ./wl-ocr {};
|
||||||
|
rtklib = pkgs.qt6Packages.callPackage ./rtklib {};
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
nheko,
|
nheko,
|
||||||
telegram-desktop,
|
telegram-desktop,
|
||||||
thunderbird,
|
thunderbird,
|
||||||
|
discord, # TODO: discord not available for aarch64, this leads to flake evaluation for this arch fail.
|
||||||
}:
|
}:
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "open-messaging";
|
name = "open-messaging";
|
||||||
@ -11,6 +12,7 @@ writeShellApplication {
|
|||||||
nheko
|
nheko
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
thunderbird
|
thunderbird
|
||||||
|
discord
|
||||||
];
|
];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
@ -18,6 +20,8 @@ writeShellApplication {
|
|||||||
sleep 0.1
|
sleep 0.1
|
||||||
nheko &
|
nheko &
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
telegram-desktop &
|
Telegram &
|
||||||
|
sleep 0.1
|
||||||
|
discord &
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
40
pkgs/rtklib/default.nix
Normal file
40
pkgs/rtklib/default.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
cmake,
|
||||||
|
pkg-config,
|
||||||
|
qtbase,
|
||||||
|
wrapQtAppsHook,
|
||||||
|
qtserialport,
|
||||||
|
qttools,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "RTKLIB";
|
||||||
|
version = "b34L";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "rtklibexplorer";
|
||||||
|
repo = "${pname}";
|
||||||
|
rev = "${version}";
|
||||||
|
hash = "sha256-bQcia3aRQNcZ55fvJViAxpo2Ev276HFTZ28SEXJD5Ds=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
wrapQtAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
qtbase
|
||||||
|
qtserialport
|
||||||
|
qttools
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DCMAKE_INSTALL_DATAROOTDIR=share"
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
}
|
Reference in New Issue
Block a user