systems/machines/hermes/default.nix

193 lines
3.9 KiB
Nix

{
inputs,
lib,
pkgs,
...
}:
{
imports = [
./bootloader.nix
./filesystems.nix
./gpu.nix
./cpu.nix
./audio.nix
./bluetooth.nix
./networking.nix
./hardware.nix
];
boot.kernelPackages = pkgs.linuxPackages_6_17;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
time.timeZone = "Europe/Paris";
console = {
keyMap = "us";
font = "ter-v28b";
# earlySetup = true;
packages = [ pkgs.terminus_font ];
};
i18n.defaultLocale = "en_US.UTF-8";
nixpkgs.config.allowUnfree = true;
nix.settings = {
experimental-features = [
"nix-command"
"flakes"
];
substituters = [ "https://cache.nixos-cuda.org" ];
trusted-public-keys = [ "cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M=" ];
};
# Enable required services for Wayland
security.polkit.enable = true;
programs.dconf.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
environment.systemPackages = with pkgs; [
mpv
wget
alacritty
fuzzel
firefox
adwaita-icon-theme
];
fonts.fontconfig = {
enable = true;
antialias = true;
hinting = {
enable = true;
style = "slight";
};
subpixel = {
rgba = "rgb";
lcdfilter = "default";
};
defaultFonts = {
serif = [
"SF Pro"
"DejaVu Serif"
];
sansSerif = [
"SF Pro"
"DejaVu Sans"
];
monospace = [
"Iosevka"
"DejaVu Sans Mono"
];
emoji = [ "Noto Color Emoji" ];
};
};
fonts.packages = with pkgs; [
inputs.apple-fonts.packages."${pkgs.stdenv.hostPlatform.system}".sf-pro
noto-fonts-color-emoji
(iosevka.override {
set = "cavalier";
privateBuildPlan = {
family = "Iosevka Cavalier";
spacing = "normal";
serifs = "sans";
noCvSs = false;
exportGlyphNames = true;
variants.inherits = "ss08";
variants.weights.Regular = {
shape = 400;
menu = 400;
css = 400;
};
variants.weights.Bold = {
shape = 700;
menu = 700;
css = 700;
};
variants.weights.Italic = {
angle = 9.4;
shape = "italic";
menu = "italic";
css = "italic";
};
variants.weights.Upright = {
angle = 0;
shape = "upright";
menu = "upright";
css = "upright";
};
};
})
];
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = [ "pml" ];
};
environment.etc = {
"1password/custom_allowed_browsers" = {
text = ''
firefox
'';
mode = "0755";
};
};
# Enable greetd
# services.greetd = {
# enable = true;
# settings = {
# default_session = {
# command = "${pkgs.niri}/bin/niri --config /etc/greetd/niri.kdl";
# user = "greeter";
# };
# };
# }
# Enable regreet
programs.regreet = {
enable = true;
font.name = "SF Pro";
font.size = 16;
font.package = inputs.apple-fonts.packages."${pkgs.stdenv.hostPlatform.system}".sf-pro;
settings = {
GTK = {
font_name = lib.mkForce "SF Pro 16";
};
};
};
# Create the niri config for greetd
# environment.etc."greetd/niri.kdl".text = ''
# spawn-sh-at-startup "regreet; niri msg action quit --skip-confirmation"
#
# hotkey-overlay {
# skip-at-startup
# }
#
# cursor {
# xcursor-theme "Adwaita"
# xcursor-size 24
# }
# '';
# Optional: Enable niri for user sessions
programs.niri.enable = true;
system.stateVersion = "25.05"; # Did you read the comment?
}