Compare commits

...

20 commits

Author SHA1 Message Date
Christoph Hollizeck b8155bff9e
loptland: add ssh key of phone, make sure that fish loads op in terminal only session, without bricking homemanager 2024-11-08 00:14:39 +01:00
Christoph Hollizeck a0103c86d9
acme: fix typos 2024-11-07 22:33:27 +01:00
Christoph Hollizeck fdb4c024e4
op: autosignin in terminal only session 2024-11-07 22:22:14 +01:00
Christoph Hollizeck 5c542b9414
ssh: attempt to speed up connection to self hosted git but forcing ipv4 2024-11-07 22:14:22 +01:00
Christoph Hollizeck ed4b918da7
loptland: move acme to its own file 2024-11-07 21:36:01 +01:00
Christoph Hollizeck 32f138f927
loptland: nginx maybe this helps? 2024-11-06 20:11:50 +01:00
Christoph Hollizeck 8d6c10ccdf
loptland: I have no idea how nginx works, also need to read up on ACME and LetsEncrypt 2024-11-06 19:54:03 +01:00
Christoph Hollizeck aa08b78056
loptland: more sops configuration 2024-11-06 16:57:10 +01:00
Christoph Hollizeck 67c1b1f8e0
loptland: fix typo 2024-11-06 16:29:52 +01:00
Christoph Hollizeck 7132c558ef
loptland: move to separate secrets file 2024-11-06 16:20:04 +01:00
Christoph Hollizeck 9bde5f050c
forgejo: init very little config 2024-11-06 13:55:24 +01:00
Christoph Hollizeck a1c14b5d8c
change the way admins are configured 2024-11-05 14:49:08 +01:00
Christoph Hollizeck c06723f7ec
factorio-headless: removed from main PC since the server is now running 2024-11-05 09:27:46 +01:00
Christoph Hollizeck 9940376054
update flake 2024-11-04 23:51:24 +01:00
Christoph Hollizeck 8ffaac44eb
loptland enable factorio server 2024-11-04 23:18:11 +01:00
Christoph Hollizeck b694d6b081
add desktop refactors so dconf is disabled by default 2024-11-04 23:14:41 +01:00
Christoph Hollizeck 9e5b856a18
add home.nix 2024-11-04 23:05:29 +01:00
Christoph Hollizeck 48387d88d2
update hardware.nix 2024-11-04 22:10:21 +01:00
Christoph Hollizeck a1eb889f50
introduce new host 2024-11-04 21:23:24 +01:00
GitButler d69c9c2a10 GitButler Integration Commit
This is an integration commit for the virtual branches that GitButler is tracking.

Due to GitButler managing multiple virtual branches, you cannot switch back and
forth between git branches and virtual branches easily. 

If you switch to another branch, GitButler will need to be reinitialized.
If you commit on this branch, GitButler will throw it away.

Here are the branches that are currently applied:
 - factorio-latest (refs/gitbutler/factorio-latest)
   - flake.lock
   - flake.nix
   - modules/nixos/archetypes/gaming/default.nix
 - hyprpanel (refs/gitbutler/hyprpanel)
   branch head: acde84ab10891f923177d3dde85b826296a1b4bc
   - modules/nixos/desktop/addons/hyprpanel/options.json
   - modules/nixos/desktop/addons/hyprpanel/default.nix
   - modules/nixos/desktop/addons/hypridle/default.nix
 - fix hyprland nvidia issue (refs/gitbutler/fix-hyprland-nvidia-issue)
   branch head: 5158f2a21e773e01f3d4f296db87517bf167c7b7
For more information about what we're doing here, check out our docs:
https://docs.gitbutler.com/features/virtual-branches/integration-branch
2024-11-02 16:29:56 +01:00
20 changed files with 1266 additions and 227 deletions

View file

@ -5,3 +5,13 @@ creation_rules:
key_groups: key_groups:
- age: - age:
- *primary - *primary
- path_regex: secrets/secrets-yggdrasil.yaml$
key_groups:
- age:
- *primary
- path_regex: secrets/secrets-loptland.yaml$
key_groups:
- age:
- *primary

View file

