nix/hosts/framework/configuration.nix
2025-07-21 17:05:12 +02:00

140 lines
3.0 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
config,
pkgs,
inputs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
../../modules/options.nix
];
specialisation = {
cosmic = {
inheritParentConfig = true;
configuration = {
imports = [
../../modules/nixos/cosmic.nix
];
environment.etc."active-specialisation".text = "cosmic";
};
};
wm = {
inheritParentConfig = true;
configuration = {
services.displayManager.ly = {
x11Support = false;
enable = true;
};
niri.enable = true;
environment.etc."active-specialisation".text = "wm";
programs.niri.enable = true;
environment.systemPackages = with pkgs; [
ghostty
fuzzel
];
};
};
};
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "framework"; # Define your hostname.
nix.settings.experimental-features = ["nix-command" "flakes"];
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Stockholm";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "sv_SE.UTF-8";
LC_IDENTIFICATION = "sv_SE.UTF-8";
LC_MEASUREMENT = "sv_SE.UTF-8";
LC_MONETARY = "sv_SE.UTF-8";
LC_NAME = "sv_SE.UTF-8";
LC_NUMERIC = "sv_SE.UTF-8";
LC_PAPER = "sv_SE.UTF-8";
LC_TELEPHONE = "sv_SE.UTF-8";
LC_TIME = "sv_SE.UTF-8";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "se";
variant = "";
};
# Configure console keymap
console.keyMap = "sv-latin1";
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Define a user account. Don't forget to set a password with passwd.
users.users.bruhng = {
isNormalUser = true;
description = "Gustav Bruhn";
extraGroups = ["networkmanager" "wheel" "wireshark"];
};
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
home-manager = {
extraSpecialArgs = {inherit inputs;};
users = {
"bruhng" = import ./home.nix;
};
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
nil
discord
alejandra
inputs.zen-browser.packages.${pkgs.system}.default
tmux
fastfetch
spotify
evince
loupe
];
programs.steam.enable = true;
# List services that you want to enable:
services.fwupd.enable = true;
security.polkit.enable = true;
# fonts
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
system.stateVersion = "25.05"; # Do not channge
}