Wayland fixes and Initial WSL setup (#17)

This commit is contained in:
Christoph Hollizeck 2024-08-21 22:06:53 +02:00 committed by GitHub
commit 4231d1fcc3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 464 additions and 114 deletions

View file

@ -1,6 +1,38 @@
{ {
"nodes": { "nodes": {
"flake-compat": { "flake-compat": {
"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-compat_2": {
"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-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -17,7 +49,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_2": { "flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1650374568, "lastModified": 1650374568,
@ -33,7 +65,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": { "flake-compat_5": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1650374568, "lastModified": 1650374568,
@ -87,7 +119,7 @@
}, },
"flake-utils-plus": { "flake-utils-plus": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2" "flake-utils": "flake-utils_4"
}, },
"locked": { "locked": {
"lastModified": 1715533576, "lastModified": 1715533576,
@ -106,7 +138,7 @@
}, },
"flake-utils-plus_2": { "flake-utils-plus_2": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3" "flake-utils": "flake-utils_5"
}, },
"locked": { "locked": {
"lastModified": 1715533576, "lastModified": 1715533576,
@ -124,6 +156,42 @@
} }
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": { "locked": {
"lastModified": 1644229661, "lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@ -138,9 +206,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1694529238,
@ -178,11 +246,11 @@
"gpg-base-conf": { "gpg-base-conf": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1711321488, "lastModified": 1719781410,
"narHash": "sha256-UoPY3pr1EkQj0vTJdHtwG8UBEmsN5AVutYzZ/3R4t28=", "narHash": "sha256-cmtAG7UQX7mVNoHHpVIqasfkjnO7VtBMcz8MJ7frO0k=",
"owner": "drduh", "owner": "drduh",
"repo": "config", "repo": "config",
"rev": "3b1bd3925b3440f55902e0a386155c55fc97d147", "rev": "4eca229664d056737f1a097cdbdb10e5f247b0bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -198,11 +266,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1716711219, "lastModified": 1723015306,
"narHash": "sha256-TnZETiQPXbyT5mdCHMOyrJnx2+BwroMBRrguciz1vEo=", "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "05e6ba83eb3585ce0aff7b41e4bd0e317d05ad4a", "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -236,16 +304,18 @@
}, },
"nix-ld": { "nix-ld": {
"inputs": { "inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"unstable" "unstable"
] ]
}, },
"locked": { "locked": {
"lastModified": 1701153607, "lastModified": 1721411691,
"narHash": "sha256-h+odOVyiGmEERMECoFOj5P7FPiMR8IPRzroFA4sKivg=", "narHash": "sha256-fN0NjkYcQrdVSvWlSnvdu8XD34q8tl84SEz5BOJYROA=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-ld", "repo": "nix-ld",
"rev": "bf5aa84a713c31d95b4307e442e966d6c7fd7ae7", "rev": "7a990656e51465a18ba70f49c2cf9c8d0947b4c9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -256,11 +326,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1716715385, "lastModified": 1722332872,
"narHash": "sha256-fe6Z33pbfqu4TI5ijmcaNc5vRBs633tyxJ12HTghy3w=", "narHash": "sha256-2xLM4sc5QBfi0U/AANJAW21Bj4ZX479MHPMPkB+eKBU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "2e7d6c568063c83355fe066b8a8917ee758de1b8", "rev": "14c333162ba53c02853add87a0000cbd7aa230c2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -269,6 +339,28 @@
"type": "github" "type": "github"
} }
}, },
"nixos-wsl": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1724065442,
"narHash": "sha256-8ZUoyeO7Q70bLuijVYvToBSkApw9kfc5hMykTGxB64I=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "0bec2bfb8a2d4dd16e5b012982ca95e57d50e6a2",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NixOS-WSL",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1708475490, "lastModified": 1708475490,
@ -305,27 +397,27 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1716655032, "lastModified": 1721524707,
"narHash": "sha256-kQ25DAiCGigsNR/Quxm3v+JGXAEXZ8I7RAF4U94bGzE=", "narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "59a450646ec8ee0397f5fa54a08573e8240eb91f", "rev": "556533a23879fc7e5f98dd2e0b31a6911a213171",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "release-23.11", "ref": "release-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1716509168, "lastModified": 1723362943,
"narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", "narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bfb7a882678e518398ce9a31a881538679f6f092", "rev": "a58bc8ad779655e790115244571758e8de055e3d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -337,11 +429,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1716651315, "lastModified": 1721466660,
"narHash": "sha256-iMgzIeedMqf30TXZ439zW3Yvng1Xm9QTGO+ZwG1IWSw=", "narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c5187508b11177ef4278edf19616f44f21cc8c69", "rev": "6e14bbce7bea6c4efd7adfa88a40dac750d80100",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -379,6 +471,7 @@
"kickstartnvim": "kickstartnvim", "kickstartnvim": "kickstartnvim",
"nix-ld": "nix-ld", "nix-ld": "nix-ld",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"pyfa": "pyfa", "pyfa": "pyfa",
"snowfall-flake": "snowfall-flake", "snowfall-flake": "snowfall-flake",
@ -389,7 +482,7 @@
}, },
"snowfall-flake": { "snowfall-flake": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat_3",
"nixpkgs": [ "nixpkgs": [
"unstable" "unstable"
], ],
@ -411,7 +504,7 @@
}, },
"snowfall-lib": { "snowfall-lib": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_4",
"flake-utils-plus": "flake-utils-plus", "flake-utils-plus": "flake-utils-plus",
"nixpkgs": [ "nixpkgs": [
"snowfall-flake", "snowfall-flake",
@ -435,18 +528,18 @@
}, },
"snowfall-lib_2": { "snowfall-lib_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_5",
"flake-utils-plus": "flake-utils-plus_2", "flake-utils-plus": "flake-utils-plus_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1716675292, "lastModified": 1719005984,
"narHash": "sha256-7TFvVE4HR/b65/0AAhewYHEJzUXxIEJn82ow5bCkrDo=", "narHash": "sha256-mpFl3Jv4fKnn+5znYXG6SsBjfXHJdRG5FEqNSPx0GLA=",
"owner": "snowfallorg", "owner": "snowfallorg",
"repo": "lib", "repo": "lib",
"rev": "5d6e9f235735393c28e1145bec919610b172a20f", "rev": "c6238c83de101729c5de3a29586ba166a9a65622",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -461,11 +554,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1716692524, "lastModified": 1722897572,
"narHash": "sha256-sALodaA7Zkp/JD6ehgwc0UCBrSBfB4cX66uFGTsqeFU=", "narHash": "sha256-3m/iyyjCdRBF8xyehf59QlckIcmShyTesymSb+N4Ap4=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "962797a8d7f15ed7033031731d0bb77244839960", "rev": "8ae477955dfd9cbf5fa4eb82a8db8ddbb94e79d9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -504,13 +597,43 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1716509168, "lastModified": 1722813957,
"narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", "narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bfb7a882678e518398ce9a31a881538679f6f092", "rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -2,12 +2,18 @@
description = "NixOs Config"; description = "NixOs Config";
inputs = { inputs = {
# nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
unstable.url = "github:nixos/nixpkgs/nixos-unstable"; unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
# url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-wsl = {
url = "github:nix-community/NixOS-WSL";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -83,5 +89,9 @@
nix-ld.nixosModules.nix-ld nix-ld.nixosModules.nix-ld
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
]; ];
systems.hosts.wsl.modules = with inputs; [
nixos-wsl.nixosModules.default
];
}; };
} }