@ -1,5 +1,24 @@
{ {
"nodes": { "nodes": {
"ags": {
"inputs": {
"nixpkgs": "nixpkgs_3",
"systems": "systems_4"
},
"locked": {
"lastModified": 1728326430,
"narHash": "sha256-tV1ABHuA1HItMdCTuNdA8fMB+qw7LpjvI945VwMSABI=",
"owner": "Aylur",
"repo": "ags",
"rev": "60180a184cfb32b61a1d871c058b31a3b9b0743d",
"type": "github"
},
"original": {
"owner": "Aylur",
"repo": "ags",
"type": "github"
}
},
"aquamarine": { "aquamarine": {
"inputs": { "inputs": {
"hyprutils": [ "hyprutils": [
@ -20,11 +39,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1729527199, "lastModified": 1730968822,
"narHash": "sha256-D5/YksfRga8Akd04ZtIkuYSIOjXVrAzQIQBSeplokzU=", "narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "8d732fa8aff8b12ef2b1e2f00fc8153e41312b72", "rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -56,11 +75,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1730097176, "lastModified": 1730961036,
"narHash": "sha256-ufvRff76Y19mkRsmx+mAnxKE9A9VaNWC2mVY6TwumOw=", "narHash": "sha256-nkho9Dq4WzyF4xr83UdxrlDS5Sm7ZKkPaqGVupLOpOI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "482b57f3f27a9336e0fbc62fa99ee0f624ccf4d0", "rev": "9bf50cb857db8dba15528f3905e271d948cbff06",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -226,7 +245,7 @@
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
@ -244,7 +263,7 @@
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1726560853,
@ -277,7 +296,7 @@
}, },
"flake-utils_5": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1694529238,
@ -296,7 +315,7 @@
"gen-luarc": { "gen-luarc": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1718922730, "lastModified": 1718922730,
@ -360,11 +379,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1729690460, "lastModified": 1730790589,
"narHash": "sha256-x8qkGujBPuOefXPyjcaB8Ot0IYkQBy6O2ZYb8NrnB3k=", "narHash": "sha256-xJ6bQ4VmdTB7A+dMbmOMaZ8a6erB6rkZkB+yzqD7gd4=",
"owner": "helix-editor", "owner": "helix-editor",
"repo": "helix", "repo": "helix",
"rev": "101a74bf6edbbfdf9b0628a0bdbbc307ebe10ff2", "rev": "b53dafe326d51b7f64a1c52379e3d4150cd2991e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -380,11 +399,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1730016908, "lastModified": 1730837930,
"narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=", "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e83414058edd339148dc142a8437edb9450574c8", "rev": "2f607e07f3ac7e53541120536708e824acccfaa8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -457,11 +476,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1730072482, "lastModified": 1730969692,
"narHash": "sha256-3Aotvc0dFS9J2iDnrSVjjngdZcaD9ghfroVU3jl84Gk=", "narHash": "sha256-yHY98IWTLDz57TrseUxdh5QnpngcNCjNXTJ2XCeNhtk=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "6cf193e1662f6f750e964a3e174ae017246b4d48", "rev": "e58e97b0a38b8ccc87a4304c9e4e2b37c9966875",
"revCount": 5385, "revCount": 5425,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@ -489,11 +508,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1729596320, "lastModified": 1730755630,
"narHash": "sha256-sBPr6O2Ad916f+L7biAjmJVx4TLDITC4joKgeOT47V8=", "narHash": "sha256-IA5U8lHx/lnHwbx25dpPpeLbaALqNNjalYCf19tIoj0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-plugins", "repo": "hyprland-plugins",
"rev": "4d7f0b5d8b952f31f7d2e29af22ab0a55ca5c219", "rev": "44859f877739c05d031fcab4a2991ec004fa9bc4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -593,11 +612,11 @@
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1730053985, "lastModified": 1730911842,
"narHash": "sha256-jh7PhejwT+XqkkYnpZ6K/Gkqy4tvjN7g/ZBTvlS+Q9Y=", "narHash": "sha256-stAVRv13iACAIJ6mheJOwZXWD24YDupyshaUDovVNi4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlock", "repo": "hyprlock",
"rev": "edbecc87081756b45bdbea16b63e413473659dcd", "rev": "4fc133c96fa1ad2968cad44f8e9e9e923cd0381a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -606,6 +625,25 @@
"type": "github" "type": "github"
} }
}, },
"hyprpanel": {
"inputs": {
"ags": "ags",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1730958442,
"narHash": "sha256-8vmh+ehnDnIenBNibGTPCu8p7cJiFP6bzj0E7pBxgQQ=",
"owner": "Jas-SinghFSU",
"repo": "HyprPanel",
"rev": "dbd932941b46ced4eac5da30994d5af2ca80530c",
"type": "github"
},
"original": {
"owner": "Jas-SinghFSU",
"repo": "HyprPanel",
"type": "github"
}
},
"hyprutils": { "hyprutils": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -618,11 +656,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1728941256, "lastModified": 1730968903,
"narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", "narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", "rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -725,11 +763,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1730068391, "lastModified": 1730919458,
"narHash": "sha256-jlAGtfMuI8pUUoUmNkm2P/38pOtHZdcAf3Az8XQLAf4=", "narHash": "sha256-yMO0T0QJlmT/x4HEyvrCyigGrdYfIXX3e5gWqB64wLg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "6906ac67a1078cf950b8527341e229eeecb5bc30", "rev": "e1cc1f6483393634aee94514186d21a4871e78d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -747,11 +785,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1730106248, "lastModified": 1730453870,
"narHash": "sha256-xicJnAvJ/8nJ6Ojwz6tWk+EcMjcW+M9ozlvfgjFQ+UQ=", "narHash": "sha256-d+kIgz4BvTXb7emjSFV3zjNydGmLUmuluQjdBb51R9o=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "24ab2f9ad309b1bba89644116656139dde706833", "rev": "adb6bc4b661a43328752b4575be4968a4990c033",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -762,11 +800,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1729413321, "lastModified": 1730785428,
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=", "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26", "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -778,17 +816,17 @@
}, },
"nixpkgs-latest-factorio": { "nixpkgs-latest-factorio": {
"locked": { "locked": {
"lastModified": 1729881984, "lastModified": 1730638571,
"narHash": "sha256-GbM6MN8X46nlHFdwCPMS7VG50nI9hJ65FTofa09e6sY=", "narHash": "sha256-z9Wy1jmhFrABK3cEyiVmQtUwOuQW1YPwA8+HMnbEpnE=",
"owner": "Daholli", "owner": "Daholli",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "19493dc0ad16ffd5414ac9b4e12179d0e1b98468", "rev": "d941e9aa2d89f377d45516c5edd765fef15ea90a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Daholli", "owner": "Daholli",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "19493dc0ad16ffd5414ac9b4e12179d0e1b98468", "rev": "d941e9aa2d89f377d45516c5edd765fef15ea90a",
"type": "github" "type": "github"
} }
}, },
@ -806,11 +844,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1730110089, "lastModified": 1731013087,
"narHash": "sha256-yfKsL/0ZMxmy8wE9lgNt5DMwUhgqhYUmKTR5Te6HF9A=", "narHash": "sha256-RYC/HjbCxras96cu169X3p/AzCQRBcVLLYwV7lb9KeE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "730e5fa135993f57f2013d911ce5b98d020365f3", "rev": "febd04d099308693051236f860871410a34c2d6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -822,11 +860,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1720386169, "lastModified": 1730741070,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7", "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -838,11 +876,11 @@
}, },
"nixpkgs-stable_2": { "nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1729973466, "lastModified": 1730602179,
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -854,11 +892,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1729880355, "lastModified": 1730785428,
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a", "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -886,15 +924,15 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1718714799, "lastModified": 1725634671,
"narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@ -918,11 +956,43 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1729951556, "lastModified": 1718714799,
"narHash": "sha256-bpb6r3GjzhNW8l+mWtRtLNg5PhJIae041sPyqcFNGb4=", "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1730785428,
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1730272153,
"narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4e0eec54db79d4d0909f45a88037210ff8eaffee", "rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -932,13 +1002,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1729880355, "lastModified": 1730200266,
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a", "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -959,11 +1029,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1729104314, "lastModified": 1730814269,
"narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=", "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6", "rev": "d70155fdc00df4628446352fc58adc640cd705c2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -982,11 +1052,12 @@
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins", "hyprland-plugins": "hyprland-plugins",
"hyprlock": "hyprlock", "hyprlock": "hyprlock",
"hyprpanel": "hyprpanel",
"kickstartnvim": "kickstartnvim", "kickstartnvim": "kickstartnvim",
"nix-ld": "nix-ld", "nix-ld": "nix-ld",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixos-wsl": "nixos-wsl", "nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_6",
"nixpkgs-latest-factorio": "nixpkgs-latest-factorio", "nixpkgs-latest-factorio": "nixpkgs-latest-factorio",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
@ -999,11 +1070,11 @@
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1730028316, "lastModified": 1730749868,
"narHash": "sha256-FsPsSjqnqMHBgDdM24DFLw4YOw0mFKYFJBcLaI6CvI8=", "narHash": "sha256-b8UMpLh61z6T4J1NObustAuFGoJiAKBTaPTrEf3Amts=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "3b3a87fe9bd3f2a79942babc1d1e385b6805c384", "rev": "b51f9bc736dc0472481a47d7c05de2901323e543",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1089,11 +1160,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719005984, "lastModified": 1730136121,
"narHash": "sha256-mpFl3Jv4fKnn+5znYXG6SsBjfXHJdRG5FEqNSPx0GLA=", "narHash": "sha256-tfVayj13Zw+zzOKrmJhnvBod7Hdb9ixBR6/4GUlyMA0=",
"owner": "snowfallorg", "owner": "snowfallorg",
"repo": "lib", "repo": "lib",
"rev": "c6238c83de101729c5de3a29586ba166a9a65622", "rev": "dd348182c1a010993e68004eada86cf0341fe2c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1104,15 +1175,15 @@
}, },
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_7",
"nixpkgs-stable": "nixpkgs-stable_2" "nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1729999681, "lastModified": 1731008979,
"narHash": "sha256-qm0uCtM9bg97LeJTKQ8dqV/FvqRN+ompyW4GIJruLuw=", "narHash": "sha256-yN1NxvmqV8UltLkqYBWTeZNgpD/eyh/7LM58caHiEfE=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "1666d16426abe79af5c47b7c0efa82fd31bf4c56", "rev": "fe63071416471abdab06caa234122932a7c4b980",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1168,16 +1239,16 @@
}, },
"systems_4": { "systems_4": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347949,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"type": "github" "type": "github"
} }
}, },
@ -1211,6 +1282,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [
@ -1239,11 +1325,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1728166987, "lastModified": 1730743262,
"narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=", "narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787", "rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1254,14 +1340,14 @@
}, },
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1730084618, "lastModified": 1730444716,
"narHash": "sha256-gZyHBeo21uZPi7QzzRPlUo3te1HO+aNxYsRo+LzDokg=", "narHash": "sha256-WtqSpYQyG5ad+GK7B0ViDSl0NolHp7yM24TacUslBXE=",
"owner": "ch4og", "owner": "ch4og",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "f36474f335ea16534da68715d1f5ae27a5642c94", "rev": "d3c639ee7bff20f799f443e18fffa6331a71cd3a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -7,7 +7,7 @@
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs/master"; nixpkgs-master.url = "github:nixos/nixpkgs/master";
nixpkgs-latest-factorio.url = "github:Daholli/nixpkgs/19493dc0ad16ffd5414ac9b4e12179d0e1b98468"; nixpkgs-latest-factorio.url = "github:Daholli/nixpkgs/d941e9aa2d89f377d45516c5edd765fef15ea90a";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";

