Compare commits
4 Commits
5e23488cae
...
ad8d7c8c09
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ad8d7c8c09 | ||
![]() |
c37238700d | ||
![]() |
330f5e2a50 | ||
![]() |
fbbe869550 |
93
flake.lock
generated
93
flake.lock
generated
@ -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",
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
);
|
);
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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;
|
||||||
|
77
modules/home/desktop/gnome.nix
Normal file
77
modules/home/desktop/gnome.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -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
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
}
|
|
@ -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 {
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
@ -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" = {
|
||||||
|
@ -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" ];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user