View file

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

View file

@ -16,9 +16,7 @@ in
enable = mkBoolOpt true "Enable Git (Default true)"; enable = mkBoolOpt true "Enable Git (Default true)";
userName = mkOpt types.str user.fullName "The name to configure git with."; userName = mkOpt types.str user.fullName "The name to configure git with.";
userEmail = mkOpt types.str user.email "The email to configure git with."; userEmail = mkOpt types.str user.email "The email to configure git with.";
signingKey = signingKey = mkOpt types.str "6995A5FF33791B7B" "The pub key to sign commits with.";
mkOpt types.str "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN4iH29edivUi+k94apb6pasWq8qphfhYo0d6B2GhISf"
"The pub key to sign commits with.";
signByDefault = mkOpt types.bool true "Whether to sign commits by default."; signByDefault = mkOpt types.bool true "Whether to sign commits by default.";
}; };
@ -44,10 +42,6 @@ in
safe = { safe = {
directory = "${user.home}/projects/config"; directory = "${user.home}/projects/config";
}; };
gpg = {
format = "ssh";
"ssh".program = "${pkgs._1password-gui}/bin/op-ssh-sign";
};
}; };
}; };
}; };

View file

@ -1,8 +1,4 @@
{ { lib, config, ... }:
lib,
config,
...
}:
with lib; with lib;
with lib.wyrdgard; with lib.wyrdgard;
let let

