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-07 19:01:37 +01:00
|
|
|
|
nixpkgs,
|
2023-11-08 14:42:16 +01:00
|
|
|
|
ragenix,
|
2023-11-07 19:01:37 +01:00
|
|
|
|
getchvim,
|
2023-11-05 22:49:25 +01:00
|
|
|
|
...
|
2023-11-13 04:22:42 +01:00
|
|
|
|
}: let
|
|
|
|
|
username = "leo";
|
|
|
|
|
in {
|
|
|
|
|
imports = [
|
|
|
|
|
(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-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;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
udisks2.enable = true;
|
|
|
|
|
gvfs.enable = true;
|
|
|
|
|
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";
|
|
|
|
|
|
|
|
|
|
security.rtkit.enable = true;
|
|
|
|
|
|
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-08-29 13:23:48 +02:00
|
|
|
|
firefox
|
2023-08-30 11:51:18 +02:00
|
|
|
|
kitty
|
|
|
|
|
chezmoi
|
|
|
|
|
starship
|
|
|
|
|
waybar
|
|
|
|
|
rofi-wayland
|
2023-11-05 22:49:25 +01:00
|
|
|
|
hyprpaper
|
|
|
|
|
swappy
|
|
|
|
|
swayidle
|
|
|
|
|
wl-clipboard
|
|
|
|
|
cliphist
|
|
|
|
|
font-manager
|
2023-11-07 17:00:23 +01:00
|
|
|
|
polkit_gnome
|
2023-11-05 22:49:25 +01:00
|
|
|
|
nwg-look
|
|
|
|
|
(catppuccin-gtk.override {
|
|
|
|
|
variant = "macchiato";
|
|
|
|
|
accents = ["sky" "sapphire"];
|
|
|
|
|
})
|
|
|
|
|
jetbrains.idea-ultimate
|
2023-11-08 13:50:34 +01:00
|
|
|
|
jetbrains.webstorm
|
|
|
|
|
jetbrains.rust-rover
|
|
|
|
|
jetbrains.clion
|
2023-11-05 22:49:25 +01:00
|
|
|
|
mold
|
|
|
|
|
sccache
|
|
|
|
|
pavucontrol
|
|
|
|
|
obs-studio
|
|
|
|
|
mpv
|
|
|
|
|
vscode
|
|
|
|
|
nil
|
|
|
|
|
glfw-wayland-minecraft
|
|
|
|
|
(prismlauncher.override {
|
|
|
|
|
jdks = [temurin-bin-17];
|
|
|
|
|
})
|
|
|
|
|
vesktop
|
|
|
|
|
grimblast
|
2023-11-06 16:47:39 +01:00
|
|
|
|
playerctl
|
2023-11-07 17:00:23 +01:00
|
|
|
|
mate.eom
|
|
|
|
|
osu-lazer-bin
|
2023-11-08 13:50:34 +01:00
|
|
|
|
gnome.file-roller
|
2023-11-08 14:42:16 +01:00
|
|
|
|
ragenix.packages.${system}.default
|
|
|
|
|
getchvim.packages.${system}.default
|
2023-11-09 17:09:35 +01:00
|
|
|
|
nix-your-shell
|
2023-11-10 02:41:24 +01:00
|
|
|
|
neovide
|
2023-08-29 13:23:48 +02:00
|
|
|
|
];
|
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
|
services = {
|
|
|
|
|
gpg-agent = {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableSshSupport = true;
|
|
|
|
|
pinentryFlavor = "gnome3";
|
|
|
|
|
};
|
2023-11-07 17:00:23 +01:00
|
|
|
|
};
|
2023-11-05 22:49:25 +01:00
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
|
# wayland.windowManager.hyprland.enable = true;
|
|
|
|
|
|
|
|
|
|
programs.git = {
|
2023-11-08 14:42:16 +01:00
|
|
|
|
enable = true;
|
2023-11-13 04:22:42 +01:00
|
|
|
|
userName = "uku";
|
|
|
|
|
userEmail = "uku3lig@gmail.com";
|
|
|
|
|
|
|
|
|
|
signing = {
|
|
|
|
|
key = "0D2F5CFF394C558D4F1C58937D01D7B105E77166";
|
|
|
|
|
signByDefault = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extraConfig = {
|
|
|
|
|
core.autocrlf = "input";
|
|
|
|
|
push.autoSetupRemote = true;
|
|
|
|
|
};
|
2023-11-08 14:42:16 +01:00
|
|
|
|
};
|
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
|
programs.gh = {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings.git_protocol = "ssh";
|
|
|
|
|
};
|
|
|
|
|
};
|
2023-11-09 17:09:35 +01:00
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
|
programs = {
|
2023-11-09 17:09:35 +01:00
|
|
|
|
fish = {
|
|
|
|
|
enable = true;
|
2023-11-13 04:22:42 +01:00
|
|
|
|
interactiveShellInit = ''
|
2023-11-09 17:09:35 +01:00
|
|
|
|
nix-your-shell fish | source
|
|
|
|
|
'';
|
|
|
|
|
};
|
2023-08-30 11:51:18 +02:00
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
|
hyprland.enable = true;
|
|
|
|
|
|
|
|
|
|
git = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
|
2023-11-13 16:16:18 +01:00
|
|
|
|
gnupg.agent = {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableSSHSupport = true;
|
|
|
|
|
pinentryFlavor = "gnome3";
|
|
|
|
|
};
|
|
|
|
|
|
2023-11-10 02:41:24 +01:00
|
|
|
|
direnv.enable = true;
|
|
|
|
|
|
2023-11-07 17:00:23 +01:00
|
|
|
|
command-not-found.enable = false;
|
|
|
|
|
nix-index = {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableFishIntegration = true;
|
|
|
|
|
};
|
2023-11-05 22:49:25 +01:00
|
|
|
|
|
2023-11-07 17:00:23 +01:00
|
|
|
|
seahorse.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-08-29 13:23:48 +02:00
|
|
|
|
|
2023-11-13 04:22:42 +01:00
|
|
|
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
|
|
|
users.users.${username} = {
|
|
|
|
|
isNormalUser = true;
|
|
|
|
|
shell = pkgs.fish;
|
|
|
|
|
extraGroups = ["networkmanager" "wheel" "video"];
|
|
|
|
|
};
|
|
|
|
|
|
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-07 17:00:23 +01:00
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
|
neovim
|
|
|
|
|
git
|
2023-11-08 15:18:44 +01:00
|
|
|
|
sbctl
|
2023-11-07 17:00:23 +01:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
2023-11-07 19:01:37 +01:00
|
|
|
|
|
|
|
|
|
nix = {
|
|
|
|
|
gc = {
|
|
|
|
|
automatic = true;
|
|
|
|
|
dates = "3d";
|
|
|
|
|
options = "-d";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
settings = {
|
|
|
|
|
auto-optimise-store = true;
|
|
|
|
|
experimental-features = ["nix-command" "flakes"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
nix.registry = let
|
|
|
|
|
nixpkgsRegistry.flake = nixpkgs;
|
|
|
|
|
in {
|
|
|
|
|
nixpkgs = nixpkgsRegistry;
|
|
|
|
|
n = nixpkgsRegistry;
|
|
|
|
|
};
|
2023-11-05 22:49:25 +01:00
|
|
|
|
|
2023-08-29 13:23:48 +02:00
|
|
|
|
# This value determines the NixOS release from which the default
|
|
|
|
|
# settings for stateful data, like file locations and database versions
|
|
|
|
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
|
|
|
# this value at the release version of the first install of this system.
|
|
|
|
|
# Before changing this value read the documentation for this option
|
|
|
|
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
|
|
|
system.stateVersion = "23.05"; # Did you read the comment?
|
2023-11-13 04:22:42 +01:00
|
|
|
|
hm.home.stateVersion = "23.05";
|
2023-08-29 13:23:48 +02:00
|
|
|
|
}
|