View file

@ -0,0 +1,22 @@
{
lib,
pkgs,
config,
osConfig ? { },
format ? "unknown",
...
}:
with lib.wyrdgard;
{
wyrdgard = {
apps = {
kitty = enabled;
};
tools = {
direnv = enabled;
};
};
home.stateVersion = "24.11";
}

View file

@ -18,7 +18,7 @@ let
in in
{ {
options.${namespace}.apps.cli-apps.helix = { options.${namespace}.apps.cli-apps.helix = {
enable = mkEnableOption "Whether to enable nixvim or not"; enable = mkEnableOption "Whether to enable helix or not";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -30,124 +30,119 @@ in
}; };
${namespace} = { ${namespace} = {
home = { home.extraOptions = {
extraOptions = { programs.helix = {
programs.helix = { enable = true;
enable = true; package = helix-pkg;
package = helix-pkg; defaultEditor = true;
defaultEditor = true; settings = {
settings = { theme = "tokyonight";
theme = "tokyonight"; editor = {
editor = { auto-format = true;
auto-format = true; line-number = "relative";
line-number = "relative";
lsp = { lsp = {
display-inlay-hints = true; display-inlay-hints = true;
display-messages = true; display-messages = true;
};
cursor-shape = {
normal = "block";
insert = "bar";
select = "underline";
};
indent-guides = {
render = true;
character = "|";
};
statusline = {
left = [
"mode"
"spinner"
];
center = [ "file-name" ];
right = [
"workspace-diagnostics"
"diagnostics"
"selections"
"position"
"total-line-numbers"
"spacer"
"file-encoding"
"file-line-ending"
"file-type"
];
separator = "";
};
}; };
keys = { cursor-shape = {
normal = { normal = "block";
esc = [ insert = "bar";
"collapse_selection" select = "underline";
"keep_primary_selection" };
];
space = {
space = "file_picker";
};
C-j = [ indent-guides = {
"move_line_down" render = true;
"move_line_down" character = "|";
"move_line_down" };
"move_line_down"
"move_line_down" statusline = {
]; left = [
C-k = [ "mode"
"move_line_up" "spinner"
"move_line_up" ];
"move_line_up" center = [ "file-name" ];
"move_line_up" right = [
"move_line_up" "workspace-diagnostics"
]; "diagnostics"
}; "selections"
"position"
"total-line-numbers"
"spacer"
"file-encoding"
"file-line-ending"
"file-type"
];
separator = "";
}; };
}; };
languages = { keys = {
language = [ normal = {
{ esc = [
name = "nix"; "collapse_selection"
auto-format = true; "keep_primary_selection"
formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; ];
language-servers = [ space = {
"nixd" space = "file_picker";
"nil" };
];
}
{
# provided by the dev environment in the rust shell
name = "rust";
auto-format = true;
formatter.command = "cargo fmt";
language-servers = [ "rust-analyzer" ];
}
];
language-server = { C-j = [
nil = { "move_line_down"
command = "${pkgs.nil}/bin/nil"; "move_line_down"
}; "move_line_down"
nixd = { "move_line_down"
command = "${pkgs.nixd}/bin/nixd"; "move_line_down"
}; ];
marksman = { C-k = [
command = "${pkgs.marksman}/bin/marksman"; "move_line_up"
}; "move_line_up"
vscode-json-language-server = { "move_line_up"
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; "move_line_up"
args = [ "--stdio" ]; "move_line_up"
config.provideFormatter = true; ];
config.json.validate.enable = true; };
}; };
vscode-css-language-server = { };
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
args = [ "--stdio" ]; languages = {
config.provideFormatter = true; language = [
}; {
name = "nix";
auto-format = true;
formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
language-servers = [
"nixd"
"nil"
];
}
{
# provided by the dev environment in the rust shell
name = "rust";
auto-format = true;
formatter.command = "cargo fmt";
language-servers = [ "rust-analyzer" ];
}
];
language-server = {
nixd = {
command = "${pkgs.nixd}/bin/nixd";
};
marksman = {
command = "${pkgs.marksman}/bin/marksman";
};
vscode-json-language-server = {
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server";
args = [ "--stdio" ];
config.provideFormatter = true;
config.json.validate.enable = true;
};
vscode-css-language-server = {
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
args = [ "--stdio" ];
config.provideFormatter = true;
}; };
}; };
}; };

View file

@ -23,14 +23,15 @@ in
settings = { settings = {
general = { general = {
after_sleep_cmd = "hyprctl dispatch dpms on"; after_sleep_cmd = "hyprctl dispatch dpms on";
before_sleep_cmd = "loginctl lock-session";
ignore_dbus_inhibit = false; ignore_dbus_inhibit = false;
lock_cmd = "hyprlock"; lock_cmd = "pidof hyprlock || hyprlock";
}; };
listener = [ listener = [
{ {
timeout = 900; timeout = 60;
on-timeout = "hyprlock"; on-timeout = "loginctl lock-session";
} }
{ {
timeout = 1200; timeout = 1200;

View file

@ -0,0 +1,614 @@
{
config,
lib,
namespace,
pkgs,
...
}:
let
inherit (lib)
mkIf
mkEnableOption
mkMerge
mkOption
literalExpression
;
cfg = config.${namespace}.desktop.addons.hyprpanel;
username = config.${namespace}.user.name;
settingsFormat = pkgs.formats.json { };
iconColor = "#242438";
light-cyan = "#73daca";
lightBlue = "#414868";
medium-blue = "#9aa5ce";
cyan-blue = "#7dcfff";
navy-blue = "#24283b";
dark-blue = "#1a1b26";
dark-blue-gray = "565f89";
dark-blue-yankees = "#272a3d";
blue-magenta = "#181825";
lightPurple = "#bb9af7";
lightRed = "#f7768e";
red = "#c0caf5";
lightGreen = "#9ece6a";
yellow = "#e0af68";
settings = {
tear = true;
scalingPriority = "hyprland";
font.name = "CodeNewRoman Nerd Font Mono";
bar = {
customModules = {
updates.pollingInterval = 1440000;
ram = {
labelType = "used/total";
icon = " ";
};
cpu = {
label = true;
leftClick = "kitty --hold btop";
icon = " ";
};
};
layouts = {
"0" = {
left = [
"workspaces"
];
middle = [
"windowtitle"
];
right = [
"clock"
];
};
"1" = {
left = [
"dashboard"
"workspaces"
];
middle = [
"windowtitle"
];
right = [
"volume"
"bluetooth"
"battery"
"systray"
"cpu"
"ram"
"clock"
"notifications"
];
};
};
workspaces = {
showAllActive = true;
show_icons = false;
numbered_active_indicator = "underline";
show_numbered = true;
showWsIcons = false;
showApplicationIcons = false;
hideUnoccupied = true;
};
launcher = {
icon = "󱄅";
rightClick = "hyprpanel -t settings-dialog";
};
scrollSpeed = 0;
windowtitle = {
class_name = false;
custom_title = false;
icon = false;
label = true;
title_map = [
];
truncation = true;
};
network = {
label = false;
truncation = false;
};
clock.format = "%a %b %d %H:%M:%S";
notifications.show_total = true;
};
menus = {
clock.time.military = true;
dashboard = {
powermenu.avatar.image = "/home/cholli/Pictures/profile.png";
shortcuts.enabled = false;
directories.left = {
directory1.command = "kitty $HOME/Downloads";
directory3.command = "kitty $HOME/projects";
};
stats = {
enable_gpu = true;
enabled = false;
};
controls.enabled = false;
};
bluetooth = {
showBattery = true;
batteryState = "always";
};
transition = "crossfade";
};
theme = {
bar = {
floating = true;
outer_spacing = "0.2em";
buttons = {
enableBorders = true;
workspaces = {
enableBorder = false;
fontSize = "1.2em";
smartHighlight = false;
active = "#f7768e";
occupied = "#f7768e";
available = "#7dcfff";
hover = "#f7768e";
background = "#272a3d";
numbered_active_highlighted_text_color = "#181825";
numbered_active_underline_color = "#c678dd";
border = "#f7768e";
};
modules = {
power = {
icon = "#181825";
icon_background = "#f7768e";
background = "#272a3d";
border = "#f7768e";
};
ram = {
enableBorder = false;
spacing = "0.45em";
icon = "#181825";
icon_background = "#e0af68";
text = "#e0af68";
background = "#272a3d";
border = "#e0af68";
};
cpu = {
enableBorder = false;
background = "#272a3d";
icon = "#181825";
icon_background = "#f7768e";
text = "#f7768e";
border = "#f7768e";
};
submap = {
background = "#272a3d";
text = "#73daca";
border = "#73daca";
icon = "#181825";
icon_background = "#73daca";
};
};
style = "split";
icon = "#242438";
icon_background = "#bb9af7";
text = "#bb9af7";
hover = "#414868";
background = "#272a3d";
dashboard = {
enableBorder = false;
icon = "#272a3d";
background = "#e0af68";
border = "#e0af68";
};
volume = {
icon = "#272a3d";
text = "#f7768e";
background = "#272a3d";
icon_background = "#f7768e";
border = "#f7768e";
};
notifications = {
total = "#bb9af7";
icon = "#272a3d";
background = "#272a3d";
icon_background = "#bb9af7";
border = "#bb9af7";
};
clock = {
icon = "#272a3d";
text = "#f7768e";
background = "#272a3d";
icon_background = "#f7768e";
border = "#f7768e";
};
systray = {
background = "#272a3d";
border = "#414868";
customIcon = "#c0caf5";
};
bluetooth = {
icon = "#272a3d";
text = "#7dcfff";
background = "#272a3d";
icon_background = "#7dcfff";
border = "#7dcfff";
};
windowtitle = {
icon = "#272a3d";
text = "#f7768e";
background = "#272a3d";
icon_background = "#f7768e";
border = "#f7768e";
enableBorder = false;
};
radius = "0.3em";
borderSize = "0.0em";
padding_x = "0.7rem";
padding_y = "0.2rem";
};
menus = {
monochrome = false;
opacity = 95;
menu = {
dashboard = {
powermenu = {
shutdown = "#f7768e";
confirmation = {
deny = "#f7768e";
confirm = "#9ece6a";
button_text = "#1a1b26";
body = "#c0caf5";
label = "#bb9af7";
border = "#414868";
background = "#1a1b26";
card = "#24283b";
};
sleep = "#7dcfff";
logout = "#9ece6a";
restart = "#e0af68";
};
monitors = {
ram = {
label = "#e0af68";
bar = "#e0af68";
icon = "#e0af68";
};
cpu = {
label = "#f7768e";
bar = "#f7768e";
icon = "#f7768e";
};
bar_background = "#414868";
};
directories = {
right = {
bottom.color = "#bb9af7";
middle.color = "#bb9af7";
top.color = "#73daca";
};
left = {
bottom.color = "#f7768e";
middle.color = "#e0af68";
top.color = "#f7768e";
};
};
controls = {
input = {
text = "#1a1b26";
background = "#f7768e";
};
volume = {
text = "#1a1b26";
background = "#f7768e";
};
notifications = {
text = "#1a1b26";
background = "#e0af68";
};
bluetooth = {
text = "#1a1b26";
background = "#7dcfff";
};
disabled = "#414868";
};
profile.name = "#f7768e";
border.color = "#414868";
background.color = "#1a1b26";
card.color = "#24283b";
};
notifications = {
switch = {
puck = "#565f89";
disabled = "#565f89";
enabled = "#bb9af7";
};
clear = "#f7768e";
switch_divider = "#414868";
border = "#414868";
card = "#24283b";
background = "#1a1b26";
no_notifications_label = "#414868";
label = "#bb9af7";
scrollbar.color = "#bb9af7";
pager = {
button = "#bb9af7";
label = "#565f89";
background = "#1a1b26";
};
};
clock = {
text = "#c0caf5";
border.color = "#414868";
background.color = "#1a1b26";
card.color = "#24283b";
calendar = {
contextdays = "#414868";
days = "#c0caf5";
currentday = "#f7768e";
paginator = "#f7768e";
weekdays = "#f7768e";
yearmonth = "#73daca";
};
time = {
timeperiod = "#73daca";
time = "#f7768e";
};
};
systray = {
dropdownmenu.divider = "#24283b";
dropdownmenu.text = "#c0caf5";
dropdownmenu.background = "#1a1b26";
};
bluetooth = {
iconbutton = {
active = "#7dcfff";
passive = "#c0caf5";
};
icons = {
active = "#7dcfff";
passive = "#565f89";
};
listitems = {
active = "#7dcfff";
passive = "#c0caf5";
};
switch = {
puck = "#565f89";
disabled = "#565f89";
enabled = "#7dcfff";
};
switch_divider = "#414868";
status = "#565f89";
text = "#c0caf5";
label.color = "#7dcfff";
border.color = "#414868";
background.color = "#1a1b26";
card.color = "#24283b";
};
volume = {
text = "#c0caf5";
card.color = "#24283b";
label.color = "#f7768e";
input_slider = {
puck = "#414868";
backgroundhover = "#414868";
background = "#565f89";
primary = "#f7768e";
};
audio_slider = {
puck = "#414868";
backgroundhover = "#414868";
background = "#565f89";
primary = "#f7768e";
};
icons = {
active = "#f7768e";
passive = "#565f89";
};
iconbutton = {
active = "#f7768e";
passive = "#c0caf5";
};
listitems = {
active = "#f7768e";
passive = "#c0caf5";
};
border.color = "#414868";
background.color = "#1a1b26";
};
media = {
card.color = "#24283b";
slider = {
puck = "#565f89";
backgroundhover = "#414868";
background = "#565f89";
primary = "#f7768e";
};
buttons = {
text = "#1a1b26";
background = "#bb9af7";
enabled = "#73daca";
inactive = "#414868";
};
border.color = "#414868";
background.color = "#1a1b26";
album = "#f7768e";
artist = "#73daca";
song = "#bb9af7";
};
power = {
border.color = "#414868";
buttons = {
sleep = {
icon_background = "#7dcfff";
text = "#7dcfff";
background = "#24283b";
icon = "#1a1b26";
};
restart = {
text = "#e0af68";
icon_background = "#e0af68";
icon = "#1a1b26";
background = "#24283b";
};
shutdown = {
icon = "#1a1b26";
background = "#24283b";
icon_background = "#f7768e";
text = "#f7768e";
};
logout = {
icon = "#1a1b26";
background = "#24283b";
text = "#9ece6a";
icon_background = "#9ece6a";
};
};
background.color = "#1a1b26";
scaling = 90;
};
};
background = "#1a1b26";
text = "#c0caf5";
border.color = "#414868";
popover = {
text = "#bb9af7";
background = "#1a1b26";
border = "#1a1b26";
};
tooltip = {
text = "#c0caf5";
background = "#1a1b26";
};
dropdownmenu = {
divider = "#24283b";
text = "#c0caf5";
background = "#1a1b26";
};
slider = {
puck = "#565f89";
backgroundhover = "#414868";
background = "#565f89";
primary = "#bb9af7";
};
progressbar = {
background = "#414868";
foreground = "#bb9af7";
};
iconbuttons = {
active = "#bb9af7";
passive = "#c0caf5";
};
buttons = {
text = "#1a1b26";
disabled = "#565f89";
active = "#f7768e";
default = "#bb9af7";
};
switch = {
puck = "#565f89";
disabled = "#565f89";
enabled = "#bb9af7";
};
icons = {
active = "#bb9af7";
passive = "#414868";
};
listitems = {
active = "#bb9af7";
passive = "#c0caf5";
};
label = "#bb9af7";
feinttext = "#414868";
dimtext = "#414868";
cards = "#24283b";
check_radio_button.background = "#3b4261";
check_radio_button.active = "#bb9af7";
};
transparent = true;
background = "#1a1b26";
margin_sides = "0.0em";
location = "top";
};
osd = {
monitor = 1;
muted_zero = true;
label = "#bb9af7";
icon = "#1a1b26";
bar_overflow_color = "#f7768e";
bar_empty_color = "#414868";
bar_color = "#bb9af7";
icon_container = "#bb9af7";
bar_container = "#1a1b26";
};
notification = {
close_button.label = "#1a1b26";
close_button.background = "#f7768e";
labelicon = "#bb9af7";
text = "#c0caf5";
time = "#9aa5ce";
border = "#565f89";
label = "#bb9af7";
actions.text = "#24283b";
actions.background = "#bb9af7";
background = "#1a1b26";
};
font.size = "1.3rem";
};
notifications = {
monitor = 1;
active_monitor = false;
};
wallpaper = {
pywal = false;
image = "/home/cholli/Pictures/firewatch.jpg";
enable = false;
};
};
in
{
options.${namespace}.desktop.addons.hyprpanel = {
enable = mkEnableOption "Enable HyprIdle";
extraSettings = mkOption {
default = { };
inherit (settingsFormat) type;
description = ''
Additional Options to pass to hyprpanel
'';
example = literalExpression ''
{
}
'';
};
};
config = mkIf cfg.enable {
snowfallorg.users.${username}.home.config = {
wayland.windowManager.hyprland.settings.exec-once = [
"${pkgs.hyprpanel}/bin/hyprpanel"
];
};
${namespace}.home.file = {
".cache/ags/hyprpanel/options_test.json" = {
# source = pkgs.formats.json.generate "options.json" settings;
text = builtins.toJSON settings;
};
};
};
}

View file

@ -46,7 +46,7 @@
"bar.workspaces.numbered_active_indicator": "underline", "bar.workspaces.numbered_active_indicator": "underline",
"bar.scrollSpeed": 0, "bar.scrollSpeed": 0,
"menus.dashboard.powermenu.avatar.image": "/home/cholli/Pictures/profile.png", "menus.dashboard.powermenu.avatar.image": "/home/cholli/Pictures/profile.png",
"menus.dashboard.shortcuts.enabled": true, "menus.dashboard.shortcuts.enabled": false,
"menus.dashboard.directories.left.directory3.command": "bash -c \"xdg-open $HOME/projects/\"", "menus.dashboard.directories.left.directory3.command": "bash -c \"xdg-open $HOME/projects/\"",
"menus.dashboard.directories.left.directory1.command": "bash -c \"xdg-open $HOME/Downloads/\"", "menus.dashboard.directories.left.directory1.command": "bash -c \"xdg-open $HOME/Downloads/\"",
"menus.dashboard.stats.enable_gpu": true, "menus.dashboard.stats.enable_gpu": true,
@ -455,5 +455,6 @@
"bar.windowtitle.label": true, "bar.windowtitle.label": true,
"bar.windowtitle.title_map": [], "bar.windowtitle.title_map": [],
"bar.windowtitle.truncation": false, "bar.windowtitle.truncation": false,
"bar.workspaces.hideUnoccupied": true "bar.workspaces.hideUnoccupied": true,
"bar.launcher.rightClick": "hyprpanel -t settings-dialog"
} }

View file

@ -6,10 +6,17 @@
... ...
}: }:
let let
inherit (lib) mkIf mkEnableOption;
user = config.${namespace}.user.name; user = config.${namespace}.user.name;
cfg = config.${namespace}.desktop.hyprland;
in in
{ {
config = { options.${namespace}.desktop = {
enable = mkEnableOption "Whether to enable desktop theming";
};
config = mkIf cfg.enable {
${namespace}.home.extraOptions = { ${namespace}.home.extraOptions = {
dconf.settings = { dconf.settings = {
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {

View file

@ -55,7 +55,6 @@ in
# Wayland Utilities # Wayland Utilities
wl-clipboard wl-clipboard
wl-screenrec
wlr-randr wlr-randr
# Screenshot Utility # Screenshot Utility
@ -91,14 +90,18 @@ in
}; };
${namespace} = { ${namespace} = {
desktop.addons = { desktop = {
rofi = { enable = true;
enable = true; addons = {
package = pkgs.rofi-wayland-unwrapped; rofi = {
enable = true;
package = pkgs.rofi-wayland-unwrapped;
};
hypridle = enabled;
hyprlock = enabled;
hyprpanel = enabled;
hyprpaper = enabled;
}; };
hypridle = enabled;
hyprlock = enabled;
hyprpaper = enabled;
}; };
nix.extra-substituters.${cachix-url} = { nix.extra-substituters.${cachix-url} = {
@ -121,7 +124,6 @@ in
]; ];
exec-once = [ exec-once = [
"${pkgs.hyprpanel}/bin/hyprpanel"
"systemctl --user start hyprpolkitagent" "systemctl --user start hyprpolkitagent"
"[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things "[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things

View file

@ -0,0 +1,75 @@
{
config,
lib,
namespace,
pkgs,
...
}:
with lib;
with lib.${namespace};
let
cfg = config.${namespace}.security.acme;
in
{
options.${namespace}.security.acme = with lib.types; {
enable = mkEnableOption "Enable sops (Default true)";
email = mkOpt str config.${namespace}.user.email "The email to use.";
sopsFile = mkOption {
type = lib.types.path;
default = lib.snowfall.fs.get-file "secrets/secrets.yaml";
description = "SecretFile";
};
domainname = mkOpt str "christophhollizeck.dev" "domainname to use";
staging = mkOpt bool false "Use staging server for testing or not";
};
config = mkIf cfg.enable {
sops = {
secrets = {
netcup_customer_number = {
inherit (cfg) sopsFile;
};
netcup_api_key = {
inherit (cfg) sopsFile;
};
netcup_api_password = {
inherit (cfg) sopsFile;
};
};
templates = {
"netcup.env" = {
content = ''
NETCUP_CUSTOMER_NUMBER=${config.sops.placeholder.netcup_customer_number}
NETCUP_API_KEY=${config.sops.placeholder.netcup_api_key}
NETCUP_API_PASSWORD=${config.sops.placeholder.netcup_api_password}
NETCUP_PROPAGATION_TIMEOUT=1200
'';
};
};
};
security.acme = {
acceptTerms = true;
defaults = {
inherit (cfg) email;
group = mkIf config.services.nginx.enable "nginx";
reloadServices = optional config.services.nginx.enable "nginx.service";
dnsProvider = "netcup";
environmentFile = config.sops.templates."netcup.env".path;
};
certs."${cfg.domainname}" = {
server = mkIf cfg.staging "https://acme-staging-v02.api.letsencrypt.org/directory";
dnsResolver = "1.1.1.1:53";
extraDomainNames = [ "*.${cfg.domainname}" ];
};
};
};
}

View file

@ -8,25 +8,33 @@
with lib.${namespace}; with lib.${namespace};
let let
cfg = config.${namespace}.services.factorio-server; cfg = config.${namespace}.services.factorio-server;
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkOption mkEnableOption;
in in
{ {
options.${namespace}.services.factorio-server = { options.${namespace}.services.factorio-server = {
enable = mkEnableOption "Enable Factorio Headless Server"; enable = mkEnableOption "Enable Factorio Headless Server";
sopsFile = mkOption {
type = lib.types.path;
default = lib.snowfall.fs.get-file "secrets/secrets.yaml";
description = "SecretFile";
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ pkgs.factorio-headless ]; environment.systemPackages = [ pkgs.factorio-headless ];
sops = { sops = {
secrets = { secrets = {
factorio_token = { factorio_token = {
restartUnits = [ "factorio.service" ]; restartUnits = [ "factorio.service" ];
inherit (cfg) sopsFile;
}; };
factorio_username = { factorio_username = {
restartUnits = [ "factorio.service" ]; restartUnits = [ "factorio.service" ];
inherit (cfg) sopsFile;
}; };
factorio_game_password = { factorio_game_password = {
restartUnits = [ "factorio.service" ]; restartUnits = [ "factorio.service" ];
inherit (cfg) sopsFile;
}; };
}; };
templates."extraSettingsFile.json".content = '' templates."extraSettingsFile.json".content = ''
@ -40,7 +48,6 @@ in
"autosave_slots": 5, "autosave_slots": 5,
"ignore_player_limit_for_returning_players": true, "ignore_player_limit_for_returning_players": true,
"username" : "${config.sops.placeholder.factorio_username}", "username" : "${config.sops.placeholder.factorio_username}",
"admins": ["${config.sops.placeholder.factorio_username}"],
"token": "${config.sops.placeholder.factorio_token}" "token": "${config.sops.placeholder.factorio_token}"
} }
''; '';
@ -55,6 +62,11 @@ in
nonBlockingSaving = true; nonBlockingSaving = true;
autosave-interval = 15; autosave-interval = 15;
saveName = "SpaceAge"; saveName = "SpaceAge";
admins = [
"daholli"
"galbrain"
"geigeabc"
];
extraSettingsFile = config.sops.templates."extraSettingsFile.json".path; extraSettingsFile = config.sops.templates."extraSettingsFile.json".path;
}; };
}; };

View file

@ -13,7 +13,7 @@ let
in in
{ {
options.${namespace}.submodules.basics = with types; { options.${namespace}.submodules.basics = with types; {
enable = mkBoolOpt false "Whether or not to enable basic configuration."; enable = mkEnableOption "Whether or not to enable basic configuration.";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -29,7 +29,7 @@ in
#optional #optional
pciutils pciutils
usbutils usbutils
htop btop
]; ];
${namespace} = { ${namespace} = {

View file

@ -32,5 +32,14 @@ in
}; };
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
boot.kernelParams = [
"nvidia_drm.fbdev=1"
# TODO: remove after https://github.com/NVIDIA/open-gpu-kernel-modules/pull/692
# and similar are merged and build in nixpkgs-unstable.
# WARNING: this disables tty output and thus hides boot logs.
"initcall_blacklist=simpledrm_platform_driver_init"
];
}; };
} }

View file

@ -24,7 +24,7 @@ in
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
gitAndTools.gh gitAndTools.gh
gitbutler # gitbutler
]; ];
${namespace}.home.extraOptions = { ${namespace}.home.extraOptions = {

View file

@ -48,6 +48,11 @@ in
icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user."; icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user.";
extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned."; extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned.";
extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.<name>`."); extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.<name>`.");
trustedPublicKeys = mkOption {
default = [ ];
type = nullOr (listOf str);
description = "Trusted public keys for this user for the machine";
};
}; };
config = { config = {
@ -92,6 +97,8 @@ in
# system to select). # system to select).
uid = 1000; uid = 1000;
openssh.authorizedKeys.keys = cfg.trustedPublicKeys;
extraGroups = [ "steamcmd" ] ++ cfg.extraGroups; extraGroups = [ "steamcmd" ] ++ cfg.extraGroups;
} // cfg.extraOptions; } // cfg.extraOptions;
}; };

View file

@ -0,0 +1,30 @@
#ENC[AES256_GCM,data:Cgp+gOU81+rvdlY=,iv:8DxJxnCslDoEu0bxtlTjmNiAUCdiAV/8VYKTb4yqQ50=,tag:ZTkK7WCOBh1It6GuKPUXdg==,type:comment]
factorio_username: ENC[AES256_GCM,data:egV5kXtAiw==,iv:Hay0PC2yol5FAJGcWxLkxzNdwpD1V4UfDDnkhsjvjVQ=,tag:QBDS6eAeOswQoHBoi4Gj6A==,type:str]
factorio_token: ENC[AES256_GCM,data:whruEJQCNIqqfMA0A3yQdwwrzpIJBt815Lvex4Au,iv:hh3zZt+UxV9ltSHIAjpTRwtDvPgPU5APrB/1bXtKUkE=,tag:AgUmBYWp+Oyxm8O7yD8vlA==,type:str]
factorio_game_password: ENC[AES256_GCM,data:Gu/p0+Sbd6Y=,iv:6AB1T3JdleiUnusU7hw/0wOFNSBsAsBgP2yD9FB7zXk=,tag:DMgD4csthynuBon+KNZtOw==,type:str]
#ENC[AES256_GCM,data:15i2BBxM4iM=,iv:JV6Lsk8jUZl/eIJWkH/w5I2NraB9J9+0ggsENBGgbdI=,tag:HDwGheUv7dFIztQoJBjGmQ==,type:comment]
forgejo_db_password: ENC[AES256_GCM,data:CFsvko1AXRymDBC6WiOBs98rvFM=,iv:Wemhu8URxA6HsWQyYcPSwJzuMP4myrDC3rU3GEDVt7c=,tag:6wcNlDFVdnjez8hzi4E2cw==,type:str]
#ENC[AES256_GCM,data:nQnLBl7v,iv:HORr/Uvw4eUXfW5uS6rWr+6FkFF9bTNpMYGaRpVITRY=,tag:/r4n/xpqp7EPecGxDj4N+w==,type:comment]
netcup_customer_number: ENC[AES256_GCM,data:pRooJa3O,iv:0U/ONcWa2eqcsT1UpgXmLpAvJndaU8zln2g1HMbBQYE=,tag:+pu8EBl/dnm6DoLAtrjZBQ==,type:str]
netcup_api_key: ENC[AES256_GCM,data:nlkDz1VV2NIXxv/tIROWDHN9DLI0lVq9n9l2FlDwt+3H4G4gg6yCeZjGtR+pTCNfwio=,iv:x8HLL10ww52UJDkz7Yi02KBg7jbuLFHAlG0iMYDd8hk=,tag:pcuka4/Hu/QFIwS0b8GlxQ==,type:str]
netcup_api_password: ENC[AES256_GCM,data:k2mdQp57x5ZTypRCHbVlq1fembJ0uj5D0rb72K5rac43p888y3TFyiYVuDTosxR66mo=,iv:0OhtKWD/LWeV5ZWN9fbPozebSxvaFRdSn1AkX97ffAM=,tag:uY6A4jBL/9mtGy7++Yvn0A==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1amdd4hu6k0czf3mtlhd03yj3yzkdaynl7q5fdlqmjzpe9pwgxfjs3j0c85
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NFlTd2hOTHBtUDhuT0lF
amtLclY2ZTN0SStZQjFSNkZUd1RmMkdJZ0dJCnB2WU04dk41Qk45aGphMW9GQVJ4
b2VWQVlOVFFLaGJWaU9FVU5ZUWtlRncKLS0tIGVPYW5DQnJMeW1qdWtINDNlQWFo
NmhrdXhpbVlmUFNsT1VaQjZyYkZkdzgKhL2BKXfPWNWUbFavpmtBQpnNEm/x0xH6
NsjiV05AcrqPmGjj2kjvTv4ULPSoHiHiC5McUMfFTYIrCJgNvUbmMg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-07T14:40:34Z"
mac: ENC[AES256_GCM,data:uk2AeOA9pnhekuofIjXavCGy9ZaO0ObprkvnGhJg5lPr/hyT9l7YcZtMQ7wckKDLS03I1hCAcNg0w/EmSUeU2+EHLb6Z1IUj3l0HBUPtPIJwJZifkrzp9iQwGwlK+i6nfREEgPGeuNMj/rnD67MECO4NRHTzGBzH7ZImoDpu0Us=,iv:ss8Q7i75UOQDMJfw4dQCT0qxPUGwfHizX0c/TUej+vc=,tag:iufeO6sfaToNcJg6E8tuxA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.1

View file

@ -0,0 +1,122 @@
{
config,
lib,
namespace,
pkgs,
...
}:
let
inherit (lib) mkIf;
inherit (lib.${namespace}) enabled;
domainName = "christophhollizeck.dev";
forgejoPort = 3000;
cfg.enableAcme = true;
sopsFile = lib.snowfall.fs.get-file "secrets/secrets-loptland.yaml";
in
{
imports = [ ./hardware.nix ];
environment.systemPackages = [ ];
sops = {
secrets = {
forgejo_db_password = {
inherit sopsFile;
};
};
};
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
virtualHosts = {
"git.${domainName}" = {
forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = {
proxyPass = "http://localhost:${toString forgejoPort}/";
};
};
"${domainName}" = {
forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = {
return = "404";
};
};
};
};
services.forgejo = {
enable = true;
database.type = "postgres";
lfs.enable = true;
database = {
passwordFile = config.sops.secrets.forgejo_db_password.path;
};
settings = {
server = {
DOMAIN = "git.${domainName}";
ROOT_URL = "http://git.${domainName}:${toString forgejoPort}";
HTTP_PORT = forgejoPort;
};
service.DISABLE_REGISTRATION = true;
};
};
networking.firewall.allowedTCPPorts = [
forgejoPort
80
443
];
${namespace} = {
submodules = {
basics = enabled;
};
services = {
factorio-server = {
enable = true;
inherit sopsFile;
};
};
security = {
acme = {
enable = cfg.enableAcme;
inherit sopsFile;
};
};
user.trustedPublicKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII4Pr7p0jizrvIl0UhcvrmL5SHRQQQWIcHLAnRFyUZS6"
];
};
snowfallorg.users.${config.${namespace}.user.name}.home.config = {
programs.fish.shellInit = ''
eval $(op signin)
'';
};
system.stateVersion = "24.11";
}

View file

@ -0,0 +1,42 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [
"ata_piix"
"uhci_hcd"
"virtio_pci"
"sr_mod"
"virtio_blk"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/26b098dd-0a15-49c5-9998-75f43d17eb26";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/30AB-7309";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices = [ { device = "/dev/disk/by-uuid/b9bcb425-cb1c-40a1-89bb-d7fe6b421834"; } ];
networking.useDHCP = lib.mkDefault true;
}

View file

@ -5,7 +5,7 @@
... ...
}: }:
let let
inherit (lib.${namespace}) enabled; inherit (lib.${namespace}) enabled disabled;
in in
{ {
imports = [ ./hardware.nix ]; imports = [ ./hardware.nix ];
@ -21,6 +21,10 @@ in
virtualisation.waydroid = enabled; virtualisation.waydroid = enabled;
programs.ssh.extraConfig = ''
AddressFamily inet
'';
${namespace} = { ${namespace} = {
archetypes = { archetypes = {
gaming.enable = true; gaming.enable = true;
@ -79,7 +83,7 @@ in
}; };
services = { services = {
factorio-server = enabled; factorio-server = disabled;
}; };
system = { system = {