View file

@ -19,6 +19,9 @@ in
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vivaldi vivaldi
vivaldi-ffmpeg-codecs vivaldi-ffmpeg-codecs
qt5.qtwayland
]; ];
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
}; };
} }

View file

@ -0,0 +1,31 @@
{
config,
lib,
pkgs,
...
}:
with lib;
with lib.wyrdgard;
let
cfg = config.wyrdgard.graphical-interface.desktop-manager.hyprland;
in
{
options.wyrdgard.graphical-interface.desktop-manager.hyprland = with types; {
enable = mkEnableOption "Whether to enable hyprland";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
polkit
xdg-desktop-portal-hyprland
dconf
];
services.xserver = enabled;
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
};
}

View file

@ -0,0 +1,28 @@
{
config,
lib,
pkgs,
...
}:
with lib;
with lib.wyrdgard;
let
cfg = config.wyrdgard.graphical-interface.desktop-manager.kde;
in
{
options.wyrdgard.graphical-interface.desktop-manager.kde = with types; {
enable = mkEnableOption "Whether to enable a kde plasma6";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
xdg-utils
kdePackages.qtbase
];
services = {
xserver = enabled;
desktopManager.plasma6 = enabled;
};
};
}

View file

@ -0,0 +1,43 @@
{
pkgs,
config,
lib,
...
}:
with lib;
with lib.wyrdgard;
let
cfg = config.wyrdgard.graphical-interface.display-manager.greetd;
hyperland = config.wyrdgard.graphical-interface.desktop-manager.hyperland;
hyprland-session = "${inputs.hyprland.packages.${pkgs.system}.hyperland}/share/wayland-sessions";
kde-session = "${inputs.plasma6.packages.${pkgs.system}.plasma6}/share/wayland-sessions";
tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session";
command =
if hyperland.enable then
"${tuigreet} --sessions ${hyprland-session}"
else
"${tuigreet} --sessions ${kde-session}";
in
{
options.wyrdgard.graphical-interface.display-manager.greetd = with types; {
enable = mkEnableOption "Whether to enable a sddm";
};
config = mkIf cfg.enable {
services = {
xserver = enabled;
greetd = {
enable = true;
settings = {
default_session = {
command = command;
user = config.wyrdgard.user.name;
};
};
};
};
};
}

View file

@ -0,0 +1,23 @@
{ config, lib, ... }:
with lib;
with lib.wyrdgard;
let
cfg = config.wyrdgard.graphical-interface.display-manager.sddm;
in
{
options.wyrdgard.graphical-interface.display-manager.sddm = with types; {
enable = mkEnableOption "Whether to enable a sddm";
};
config = mkIf cfg.enable {
services = {
xserver = enabled;
displayManager = {
sddm = {
enable = true;
wayland.enable = true;
};
};
};
};
}

View file

@ -1,9 +1,7 @@
{ {
options,
config, config,
pkgs, pkgs,
lib, lib,
inputs,
... ...
}: }:
with lib; with lib;
@ -14,7 +12,7 @@ in
{ {
options.wyrdgard.nix = with types; { options.wyrdgard.nix = with types; {
enable = mkBoolOpt true "Whether or not to manage nix configuration."; enable = mkBoolOpt true "Whether or not to manage nix configuration.";
package = mkOpt package pkgs.nixVersions.git "Which nix package to use."; package = mkOpt package pkgs.lix "Which nix package to use.";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -19,6 +19,10 @@ let
max-cache-ttl 120 max-cache-ttl 120
pinentry-program ${pkgs.pinentry-qt}/bin/pinentry-qt pinentry-program ${pkgs.pinentry-qt}/bin/pinentry-qt
''; '';
reload-yubikey = pkgs.writeShellScriptBin "reload-yubikey" ''
${pkgs.gnupg}/bin/gpg-connect-agent "scd serialno" "learn --force" /bye
'';
in in
{ {
options.wyrdgard.security.gpg = with types; { options.wyrdgard.security.gpg = with types; {
@ -27,11 +31,19 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.pcscd.enable = true;
services.udev.packages = with pkgs; [ yubikey-personalization ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
cryptsetup
paperkey paperkey
gnupg gnupg
pinentry-curses pinentry-curses
pinentry-qt pinentry-qt
yubikey-manager
yubikey-manager-qt
reload-yubikey
]; ];
programs = { programs = {
@ -50,6 +62,8 @@ in
".gnupg/gpg.conf".source = gpgConf; ".gnupg/gpg.conf".source = gpgConf;
".gnupg/gpg-agent.conf".text = gpgAgentConf; ".gnupg/gpg-agent.conf".text = gpgAgentConf;
".gnupg/scdeamon.conf".text = "disable-ccid";
# YUBIKEYCERTIFYPASSWORD
}; };
}; };
}; };

View file

@ -0,0 +1,48 @@
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.wyrdgard;
let
cfg = config.wyrdgard.submodules.basics-wsl;
in
{
options.wyrdgard.submodules.basics-wsl = with types; {
enable = mkBoolOpt false "Whether or not to enable basic configuration.";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
neofetch
fd
tree
ripgrep
fzf
colorls
];
wyrdgard = {
nix = enabled;
tools = {
git = enabled;
};
system.hardware = {
networking = enabled;
};
system = {
fonts = enabled;
locale = enabled;
time = enabled;
xkb = enabled;
};
};
};
}

View file

@ -36,7 +36,6 @@ in
tools = { tools = {
git = enabled; git = enabled;
nix-ld = enabled;
}; };
system.hardware = { system.hardware = {

View file

@ -1,5 +1,4 @@
{ {
options,
config, config,
lib, lib,
pkgs, pkgs,
@ -18,18 +17,12 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ xdg-utils ]; environment.systemPackages = with pkgs; [ xdg-utils ];
services = { wyrdgard.graphical-interface = {
xserver = { display-manager.sddm = enabled;
enable = true; desktop-manager = {
hyprland = enabled;
kde = enabled;
}; };
displayManager = {
defaultSession = "plasmax11";
sddm = {
enable = true;
wayland.enable = true;
};
};
desktopManager.plasma6 = enabled;
}; };
}; };
} }

View file

@ -1,5 +1,4 @@
{ {
options,
config, config,
pkgs, pkgs,
lib, lib,
@ -16,6 +15,7 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_8;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;

View file

@ -23,7 +23,6 @@ in
programs.noisetorch.enable = true; programs.noisetorch.enable = true;
sound.enable = true;
hardware.pulseaudio = disabled; hardware.pulseaudio = disabled;
security.rtkit.enable = true; security.rtkit.enable = true;

View file

@ -1,8 +1,4 @@
{ { lib, config, ... }:
lib,
config,
...
}:
with lib; with lib;
with lib.wyrdgard; with lib.wyrdgard;
let let
@ -14,19 +10,17 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
hardware.opengl = { hardware.graphics = {
enable = true; enable = true;
driSupport = true; enable32Bit = true;
driSupport32Bit = true;
}; };
hardware.nvidia = { hardware.nvidia = {
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = false; powerManagement.enable = true;
powerManagement.finegrained = false;
open = false; open = false;
nvidiaSettings = false; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.beta; # stable, beta package = config.boot.kernelPackages.nvidiaPackages.stable; # stable, beta
}; };
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];

View file

@ -16,9 +16,7 @@ in
enable = mkBoolOpt true "Wether or not to enable git (Default enabled)"; enable = mkBoolOpt true "Wether or not to enable git (Default enabled)";
userName = mkOpt types.str user.fullName "The name to use git with"; userName = mkOpt types.str user.fullName "The name to use git with";
userEmail = mkOpt types.str user.email "The email to use git with"; userEmail = mkOpt types.str user.email "The email to use git with";
signingKey = signingKey = mkOpt types.str "6995A5FF33791B7B" "The key ID to sign commits with.";
mkOpt types.str "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN4iH29edivUi+k94apb6pasWq8qphfhYo0d6B2GhISf"
"The key ID to sign commits with.";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -34,7 +32,7 @@ in
lfs.enable = true; lfs.enable = true;
signing = { signing = {
key = cfg.signingKey; key = cfg.signingKey;
signByDefault = mkIf _1password.enable true; signByDefault = mkIf gpg.enable true;
}; };
extraConfig = { extraConfig = {
init = { init = {
@ -49,10 +47,6 @@ in
safe = { safe = {
directory = "${config.users.users.${user.name}.home}/projects/config"; directory = "${config.users.users.${user.name}.home}/projects/config";
}; };
gpg = {
format = "ssh";
"ssh".program = "${pkgs._1password-gui}/bin/op-ssh-sign";
};
}; };
}; };
}; };

