2023-08-29 13:23:48 +02:00
|
|
|
{
|
2023-11-08 15:18:44 +01:00
|
|
|
lib,
|
2023-11-05 22:49:25 +01:00
|
|
|
pkgs,
|
2023-11-14 19:47:42 +01:00
|
|
|
config,
|
2023-11-16 01:45:49 +01:00
|
|
|
agenix,
|
2023-11-05 22:49:25 +01:00
|
|
|
...
|
2023-11-13 04:22:42 +01:00
|
|
|
}: let
|
|
|
|
username = "leo";
|
|
|
|
in {
|
|
|
|
imports = [
|
2023-11-14 18:29:14 +01:00
|
|
|
../programs
|
2023-11-13 04:22:42 +01:00
|
|
|
(lib.mkAliasOptionModule ["hm"] ["home-manager" "users" username])
|
|
|
|
];
|
|
|
|
|
2023-11-06 13:30:32 +01:00
|
|
|
boot = {
|
|
|
|
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
2023-11-08 15:18:44 +01:00
|
|
|
|
2023-11-06 13:30:32 +01:00
|
|
|
loader = {
|
2023-11-08 15:18:44 +01:00
|
|
|
systemd-boot.enable = lib.mkForce false;
|
2023-11-06 13:30:32 +01:00
|
|
|
efi.canTouchEfiVariables = true;
|
|
|
|
};
|
2023-11-08 15:18:44 +01:00
|
|
|
|
|
|
|
lanzaboote = {
|
|
|
|
enable = true;
|
|
|
|
pkiBundle = "/etc/secureboot";
|
|
|
|
};
|
2023-11-06 13:30:32 +01:00
|
|
|
};
|
2023-08-29 13:23:48 +02:00
|
|
|
|
2023-11-07 17:00:23 +01:00
|
|
|
hardware = {
|
|
|
|
opengl.enable = true;
|
|
|
|
pulseaudio.enable = false;
|
2023-11-19 15:21:26 +01:00
|
|
|
|
|
|
|
xone.enable = true;
|
|
|
|
xpadneo.enable = true;
|
2023-11-05 22:49:25 +01:00
|
|
|
};
|
|
|
|
|
2023-11-07 17:00:23 +01:00
|
|
|
sound.enable = true;
|
|
|
|
|
|
|
|
services = {
|
|
|
|
# apparently needed for mesa
|
|
|
|
xserver = {
|
|
|
|
enable = true;
|
2023-11-07 17:07:36 +01:00
|
|
|
xkb.layout = "fr";
|
2023-11-07 17:00:23 +01:00
|
|
|
displayManager = {
|
|
|
|
lightdm.enable = false;
|
|
|
|
gdm = {
|
|
|
|
enable = true;
|
|
|
|
wayland = true;
|
|
|
|
};
|
|
|
|
defaultSession = "hyprland";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
printing.enable = true;
|
|
|
|
|
|
|
|
pipewire = {
|
|
|
|
enable = true;
|
|
|
|
alsa.enable = true;
|
|
|
|
alsa.support32Bit = true;
|
|
|
|
pulse.enable = true;
|
|
|
|
wireplumber.enable = true;
|
|
|
|
};
|
|
|
|
|
2023-12-08 16:48:30 +01:00
|
|
|
ratbagd.enable = true;
|
2023-11-07 17:00:23 +01:00
|
|
|
udisks2.enable = true;
|
|
|
|
gvfs.enable = true;
|
2023-11-19 00:42:32 +01:00
|
|
|
tumbler.enable = true;
|
2023-11-07 17:00:23 +01:00
|
|
|
gnome.gnome-keyring.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
xdg = {
|
|
|
|
portal = {
|
|
|
|
enable = true;
|
|
|
|
extraPortals = with pkgs; [xdg-desktop-portal-gtk];
|
|
|
|
};
|
|
|
|
|
|
|
|
mime.enable = true;
|
|
|
|
icons.enable = true;
|
|
|
|
};
|
2023-08-29 13:23:48 +02:00
|
|
|
|
|
|
|
networking.networkmanager.enable = true;
|
|
|
|
|
|
|
|
time.timeZone = "Europe/Paris";
|
|
|
|
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
i18n.extraLocaleSettings = {
|
|
|
|
LC_ADDRESS = "fr_FR.UTF-8";
|
|
|
|
LC_IDENTIFICATION = "fr_FR.UTF-8";
|
|
|
|
LC_MEASUREMENT = "fr_FR.UTF-8";
|
|
|
|
LC_MONETARY = "fr_FR.UTF-8";
|
|
|
|
LC_NAME = "fr_FR.UTF-8";
|
|
|
|
LC_NUMERIC = "fr_FR.UTF-8";
|
|
|
|
LC_PAPER = "fr_FR.UTF-8";
|
|
|
|
LC_TELEPHONE = "fr_FR.UTF-8";
|
|
|
|
LC_TIME = "fr_FR.UTF-8";
|
|
|
|
};
|
|
|
|
|
|
|
|
console.keyMap = "fr";
|
|
|
|
|
2023-11-22 19:22:16 +01:00
|
|
|
security = {
|
|
|
|
rtkit.enable = true;
|
|
|
|
polkit.enable = true;
|
2023-12-06 17:11:12 +01:00
|
|
|
pam.services.login.enableGnomeKeyring = true;
|
2023-11-22 19:22:16 +01:00
|
|
|
};
|
2023-08-29 13:23:48 +02:00
|
|
|
|
2023-11-14 19:47:42 +01:00
|
|
|
age = {
|
2023-11-22 15:38:47 +01:00
|
|
|
identityPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
2023-11-14 19:47:42 +01:00
|
|
|
|
|
|
|
secrets = let
|
|
|
|
base = ../secrets/desktop;
|
|
|
|
in {
|
|
|
|
rootPassword.file = "${base}/rootPassword.age";
|
|
|
|
userPassword.file = "${base}/userPassword.age";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
home-manager = {
|
|
|
|
useGlobalPkgs = true;
|
|
|
|
useUserPackages = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
hm = {
|
|
|
|
home.packages = with pkgs; let
|
2023-11-08 14:42:16 +01:00
|
|
|
inherit (pkgs.stdenv.hostPlatform) system;
|
|
|
|
in [
|
2023-11-26 22:44:34 +01:00
|
|
|
agenix.packages.${system}.default
|
2023-12-19 14:45:21 +01:00
|
|
|
aseprite
|
2023-12-19 14:23:36 +01:00
|
|
|
blockbench-electron
|
2023-11-05 22:49:25 +01:00
|
|
|
font-manager
|
2023-11-26 22:44:34 +01:00
|
|
|
gimp
|
2023-11-05 22:49:25 +01:00
|
|
|
jetbrains.idea-ultimate
|
2023-11-26 22:44:34 +01:00
|
|
|
libreoffice-fresh
|
|
|
|
mate.eom
|
2023-11-05 22:49:25 +01:00
|
|
|
mold
|
|
|
|
mpv
|
2023-11-26 22:44:34 +01:00
|
|
|
nwg-look
|
|
|
|
obs-studio
|
2023-12-17 22:08:35 +01:00
|
|
|
obsidian
|
2023-11-07 17:00:23 +01:00
|
|
|
osu-lazer-bin
|
2023-11-26 22:44:34 +01:00
|
|
|
pavucontrol
|
2023-11-29 12:10:48 +01:00
|
|
|
polkit_gnome
|
2023-11-26 22:44:34 +01:00
|
|
|
prismlauncher
|
|
|
|
sccache
|
2023-11-23 15:33:10 +01:00
|
|
|
shotcut
|
2023-11-26 22:44:34 +01:00
|
|
|
vesktop
|
|
|
|
|
2023-11-27 14:30:05 +01:00
|
|
|
(catppuccin-gtk.override {
|
2023-11-26 22:44:34 +01:00
|
|
|
variant = "macchiato";
|
|
|
|
accents = ["sky" "sapphire"];
|
|
|
|
})
|
2023-08-29 13:23:48 +02:00
|
|
|
];
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
services = {
|
|
|
|
gpg-agent = {
|
|
|
|
enable = true;
|
|
|
|
pinentryFlavor = "gnome3";
|
|
|
|
};
|
2023-11-07 17:00:23 +01:00
|
|
|
};
|
2023-11-13 04:22:42 +01:00
|
|
|
};
|
2023-11-09 17:09:35 +01:00
|
|
|
|
2023-12-17 22:08:35 +01:00
|
|
|
nixpkgs = {
|
|
|
|
overlays = [(import ../exprs/overlay.nix)];
|
|
|
|
};
|
2023-11-20 19:06:01 +01:00
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
programs = {
|
2023-11-13 16:16:18 +01:00
|
|
|
gnupg.agent = {
|
|
|
|
enable = true;
|
|
|
|
pinentryFlavor = "gnome3";
|
|
|
|
};
|
|
|
|
|
2023-12-08 10:13:25 +01:00
|
|
|
firefox.enable = true;
|
|
|
|
|
2023-11-07 17:00:23 +01:00
|
|
|
seahorse.enable = true;
|
2023-12-08 10:13:25 +01:00
|
|
|
file-roller.enable = true;
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
steam.enable = true;
|
2023-08-29 13:23:48 +02:00
|
|
|
|
2023-11-07 17:00:23 +01:00
|
|
|
thunar = {
|
|
|
|
enable = true;
|
|
|
|
plugins = with pkgs.xfce; [thunar-volman thunar-archive-plugin];
|
|
|
|
};
|
2023-11-15 01:00:35 +01:00
|
|
|
|
2023-11-20 16:52:59 +01:00
|
|
|
virt-manager.enable = true;
|
2023-11-07 17:00:23 +01:00
|
|
|
};
|
2023-08-29 13:23:48 +02:00
|
|
|
|
2023-11-15 01:00:35 +01:00
|
|
|
virtualisation.libvirtd.enable = true;
|
|
|
|
|
2023-11-25 14:20:19 +01:00
|
|
|
users.users."${username}" = {
|
2023-11-20 02:01:09 +01:00
|
|
|
isNormalUser = true;
|
|
|
|
shell = pkgs.fish;
|
|
|
|
extraGroups = ["networkmanager" "wheel" "video" "libvirtd"];
|
|
|
|
hashedPasswordFile = config.age.secrets.userPassword.path;
|
2023-11-13 04:22:42 +01:00
|
|
|
};
|
|
|
|
|
2023-11-20 02:01:09 +01:00
|
|
|
users.users.root.hashedPasswordFile = config.age.secrets.rootPassword.path;
|
|
|
|
|
2023-08-30 12:06:12 +02:00
|
|
|
fonts.packages = with pkgs; [
|
|
|
|
iosevka
|
|
|
|
jetbrains-mono
|
2023-11-06 00:37:28 +01:00
|
|
|
cantarell-fonts
|
2023-11-05 22:49:25 +01:00
|
|
|
(nerdfonts.override {fonts = ["Iosevka" "JetBrainsMono"];})
|
2023-08-30 12:06:12 +02:00
|
|
|
];
|
|
|
|
|
2023-11-14 18:29:14 +01:00
|
|
|
environment.systemPackages = with pkgs; [sbctl];
|
2023-11-05 22:49:25 +01:00
|
|
|
|
2023-11-14 18:29:14 +01:00
|
|
|
hm.home.stateVersion = "23.11";
|
2023-08-29 13:23:48 +02:00
|
|
|
}
|