Compare commits
No commits in common. "main" and "pinephone" have entirely different histories.
34 changed files with 921 additions and 2012 deletions
325
flake.lock
325
flake.lock
|
@ -20,11 +20,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731959031,
|
"lastModified": 1725199881,
|
||||||
"narHash": "sha256-TGcvIjftziC1CjuiHCzrYDwmOoSFYIhdiKmLetzB5L0=",
|
"narHash": "sha256-jsmipf/u1GFZE5tBUkr56CHMN6VpUWCAjfLIhvQijU0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "4468981c1c50999f315baa1508f0e53c4ee70c52",
|
"rev": "f8a687dd29ff019657498f1bd14da2fbbf0e604b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -34,12 +34,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"helix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727974419,
|
"lastModified": 1709610799,
|
||||||
"narHash": "sha256-WD0//20h+2/yPGkO88d2nYbb23WMWYvnRyDQ9Dx4UHg=",
|
"narHash": "sha256-5jfLQx0U9hXbi2skYMGodDJkIgffrjIOgMRjZqms2QE=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "37e4f9f0976cb9281cd3f0c70081e5e0ecaee93f",
|
"rev": "81c393c776d5379c030607866afef6406ca1be57",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -55,11 +61,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732988076,
|
"lastModified": 1725377834,
|
||||||
"narHash": "sha256-2uMaVAZn7fiyTUGhKgleuLYe5+EAAYB/diKxrM7g3as=",
|
"narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "2814a5224a47ca19e858e027f7e8bff74a8ea9f1",
|
"rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -101,32 +107,16 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696426674,
|
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726560853,
|
"lastModified": 1709126324,
|
||||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -140,11 +130,11 @@
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726560853,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -180,11 +170,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732021966,
|
"lastModified": 1725513492,
|
||||||
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
|
"narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
|
"rev": "7570de7b9b504cfe92025dd1be797bf546f66528",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -195,13 +185,13 @@
|
||||||
},
|
},
|
||||||
"git-hooks_2": {
|
"git-hooks_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_2",
|
||||||
"gitignore": "gitignore_3",
|
"gitignore": "gitignore_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"slippi",
|
"slippi",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721042469,
|
"lastModified": 1721042469,
|
||||||
|
@ -239,28 +229,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_2": {
|
"gitignore_2": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"pre-commit-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore_3": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"slippi",
|
"slippi",
|
||||||
|
@ -284,11 +252,11 @@
|
||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733139194,
|
"lastModified": 1725885300,
|
||||||
"narHash": "sha256-PVQW9ovo0CJbhuhCsrhFJGGdD1euwUornspKpBIgdok=",
|
"narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "c6c90887f84c02ce9ebf33b95ca79ef45007bf88",
|
"rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -322,11 +290,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733164621,
|
"lastModified": 1725976743,
|
||||||
"narHash": "sha256-AhYHB343nLY4bkm9yyOT9I7LIg799ouuIBWb31gORcA=",
|
"narHash": "sha256-pLQQbiC9uO4lF58fAnlcDxlbsBB1XFWswsU1oZOIVqU=",
|
||||||
"owner": "helix-editor",
|
"owner": "helix-editor",
|
||||||
"repo": "helix",
|
"repo": "helix",
|
||||||
"rev": "c0bfdd7bfe8b5a3d13e7e8631eec2e8ea0b726a5",
|
"rev": "237cbe4bca46eed52efed39ed75eb44aaccbdde3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -343,16 +311,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733050161,
|
"lastModified": 1725703823,
|
||||||
"narHash": "sha256-lYnT+EYE47f5yY3KS/Kd4pJ6CO9fhCqumkYYkQ3TK20=",
|
"narHash": "sha256-tDgM4d8mLK0Hd6YMB2w1BqMto1XBXADOzPEaLl10VI4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "62d536255879be574ebfe9b87c4ac194febf47c5",
|
"rev": "208df2e558b73b6a1f0faec98493cb59a25f62ba",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.11",
|
"ref": "release-24.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -364,11 +332,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733133928,
|
"lastModified": 1725948275,
|
||||||
"narHash": "sha256-gU40r9AfpIr4eq+0noM8yH1Hxf+EA3dqfIpFtQl8Y1E=",
|
"narHash": "sha256-4QOPemDQ9VRLQaAdWuvdDBhh+lEUOAnSMHhdr4nS1mk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "873e39d5f4437d2f3ab06881fea8e63e45e1d011",
|
"rev": "e5fa72bad0c6f533e8d558182529ee2acc9454fe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -393,11 +361,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728669738,
|
"lastModified": 1722623071,
|
||||||
"narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
|
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
|
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -410,21 +378,19 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"aquamarine": "aquamarine",
|
"aquamarine": "aquamarine",
|
||||||
"hyprcursor": "hyprcursor",
|
"hyprcursor": "hyprcursor",
|
||||||
"hyprland-protocols": "hyprland-protocols",
|
|
||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"hyprutils": "hyprutils",
|
"hyprutils": "hyprutils",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
|
||||||
"systems": "systems_2",
|
"systems": "systems_2",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733157082,
|
"lastModified": 1726132501,
|
||||||
"narHash": "sha256-rmJkUKyvaejRaQeEOpInjGjQv6rgFkm2uJ2iVlMEuOk=",
|
"narHash": "sha256-mFSCZCvUZJX51V7F2NA3uAj5iaCzsDWhBXMNDz0PhH0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "92186898c0ca1b3f72922b72c4af1723f0d9b888",
|
"rev": "73b9756b8d7ee06fc1c9f072f2a41f2dd1aeb2c9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -437,19 +403,21 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
|
"xdph",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": [
|
"systems": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
|
"xdph",
|
||||||
"systems"
|
"systems"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728345020,
|
"lastModified": 1721326555,
|
||||||
"narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
|
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-protocols",
|
"repo": "hyprland-protocols",
|
||||||
"rev": "a7c183800e74f337753de186522b9017a07a8cee",
|
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -474,11 +442,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728168612,
|
"lastModified": 1725188252,
|
||||||
"narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
|
"narHash": "sha256-yBH8c4GDaEAtBrh+BqIlrx5vp6gG/Gu8fQQK63KAQgs=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
|
"rev": "c12ab785ce1982f82594aff03b3104c598186ddd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -499,11 +467,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732288281,
|
"lastModified": 1724966483,
|
||||||
"narHash": "sha256-XTU9B53IjGeJiJ7LstOhuxcRjCOFkQFl01H78sT9Lg4=",
|
"narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "b26f33cc1c8a7fd5076e19e2cce3f062dca6351c",
|
"rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -524,11 +492,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726874836,
|
"lastModified": 1721324119,
|
||||||
"narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
|
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
|
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -537,28 +505,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jovian": {
|
|
||||||
"inputs": {
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-unstable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1732739177,
|
|
||||||
"narHash": "sha256-iL32+TA/8geCzcL1r3uthrH/GPvbUak5QE++WJUkaiI=",
|
|
||||||
"owner": "Jovian-Experiments",
|
|
||||||
"repo": "Jovian-NixOS",
|
|
||||||
"rev": "8d7b2149e618696d5100c2683af1ffa893f02a75",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Jovian-Experiments",
|
|
||||||
"ref": "development",
|
|
||||||
"repo": "Jovian-NixOS",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"libpng": {
|
"libpng": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -592,35 +538,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"jovian",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1729697500,
|
|
||||||
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
|
|
||||||
"owner": "zhaofengli",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "zhaofengli",
|
|
||||||
"ref": "matrix-name",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728018373,
|
"lastModified": 1709479366,
|
||||||
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
|
"narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
|
"rev": "b8697e57f10292a6165a20f03d2f42920dfaf973",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -632,11 +556,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1720386169,
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -647,22 +571,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1730741070,
|
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1720386169,
|
"lastModified": 1720386169,
|
||||||
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||||
|
@ -680,11 +588,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733064805,
|
"lastModified": 1725910328,
|
||||||
"narHash": "sha256-7NbtSLfZO0q7MXPl5hzA0sbVJt6pWxxtGWbaVUDDmjs=",
|
"narHash": "sha256-n9pCtzGZ0httmTwMuEbi5E78UQ4ZbQMr1pzi5N0LAG8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "31d66ae40417bb13765b0ad75dd200400e98de84",
|
"rev": "5775c2583f1801df7b790bf7f7d710a19bac66f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -696,11 +604,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732758367,
|
"lastModified": 1725103162,
|
||||||
"narHash": "sha256-RzaI1RO0UXqLjydtz3GAXSTzHkpb/lLD1JD8a0W4Wpo=",
|
"narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fa42b5a5f401aab8a32bd33c9a4de0738180dc59",
|
"rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -712,44 +620,20 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732981179,
|
"lastModified": 1725826545,
|
||||||
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
|
"narHash": "sha256-L64N1rpLlXdc94H+F6scnrbuEu+utC03cDDVvvJGOME=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
|
"rev": "f4c846aee8e1e29062aa8514d5e0ab270f4ec2f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-24.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre-commit-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"gitignore": "gitignore_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1732021966,
|
|
||||||
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
@ -759,7 +643,6 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"home-manager-unstable": "home-manager-unstable",
|
"home-manager-unstable": "home-manager-unstable",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"jovian": "jovian",
|
|
||||||
"mobile-nixos": "mobile-nixos",
|
"mobile-nixos": "mobile-nixos",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
@ -770,17 +653,21 @@
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"helix",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"helix",
|
"helix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728268235,
|
"lastModified": 1709604635,
|
||||||
"narHash": "sha256-lJMFnMO4maJuNO6PQ5fZesrTmglze3UFTTBuKGwR1Nw=",
|
"narHash": "sha256-le4fwmWmjGRYWwkho0Gr7mnnZndOOe4XGbLw68OvF40=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "25685cc2c7054efc31351c172ae77b21814f2d42",
|
"rev": "e86c0fb5d3a22a5f30d7f64ecad88643fe26449d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -797,11 +684,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729477859,
|
"lastModified": 1726280639,
|
||||||
"narHash": "sha256-r0VyeJxy4O4CgTB/PNtfQft9fPfN1VuGvnZiCxDArvg=",
|
"narHash": "sha256-YfLRPlFZWrT2oRLNAoqf7G3+NnUTDdlIJk6tmBU7kXM=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "ada8266712449c4c0e6ee6fcbc442b3c217c79e1",
|
"rev": "e9f8641c92f26fd1e076e705edb12147c384171d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -821,11 +708,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725994332,
|
"lastModified": 1725647475,
|
||||||
"narHash": "sha256-gla6TlSG6MIczpJ7xhXA66amcaJPAZ9lFHSUrLmR/QY=",
|
"narHash": "sha256-1PaNuhxB+rhAcpBMwDZCUJpI7Lw0AJfzYot/S18hrXo=",
|
||||||
"owner": "lytedev",
|
"owner": "lytedev",
|
||||||
"repo": "slippi-nix",
|
"repo": "slippi-nix",
|
||||||
"rev": "68e971a57de45fb3f2081e837962f2c9b8c34240",
|
"rev": "10eb5d58b9d9c0da276d48d1c12898ea53c89d2a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -838,14 +725,17 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs-unstable"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733128155,
|
"lastModified": 1725922448,
|
||||||
"narHash": "sha256-m6/qwJAJYcidGMEdLqjKzRIjapK4nUfMq7rDCTmZajc=",
|
"narHash": "sha256-ruvh8tlEflRPifs5tlpa0gkttzq4UtgXkJQS7FusgFE=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "c6134b6fff6bda95a1ac872a2a9d5f32e3c37856",
|
"rev": "cede1a08039178ac12957733e97ab1006c6b6892",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -913,11 +803,11 @@
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "nix",
|
"dir": "nix",
|
||||||
"lastModified": 1732918908,
|
"lastModified": 1727585736,
|
||||||
"narHash": "sha256-k43oaC+35/LGqJ+3MjIhn4Ko+ap3wTvHCJ4sj9W/o+k=",
|
"narHash": "sha256-vEkcyKdFpfWbrtZlB5DCjNCmI2GudIJuHstWo3F9gL8=",
|
||||||
"owner": "wez",
|
"owner": "wez",
|
||||||
"repo": "wezterm",
|
"repo": "wezterm",
|
||||||
"rev": "4906789a6d61da58f73b95f89b59c41af60e0f3b",
|
"rev": "a2f2c07a29f5c98f6736cde0c86b24887f9fd48a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -929,22 +819,11 @@
|
||||||
},
|
},
|
||||||
"xdph": {
|
"xdph": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-protocols": [
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
"hyprland",
|
|
||||||
"hyprland-protocols"
|
|
||||||
],
|
|
||||||
"hyprlang": [
|
"hyprlang": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"hyprlang"
|
"hyprlang"
|
||||||
],
|
],
|
||||||
"hyprutils": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprutils"
|
|
||||||
],
|
|
||||||
"hyprwayland-scanner": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprwayland-scanner"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
@ -955,11 +834,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731703417,
|
"lastModified": 1725203932,
|
||||||
"narHash": "sha256-rheDc/7C+yI+QspYr9J2z9kQ5P9F4ATapI7qyFAe1XA=",
|
"narHash": "sha256-VLULC/OnI+6R9KEP2OIGk+uLJJsfRlaLouZ5gyFd2+Y=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "8070f36deec723de71e7557441acb17e478204d3",
|
"rev": "2425e8f541525fa7409d9f26a8ffaf92a3767251",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
126
flake.nix
126
flake.nix
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
|
||||||
disko.url = "github:nix-community/disko/master";
|
disko.url = "github:nix-community/disko/master";
|
||||||
|
@ -8,12 +8,12 @@
|
||||||
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
sops-nix.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
# sops-nix.inputs.nixpkgs-stable.follows = "nixpkgs";
|
sops-nix.inputs.nixpkgs-stable.follows = "nixpkgs";
|
||||||
|
|
||||||
git-hooks.url = "github:cachix/git-hooks.nix";
|
git-hooks.url = "github:cachix/git-hooks.nix";
|
||||||
git-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
git-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
home-manager-unstable.url = "github:nix-community/home-manager";
|
home-manager-unstable.url = "github:nix-community/home-manager";
|
||||||
|
@ -31,9 +31,6 @@
|
||||||
slippi.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
slippi.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
slippi.inputs.home-manager.follows = "home-manager-unstable";
|
slippi.inputs.home-manager.follows = "home-manager-unstable";
|
||||||
|
|
||||||
jovian.url = "github:Jovian-Experiments/Jovian-NixOS/development";
|
|
||||||
jovian.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
||||||
|
|
||||||
# nnf.url = "github:thelegy/nixos-nftables-firewall?rev=71fc2b79358d0dbacde83c806a0f008ece567b7b";
|
# nnf.url = "github:thelegy/nixos-nftables-firewall?rev=71fc2b79358d0dbacde83c806a0f008ece567b7b";
|
||||||
|
|
||||||
mobile-nixos = {
|
mobile-nixos = {
|
||||||
|
@ -74,7 +71,6 @@
|
||||||
home-manager-unstable,
|
home-manager-unstable,
|
||||||
helix,
|
helix,
|
||||||
hardware,
|
hardware,
|
||||||
jovian,
|
|
||||||
mobile-nixos,
|
mobile-nixos,
|
||||||
# nnf,
|
# nnf,
|
||||||
# hyprland,
|
# hyprland,
|
||||||
|
@ -89,7 +85,7 @@
|
||||||
forSystems = nixpkgs.lib.genAttrs systems;
|
forSystems = nixpkgs.lib.genAttrs systems;
|
||||||
pkgsFor = system: (import nixpkgs {inherit system;}).extend overlays.default;
|
pkgsFor = system: (import nixpkgs {inherit system;}).extend overlays.default;
|
||||||
genPkgs = func: (forSystems (system: func (pkgsFor system)));
|
genPkgs = func: (forSystems (system: func (pkgsFor system)));
|
||||||
# pkg = callee: overrides: genPkgs (pkgs: pkgs.callPackage callee overrides);
|
pkg = callee: overrides: genPkgs (pkgs: pkgs.callPackage callee overrides);
|
||||||
|
|
||||||
unstable = {
|
unstable = {
|
||||||
forSystems = nixpkgs-unstable.lib.genAttrs systems;
|
forSystems = nixpkgs-unstable.lib.genAttrs systems;
|
||||||
|
@ -183,7 +179,7 @@
|
||||||
nodejs
|
nodejs
|
||||||
wget
|
wget
|
||||||
sudo
|
sudo
|
||||||
nixVersions.stable
|
nixFlakes
|
||||||
cacert
|
cacert
|
||||||
gnutar
|
gnutar
|
||||||
gzip
|
gzip
|
||||||
|
@ -242,24 +238,7 @@
|
||||||
I did try using the latest code via the flake, but alas it did not resolve my issues with mux'ing
|
I did try using the latest code via the flake, but alas it did not resolve my issues with mux'ing
|
||||||
*/
|
*/
|
||||||
wezterm = wezterm-input.outputs.packages.${prev.system}.default;
|
wezterm = wezterm-input.outputs.packages.${prev.system}.default;
|
||||||
# wezterm = (import nixpkgs {inherit (prev) system;}).wezterm;
|
|
||||||
final.wezterm = wezterm;
|
final.wezterm = wezterm;
|
||||||
|
|
||||||
# zellij = prev.zellij.overrideAttrs rec {
|
|
||||||
# version = "0.41.0";
|
|
||||||
# src = prev.fetchFromGitHub {
|
|
||||||
# owner = "zellij-org";
|
|
||||||
# repo = "zellij";
|
|
||||||
# rev = "v0.41.0";
|
|
||||||
# hash = "sha256-A+JVWYz0t9cVA8XZciOwDkCecsC2r5TU2O9i9rVg7do=";
|
|
||||||
# };
|
|
||||||
# cargoDeps = prev.zellij.cargoDeps.overrideAttrs (prev.lib.const {
|
|
||||||
# name = "zellij-vendor.tar.gz";
|
|
||||||
# inherit src;
|
|
||||||
# outputHash = "sha256-WxrMI7fV0pNsGjbNpXLr+xnMdWYkC4WxIeN4OK3ZPIE=";
|
|
||||||
# });
|
|
||||||
# };
|
|
||||||
# final.zellij = zellij;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
unstable-packages = final: _prev: {
|
unstable-packages = final: _prev: {
|
||||||
|
@ -282,43 +261,37 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
beefcake = let
|
beefcake = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
in
|
modules = with nixosModules; [
|
||||||
nixpkgs.lib.nixosSystem {
|
home-manager-defaults
|
||||||
inherit system;
|
|
||||||
modules = with nixosModules; [
|
|
||||||
home-manager-defaults
|
|
||||||
|
|
||||||
# TODO: disko?
|
# TODO: disko?
|
||||||
hardware.nixosModules.common-cpu-intel
|
hardware.nixosModules.common-cpu-intel
|
||||||
|
|
||||||
outputs.nixosModules.deno-netlify-ddns-client
|
outputs.nixosModules.deno-netlify-ddns-client
|
||||||
{
|
|
||||||
services.deno-netlify-ddns-client = {
|
|
||||||
enable = true;
|
|
||||||
username = "beefcake.h";
|
|
||||||
# TODO: router doesn't even do ipv6 yet...
|
|
||||||
ipv6 = false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
family-users
|
{
|
||||||
common
|
services.deno-netlify-ddns-client = {
|
||||||
podman
|
enable = true;
|
||||||
troubleshooting-tools
|
username = "beefcake.h";
|
||||||
virtual-machines
|
# TODO: router doesn't even do ipv6 yet...
|
||||||
virtual-machines-gui
|
ipv6 = false;
|
||||||
linux
|
};
|
||||||
fonts
|
}
|
||||||
|
|
||||||
./nixos/beefcake.nix
|
family-users
|
||||||
|
common
|
||||||
|
podman
|
||||||
|
troubleshooting-tools
|
||||||
|
virtual-machines
|
||||||
|
virtual-machines-gui
|
||||||
|
linux
|
||||||
|
fonts
|
||||||
|
|
||||||
{
|
./nixos/beefcake.nix
|
||||||
services.kanidm.package = (unstable.pkgsFor system).kanidm;
|
];
|
||||||
}
|
};
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
dragon = nixpkgs-unstable.lib.nixosSystem {
|
dragon = nixpkgs-unstable.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
@ -336,11 +309,11 @@
|
||||||
virtual-machines
|
virtual-machines
|
||||||
virtual-machines-gui
|
virtual-machines-gui
|
||||||
music-production
|
music-production
|
||||||
# plasma6
|
|
||||||
gaming
|
gaming
|
||||||
slippi.nixosModules.default
|
slippi.nixosModules.default
|
||||||
|
|
||||||
outputs.nixosModules.deno-netlify-ddns-client
|
outputs.nixosModules.deno-netlify-ddns-client
|
||||||
|
|
||||||
{
|
{
|
||||||
services.deno-netlify-ddns-client = {
|
services.deno-netlify-ddns-client = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -418,37 +391,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
steamdeck1 = nixpkgs-unstable.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules = with nixosModules; [
|
|
||||||
home-manager-unstable-defaults
|
|
||||||
|
|
||||||
outputs.diskoConfigurations.standard
|
|
||||||
hardware.nixosModules.common-pc-ssd
|
|
||||||
common
|
|
||||||
gaming
|
|
||||||
graphical-workstation
|
|
||||||
plasma6
|
|
||||||
|
|
||||||
jovian.outputs.nixosModules.jovian
|
|
||||||
|
|
||||||
{
|
|
||||||
networking.hostName = "steamdeck1";
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.daniel = {
|
|
||||||
imports = with homeManagerModules; [
|
|
||||||
firefox-no-tabs
|
|
||||||
linux-desktop-environment-config
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
foxtrot = nixpkgs-unstable.lib.nixosSystem {
|
foxtrot = nixpkgs-unstable.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = with nixosModules; [
|
modules = with nixosModules; [
|
||||||
|
@ -461,7 +403,6 @@
|
||||||
kde-connect
|
kde-connect
|
||||||
password-manager
|
password-manager
|
||||||
graphical-workstation
|
graphical-workstation
|
||||||
# plasma6
|
|
||||||
virtual-machines
|
virtual-machines
|
||||||
virtual-machines-gui
|
virtual-machines-gui
|
||||||
laptop
|
laptop
|
||||||
|
@ -497,7 +438,7 @@
|
||||||
# we use command -v $cmd here because we only want to invoke these calls _if_ the related package is installed on the system
|
# we use command -v $cmd here because we only want to invoke these calls _if_ the related package is installed on the system
|
||||||
# otherwise, they will likely have no effect anyways
|
# otherwise, they will likely have no effect anyways
|
||||||
text = ''
|
text = ''
|
||||||
command -v powerprofilesctl &>/dev/null && bash -x -c 'powerprofilesctl set balanced'
|
command -v powerprofilesctl &>/dev/null && bash -x -c 'powerprofilesctl set performance'
|
||||||
command -v swaymsg &>/dev/null && bash -x -c 'swaymsg output eDP-1 mode 2880x1920@120Hz'
|
command -v swaymsg &>/dev/null && bash -x -c 'swaymsg output eDP-1 mode 2880x1920@120Hz'
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
@ -524,7 +465,6 @@
|
||||||
common
|
common
|
||||||
password-manager
|
password-manager
|
||||||
graphical-workstation
|
graphical-workstation
|
||||||
plasma6
|
|
||||||
music-production
|
music-production
|
||||||
laptop
|
laptop
|
||||||
gaming
|
gaming
|
||||||
|
@ -595,7 +535,6 @@
|
||||||
common
|
common
|
||||||
password-manager
|
password-manager
|
||||||
graphical-workstation
|
graphical-workstation
|
||||||
plasma6
|
|
||||||
laptop
|
laptop
|
||||||
gaming
|
gaming
|
||||||
|
|
||||||
|
@ -674,6 +613,7 @@
|
||||||
troubleshooting-tools
|
troubleshooting-tools
|
||||||
|
|
||||||
outputs.nixosModules.deno-netlify-ddns-client
|
outputs.nixosModules.deno-netlify-ddns-client
|
||||||
|
|
||||||
{
|
{
|
||||||
services.deno-netlify-ddns-client = {
|
services.deno-netlify-ddns-client = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 28 KiB |
|
@ -1,380 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="141.5919mm"
|
|
||||||
height="122.80626mm"
|
|
||||||
viewBox="0 0 501.70361 435.14028"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
|
||||||
sodipodi:docname="Nix_snowflake_lytedev.svg"
|
|
||||||
inkscape:export-filename="Nix_snowflake_lytedev.png"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-ydpi="96"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs4">
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5562">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#699ad7;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5564" />
|
|
||||||
<stop
|
|
||||||
id="stop5566"
|
|
||||||
offset="0.24345198"
|
|
||||||
style="stop-color:#7eb1dd;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#7ebae4;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5568" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5053">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#415e9a;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5055" />
|
|
||||||
<stop
|
|
||||||
id="stop5057"
|
|
||||||
offset="0.23168644"
|
|
||||||
style="stop-color:#4a6baf;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#5277c3;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5059" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5960"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
id="stop5962"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#637ddf;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#649afa;stop-opacity:1"
|
|
||||||
offset="0.23168644"
|
|
||||||
id="stop5964" />
|
|
||||||
<stop
|
|
||||||
id="stop5966"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#719efa;stop-opacity:1" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5867">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#7363df;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5869" />
|
|
||||||
<stop
|
|
||||||
id="stop5871"
|
|
||||||
offset="0.23168644"
|
|
||||||
style="stop-color:#6478fa;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#719efa;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5873" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
y2="515.97058"
|
|
||||||
x2="282.26105"
|
|
||||||
y1="338.62445"
|
|
||||||
x1="213.95642"
|
|
||||||
gradientTransform="translate(983.36076,601.38885)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
id="linearGradient5855"
|
|
||||||
xlink:href="#linearGradient5960"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<linearGradient
|
|
||||||
y2="515.97058"
|
|
||||||
x2="282.26105"
|
|
||||||
y1="338.62445"
|
|
||||||
x1="213.95642"
|
|
||||||
gradientTransform="translate(-197.75174,-337.1451)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
id="linearGradient5855-8"
|
|
||||||
xlink:href="#linearGradient5867"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<linearGradient
|
|
||||||
y2="247.58188"
|
|
||||||
x2="-702.75317"
|
|
||||||
y1="102.74675"
|
|
||||||
x1="-775.20807"
|
|
||||||
gradientTransform="translate(983.36076,601.38885)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
id="linearGradient4544"
|
|
||||||
xlink:href="#linearGradient5960"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<clipPath
|
|
||||||
id="clipPath4501"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<circle
|
|
||||||
r="241.06563"
|
|
||||||
cy="686.09473"
|
|
||||||
cx="335.13995"
|
|
||||||
id="circle4503"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#adadad;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath5410"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<circle
|
|
||||||
r="241.13741"
|
|
||||||
cy="340.98975"
|
|
||||||
cx="335.98114"
|
|
||||||
id="circle5412"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
</clipPath>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5053"
|
|
||||||
id="linearGradient5137"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(864.55062,-2197.497)"
|
|
||||||
x1="-584.19934"
|
|
||||||
y1="782.33563"
|
|
||||||
x2="-496.29703"
|
|
||||||
y2="937.71399" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5053"
|
|
||||||
id="linearGradient5147"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(864.55062,-2197.497)"
|
|
||||||
x1="-584.19934"
|
|
||||||
y1="782.33563"
|
|
||||||
x2="-496.29703"
|
|
||||||
y2="937.71399" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5562"
|
|
||||||
id="linearGradient5162"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(70.505061,-1761.3076)"
|
|
||||||
x1="200.59668"
|
|
||||||
y1="351.41116"
|
|
||||||
x2="290.08701"
|
|
||||||
y2="506.18814" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5562"
|
|
||||||
id="linearGradient5172"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(70.505061,-1761.3076)"
|
|
||||||
x1="200.59668"
|
|
||||||
y1="351.41116"
|
|
||||||
x2="290.08701"
|
|
||||||
y2="506.18814" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5562"
|
|
||||||
id="linearGradient5182"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(70.505061,-1761.3076)"
|
|
||||||
x1="200.59668"
|
|
||||||
y1="351.41116"
|
|
||||||
x2="290.08701"
|
|
||||||
y2="506.18814" />
|
|
||||||
<linearGradient
|
|
||||||
y2="506.18814"
|
|
||||||
x2="290.08701"
|
|
||||||
y1="351.41116"
|
|
||||||
x1="200.59668"
|
|
||||||
gradientTransform="translate(70.505061,-1761.3076)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
id="linearGradient5201"
|
|
||||||
xlink:href="#linearGradient5562"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<linearGradient
|
|
||||||
y2="937.71399"
|
|
||||||
x2="-496.29703"
|
|
||||||
y1="782.33563"
|
|
||||||
x1="-584.19934"
|
|
||||||
gradientTransform="translate(864.55062,-2197.497)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
id="linearGradient5205"
|
|
||||||
xlink:href="#linearGradient5053"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="0.98318225"
|
|
||||||
inkscape:cx="112.8987"
|
|
||||||
inkscape:cy="191.21582"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="2059"
|
|
||||||
inkscape:window-height="1588"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:snap-global="true"
|
|
||||||
fit-margin-top="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0"
|
|
||||||
inkscape:showpageshadow="0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#505050" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="print-logo"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
style="display:inline"
|
|
||||||
transform="translate(-156.33871,933.1905)">
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
id="path4861"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#df3c59;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
|
||||||
id="use4863"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#df3c59;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
|
||||||
id="use4865"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#df3c59;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
|
||||||
id="use4867"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4873"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#8e293b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use4875"
|
|
||||||
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#8e293b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use4877"
|
|
||||||
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#8e293b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
<g
|
|
||||||
id="layer2"
|
|
||||||
inkscape:label="guides"
|
|
||||||
style="display:none"
|
|
||||||
transform="translate(72.039038,-1799.4476)">
|
|
||||||
<path
|
|
||||||
d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z"
|
|
||||||
inkscape:randomized="0"
|
|
||||||
inkscape:rounded="0"
|
|
||||||
inkscape:flatsided="true"
|
|
||||||
sodipodi:arg2="1.5707963"
|
|
||||||
sodipodi:arg1="1.0471976"
|
|
||||||
sodipodi:r2="217.25499"
|
|
||||||
sodipodi:r1="250.86446"
|
|
||||||
sodipodi:cy="377.47382"
|
|
||||||
sodipodi:cx="335.17407"
|
|
||||||
sodipodi:sides="6"
|
|
||||||
id="path6032"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.236;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
sodipodi:type="star" />
|
|
||||||
<path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
sodipodi:type="star"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
id="path5875"
|
|
||||||
sodipodi:sides="6"
|
|
||||||
sodipodi:cx="335.17407"
|
|
||||||
sodipodi:cy="685.74158"
|
|
||||||
sodipodi:r1="100.83495"
|
|
||||||
sodipodi:r2="87.32563"
|
|
||||||
sodipodi:arg1="1.0471976"
|
|
||||||
sodipodi:arg2="1.5707963"
|
|
||||||
inkscape:flatsided="true"
|
|
||||||
inkscape:rounded="0"
|
|
||||||
inkscape:randomized="0"
|
|
||||||
d="m 385.59154,773.06721 -100.83495,0 -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" />
|
|
||||||
<path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
sodipodi:nodetypes="ccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path5851"
|
|
||||||
d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z"
|
|
||||||
style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.415;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c53a3a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect5884"
|
|
||||||
width="48.834862"
|
|
||||||
height="226.22897"
|
|
||||||
x="-34.74221"
|
|
||||||
y="446.17056"
|
|
||||||
transform="rotate(-30)" />
|
|
||||||
<path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
sodipodi:type="star"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.509;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="path3428"
|
|
||||||
sodipodi:sides="6"
|
|
||||||
sodipodi:cx="223.93674"
|
|
||||||
sodipodi:cy="878.63831"
|
|
||||||
sodipodi:r1="28.048939"
|
|
||||||
sodipodi:r2="24.291094"
|
|
||||||
sodipodi:arg1="0"
|
|
||||||
sodipodi:arg2="0.52359878"
|
|
||||||
inkscape:flatsided="true"
|
|
||||||
inkscape:rounded="0"
|
|
||||||
inkscape:randomized="0"
|
|
||||||
d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" />
|
|
||||||
<use
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
xlink:href="#rect5884"
|
|
||||||
id="use4252"
|
|
||||||
transform="rotate(60,268.29786,489.4515)"
|
|
||||||
width="100%"
|
|
||||||
height="100%" />
|
|
||||||
<rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:0.650794;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect4254"
|
|
||||||
width="5.3947482"
|
|
||||||
height="115.12564"
|
|
||||||
x="545.71014"
|
|
||||||
y="467.07007"
|
|
||||||
transform="rotate(30,575.23539,-154.13386)" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 19 KiB |
File diff suppressed because it is too large
Load diff
|
@ -38,7 +38,7 @@ $rosewater: #f5e0dc;
|
||||||
font-size: 12.0pt;
|
font-size: 12.0pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
.leftsidestuff slider {
|
.sidestuff slider {
|
||||||
color: $sapphire;
|
color: $sapphire;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,6 @@ $rosewater: #f5e0dc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.workspace {
|
.workspace {
|
||||||
/* height: 100%; */
|
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
(defwidget bar []
|
(defwidget bar []
|
||||||
(centerbox :orientation "h"
|
(centerbox :orientation "h"
|
||||||
(leftsidestuff)
|
(sidestuff)
|
||||||
(box)
|
(box)
|
||||||
(rightsidestuff)
|
(music)))
|
||||||
))
|
|
||||||
|
|
||||||
(defwindow bar0
|
(defwindow bar0
|
||||||
:monitor 0
|
:monitor 0
|
||||||
|
@ -31,16 +30,14 @@
|
||||||
:anchor "bottom center")
|
:anchor "bottom center")
|
||||||
(bar))
|
(bar))
|
||||||
|
|
||||||
(defwidget rightsidestuff []
|
(defwidget sidestuff []
|
||||||
(box :class "rightsidestuff" :orientation "h" :space-evenly false :halign "end" :valign "center" :spacing 10
|
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "start" :valign "center" :spacing 10
|
||||||
(music)
|
|
||||||
(systray)
|
|
||||||
))
|
|
||||||
|
|
||||||
(defwidget leftsidestuff []
|
|
||||||
(box :class "leftsidestuff" :orientation "h" :space-evenly false :halign "start" :valign "center" :spacing 10
|
|
||||||
time
|
time
|
||||||
|
; TODO: indicator/tray/taskbar/toolbar icons and management? (probably should use something standalone?)
|
||||||
|
; https://github.com/elkowar/eww/issues/111
|
||||||
|
|
||||||
; TODO: idle inhibitor?
|
; TODO: idle inhibitor?
|
||||||
|
; TODO: hyprland workspaces?
|
||||||
; TODO: get these to align properly? icons seem lower than they should be?
|
; TODO: get these to align properly? icons seem lower than they should be?
|
||||||
(box :class "mic" (
|
(box :class "mic" (
|
||||||
box :class {micMuted == "false" ? "live" : "muted"} {micMuted == "false" ? " " : " "}
|
box :class {micMuted == "false" ? "live" : "muted"} {micMuted == "false" ? " " : " "}
|
||||||
|
@ -51,7 +48,7 @@
|
||||||
) {"${volume}%"}
|
) {"${volume}%"}
|
||||||
)
|
)
|
||||||
{" ${round(EWW_CPU["avg"], 0)}%"}
|
{" ${round(EWW_CPU["avg"], 0)}%"}
|
||||||
{" ${round(EWW_RAM["used_mem_perc"], 0)}%"}
|
{" ${round(EWW_RAM["used_mem_perc"], 0)}%"}
|
||||||
; TODO: have these "widgets" be omitted entirely instead of just empty strings
|
; TODO: have these "widgets" be omitted entirely instead of just empty strings
|
||||||
{(showBrightness == "true") ? (" ${brightness}%") : ""}
|
{(showBrightness == "true") ? (" ${brightness}%") : ""}
|
||||||
{(showBattery == "true") ? (" ${EWW_BATTERY["BAT1"]["capacity"]}% (${batteryTime})") : ""}
|
{(showBattery == "true") ? (" ${EWW_BATTERY["BAT1"]["capacity"]}% (${batteryTime})") : ""}
|
||||||
|
|
|
@ -63,7 +63,7 @@ workspaces
|
||||||
# listen to events and re-render
|
# listen to events and re-render
|
||||||
while true; do
|
while true; do
|
||||||
# TODO: not sure why this socat | read invocation seems to stop?
|
# TODO: not sure why this socat | read invocation seems to stop?
|
||||||
socat - "UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" | while read -r line; do
|
socat - "UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" | while read -r line; do
|
||||||
workspaces "$line"
|
workspaces "$line"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
6
modules/home-manager/ewwbar.nix
Normal file
6
modules/home-manager/ewwbar.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{...}: {
|
||||||
|
programs.eww = {
|
||||||
|
enable = true;
|
||||||
|
configDir = ./eww;
|
||||||
|
};
|
||||||
|
}
|
|
@ -61,9 +61,6 @@ end
|
||||||
function _last_cmd_duration
|
function _last_cmd_duration
|
||||||
set_color -b normal green
|
set_color -b normal green
|
||||||
set -q CMD_DURATION && printf " %dms" $CMD_DURATION
|
set -q CMD_DURATION && printf " %dms" $CMD_DURATION
|
||||||
if test $CMD_DURATION -gt 5000
|
|
||||||
printf "\e]777;notify;%s;%s\e\\" "WezTerm: Command Finished" (history --max 1)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _maybe_jobs_summary
|
function _maybe_jobs_summary
|
||||||
|
|
|
@ -33,7 +33,7 @@ set --export --universal EXA_COLORS '*=0'
|
||||||
|
|
||||||
set --export --universal ERL_AFLAGS "-kernel shell_history enabled -kernel shell_history_file_bytes 1024000"
|
set --export --universal ERL_AFLAGS "-kernel shell_history enabled -kernel shell_history_file_bytes 1024000"
|
||||||
|
|
||||||
set --export --universal BROWSER (which firefox)
|
set --export --universal BROWSER firefox
|
||||||
|
|
||||||
set --export --universal SOPS_AGE_KEY_FILE "$XDG_CONFIG_HOME/sops/age/keys.txt"
|
set --export --universal SOPS_AGE_KEY_FILE "$XDG_CONFIG_HOME/sops/age/keys.txt"
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,24 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
style,
|
colors,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
# font,
|
# font,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (style) colors;
|
imports = [
|
||||||
in {
|
./ewwbar.nix
|
||||||
# TODO: Hyprland seems to sometimes use a ton of CPU?
|
./mako.nix
|
||||||
|
./swaylock.nix
|
||||||
|
# TODO: figure out how to import this for this module _and_ for the sway module?
|
||||||
|
./linux-desktop.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# TODO: Hyprland seems to have issues with resuming from hibernation on my
|
||||||
|
# laptop where it uses a ton of CPU.
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
# TODO: integrate osd
|
||||||
swayosd
|
swayosd
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -39,12 +47,38 @@ in {
|
||||||
"hyprpaper"
|
"hyprpaper"
|
||||||
"mako"
|
"mako"
|
||||||
"swayosd-server"
|
"swayosd-server"
|
||||||
"eww daemon"
|
"eww daemon && eww open bar$EWW_BAR_MON"
|
||||||
"[workspace 1 silent] firefox"
|
"firefox"
|
||||||
"[workspace 1 silent] wezterm"
|
"wezterm"
|
||||||
"xwaylandvideobridge"
|
"xwaylandvideobridge"
|
||||||
|
"dbus-update-activation-environment --systemd --all"
|
||||||
"systemctl --user import-environment QT_QPA_PLATFORMTHEME"
|
"systemctl --user import-environment QT_QPA_PLATFORMTHEME"
|
||||||
"hypridle"
|
# "wezterm"
|
||||||
|
# NOTE: maybe check out hypridle?
|
||||||
|
(lib.concatStringsSep " " [
|
||||||
|
"swayidle -w"
|
||||||
|
"timeout 300 'notify-send \"Idling in 300 seconds\"' resume 'notify-send \"Idling cancelled.\"'"
|
||||||
|
"timeout 480 'notify-send -u critical \"Idling in 120 seconds\"'"
|
||||||
|
"timeout 510 'notify-send -u critical \"Idling in 90 seconds\"'"
|
||||||
|
"timeout 540 'notify-send -u critical \"Idling in 60 seconds!\"'"
|
||||||
|
"timeout 570 'notify-send -u critical \"Idling in 30 seconds!\"'"
|
||||||
|
"timeout 590 'notify-send -u critical \"Idling in 10 seconds!\"'"
|
||||||
|
"timeout 591 'notify-send -u critical \"Idling in 9 seconds!\"'"
|
||||||
|
"timeout 592 'notify-send -u critical \"Idling in 8 seconds!\"'"
|
||||||
|
"timeout 593 'notify-send -u critical \"Idling in 7 seconds!\"'"
|
||||||
|
"timeout 594 'notify-send -u critical \"Idling in 6 seconds!\"'"
|
||||||
|
"timeout 595 'notify-send -u critical \"Idling in 5 seconds!\"'"
|
||||||
|
"timeout 596 'notify-send -u critical \"Idling in 4 seconds!\"'"
|
||||||
|
"timeout 597 'notify-send -u critical \"Idling in 3 seconds!\"'"
|
||||||
|
"timeout 598 'notify-send -u critical \"Idling in 2 seconds!\"'"
|
||||||
|
"timeout 599 'notify-send -u critical \"Idling in 1 second!\"'"
|
||||||
|
"timeout 600 'swaylock --daemonize'"
|
||||||
|
"timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on'"
|
||||||
|
"after-resume 'maybe-good-morning'"
|
||||||
|
"before-sleep 'swaylock --daemonize'"
|
||||||
|
])
|
||||||
|
''swayidle -w timeout 600 'notify-send "Locking in 30 seconds..."' timeout 630 'swaylock -f' timeout 660 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on && maybe-good-morning' before-sleep 'swaylock -f'"''
|
||||||
|
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||||
];
|
];
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
|
@ -63,8 +97,8 @@ in {
|
||||||
|
|
||||||
follow_mouse = 2;
|
follow_mouse = 2;
|
||||||
|
|
||||||
repeat_delay = 180;
|
repeat_delay = 200;
|
||||||
repeat_rate = 120;
|
repeat_rate = 60;
|
||||||
|
|
||||||
touchpad = {
|
touchpad = {
|
||||||
natural_scroll = "yes";
|
natural_scroll = "yes";
|
||||||
|
@ -83,10 +117,6 @@ in {
|
||||||
allow_workspace_cycles = true;
|
allow_workspace_cycles = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
cursor = {
|
|
||||||
no_warps = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
"col.active_border" = "0xff${colors.primary} 0xff${colors.green} 45deg";
|
"col.active_border" = "0xff${colors.primary} 0xff${colors.green} 45deg";
|
||||||
|
@ -95,6 +125,7 @@ in {
|
||||||
gaps_in = 3;
|
gaps_in = 3;
|
||||||
gaps_out = 6;
|
gaps_out = 6;
|
||||||
border_size = 2;
|
border_size = 2;
|
||||||
|
no_cursor_warps = true;
|
||||||
resize_on_border = true;
|
resize_on_border = true;
|
||||||
no_focus_fallback = true;
|
no_focus_fallback = true;
|
||||||
|
|
||||||
|
@ -102,7 +133,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 5;
|
rounding = 3;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
blur = "no";
|
blur = "no";
|
||||||
|
@ -111,12 +142,10 @@ in {
|
||||||
blur_new_optimizations = on
|
blur_new_optimizations = on
|
||||||
*/
|
*/
|
||||||
|
|
||||||
shadow = {
|
drop_shadow = "yes";
|
||||||
enabled = true;
|
shadow_range = 4;
|
||||||
color = "rgba(1a1a1aee)";
|
shadow_render_power = 3;
|
||||||
range = 4;
|
"col.shadow" = "rgba(1a1a1aee)";
|
||||||
render_power = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
dim_inactive = false;
|
dim_inactive = false;
|
||||||
};
|
};
|
||||||
|
@ -150,10 +179,10 @@ in {
|
||||||
"$mod, l, movefocus, r"
|
"$mod, l, movefocus, r"
|
||||||
"$mod, k, movefocus, u"
|
"$mod, k, movefocus, u"
|
||||||
"$mod, j, movefocus, d"
|
"$mod, j, movefocus, d"
|
||||||
"$mod SHIFT, H, movewindow, l"
|
"$mod SHIFT, H, swapwindow, l"
|
||||||
"$mod SHIFT, L, movewindow, r"
|
"$mod SHIFT, L, swapwindow, r"
|
||||||
"$mod SHIFT, K, movewindow, u"
|
"$mod SHIFT, K, swapwindow, u"
|
||||||
"$mod SHIFT, J, movewindow, d"
|
"$mod SHIFT, J, swapwindow, d"
|
||||||
|
|
||||||
"$mod SHIFT, V, exec, swayosd-client --input-volume mute-toggle"
|
"$mod SHIFT, V, exec, swayosd-client --input-volume mute-toggle"
|
||||||
", XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle"
|
", XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle"
|
||||||
|
@ -199,10 +228,10 @@ in {
|
||||||
# Scroll through existing workspaces with mod + scroll
|
# Scroll through existing workspaces with mod + scroll
|
||||||
"$mod, mouse_down, workspace, e+1"
|
"$mod, mouse_down, workspace, e+1"
|
||||||
"$mod, mouse_up, workspace, e-1"
|
"$mod, mouse_up, workspace, e-1"
|
||||||
"CTRL SHIFT $mod, L, exec, hyprlock"
|
"CTRL SHIFT $mod, L, exec, swaylock"
|
||||||
"$mod CTRL, space, exec, makoctl dismiss"
|
"$mod CTRL, space, exec, makoctl dismiss"
|
||||||
"$mod SHIFT CTRL, space, exec, makoctl restore"
|
"$mod SHIFT CTRL, space, exec, makoctl restore"
|
||||||
"$mod SHIFT, space, exec, makoctl invoke default"
|
"$mod SHIFT, space, exec, makoctl invoke"
|
||||||
"$mod, E, exec, thunar"
|
"$mod, E, exec, thunar"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -230,12 +259,12 @@ in {
|
||||||
# master switch for pseudotiling. Enabling is bound to mod + P in the keybinds section below
|
# master switch for pseudotiling. Enabling is bound to mod + P in the keybinds section below
|
||||||
pseudotile = yes
|
pseudotile = yes
|
||||||
preserve_split = 1
|
preserve_split = 1
|
||||||
# no_gaps_when_only = true
|
no_gaps_when_only = true
|
||||||
}
|
}
|
||||||
|
|
||||||
master {
|
master {
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
# new_is_master = true
|
new_is_master = true
|
||||||
}
|
}
|
||||||
|
|
||||||
gestures {
|
gestures {
|
||||||
|
@ -251,170 +280,14 @@ in {
|
||||||
|
|
||||||
## See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
## See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
windowrulev2 = idleinhibit,class:^.*([Ss]lippi).*$
|
windowrulev2 = idleinhibit,class:^.*([Ss]lippi).*$
|
||||||
windowrulev2 = float,class:^.*$
|
windowrulev2 = float,class:^.*([Kk]itty|[Ff]irefox|[Ww]ezterm|[Dd]iscord|[Ss]potify|[Ss]lack).*$
|
||||||
windowrulev2 = tile,class:^.*([Kk]itty|[Ff]irefox|[Ww]ezterm|[Dd]iscord|[Ss]potify|[Ss]lack).*$
|
windowrulev2 = opacity 1.0 0.9,floating:1
|
||||||
windowrulev2 = opacity 1.0 0.95,class:^.*$
|
|
||||||
windowrulev2 = center 1,floating:1
|
|
||||||
|
|
||||||
windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$
|
windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
|
||||||
windowrulev2 = noanim, class:^(xwaylandvideobridge)$
|
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
|
||||||
windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$
|
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
|
||||||
windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$
|
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
|
||||||
windowrulev2 = noblur, class:^(xwaylandvideobridge)$
|
windowrulev2 = noblur,class:^(xwaylandvideobridge)$
|
||||||
windowrulev2 = nofocus, class:^(xwaylandvideobridge)$
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# docs: https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
|
||||||
|
|
||||||
general = {
|
|
||||||
grace = 0;
|
|
||||||
no_face_out = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
input-field = [
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
fade_on_empty = false;
|
|
||||||
placeholder_text = "Locked";
|
|
||||||
rounding = 5;
|
|
||||||
font_size = 20;
|
|
||||||
font_color = "rgba(255, 255, 255, 1.0)";
|
|
||||||
inner_color = "rgba(31, 31, 47, 0.95)";
|
|
||||||
outer_color = "0xff74c7ec 0xff74c7ec 45deg";
|
|
||||||
outline_thickness = 3;
|
|
||||||
position = "0, -200";
|
|
||||||
|
|
||||||
dots_size = 0.1;
|
|
||||||
size = "300 75";
|
|
||||||
font_family = "IosevkaLyteTerm";
|
|
||||||
|
|
||||||
shadow_passes = 3;
|
|
||||||
shadow_size = 8;
|
|
||||||
shadow_color = "rgba(0, 0, 0, 1.0)";
|
|
||||||
shadow_boost = 0.8;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
background = [
|
|
||||||
{
|
|
||||||
path = "~/.wallpaper";
|
|
||||||
blur_passes = 2;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
label = [
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
font_size = 64;
|
|
||||||
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
text_align = "center";
|
|
||||||
|
|
||||||
# rotate = 10;
|
|
||||||
position = "0, 200";
|
|
||||||
font_family = "IosevkaLyteTerm";
|
|
||||||
text = ''Locked for <span foreground="##74c7ec">$USER</span>'';
|
|
||||||
|
|
||||||
shadow_passes = 1;
|
|
||||||
shadow_size = 8;
|
|
||||||
shadow_color = "rgba(0, 0, 0, 1.0)";
|
|
||||||
shadow_boost = 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
font_size = 20;
|
|
||||||
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
text_align = "center";
|
|
||||||
color = "rgba(255, 255, 255, 0.5)";
|
|
||||||
|
|
||||||
position = "0 120";
|
|
||||||
font_family = "IosevkaLyteTerm";
|
|
||||||
text = "cmd[update:1000] date '+%a %b %d %H:%M:%S'";
|
|
||||||
|
|
||||||
shadow_passes = 3;
|
|
||||||
shadow_size = 1;
|
|
||||||
shadow_color = "rgba(0, 0, 0, 1.0)";
|
|
||||||
shadow_boost = 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
font_size = 200;
|
|
||||||
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
text_align = "center";
|
|
||||||
color = "rgba(220, 240, 255, 0.8)";
|
|
||||||
position = "0 500";
|
|
||||||
font_family = "NerdFontSymbolsOnly";
|
|
||||||
text = "";
|
|
||||||
|
|
||||||
shadow_passes = 3;
|
|
||||||
shadow_size = 1;
|
|
||||||
shadow_color = "rgba(0, 0, 0, 1.0)";
|
|
||||||
shadow_boost = 1.0;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.hypridle = let
|
|
||||||
secondsPerMinute = 60;
|
|
||||||
lockSeconds = 10 * secondsPerMinute;
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
|
||||||
ignore_dbus_inhibit = false;
|
|
||||||
lock_cmd = "pidof hyprlock || hyprlock";
|
|
||||||
};
|
|
||||||
|
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = lockSeconds - 300;
|
|
||||||
on-timeout = ''notify-send "Auto-locking in 5 minutes"'';
|
|
||||||
on-resume = ''notify-send "Auto-locking cancelled"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds - 180;
|
|
||||||
on-timeout = ''notify-send "Auto-locking in 3 minutes"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds - 120;
|
|
||||||
on-timeout = ''notify-send "Auto-locking in 2 minutes"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds - 60;
|
|
||||||
on-timeout = ''notify-send "Auto-locking in 1 minute"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds - 30;
|
|
||||||
on-timeout = ''notify-send "Auto-locking in 30 seconds"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds - 10;
|
|
||||||
on-timeout = ''notify-send -u critical "Auto-locking in 10 seconds"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds;
|
|
||||||
on-timeout = ''loginctl lock-session'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = lockSeconds + 5;
|
|
||||||
on-timeout = ''hyprctl dispatch dpms off'';
|
|
||||||
on-resume = ''hyprctl dispatch dpms on'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
28
modules/home-manager/mako.nix
Normal file
28
modules/home-manager/mako.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{style, ...}: {
|
||||||
|
services.mako = with style.colors.withHashPrefix; {
|
||||||
|
enable = false;
|
||||||
|
|
||||||
|
anchor = "top-right";
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
border-size=1
|
||||||
|
max-visible=5
|
||||||
|
default-timeout=15000
|
||||||
|
font=Symbols Nerd Font ${toString font.size},${font.name} ${toString font.size}
|
||||||
|
anchor=top-right
|
||||||
|
|
||||||
|
background-color=${colors.bg}
|
||||||
|
text-color=${colors.text}
|
||||||
|
border-color=${colors.primary}
|
||||||
|
progress-color=${colors.primary}
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
border-color=${urgent}
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
background-color=${urgent}
|
||||||
|
border-color=${urgent}
|
||||||
|
text-color=${bg}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,21 +2,51 @@
|
||||||
style,
|
style,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg = {
|
home.file."${config.xdg.configHome}/mako/config" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mimeApps = {
|
text = with style.colors.withHashPrefix; ''
|
||||||
enable = true;
|
border-size=1
|
||||||
defaultApplications = {
|
max-visible=5
|
||||||
"x-scheme-handler/http" = "firefox.desktop";
|
default-timeout=15000
|
||||||
"x-scheme-handler/https" = "firefox.desktop";
|
font=Symbols Nerd Font ${toString style.font.size},${style.font.name} ${toString style.font.size}
|
||||||
};
|
anchor=top-right
|
||||||
};
|
|
||||||
|
background-color=${bg}
|
||||||
|
text-color=${text}
|
||||||
|
border-color=${primary}
|
||||||
|
progress-color=${primary}
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
border-color=${urgent}
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
background-color=${urgent}
|
||||||
|
border-color=${urgent}
|
||||||
|
text-color=${bg}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file."${config.xdg.configHome}/tofi/config" = {
|
||||||
|
enable = true;
|
||||||
|
text = ''
|
||||||
|
font = ${pkgs.iosevkaLyteTerm}/share/fonts/truetype/IosevkaLyteTerm-regular.ttf
|
||||||
|
|
||||||
|
text-color = #f8f8f8
|
||||||
|
prompt-color = #f38ba8
|
||||||
|
selection-color = #66d9ef
|
||||||
|
background-color = #1e1e2e
|
||||||
|
border-width = 4
|
||||||
|
border-color = #66d9ef
|
||||||
|
|
||||||
|
fuzzy-match = true
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
|
|
|
@ -123,8 +123,6 @@
|
||||||
};
|
};
|
||||||
"mpris" = {
|
"mpris" = {
|
||||||
"format" = "{title}\nby {artist}";
|
"format" = "{title}\nby {artist}";
|
||||||
"title-len" = 64;
|
|
||||||
"artist-len" = 61;
|
|
||||||
"justify" = "center";
|
"justify" = "center";
|
||||||
};
|
};
|
||||||
"pulseaudio" = {
|
"pulseaudio" = {
|
||||||
|
|
|
@ -4,7 +4,6 @@ if wezterm.config_builder then
|
||||||
config = wezterm.config_builder()
|
config = wezterm.config_builder()
|
||||||
end
|
end
|
||||||
|
|
||||||
config.adjust_window_size_when_changing_font_size = false
|
|
||||||
config.font = wezterm.font_with_fallback {
|
config.font = wezterm.font_with_fallback {
|
||||||
{ family = "IosevkaLyteTerm", weight = 'Medium', italic = false },
|
{ family = "IosevkaLyteTerm", weight = 'Medium', italic = false },
|
||||||
{ family = 'Symbols Nerd Font Mono', weight = 'Regular', italic = false },
|
{ family = 'Symbols Nerd Font Mono', weight = 'Regular', italic = false },
|
||||||
|
@ -22,12 +21,8 @@ config.tab_bar_at_bottom = true
|
||||||
config.window_background_opacity = 1.0
|
config.window_background_opacity = 1.0
|
||||||
config.enable_kitty_keyboard = true
|
config.enable_kitty_keyboard = true
|
||||||
config.show_new_tab_button_in_tab_bar = true
|
config.show_new_tab_button_in_tab_bar = true
|
||||||
config.notification_handling = "SuppressFromFocusedTab"
|
|
||||||
|
|
||||||
-- config.front_end = "WebGpu"
|
-- config.front_end = "WebGpu"
|
||||||
-- config.webgpu_power_preference = 'HighPerformance'
|
|
||||||
config.enable_wayland = true
|
|
||||||
-- config.use_ime = true
|
|
||||||
|
|
||||||
local function tab_title(tab_info)
|
local function tab_title(tab_info)
|
||||||
local title = tab_info.tab_title
|
local title = tab_info.tab_title
|
||||||
|
|
|
@ -33,12 +33,6 @@
|
||||||
package = flakeInputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = flakeInputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.daniel = {
|
|
||||||
imports = with homeManagerModules; [
|
|
||||||
hyprland
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: include the home-manager modules for daniel?
|
# TODO: include the home-manager modules for daniel?
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -47,25 +41,6 @@
|
||||||
pipewire
|
pipewire
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.user.services."wait-for-full-path" = {
|
|
||||||
description = "wait for systemd units to have full PATH";
|
|
||||||
wantedBy = ["xdg-desktop-portal.service"];
|
|
||||||
before = ["xdg-desktop-portal.service"];
|
|
||||||
path = with pkgs; [systemd coreutils gnugrep];
|
|
||||||
script = ''
|
|
||||||
ispresent () {
|
|
||||||
systemctl --user show-environment | grep -E '^PATH=.*/.nix-profile/bin'
|
|
||||||
}
|
|
||||||
while ! ispresent; do
|
|
||||||
sleep 0.1;
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
TimeoutStartSec = "60";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.daniel = {
|
home-manager.users.daniel = {
|
||||||
imports = with homeManagerModules; [
|
imports = with homeManagerModules; [
|
||||||
sway
|
sway
|
||||||
|
@ -107,6 +82,8 @@
|
||||||
environment = {
|
environment = {
|
||||||
variables = {
|
variables = {
|
||||||
VISUAL = "hx";
|
VISUAL = "hx";
|
||||||
|
PAGER = "less";
|
||||||
|
MANPAGER = "less";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
@ -195,9 +172,22 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
less-pager = {pkgs, ...}: {
|
||||||
|
environment = {
|
||||||
|
systemPackages = [
|
||||||
|
pkgs.less
|
||||||
|
];
|
||||||
|
variables = {
|
||||||
|
PAGER = "less";
|
||||||
|
MANPAGER = "less";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
helix-text-editor = {pkgs, ...}: {
|
helix-text-editor = {pkgs, ...}: {
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = [
|
systemPackages = [
|
||||||
|
pkgs.less
|
||||||
helix.packages.${pkgs.system}.helix
|
helix.packages.${pkgs.system}.helix
|
||||||
];
|
];
|
||||||
variables = {
|
variables = {
|
||||||
|
@ -237,36 +227,30 @@
|
||||||
|
|
||||||
my-favorite-default-system-apps = {pkgs, ...}: {
|
my-favorite-default-system-apps = {pkgs, ...}: {
|
||||||
imports = with nixosModules; [
|
imports = with nixosModules; [
|
||||||
|
less-pager
|
||||||
helix-text-editor
|
helix-text-editor
|
||||||
zellij-multiplexer
|
zellij-multiplexer
|
||||||
fish-shell
|
fish-shell
|
||||||
];
|
];
|
||||||
|
|
||||||
environment = {
|
environment.systemPackages = with pkgs; [
|
||||||
variables = {
|
curl
|
||||||
PAGER = "bat --style=plain";
|
dua
|
||||||
MANPAGER = "bat --style=plain";
|
eza # TODO: needs shell aliases
|
||||||
};
|
fd
|
||||||
systemPackages = with pkgs; [
|
file
|
||||||
curl
|
iputils
|
||||||
dua
|
nettools
|
||||||
bat
|
/*
|
||||||
eza
|
nodePackages.bash-language-server # just pull in as needed?
|
||||||
fd
|
shellcheck
|
||||||
file
|
shfmt
|
||||||
iputils
|
*/
|
||||||
nettools
|
killall
|
||||||
/*
|
ripgrep
|
||||||
nodePackages.bash-language-server # just pull in as needed?
|
rsync
|
||||||
shellcheck
|
sd
|
||||||
shfmt
|
];
|
||||||
*/
|
|
||||||
killall
|
|
||||||
ripgrep
|
|
||||||
rsync
|
|
||||||
sd
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
traceroute.enable = true;
|
traceroute.enable = true;
|
||||||
|
@ -368,7 +352,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
cross-compiler = {config, ...}: {
|
cross-compiler = {config, ...}: {
|
||||||
boot.binfmt.emulatedSystems = ["aarch64-linux" "i686-linux"];
|
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||||
};
|
};
|
||||||
|
|
||||||
default-nix-configuration-and-overlays = {
|
default-nix-configuration-and-overlays = {
|
||||||
|
@ -393,7 +377,7 @@
|
||||||
trusted-users = ["root" "daniel"];
|
trusted-users = ["root" "daniel"];
|
||||||
experimental-features = lib.mkDefault ["nix-command" "flakes"];
|
experimental-features = lib.mkDefault ["nix-command" "flakes"];
|
||||||
|
|
||||||
extra-platforms = ["i686-linux" "aarch64-linux"];
|
extra-platforms = ["aarch64-linux"];
|
||||||
|
|
||||||
substituters = [
|
substituters = [
|
||||||
# TODO: dedupe with flake's config? is that even necessary?
|
# TODO: dedupe with flake's config? is that even necessary?
|
||||||
|
@ -453,11 +437,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
development-tools = {
|
development-tools = {pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = with nixosModules; [
|
imports = with nixosModules; [
|
||||||
postgres
|
postgres
|
||||||
podman
|
podman
|
||||||
|
@ -477,11 +457,11 @@
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
taplo # toml language server for editing helix configs per repo
|
taplo # toml language server for editing helix configs per repo
|
||||||
picocom # serial
|
|
||||||
pgcli
|
pgcli
|
||||||
oils-for-unix
|
oil
|
||||||
watchexec
|
watchexec
|
||||||
android-tools
|
android-tools
|
||||||
|
kubectl
|
||||||
stern
|
stern
|
||||||
libresprite
|
libresprite
|
||||||
# logseq
|
# logseq
|
||||||
|
@ -521,17 +501,6 @@
|
||||||
yubico-piv-tool
|
yubico-piv-tool
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.direnv.mise = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.mise = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
enableBashIntegration = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.thunderbird = {
|
programs.thunderbird = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
@ -548,7 +517,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.jujutsu = {
|
programs.jujutsu = {
|
||||||
enable = lib.mkDefault true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.k9s = {
|
programs.k9s = {
|
||||||
|
@ -613,13 +582,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
android-dev = {pkgs, ...}: {
|
|
||||||
services.udev.packages = [
|
|
||||||
pkgs.android-udev-rules
|
|
||||||
];
|
|
||||||
environment.systemPackages = [pkgs.android-studio];
|
|
||||||
};
|
|
||||||
|
|
||||||
graphical-workstation = {
|
graphical-workstation = {
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
@ -629,15 +591,13 @@
|
||||||
}: {
|
}: {
|
||||||
imports = with nixosModules; [
|
imports = with nixosModules; [
|
||||||
sway
|
sway
|
||||||
hyprland
|
# hyprland
|
||||||
enable-flatpaks-and-appimages
|
enable-flatpaks-and-appimages
|
||||||
fonts
|
fonts
|
||||||
development-tools
|
development-tools
|
||||||
printing
|
printing
|
||||||
music-consumption
|
music-consumption
|
||||||
video-tools
|
video-tools
|
||||||
radio-tools
|
|
||||||
android-dev
|
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
|
@ -647,7 +607,6 @@
|
||||||
then {
|
then {
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
|
||||||
/*
|
/*
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
|
@ -665,8 +624,6 @@
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
libnotify
|
libnotify
|
||||||
slides
|
slides
|
||||||
slack
|
|
||||||
discord
|
|
||||||
];
|
];
|
||||||
variables = {
|
variables = {
|
||||||
/*
|
/*
|
||||||
|
@ -680,14 +637,6 @@
|
||||||
# gnome = {};
|
# gnome = {};
|
||||||
# intel = {};
|
# intel = {};
|
||||||
|
|
||||||
radio-tools = {pkgs, ...}: {
|
|
||||||
environment = {
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
chirp
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
kde-connect = {
|
kde-connect = {
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
|
@ -701,13 +650,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts = {pkgs, ...}: {
|
fonts = {pkgs, ...}: {
|
||||||
fonts.packages = [
|
fonts.packages = with pkgs; [
|
||||||
(
|
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
||||||
# allow nixpkgs 24.11 and unstable to both work
|
|
||||||
if builtins.hasAttr "nerd-fonts" pkgs
|
|
||||||
then (pkgs.nerd-fonts.symbols-only)
|
|
||||||
else (pkgs.nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
|
||||||
)
|
|
||||||
pkgs.iosevkaLyteTerm
|
pkgs.iosevkaLyteTerm
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -767,7 +711,7 @@
|
||||||
*/
|
*/
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.gnupg.agent.pinentryPackage = lib.mkForce pkgs.pinentry-qt;
|
programs.gnupg.agent.pinentryPackage = pkgs.pinentry-tty;
|
||||||
};
|
};
|
||||||
|
|
||||||
lutris = {pkgs, ...}: {
|
lutris = {pkgs, ...}: {
|
||||||
|
@ -933,15 +877,6 @@
|
||||||
backend = "podman";
|
backend = "podman";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
|
||||||
extraHosts = ''
|
|
||||||
127.0.0.1 host.docker.internal
|
|
||||||
::1 host.docker.internal
|
|
||||||
127.0.0.1 host.containers.internal
|
|
||||||
::1 host.containers.internal
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual-machines = {pkgs, ...}: {
|
virtual-machines = {pkgs, ...}: {
|
||||||
|
@ -1019,26 +954,7 @@
|
||||||
wifi = {lib, ...}: let
|
wifi = {lib, ...}: let
|
||||||
inherit (lib) mkDefault;
|
inherit (lib) mkDefault;
|
||||||
in {
|
in {
|
||||||
networking.networkmanager = {
|
networking.networkmanager.enable = mkDefault true;
|
||||||
enable = mkDefault true;
|
|
||||||
# ensureProfiles = {
|
|
||||||
# profiles = {
|
|
||||||
# home-wifi = {
|
|
||||||
# id="home-wifi";
|
|
||||||
# permissions = "";
|
|
||||||
# type = "wifi";
|
|
||||||
# };
|
|
||||||
# wifi = {
|
|
||||||
# ssid = "";
|
|
||||||
# };
|
|
||||||
# wifi-security = {
|
|
||||||
# # auth-alg = "";
|
|
||||||
# # key-mgmt = "";
|
|
||||||
# psk = "";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
systemd.services.NetworkManager-wait-online.enable = mkDefault false;
|
systemd.services.NetworkManager-wait-online.enable = mkDefault false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1121,7 +1037,7 @@
|
||||||
createHome = true;
|
createHome = true;
|
||||||
openssh.authorizedKeys.keys = [pubkey];
|
openssh.authorizedKeys.keys = [pubkey];
|
||||||
group = username;
|
group = username;
|
||||||
extraGroups = ["users" "wheel" "video" "dialout" "uucp" "kvm"];
|
extraGroups = ["users" "wheel" "video" "dialout" "uucp"];
|
||||||
packages = [];
|
packages = [];
|
||||||
};
|
};
|
||||||
home-manager.users.daniel = {
|
home-manager.users.daniel = {
|
||||||
|
@ -1218,13 +1134,12 @@
|
||||||
root
|
root
|
||||||
];
|
];
|
||||||
|
|
||||||
# boot.tmp.useTmpfs = true;
|
boot.tmp.useTmpfs = true;
|
||||||
systemd.services.nix-daemon = {
|
systemd.services.nix-daemon = {
|
||||||
environment.TMPDIR = "/var/tmp";
|
environment.TMPDIR = "/var/tmp";
|
||||||
};
|
};
|
||||||
boot.tmp.cleanOnBoot = true;
|
boot.tmp.cleanOnBoot = true;
|
||||||
# boot.uki.tries = 3;
|
services.irqbalance.enable = true;
|
||||||
# services.irqbalance.enable = true;
|
|
||||||
|
|
||||||
# this is not ready for primetime yet
|
# this is not ready for primetime yet
|
||||||
# services.kanidm = {
|
# services.kanidm = {
|
||||||
|
|
|
@ -35,7 +35,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
initrd.supportedFilesystems = {
|
initrd.supportedFilesystems = {
|
||||||
zfs = true;
|
zfs = true;
|
||||||
};
|
};
|
||||||
# kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
||||||
initrd.availableKernelModules = ["ehci_pci" "mpt3sas" "usbhid" "sd_mod"];
|
initrd.availableKernelModules = ["ehci_pci" "mpt3sas" "usbhid" "sd_mod"];
|
||||||
kernelModules = ["kvm-intel"];
|
kernelModules = ["kvm-intel"];
|
||||||
kernelParams = ["nohibernate"];
|
kernelParams = ["nohibernate"];
|
||||||
|
@ -220,6 +220,8 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
networking.firewall.allowedUDPPorts = lib.mkIf config.services.headscale.enable [3478];
|
networking.firewall.allowedUDPPorts = lib.mkIf config.services.headscale.enable [3478];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
# TODO: I think I need to setup my account? wondering if this can be done in nix as well
|
||||||
|
|
||||||
services.restic.commonPaths = ["/var/lib/soju" "/var/lib/private/soju"];
|
services.restic.commonPaths = ["/var/lib/soju" "/var/lib/private/soju"];
|
||||||
services.soju = {
|
services.soju = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -268,7 +270,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = false;
|
enable = true;
|
||||||
hostName = "nextcloud.h.lyte.dev";
|
hostName = "nextcloud.h.lyte.dev";
|
||||||
maxUploadSize = "100G";
|
maxUploadSize = "100G";
|
||||||
extraAppsEnable = true;
|
extraAppsEnable = true;
|
||||||
|
@ -304,11 +306,9 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
serviceConfig.Group = "nextcloud";
|
serviceConfig.Group = "nextcloud";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.phpfpm = lib.mkIf config.services.nextcloud.enable {
|
services.phpfpm.pools.nextcloud.settings = {
|
||||||
pools.nextcloud.settings = {
|
"listen.owner" = "caddy";
|
||||||
"listen.owner" = "caddy";
|
"listen.group" = "caddy";
|
||||||
"listen.group" = "caddy";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."nextcloud.h.lyte.dev" = let
|
services.caddy.virtualHosts."nextcloud.h.lyte.dev" = let
|
||||||
|
@ -813,117 +813,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
# acmeCA = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
# acmeCA = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
({...}: let
|
{
|
||||||
theme = pkgs.fetchzip {
|
|
||||||
url = "https://github.com/catppuccin/gitea/releases/download/v1.0.1/catppuccin-gitea.tar.gz";
|
|
||||||
sha256 = "sha256-et5luA3SI7iOcEIQ3CVIu0+eiLs8C/8mOitYlWQa/uI=";
|
|
||||||
};
|
|
||||||
logos = {
|
|
||||||
png = pkgs.fetchurl {
|
|
||||||
url = "https://lyte.dev/icon.png";
|
|
||||||
sha256 = "sha256-o/iZDohzXBGbpJ2PR1z23IF4FZignTAK88QwrfgTwlk=";
|
|
||||||
};
|
|
||||||
svg = pkgs.fetchurl {
|
|
||||||
url = "https://lyte.dev/img/logo.svg";
|
|
||||||
sha256 = "sha256-G9leVXNanoaCizXJaXn++JzaVcYOgRc3dJKhTQsMhVs=";
|
|
||||||
};
|
|
||||||
svg-with-background = pkgs.fetchurl {
|
|
||||||
url = "https://lyte.dev/img/logo-with-background.svg";
|
|
||||||
sha256 = "sha256-CdMTRXoQ3AI76aHW/sTqvZo1q/0XQdnQs9V1vGmiffY=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
forgejoCustomCss =
|
|
||||||
pkgs.writeText "iosevkalyte.css"
|
|
||||||
''
|
|
||||||
@font-face {
|
|
||||||
font-family: ldiosevka;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local("Iosevka"), url("//lyte.dev/font/iosevkalytewebmin/iosevkalyteweb-regular.subset.woff2");
|
|
||||||
font-display: swap
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: ldiosevka;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local("Iosevka"), url("//lyte.dev/font/iosevkalytewebmin/iosevkalyteweb-italic.subset.woff2");
|
|
||||||
font-display: swap
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: ldiosevka;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local("Iosevka"), url("//lyte.dev/font/iosevkalytewebmin/iosevkalyteweb-bolditalic.woff2");
|
|
||||||
font-display: swap
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--fonts-monospace: ldiosevka, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace, var(--fonts-emoji);
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
forgejoCustomHeaderTmpl =
|
|
||||||
pkgs.writeText "header.tmpl"
|
|
||||||
''
|
|
||||||
<link rel="stylesheet" href="/assets/css/iosevkalyte.css" />
|
|
||||||
<script async="" defer="" data-domain="lyte.dev" src="https://a.lyte.dev/js/script.js"></script>
|
|
||||||
'';
|
|
||||||
forgejoCustomHomeTmpl =
|
|
||||||
pkgs.writeText "home.tmpl"
|
|
||||||
''
|
|
||||||
{{template "base/head" .}}
|
|
||||||
<div role="main" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}" class="page-content home">
|
|
||||||
<div class="tw-mb-8 tw-px-8">
|
|
||||||
<div class="center">
|
|
||||||
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}">
|
|
||||||
<div class="hero">
|
|
||||||
<h1 class="ui icon header title">
|
|
||||||
{{AppDisplayName}}
|
|
||||||
</h1>
|
|
||||||
<h2>{{ctx.Locale.Tr "startpage.app_desc"}}</h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="ui stackable middle very relaxed page grid">
|
|
||||||
<div class="eight wide center column">
|
|
||||||
<h1 class="hero ui icon header">
|
|
||||||
{{svg "octicon-flame"}} {{ctx.Locale.Tr "startpage.install"}}
|
|
||||||
</h1>
|
|
||||||
<p class="large">
|
|
||||||
{{ctx.Locale.Tr "startpage.install_desc" "https://forgejo.org/download/#installation-from-binary" "https://forgejo.org/download/#container-image" "https://forgejo.org/download"}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="eight wide center column">
|
|
||||||
<h1 class="hero ui icon header">
|
|
||||||
{{svg "octicon-device-desktop"}} {{ctx.Locale.Tr "startpage.platform"}}
|
|
||||||
</h1>
|
|
||||||
<p class="large">
|
|
||||||
{{ctx.Locale.Tr "startpage.platform_desc"}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="ui stackable middle very relaxed page grid">
|
|
||||||
<div class="eight wide center column">
|
|
||||||
<h1 class="hero ui icon header">
|
|
||||||
{{svg "octicon-rocket"}} {{ctx.Locale.Tr "startpage.lightweight"}}
|
|
||||||
</h1>
|
|
||||||
<p class="large">
|
|
||||||
{{ctx.Locale.Tr "startpage.lightweight_desc"}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="eight wide center column">
|
|
||||||
<h1 class="hero ui icon header">
|
|
||||||
{{svg "octicon-code"}} {{ctx.Locale.Tr "startpage.license"}}
|
|
||||||
</h1>
|
|
||||||
<p class="large">
|
|
||||||
{{ctx.Locale.Tr "startpage.license_desc" "https://forgejo.org/download" "https://codeberg.org/forgejo/forgejo"}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{template "base/footer" .}}
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
# systemd.tmpfiles.settings = {
|
# systemd.tmpfiles.settings = {
|
||||||
# "10-forgejo" = {
|
# "10-forgejo" = {
|
||||||
# "/storage/forgejo" = {
|
# "/storage/forgejo" = {
|
||||||
|
@ -937,7 +827,6 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
# };
|
# };
|
||||||
services.forgejo = {
|
services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.unstable-packages.forgejo;
|
|
||||||
stateDir = "/storage/forgejo";
|
stateDir = "/storage/forgejo";
|
||||||
settings = {
|
settings = {
|
||||||
DEFAULT = {
|
DEFAULT = {
|
||||||
|
@ -965,8 +854,8 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
# LEVEL = "Debug";
|
# LEVEL = "Debug";
|
||||||
};
|
};
|
||||||
ui = {
|
ui = {
|
||||||
THEMES = "catppuccin-mocha-sapphire,forgejo-auto,forgejo-light,forgejo-dark";
|
THEMES = "forgejo-auto,forgejo-light,forgejo-dark";
|
||||||
DEFAULT_THEME = "catppuccin-mocha-sapphire";
|
DEFAULT_THEME = "forgejo-auto";
|
||||||
};
|
};
|
||||||
indexer = {
|
indexer = {
|
||||||
REPO_INDEXER_ENABLED = "true";
|
REPO_INDEXER_ENABLED = "true";
|
||||||
|
@ -975,13 +864,6 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
# REPO_INDEXER_INCLUDE =
|
# REPO_INDEXER_INCLUDE =
|
||||||
REPO_INDEXER_EXCLUDE = "resources/bin/**";
|
REPO_INDEXER_EXCLUDE = "resources/bin/**";
|
||||||
};
|
};
|
||||||
"markup.asciidoc" = {
|
|
||||||
ENABLED = true;
|
|
||||||
NEED_POSTPROCESS = true;
|
|
||||||
FILE_EXTENSIONS = ".adoc,.asciidoc";
|
|
||||||
RENDER_COMMAND = "${pkgs.asciidoctor}/bin/asciidoctor --embedded --safe-mode=secure --out-file=- -";
|
|
||||||
IS_INPUT_FILE = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
lfs = {
|
lfs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1001,26 +883,6 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
"forgejo-runner.env" = {mode = "0400";};
|
"forgejo-runner.env" = {mode = "0400";};
|
||||||
};
|
};
|
||||||
systemd.services.gitea-runner-beefcake.after = ["sops-nix.service"];
|
systemd.services.gitea-runner-beefcake.after = ["sops-nix.service"];
|
||||||
|
|
||||||
systemd.services.forgejo = {
|
|
||||||
preStart = lib.mkAfter ''
|
|
||||||
rm -rf ${config.services.forgejo.stateDir}/custom/public
|
|
||||||
mkdir -p ${config.services.forgejo.stateDir}/custom/public/
|
|
||||||
mkdir -p ${config.services.forgejo.stateDir}/custom/public/assets/
|
|
||||||
mkdir -p ${config.services.forgejo.stateDir}/custom/public/assets/img/
|
|
||||||
mkdir -p ${config.services.forgejo.stateDir}/custom/public/assets/css/
|
|
||||||
mkdir -p ${config.services.forgejo.stateDir}/custom/templates/custom/
|
|
||||||
ln -sf ${logos.png} ${config.services.forgejo.stateDir}/custom/public/assets/img/logo.png
|
|
||||||
ln -sf ${logos.svg} ${config.services.forgejo.stateDir}/custom/public/assets/img/logo.svg
|
|
||||||
ln -sf ${logos.png} ${config.services.forgejo.stateDir}/custom/public/assets/img/favicon.png
|
|
||||||
ln -sf ${logos.svg-with-background} ${config.services.forgejo.stateDir}/custom/public/assets/img/favicon.svg
|
|
||||||
ln -sf ${theme}/theme-catppuccin-mocha-sapphire.css ${config.services.forgejo.stateDir}/custom/public/assets/css/
|
|
||||||
ln -sf ${forgejoCustomCss} ${config.services.forgejo.stateDir}/custom/public/assets/css/iosevkalyte.css
|
|
||||||
ln -sf ${forgejoCustomHeaderTmpl} ${config.services.forgejo.stateDir}/custom/templates/custom/header.tmpl
|
|
||||||
ln -sf ${forgejoCustomHomeTmpl} ${config.services.forgejo.stateDir}/custom/templates/home.tmpl
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gitea-actions-runner = {
|
services.gitea-actions-runner = {
|
||||||
# TODO: simple git-based automation would be dope? maybe especially for
|
# TODO: simple git-based automation would be dope? maybe especially for
|
||||||
# mirroring to github super easy?
|
# mirroring to github super easy?
|
||||||
|
@ -1069,7 +931,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
reverse_proxy :${toString config.services.forgejo.settings.server.HTTP_PORT}
|
reverse_proxy :${toString config.services.forgejo.settings.server.HTTP_PORT}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
{
|
{
|
||||||
services.restic.commonPaths = [
|
services.restic.commonPaths = [
|
||||||
config.services.vaultwarden.backupDir
|
config.services.vaultwarden.backupDir
|
||||||
|
@ -1390,13 +1252,10 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
port
|
port
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
({
|
({options, ...}: let
|
||||||
config,
|
/*
|
||||||
options,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
toml = pkgs.formats.toml {};
|
toml = pkgs.formats.toml {};
|
||||||
kanidm-package = config.services.kanidm.package;
|
package = pkgs.kanidm;
|
||||||
domain = "idm.h.lyte.dev";
|
domain = "idm.h.lyte.dev";
|
||||||
name = "kanidm";
|
name = "kanidm";
|
||||||
storage = "/storage/${name}";
|
storage = "/storage/${name}";
|
||||||
|
@ -1475,12 +1334,12 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
# Does not work well with the temporary root
|
# Does not work well with the temporary root
|
||||||
#UMask = "0066";
|
#UMask = "0066";
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
in {
|
in {
|
||||||
# kanidm
|
# kanidm
|
||||||
|
/*
|
||||||
config = {
|
config = {
|
||||||
# reload certs from caddy every 5 minutes
|
# we need a mechanism to get the certificates that caddy provisions for us
|
||||||
# TODO: ideally some kind of file watcher service would make way more sense here?
|
|
||||||
# or we could simply setup the permissions properly somehow?
|
|
||||||
systemd.timers."copy-kanidm-certificates-from-caddy" = {
|
systemd.timers."copy-kanidm-certificates-from-caddy" = {
|
||||||
wantedBy = ["timers.target"];
|
wantedBy = ["timers.target"];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
|
@ -1491,10 +1350,8 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services."copy-kanidm-certificates-from-caddy" = {
|
systemd.services."copy-kanidm-certificates-from-caddy" = {
|
||||||
# get the certificates that caddy provisions for us
|
|
||||||
script = ''
|
script = ''
|
||||||
umask 077
|
umask 077
|
||||||
# this line should be unnecessary now that we have this in tmpfiles
|
|
||||||
install -d -m 0700 -o "${user}" -g "${group}" "${storage}/data" "${storage}/certs"
|
install -d -m 0700 -o "${user}" -g "${group}" "${storage}/data" "${storage}/certs"
|
||||||
cd /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/idm.h.lyte.dev
|
cd /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/idm.h.lyte.dev
|
||||||
install -m 0700 -o "${user}" -g "${group}" idm.h.lyte.dev.key idm.h.lyte.dev.crt "${storage}/certs"
|
install -m 0700 -o "${user}" -g "${group}" idm.h.lyte.dev.key idm.h.lyte.dev.crt "${storage}/certs"
|
||||||
|
@ -1506,8 +1363,9 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [kanidm-package];
|
environment.systemPackages = [package];
|
||||||
|
|
||||||
|
# TODO: should I use this for /storage/kanidm/certs etc.?
|
||||||
systemd.tmpfiles.settings."10-kanidm" = {
|
systemd.tmpfiles.settings."10-kanidm" = {
|
||||||
"${serverSettings.online_backup.path}".d = {
|
"${serverSettings.online_backup.path}".d = {
|
||||||
inherit user group;
|
inherit user group;
|
||||||
|
@ -1537,7 +1395,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
inherit group;
|
inherit group;
|
||||||
description = "kanidm server";
|
description = "kanidm server";
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
packages = [kanidm-package];
|
packages = [package];
|
||||||
};
|
};
|
||||||
users.users."${user}-unixd" = {
|
users.users."${user}-unixd" = {
|
||||||
group = "${group}-unixd";
|
group = "${group}-unixd";
|
||||||
|
@ -1549,7 +1407,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
# loosely based off it
|
# loosely based off it
|
||||||
systemd.services.kanidm = {
|
systemd.services.kanidm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
path = with pkgs; [openssl] ++ [kanidm-package];
|
path = with pkgs; [openssl] ++ [package];
|
||||||
description = "kanidm identity management daemon";
|
description = "kanidm identity management daemon";
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
|
@ -1558,7 +1416,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
pwd
|
pwd
|
||||||
ls -la
|
ls -la
|
||||||
ls -laR /storage/kanidm
|
ls -laR /storage/kanidm
|
||||||
${kanidm-package}/bin/kanidmd server -c ${serverConfigFile}
|
${package}/bin/kanidmd server -c ${serverConfigFile}
|
||||||
'';
|
'';
|
||||||
# environment.RUST_LOG = serverSettings.log_level;
|
# environment.RUST_LOG = serverSettings.log_level;
|
||||||
serviceConfig = lib.mkMerge [
|
serviceConfig = lib.mkMerge [
|
||||||
|
@ -1603,7 +1461,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
CacheDirectory = "${name}-unixd";
|
CacheDirectory = "${name}-unixd";
|
||||||
CacheDirectoryMode = "0700";
|
CacheDirectoryMode = "0700";
|
||||||
RuntimeDirectory = "${name}-unixd";
|
RuntimeDirectory = "${name}-unixd";
|
||||||
ExecStart = "${kanidm-package}/bin/kanidm_unixd";
|
ExecStart = "${package}/bin/kanidm_unixd";
|
||||||
User = "${user}-unixd";
|
User = "${user}-unixd";
|
||||||
Group = "${group}-unixd";
|
Group = "${group}-unixd";
|
||||||
|
|
||||||
|
@ -1637,7 +1495,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
partOf = ["kanidm-unixd.service"];
|
partOf = ["kanidm-unixd.service"];
|
||||||
restartTriggers = [unixdConfigFile clientConfigFile];
|
restartTriggers = [unixdConfigFile clientConfigFile];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${kanidm-package}/bin/kanidm_unixd_tasks";
|
ExecStart = "${package}/bin/kanidm_unixd_tasks";
|
||||||
|
|
||||||
BindReadOnlyPaths = [
|
BindReadOnlyPaths = [
|
||||||
"/nix/store"
|
"/nix/store"
|
||||||
|
@ -1675,7 +1533,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
"kanidm/unixd".source = unixdConfigFile;
|
"kanidm/unixd".source = unixdConfigFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
system.nssModules = [kanidm-package];
|
system.nssModules = [package];
|
||||||
|
|
||||||
system.nssDatabases.group = [name];
|
system.nssDatabases.group = [name];
|
||||||
system.nssDatabases.passwd = [name];
|
system.nssDatabases.passwd = [name];
|
||||||
|
@ -1703,6 +1561,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
systemd.tmpfiles.settings = {
|
systemd.tmpfiles.settings = {
|
||||||
|
@ -1907,7 +1766,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
|
|
||||||
services.paperless = {
|
services.paperless = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs.paperless-ngx;
|
package = pkgs.paperless-ngx;
|
||||||
dataDir = "/storage/paperless";
|
dataDir = "/storage/paperless";
|
||||||
passwordFile = config.sops.secrets.paperless-superuser-password.path;
|
passwordFile = config.sops.secrets.paperless-superuser-password.path;
|
||||||
};
|
};
|
||||||
|
@ -1934,7 +1793,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
|
|
||||||
virtualisation.oci-containers = {
|
virtualisation.oci-containers = {
|
||||||
containers.actual = {
|
containers.actual = {
|
||||||
image = "ghcr.io/actualbudget/actual-server:24.11.0";
|
image = "ghcr.io/actualbudget/actual-server:24.10.1";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
ports = ["5006:5006"];
|
ports = ["5006:5006"];
|
||||||
volumes = ["/storage/actual:/data"];
|
volumes = ["/storage/actual:/data"];
|
||||||
|
@ -1945,29 +1804,6 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
||||||
extraConfig = ''reverse_proxy :5006'';
|
extraConfig = ''reverse_proxy :5006'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
|
||||||
services.factorio = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.factorio-headless.override {
|
|
||||||
versionsJson = ./factorio-versions.json;
|
|
||||||
};
|
|
||||||
admins = ["lytedev"];
|
|
||||||
autosave-interval = 5;
|
|
||||||
game-name = "Flanwheel Online";
|
|
||||||
description = "Space Age 2.0";
|
|
||||||
openFirewall = true;
|
|
||||||
lan = true;
|
|
||||||
# public = true; # NOTE: cannot be true if requireUserVerification is false
|
|
||||||
port = 34197;
|
|
||||||
requireUserVerification = false; # critical for DRM-free users
|
|
||||||
|
|
||||||
# contains the game password and account password for "public" servers
|
|
||||||
extraSettingsFile = config.sops.secrets.factorio-server-settings.path;
|
|
||||||
};
|
|
||||||
sops.secrets = {
|
|
||||||
factorio-server-settings = {mode = "0777";};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
{
|
{
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.05";
|
||||||
home-manager.users.daniel.home.stateVersion = "24.05";
|
home-manager.users.daniel.home.stateVersion = "24.05";
|
||||||
networking.hostName = "dragon";
|
networking.hostName = "dragon";
|
||||||
}
|
}
|
||||||
|
@ -31,14 +31,6 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
hardware.amdgpu = {
|
|
||||||
amdvlk = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
hardware.graphics.extraPackages = [
|
hardware.graphics.extraPackages = [
|
||||||
# pkgs.rocmPackages.clr.icd
|
# pkgs.rocmPackages.clr.icd
|
||||||
pkgs.amdvlk
|
pkgs.amdvlk
|
||||||
|
@ -103,8 +95,8 @@
|
||||||
# TODO: monitor config module?
|
# TODO: monitor config module?
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = {
|
settings = {
|
||||||
exec-once = [
|
env = [
|
||||||
"eww open bar1"
|
"EWW_BAR_MON,1"
|
||||||
];
|
];
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
monitor = [
|
monitor = [
|
||||||
|
@ -116,23 +108,12 @@
|
||||||
"desc:LG Display 0x0521,3840x2160@120,0x0,1"
|
"desc:LG Display 0x0521,3840x2160@120,0x0,1"
|
||||||
"desc:Dell Inc. DELL U2720Q D3TM623,3840x2160@60,3840x0,1.5,transform,1"
|
"desc:Dell Inc. DELL U2720Q D3TM623,3840x2160@60,3840x0,1.5,transform,1"
|
||||||
*/
|
*/
|
||||||
"DP-1,3840x2160@60,0x0,1.5,transform,1"
|
"DP-2,3840x2160@60,0x0,1.5,transform,1"
|
||||||
];
|
];
|
||||||
input = {
|
input = {
|
||||||
force_no_accel = true;
|
force_no_accel = true;
|
||||||
sensitivity = 1; # -1.0 - 1.0, 0 means no modification.
|
sensitivity = 1; # -1.0 - 1.0, 0 means no modification.
|
||||||
};
|
};
|
||||||
workspace = [
|
|
||||||
"1, monitor:DP-3, default:true"
|
|
||||||
"2, monitor:DP-3, default:false"
|
|
||||||
"3, monitor:DP-3, default:false"
|
|
||||||
"4, monitor:DP-3, default:false"
|
|
||||||
"5, monitor:DP-3, default:false"
|
|
||||||
"6, monitor:DP-3, default:false"
|
|
||||||
"7, monitor:DP-3, default:false"
|
|
||||||
"8, monitor:DP-1, default:true"
|
|
||||||
"9, monitor:DP-1, default:false"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
"x86_64-linux": {
|
|
||||||
"headless": {
|
|
||||||
"stable": {
|
|
||||||
"name": "factorio_headless_x64-2.0.15.tar.xz",
|
|
||||||
"needsAuth": false,
|
|
||||||
"sha256": "cLRBy4B4EaYFhsARBySMHY164EO9HyNnX8kk+6qlONg=",
|
|
||||||
"tarDirectory": "x64",
|
|
||||||
"url": "https://factorio.com/get-download/2.0.15/headless/linux64",
|
|
||||||
"version": "2.0.15"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -258,7 +258,7 @@ in
|
||||||
];
|
];
|
||||||
# findmnt -no UUID -T /swap/swapfile
|
# findmnt -no UUID -T /swap/swapfile
|
||||||
boot.resumeDevice = "/dev/disk/by-uuid/81c3354a-f629-4b6b-a249-7705aeb9f0d5";
|
boot.resumeDevice = "/dev/disk/by-uuid/81c3354a-f629-4b6b-a249-7705aeb9f0d5";
|
||||||
# systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
systemd.sleep.extraConfig = "HibernateDelaySec=11m";
|
||||||
services.fwupd.enable = true;
|
services.fwupd.enable = true;
|
||||||
services.fwupd.extraRemotes = ["lvfs-testing"];
|
services.fwupd.extraRemotes = ["lvfs-testing"];
|
||||||
}
|
}
|
||||||
|
@ -266,7 +266,6 @@ in
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
easyeffects
|
|
||||||
godot_4
|
godot_4
|
||||||
fractal
|
fractal
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
@ -286,39 +285,19 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.easyeffects = {
|
/*
|
||||||
enable = true;
|
|
||||||
preset = "philonmetal";
|
|
||||||
# clone from https://github.com/ceiphr/ee-framework-presets
|
|
||||||
# then `cp *.json ~/.config/easyeffects/output`
|
|
||||||
# TODO: nixify this
|
|
||||||
};
|
|
||||||
|
|
||||||
services.hypridle = let
|
|
||||||
secondsPerMinute = 60;
|
|
||||||
lockSeconds = 10 * secondsPerMinute;
|
|
||||||
in {
|
|
||||||
settings = {
|
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = lockSeconds + 55;
|
|
||||||
on-timeout = ''systemctl suspend'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = {
|
settings = {
|
||||||
exec-once = [
|
env = [
|
||||||
"eww open bar0"
|
"EWW_BAR_MON,0"
|
||||||
];
|
];
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
monitor = [
|
monitor = [
|
||||||
"eDP-1,2880x1920@120Hz,0x0,1.66667"
|
"eDP-1,2256x1504@60,0x0,${toString scale}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
config = {
|
config = {
|
||||||
|
@ -326,13 +305,12 @@ in
|
||||||
"BOE NE135A1M-NY1 Unknown" = {
|
"BOE NE135A1M-NY1 Unknown" = {
|
||||||
mode = "2880x1920@120Hz";
|
mode = "2880x1920@120Hz";
|
||||||
position = "1092,2160";
|
position = "1092,2160";
|
||||||
scale = toString (5 / 3);
|
scale = toString 1.75;
|
||||||
};
|
};
|
||||||
|
|
||||||
"Dell Inc. DELL U2720Q CWTM623" = {
|
"Dell Inc. DELL U2720Q CWTM623" = {
|
||||||
mode = "3840x2160@60Hz";
|
mode = "3840x2160@60Hz";
|
||||||
position = "0,0";
|
position = "0,0";
|
||||||
scale = toString 1.25;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -364,21 +342,12 @@ in
|
||||||
pkgs.vaapiVdpau
|
pkgs.vaapiVdpau
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.amdgpu = {
|
|
||||||
amdvlk = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager.wifi.powersave = false;
|
networking.networkmanager.wifi.powersave = false;
|
||||||
|
|
||||||
hardware.framework.amd-7040.preventWakeOnAC = true;
|
hardware.framework.amd-7040.preventWakeOnAC = true;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
# kernelPackages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
# https://github.com/void-linux/void-packages/issues/50417#issuecomment-2131802836 fix framework 13 not shutting down
|
# https://github.com/void-linux/void-packages/issues/50417#issuecomment-2131802836 fix framework 13 not shutting down
|
||||||
/*
|
/*
|
||||||
|
@ -423,20 +392,6 @@ in
|
||||||
# TODO: when resuming from hibernation, it would be nice if this would
|
# TODO: when resuming from hibernation, it would be nice if this would
|
||||||
# simply resume the power state at the time of hibernation
|
# simply resume the power state at the time of hibernation
|
||||||
powerOnBoot = false;
|
powerOnBoot = false;
|
||||||
|
|
||||||
package = pkgs.bluez.overrideAttrs (finalAttrs: previousAttrs: rec {
|
|
||||||
version = "5.78";
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = "mirror://kernel/linux/bluetooth/bluez-${version}.tar.xz";
|
|
||||||
sha256 = "sha256-gw/tGRXF03W43g9eb0X83qDcxf9f+z0x227Q8A1zxeM=";
|
|
||||||
};
|
|
||||||
patches = [];
|
|
||||||
buildInputs =
|
|
||||||
previousAttrs.buildInputs
|
|
||||||
++ [
|
|
||||||
pkgs.python3Packages.pygments
|
|
||||||
];
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
powerManagement.cpuFreqGovernor = "ondemand";
|
powerManagement.cpuFreqGovernor = "ondemand";
|
||||||
/*
|
/*
|
||||||
|
@ -481,19 +436,15 @@ in
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = let
|
networking.firewall.allowedTCPPorts = let
|
||||||
stardewValley = 24642;
|
stardewValley = 24642;
|
||||||
factorio = 34197;
|
|
||||||
in [
|
in [
|
||||||
8000 # dev stuff
|
8000 # dev stuff
|
||||||
factorio
|
|
||||||
stardewValley
|
stardewValley
|
||||||
7777
|
7777
|
||||||
];
|
];
|
||||||
networking.firewall.allowedUDPPorts = let
|
networking.firewall.allowedUDPPorts = let
|
||||||
stardewValley = 24642;
|
stardewValley = 24642;
|
||||||
factorio = 34197;
|
|
||||||
in [
|
in [
|
||||||
8000 # dev stuff
|
8000 # dev stuff
|
||||||
factorio
|
|
||||||
stardewValley
|
stardewValley
|
||||||
7777
|
7777
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
|
|
|
@ -214,7 +214,6 @@ in {
|
||||||
udp dport { 80, 443 } accept comment "Allow QUIC to server (see nat prerouting)"
|
udp dport { 80, 443 } accept comment "Allow QUIC to server (see nat prerouting)"
|
||||||
tcp dport { 22 } accept comment "Allow SSH to server (see nat prerouting)"
|
tcp dport { 22 } accept comment "Allow SSH to server (see nat prerouting)"
|
||||||
tcp dport { 25565 } accept comment "Allow Minecraft server connections (see nat prerouting)"
|
tcp dport { 25565 } accept comment "Allow Minecraft server connections (see nat prerouting)"
|
||||||
udp dport { 34197 } accept comment "Allow Factorio server connections (see nat prerouting)"
|
|
||||||
|
|
||||||
iifname "${lan}" accept comment "Allow local network to access the router"
|
iifname "${lan}" accept comment "Allow local network to access the router"
|
||||||
iifname "tailscale0" accept comment "Allow local network to access the router"
|
iifname "tailscale0" accept comment "Allow local network to access the router"
|
||||||
|
@ -257,7 +256,6 @@ in {
|
||||||
iifname ${wan} tcp dport {26966} dnat to ${hosts.beefcake.ip}
|
iifname ${wan} tcp dport {26966} dnat to ${hosts.beefcake.ip}
|
||||||
iifname ${wan} tcp dport {25565} dnat to ${hosts.bald.ip}
|
iifname ${wan} tcp dport {25565} dnat to ${hosts.bald.ip}
|
||||||
iifname ${wan} udp dport {25565} dnat to ${hosts.bald.ip}
|
iifname ${wan} udp dport {25565} dnat to ${hosts.bald.ip}
|
||||||
iifname ${wan} udp dport {34197} dnat to ${hosts.beefcake.ip}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
chain postrouting {
|
chain postrouting {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
|
@ -42,18 +41,7 @@
|
||||||
boot.kernelModules = ["kvm-intel" "acpi_call"];
|
boot.kernelModules = ["kvm-intel" "acpi_call"];
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [acpi_call];
|
boot.extraModulePackages = with config.boot.kernelPackages; [acpi_call];
|
||||||
|
|
||||||
hardware = {
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
intel-media-driver
|
|
||||||
intel-ocl
|
|
||||||
intel-vaapi-driver
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,15 +1,8 @@
|
||||||
<div align="center">
|
# Nix
|
||||||
|
|
||||||
<h1>
|
|
||||||
<img width="100" src="images/Nix_snowflake_lytedev.svg" /> <br>
|
|
||||||
Nix for <code>lytedev</code>
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
[![flake check status](https://git.lyte.dev/lytedev/nix/badges/workflows/nix-flake-check.yaml/badge.svg)](https://git.lyte.dev/lytedev/nix/actions?workflow=nix-flake-check.yaml)
|
[![flake check status](https://git.lyte.dev/lytedev/nix/badges/workflows/nix-flake-check.yaml/badge.svg)](https://git.lyte.dev/lytedev/nix/actions?workflow=nix-flake-check.yaml)
|
||||||
[![build status](https://git.lyte.dev/lytedev/nix/badges/workflows/nix-build.yaml/badge.svg)](https://git.lyte.dev/lytedev/nix/actions?workflow=nix-build.yaml)
|
[![build status](https://git.lyte.dev/lytedev/nix/badges/workflows/nix-build.yaml/badge.svg)](https://git.lyte.dev/lytedev/nix/actions?workflow=nix-build.yaml)
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
My grand, declarative, and unified application, service, environment, and
|
My grand, declarative, and unified application, service, environment, and
|
||||||
machine configuration, secret, and package management in a single flake. ❤️ ❄️
|
machine configuration, secret, and package management in a single flake. ❤️ ❄️
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,6 @@ restic-rascal-passphrase: ENC[AES256_GCM,data:yonKbBh4riGwxc/qcj8F/qrgAtA1sWhYej
|
||||||
restic-rascal-ssh-private-key: ENC[AES256_GCM,data:ddsOs0XsayyQI9qc6LzwQpdDnfwNpbj8PbBJ5fyuqtlVNYndeLxaYcbZI2ULSUhgR1tN0FS+ggGTHQhVvjwksNvpskUGHNKkSLKH3D/mn5N9tsoeAblN4gZsloZdqXBVzEehumcQMdhh6iy6NkNbuinKrVKDhLV25PrFKuSBEYw9VHU7HAMW5Tfop3RzBXjZWETCDAR2OQa7d1dXsJ0Kw6b9RFmRe5MGQ0J7YhjdTg26JGMMVSeHvr5UbiUJkGA5RvOLEDM2Dfai7Lf8yRPZVxUl+rdRsNvNYEoYGu5rGLUFcuqIbQ+s40dP2uXwWauwkIvHUjEahkbP0httj4Kg3qIJBRPg7OuS+MOwAnLEAs3hl5zeBV396yA9qjWW8nhnbml58/uFFbfXbJWTM3r8cMpFbHKD+Ojo/99fm5Vy3pAMzNzEsHOaT+iyDYyNkV5OH1GyKK9n7kIRLdqmWe7GmaKXlwVvNUPi3RvLX9VXq83a4BuupFyTmaNfPGMs/17830aleV674+QVgKh3VyFtuJy6KBpMXDv16wFo,iv:S2I3h6pmKLxEc29E0zn2b8lscqA//5/ZMTV9q+/tdvs=,tag:ALeCT+nrVPDfS21xC555sA==,type:str]
|
restic-rascal-ssh-private-key: ENC[AES256_GCM,data:ddsOs0XsayyQI9qc6LzwQpdDnfwNpbj8PbBJ5fyuqtlVNYndeLxaYcbZI2ULSUhgR1tN0FS+ggGTHQhVvjwksNvpskUGHNKkSLKH3D/mn5N9tsoeAblN4gZsloZdqXBVzEehumcQMdhh6iy6NkNbuinKrVKDhLV25PrFKuSBEYw9VHU7HAMW5Tfop3RzBXjZWETCDAR2OQa7d1dXsJ0Kw6b9RFmRe5MGQ0J7YhjdTg26JGMMVSeHvr5UbiUJkGA5RvOLEDM2Dfai7Lf8yRPZVxUl+rdRsNvNYEoYGu5rGLUFcuqIbQ+s40dP2uXwWauwkIvHUjEahkbP0httj4Kg3qIJBRPg7OuS+MOwAnLEAs3hl5zeBV396yA9qjWW8nhnbml58/uFFbfXbJWTM3r8cMpFbHKD+Ojo/99fm5Vy3pAMzNzEsHOaT+iyDYyNkV5OH1GyKK9n7kIRLdqmWe7GmaKXlwVvNUPi3RvLX9VXq83a4BuupFyTmaNfPGMs/17830aleV674+QVgKh3VyFtuJy6KBpMXDv16wFo,iv:S2I3h6pmKLxEc29E0zn2b8lscqA//5/ZMTV9q+/tdvs=,tag:ALeCT+nrVPDfS21xC555sA==,type:str]
|
||||||
restic-ssh-priv-key-benland: ENC[AES256_GCM,data:G+uiYZTvqXhpJb66j6Q6S+otlXeRX0CdYeMHzSMjIbvbI0AVm0yCU7COO5/O8i47NpvrKKS1kVxVEK8ixLRUowkl3hgRXhxsBIPFnpkMD0ENmJttm4HOpi0qIWMwzPYTjkz/slY4HcTFnCfYy1ZpURQdWwZsr1EdAA05bUMTtM22R3uOMzjO8uf72PCWX7yffo8MxsLmWvNVAOhVlrb2H5KQNR/IquFK3TFoZitq5nVDG9tcEFkX+lgA3zsmCHU/2DvvodgeRoltaAFvgjVznNGf4e5p8owHUtSzX52HwGZRiUlMuhpre2gm1r73n8AyZe41II+LX/85fMfZDdyayIGv3AAMBib8H0/AoChexRcdLQEmzOgRrXsgucDJrWSWP6WMBVyamUm79m5ep0fvL1lJftuJqN0uuq9dBrispdso4x+6jk/pDf5pEM/FE6s1rY832BEb7q0PnjyvVogOez+cIihmMpDdnS0A/8TFzg29i3C+93x5vrt3k7atNzR/jN+/GqX2FKLzxWrrIw2d,iv:IP+N8JQu+XRvwTtBnxu54ujzU5UliltXG3mk9HfJaN8=,tag:4oinE9QMaSh8IfUd/ttM3Q==,type:str]
|
restic-ssh-priv-key-benland: ENC[AES256_GCM,data:G+uiYZTvqXhpJb66j6Q6S+otlXeRX0CdYeMHzSMjIbvbI0AVm0yCU7COO5/O8i47NpvrKKS1kVxVEK8ixLRUowkl3hgRXhxsBIPFnpkMD0ENmJttm4HOpi0qIWMwzPYTjkz/slY4HcTFnCfYy1ZpURQdWwZsr1EdAA05bUMTtM22R3uOMzjO8uf72PCWX7yffo8MxsLmWvNVAOhVlrb2H5KQNR/IquFK3TFoZitq5nVDG9tcEFkX+lgA3zsmCHU/2DvvodgeRoltaAFvgjVznNGf4e5p8owHUtSzX52HwGZRiUlMuhpre2gm1r73n8AyZe41II+LX/85fMfZDdyayIGv3AAMBib8H0/AoChexRcdLQEmzOgRrXsgucDJrWSWP6WMBVyamUm79m5ep0fvL1lJftuJqN0uuq9dBrispdso4x+6jk/pDf5pEM/FE6s1rY832BEb7q0PnjyvVogOez+cIihmMpDdnS0A/8TFzg29i3C+93x5vrt3k7atNzR/jN+/GqX2FKLzxWrrIw2d,iv:IP+N8JQu+XRvwTtBnxu54ujzU5UliltXG3mk9HfJaN8=,tag:4oinE9QMaSh8IfUd/ttM3Q==,type:str]
|
||||||
paperless-superuser-password: ENC[AES256_GCM,data:lypWK73mOYI2hyQAW/4T3cDiVtsts3kKb7LZb9ES3n97Kn5l,iv:jBHUBFbb4GqQ3gnK0h5VCaGj3/kd3/eGa1QFiE7+B9I=,tag:UoQar+x1xVnCV2k+9hYjWA==,type:str]
|
paperless-superuser-password: ENC[AES256_GCM,data:lypWK73mOYI2hyQAW/4T3cDiVtsts3kKb7LZb9ES3n97Kn5l,iv:jBHUBFbb4GqQ3gnK0h5VCaGj3/kd3/eGa1QFiE7+B9I=,tag:UoQar+x1xVnCV2k+9hYjWA==,type:str]
|
||||||
factorio-server-settings: ENC[AES256_GCM,data:KlHkHGenkoLtqt0YCETwQdhH0tvvqsyake3lC9Wimso3Y8IXvDfkLpOTE53Jq4frf1QMJh0LYyle+AmIgGvB0gAp/4fM1E4Ah9JPtKkcjVPyQIypuaDsPaVQMxMlJt1+TLX2fbSWdxOo0lulNg==,iv:AHq37PY3ZxKF0+ClUrSvhJSBuXFtGZLBZW/ZADrVqLI=,tag:B0gFyy6rmd6CGJfzAhO02A==,type:str]
|
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
gcp_kms: []
|
gcp_kms: []
|
||||||
|
@ -52,8 +51,8 @@ sops:
|
||||||
bGpacHFRSkJYUUMwOEh4cVBXZ1NESmsKa5EhZ7148ojCqZldukLcPLr93HqnpNgq
|
bGpacHFRSkJYUUMwOEh4cVBXZ1NESmsKa5EhZ7148ojCqZldukLcPLr93HqnpNgq
|
||||||
rMI0Nyz4Z4lkTVMRpA94zyNTkNwJ02/CYcKi8EJi6jGZnNPUTcnTwg==
|
rMI0Nyz4Z4lkTVMRpA94zyNTkNwJ02/CYcKi8EJi6jGZnNPUTcnTwg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-10-22T22:31:46Z"
|
lastmodified: "2024-09-13T05:09:18Z"
|
||||||
mac: ENC[AES256_GCM,data:nCGtkRXZuo3SZLjL2I3fJelaS1g9U4SVdzPZlZPgXzCWVyxokIMFwoSM15HgDu5KsFR+3kIfWVzIQk/lwt9lQPG3O6iUkfPRsIg0dnVrNSauNk0QXR91vCVlDmbFuDUf0C4EVrbE9RRgHzGzToSJYxQHSInMYVhJBcBfdbYZF9A=,iv:qu6p45+ATOs5Ms3bqM8ynXK0tKnN3wNmtwAsc2DSQbU=,tag:xpTeHWawPXfeqq/azPIPPg==,type:str]
|
mac: ENC[AES256_GCM,data:rS12xfQ6FQwVa19rdfk6i1DThUOfsrw+IdKGYOMrX8a7sOKPkNxyxyZASfaKopg3BaM8qmoOFUW4B9VWwTh4d+MhruH3DhJO3UuZpOtDv7H8JFmzqg8rlYx0nm+8/+dB0zjgK7m2FP8wn0jfXraaaQ7/HobgLgGtl+NAsXQkrwQ=,iv:+JO3Yq6Kp2CHu20dSRDOJf0ivq5ASHYrKvlCgg1vGxQ=,tag:y6nIISSZFQwRoFNvqaQWbg==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.0
|
version: 3.9.0
|
||||||
|
|
1
templates/.gitignore
vendored
1
templates/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
flake.lock
|
|
|
@ -1,16 +1,81 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
git-hooks.url = "github:cachix/git-hooks.nix";
|
|
||||||
git-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs: let
|
outputs = {
|
||||||
inherit (import nix/boilerplate.nix inputs) call;
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (self) outputs;
|
||||||
|
|
||||||
|
supportedSystems = [
|
||||||
|
"aarch64-linux"
|
||||||
|
"x86_64-linux"
|
||||||
|
|
||||||
|
"x86_64-darwin"
|
||||||
|
"aarch64-darwin"
|
||||||
|
];
|
||||||
|
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||||
|
|
||||||
|
overlay = final: prev: {
|
||||||
|
erlangPackages = prev.beam.packagesWith prev.erlang_26;
|
||||||
|
erlang = final.erlangPackages.erlang;
|
||||||
|
elixir = final.erlangPackages.elixir_1_16;
|
||||||
|
|
||||||
|
mixRelease = final.erlangPackages.mixRelease.override {
|
||||||
|
elixir = final.elixir;
|
||||||
|
};
|
||||||
|
fetchMixDeps = final.erlangPackages.fetchMixDeps.override {
|
||||||
|
elixir = final.elixir;
|
||||||
|
};
|
||||||
|
|
||||||
|
elixir-ls = prev.elixir-ls.override {elixir = final.elixir;};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgsFor = system: ((import nixpkgs {inherit system;}).extend overlay);
|
||||||
in {
|
in {
|
||||||
overlays = import nix/overlays.nix;
|
packages = forAllSystems (system: let
|
||||||
packages = call (import nix/packages.nix);
|
pkgs = nixpkgsFor system;
|
||||||
checks = call (import nix/checks.nix);
|
|
||||||
devShells = call (import nix/shells.nix);
|
inherit (pkgs) beamPackages;
|
||||||
|
inherit (beamPackages) mixRelease fetchMixDeps;
|
||||||
|
|
||||||
|
version = "0.1.0";
|
||||||
|
src = ./.;
|
||||||
|
pname = "api.lyte.dev";
|
||||||
|
in {
|
||||||
|
/*
|
||||||
|
this-package = mixRelease {
|
||||||
|
inherit pname version src;
|
||||||
|
mixFodDeps = fetchMixDeps {
|
||||||
|
inherit version src;
|
||||||
|
pname = "mix-deps-${pname}";
|
||||||
|
hash = pkgs.lib.fakeSha256;
|
||||||
|
};
|
||||||
|
buildInputs = with pkgs; [sqlite];
|
||||||
|
HOME = "$(pwd)";
|
||||||
|
MIX_XDG = "$HOME";
|
||||||
|
};
|
||||||
|
|
||||||
|
default = outputs.packages.${system}.this-package;
|
||||||
|
*/
|
||||||
|
});
|
||||||
|
|
||||||
|
devShells = forAllSystems (system: let
|
||||||
|
pkgs = nixpkgsFor system;
|
||||||
|
in {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
shellHook = "export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive";
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
elixir
|
||||||
|
elixir-ls
|
||||||
|
|
||||||
|
inotify-tools
|
||||||
|
];
|
||||||
|
};
|
||||||
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
inputs @ {
|
|
||||||
nixpkgs,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
forSelfOverlay =
|
|
||||||
if builtins.hasAttr "forSelf" self.overlays
|
|
||||||
then self.overlays.forSelf
|
|
||||||
else (_: p: p);
|
|
||||||
in rec {
|
|
||||||
systems = ["aarch64-linux" "x86_64-linux" "x86_64-darwin" "aarch64-darwin"];
|
|
||||||
forSystems = nixpkgs.lib.genAttrs systems;
|
|
||||||
pkgsFor = system: ((import nixpkgs {inherit system;}).extend forSelfOverlay);
|
|
||||||
genPkgs = func: (forSystems (system: func (pkgsFor system)));
|
|
||||||
call = imported: genPkgs (pkgs: imported (inputs // {inherit pkgs;}));
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
git-hooks,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
git-hooks = git-hooks.lib.${pkgs.system}.run {
|
|
||||||
src = ./..;
|
|
||||||
hooks = {
|
|
||||||
alejandra.enable = true;
|
|
||||||
convco.enable = true;
|
|
||||||
credo.enable = true;
|
|
||||||
dialyzer.enable = true;
|
|
||||||
mix-format.enable = true;
|
|
||||||
mix-test.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
forSelf = final: prev: {
|
|
||||||
erlang = prev.beam.packagesWith prev.beam.interpreters.erlang_27;
|
|
||||||
elixir = final.erlang.elixir_1_18;
|
|
||||||
mixRelease = final.erlang.mixRelease.override {elixir = final.elixir;};
|
|
||||||
fetchMixDeps = final.erlang.fetchMixDeps.override {elixir = final.elixir;};
|
|
||||||
elixir-ls = prev.elixir-ls.override {elixir = final.elixir;};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
version = "1.0.0";
|
|
||||||
src = ../.;
|
|
||||||
pname = "my-package";
|
|
||||||
in {
|
|
||||||
${pname} = pkgs.mixRelease {
|
|
||||||
inherit pname version src;
|
|
||||||
mixFodDeps = pkgs.fetchMixDeps {
|
|
||||||
inherit version src;
|
|
||||||
pname = "mix-deps-${pname}";
|
|
||||||
sha256 = pkgs.lib.fakeSha256;
|
|
||||||
};
|
|
||||||
# buildInputs = with pkgs; [];
|
|
||||||
# HOME = "$(pwd)";
|
|
||||||
# MIX_XDG = "$HOME";
|
|
||||||
# RELEASE_COOKIE = "test-cookie";
|
|
||||||
};
|
|
||||||
|
|
||||||
default = self.packages.${pkgs.system}.${pname};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
# self,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
elixir-dev = pkgs.mkShell {
|
|
||||||
shellHook = "export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive";
|
|
||||||
# inputsFrom = [self.packages.${pkgs.system}.my-package];
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
elixir
|
|
||||||
elixir-ls
|
|
||||||
inotify-tools
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -20,12 +20,16 @@
|
||||||
src = ./.;
|
src = ./.;
|
||||||
hooks = {
|
hooks = {
|
||||||
alejandra.enable = true;
|
alejandra.enable = true;
|
||||||
|
# NOTE: These do not work well with `nix flake check` due to pure environments
|
||||||
|
# https://github.com/cachix/git-hooks.nix/issues/452
|
||||||
|
/*
|
||||||
cargo-check.enable = true;
|
cargo-check.enable = true;
|
||||||
clippy = {
|
clippy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
packageOverrides.cargo = pkgs.cargo;
|
packageOverrides.cargo = pkgs.cargo;
|
||||||
packageOverrides.clippy = pkgs.rustPackages.clippy;
|
packageOverrides.clippy = pkgs.rustPackages.clippy;
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
rustfmt = {
|
rustfmt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
packageOverrides.rustfmt = pkgs.rustfmt;
|
packageOverrides.rustfmt = pkgs.rustfmt;
|
||||||
|
@ -36,7 +40,7 @@
|
||||||
|
|
||||||
packages = genPkgs (pkgs: {
|
packages = genPkgs (pkgs: {
|
||||||
my-package = pkgs.rustPlatform.buildRustPackage {
|
my-package = pkgs.rustPlatform.buildRustPackage {
|
||||||
pname = "my-package";
|
pname = "kodotag";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue