Compare commits

...

4 Commits

Author SHA1 Message Date
Jan-Bulthuis
ad8d7c8c09 Reworked DE 2025-05-18 15:01:25 +02:00
Jan-Bulthuis
c37238700d Added dconf-editor and bottles 2025-05-18 15:01:14 +02:00
Jan-Bulthuis
330f5e2a50 Enabled libvirtd 2025-05-18 15:01:05 +02:00
Jan-Bulthuis
fbbe869550 Reworked glue input 2025-05-18 15:00:51 +02:00
10 changed files with 205 additions and 89 deletions

93
flake.lock generated
View File

@ -1,5 +1,39 @@
{ {
"nodes": { "nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"glue": { "glue": {
"locked": { "locked": {
"path": "./glue", "path": "./glue",
@ -31,6 +65,48 @@
"type": "github" "type": "github"
} }
}, },
"nix-minecraft": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1747526922,
"narHash": "sha256-NmBP0W4RJ8NTkeaMKy/NNzMBIQDa8n161Igbu7zWM2E=",
"owner": "Jan-Bulthuis",
"repo": "nix-minecraft",
"rev": "566b5218ff51d80da60873fe3b5930b8da12091c",
"type": "github"
},
"original": {
"owner": "Jan-Bulthuis",
"repo": "nix-minecraft",
"type": "github"
}
},
"nix-modpack": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1747559249,
"narHash": "sha256-+ygKEGMVcXNklO4RDYSd5XzydDmQOZWcOcxYZf/PH1U=",
"owner": "Jan-Bulthuis",
"repo": "nix-modpack",
"rev": "a093625c2847afc3ef257513161c7fe318c6be1c",
"type": "github"
},
"original": {
"owner": "Jan-Bulthuis",
"repo": "nix-modpack",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1746576598, "lastModified": 1746576598,
@ -51,8 +127,25 @@
"inputs": { "inputs": {
"glue": "glue", "glue": "glue",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-minecraft": "nix-minecraft",
"nix-modpack": "nix-modpack",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -6,7 +6,11 @@
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-minecraft.url = "github:Jan-Bulthuis/nix-minecraft";
nix-minecraft.inputs.nixpkgs.follows = "nixpkgs";
nix-modpack.url = "github:Jan-Bulthuis/nix-modpack";
nix-modpack.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs: inputs.glue { inherit inputs; }; outputs = inputs: inputs.glue inputs;
} }

View File

@ -2,10 +2,7 @@
let let
mkGlue = mkGlue =
{ inputs:
inputs,
...
}:
let let
flake = inputs.self; flake = inputs.self;
nixpkgs = inputs.nixpkgs; nixpkgs = inputs.nixpkgs;
@ -50,12 +47,7 @@ let
in in
fn (entries // recursedEntries); fn (entries // recursedEntries);
systems = [ eachSystem = fn: lib.genAttrs lib.systems.flakeExposed fn;
"x86_64-linux"
"aarch64-linux"
];
eachSystem = fn: lib.genAttrs systems fn;
systemArgs = eachSystem (system: { systemArgs = eachSystem (system: {
pkgs = ( pkgs = (
@ -103,17 +95,31 @@ let
); );
nixosModules = collectModules "${flake}/modules/nixos"; nixosModules = collectModules "${flake}/modules/nixos";
inputNixosModules = lib.map (flake: flake.outputs.nixosModules.default) (
lib.filter (flake: lib.hasAttrByPath [ "outputs" "nixosModules" "default" ] flake) (
lib.attrValues inputs
)
);
homeModules = collectModules "${flake}/modules/home"; homeModules = collectModules "${flake}/modules/home";
inputHomeModules = lib.map (flake: flake.outputs.homeManagerModules.default) (
lib.filter (flake: lib.hasAttrByPath [ "outputs" "homeManagerModules" "default" ] flake) (
lib.attrValues inputs
)
);
inputOverlays = lib.map (flake: flake.outputs.overlays.default) (
lib.filter (flake: lib.hasAttrByPath [ "outputs" "overlays" "default" ] flake) (
lib.attrValues inputs
)
);
overlayModule = overlayModule =
{ ... }: { ... }:
{ {
nixpkgs.overlays = [ overlay ]; nixpkgs.overlays = [ overlay ] ++ inputOverlays;
}; };
homeManager = inputs.home-manager.nixosModules.home-manager;
nixosConfigurations = importDir "${flake}/hosts" ( nixosConfigurations = importDir "${flake}/hosts" (
attrs: attrs:
lib.mapAttrs ( lib.mapAttrs (
@ -139,7 +145,7 @@ let
usersModule = usersModule =
{ ... }: { ... }:
{ {
home-manager.sharedModules = homeModules; home-manager.sharedModules = homeModules ++ inputHomeModules;
home-manager.useUserPackages = false; # TODO: See if this should be changed to true? home-manager.useUserPackages = false; # TODO: See if this should be changed to true?
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.users = homesConfiguration; home-manager.users = homesConfiguration;
@ -151,9 +157,9 @@ let
systemPath systemPath
overlayModule overlayModule
usersModule usersModule
homeManager
] ]
++ nixosModules; ++ nixosModules
++ inputNixosModules;
} }
) (lib.attrsets.filterAttrs (name: entry: entry.type == "directory") attrs) ) (lib.attrsets.filterAttrs (name: entry: entry.type == "directory") attrs)
); );

View File

@ -10,6 +10,8 @@
# Admin users # Admin users
users.users.jan.extraGroups = [ "wheel" ]; users.users.jan.extraGroups = [ "wheel" ];
virtualisation.libvirtd.enable = true;
modules = { modules = {
profiles.laptop.enable = true; profiles.laptop.enable = true;
}; };

View File

@ -17,9 +17,6 @@
ente-auth ente-auth
bitwarden bitwarden
carla carla
baobab
gnome-calculator
nautilus
winbox winbox
whatsapp-for-linux whatsapp-for-linux
discord discord
@ -30,6 +27,8 @@
river # TODO: Move river # TODO: Move
firefox # TODO: Move to dediated module firefox # TODO: Move to dediated module
ryubing ryubing
dconf-editor
bottles
]; ];
modules = { modules = {
@ -88,7 +87,7 @@
# Languages # Languages
haskell.enable = false; haskell.enable = false;
js.enable = false; js.enable = true;
nix.enable = true; nix.enable = true;
rust.enable = true; rust.enable = true;
python.enable = true; python.enable = true;

View File

@ -0,0 +1,77 @@
{
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.modules.desktop.gnome;
in
{
options.modules.desktop.gnome = {
enable = mkEnableOption "gnome";
};
config = mkIf cfg.enable {
# TODO: Enable extensions with dconf
home.pointerCursor = {
name = "capitaine-cursors";
size = 24;
package = pkgs.capitaine-cursors;
gtk.enable = true;
x11.enable = true;
};
home.packages =
with pkgs;
[
gnome-session
gnome-shell
gnome-tweaks
gnome-calculator
snapshot
gnome-characters
gnome-connections
blackbox-terminal
baobab
gnome-disk-utility
evince
nautilus
gnome-font-viewer
loupe
gnome-maps
gnome-music
gnome-control-center
gnome-text-editor
showtime
file-roller
# For theming gtk3
adw-gtk3
]
++ (with pkgs.gnomeExtensions; [
gsconnect
disable-workspace-animation
wallpaper-slideshow
]);
# Enable and set the gtk themes
gtk = {
enable = true;
gtk3.extraConfig = {
gtk-theme-name = "adw-gtk3";
};
gtk4.extraConfig = {
gtk-theme-name = "Adwaita";
};
};
# Set the theme with dconf
dconf.settings."org/gnome/desktop/interface" = {
gtk-theme = "adw-gtk3";
};
};
}

View File

@ -1,32 +0,0 @@
{
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.modules.desktop.gnome;
in
{
options.modules.desktop.gnome = {
enable = mkEnableOption "gnome";
};
config = mkIf cfg.enable {
# TODO: Enable extensions with dconf
home.packages =
with pkgs;
[
gnome-control-center
gnome-tweaks
blackbox-terminal
]
++ (with pkgs.gnomeExtensions; [
gsconnect
disable-workspace-animation
]);
};
}

View File

@ -1,20 +0,0 @@
{
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.modules.desktop.tiling;
in
{
options.modules.desktop.tiling = {
enable = mkEnableOption "tiling desktop";
};
config = mkIf cfg.enable {
};
}

View File

@ -84,6 +84,9 @@ in
# Disable update notifications # Disable update notifications
"update.mode" = "none"; "update.mode" = "none";
# Set themes
"window.autoDetectColorScheme" = true;
# TODO: Move to direnv module # TODO: Move to direnv module
# Ignore direnv folder # Ignore direnv folder
"files.exclude" = { "files.exclude" = {

View File

@ -40,22 +40,6 @@ in
xdg-user-dirs-gtk xdg-user-dirs-gtk
]; ];
# Set up desktop entries for possible desktop environments
services.displayManager.sessionPackages = [
(pkgs.writeTextFile {
name = "river.desktop";
text = ''
[Desktop Entry]
Name=River
Comment=A dynamic tiling Wayland compositor
Exec=river
Type=Application
'';
destination = "/share/wayland-sessions/river.desktop";
passthru.providedSessions = [ "river" ];
})
];
# Enable Gnome Remote Desktop # Enable Gnome Remote Desktop
services.gnome.gnome-remote-desktop.enable = true; services.gnome.gnome-remote-desktop.enable = true;
systemd.services."gnome-remote-desktop".wantedBy = [ "graphical.target" ]; systemd.services."gnome-remote-desktop".wantedBy = [ "graphical.target" ];