View file

@ -1,19 +0,0 @@
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.wyrdgard;
let
cfg = config.wyrdgard.tools.nix-ld;
in
{
options.wyrdgard.tools.nix-ld = with types; {
enable = mkBoolOpt false "Wether or not to enable nix-ld";
};
config = mkIf cfg.enable { programs.nix-ld.enable = true; };
}

View file

@ -0,0 +1,5 @@
{ channels, ... }:
final: prev: {
inherit (channels.unstable) pobfrontend;
}

View file

@ -1,5 +1,14 @@
{ channels, ... }: { channels, ... }:
final: prev: { final: prev: {
vivaldi = prev.vivaldi.override { commandLineArgs = "--disable-features=AllowQt"; }; vivaldi = prev.vivaldi.overrideAttrs (oldAttrs: {
dontWrapQtApps = false;
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ channels.unstable.kdePackages.wrapQtAppsHook ];
commandLineArgs = ''
-enable-features=UseOzonePlatform
--ozone-platform=wayland
--ozone-platform-hint=auto
--enable-features=WaylandWindowDecorations
'';
});
} }

1
result Symbolic link
View file

@ -0,0 +1 @@
/nix/store/5bn24v1m3gsjr96fj9h2kavaj67lxh5q-nixos-24.05.20240410.1042fd8-x86_64-linux.iso

View file

@ -0,0 +1,26 @@
{
config,
pkgs,
lib,
...
}:
with lib;
with lib.wyrdgard;
{
wsl = {
enable = true;
defaultUser = config.wyrdgard.user.name;
};
environment.systemPackages = with pkgs; [
git
wslu
wsl-open
];
wyrdgard = {
submodules.basics-wsl = enabled;
};
system.stateVersion = "24.11";
}

View file

@ -9,10 +9,17 @@ with lib.wyrdgard;
{ {
imports = [ ./hardware.nix ]; imports = [ ./hardware.nix ];
environment.systemPackages = with pkgs; [ jetbrains.rust-rover inputs.pyfa ]; environment.systemPackages = with pkgs; [
jetbrains.rust-rover
inputs.pyfa
teamspeak_client
path-of-building
];
environment.pathsToLink = [ "/libexec" ]; environment.pathsToLink = [ "/libexec" ];
virtualisation.waydroid = enabled;
wyrdgard = { wyrdgard = {
archetypes = { archetypes = {
gaming.enable = true; gaming.enable = true;
@ -36,6 +43,8 @@ with lib.wyrdgard;
gpu.nvidia = enabled; gpu.nvidia = enabled;
}; };
}; };
security.gpg = enabled;
}; };
system.stateVersion = "23.11"; system.stateVersion = "23.11";

View file

@ -4,12 +4,21 @@
{ {
config, config,
lib, lib,
pkgs,
modulesPath, modulesPath,
inputs,
... ...
}: }:
let
inherit (inputs) nixos-hardware;
in
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = with nixos-hardware.nixosModules; [
(modulesPath + "/installer/scan/not-detected.nix")
common-cpu-amd
common-gpu-nvidia-nonprime
common-pc
common-pc-ssd
];
boot = { boot = {
initrd.availableKernelModules = [ initrd.availableKernelModules = [