nixos/gunther/configuration.nix

219 lines
5 KiB
Nix
Raw Normal View History

2024-02-16 13:59:46 +01:00
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
2024-05-21 20:24:02 +02:00
{ config, pkgs, lib, emacs-overlay, ... }:
2024-02-16 13:59:46 +01:00
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# VM
virtualisation.vmVariant = {
# following configuration is added only when building VM with build-vm
virtualisation = {
memorySize = 2048; # Use 2048MiB memory.
cores = 3;
};
};
2025-01-20 23:17:36 +01:00
# Docker
virtualisation.docker.enable = true;
2024-05-21 20:24:02 +02:00
services.emacs.package = pkgs.emacs29-pgtk;
services.emacs.enable = true;
2024-04-30 06:41:29 +02:00
# optimize power usage
powerManagement.enable = true;
2024-02-16 13:59:46 +01:00
# optimize storage
nix.optimise.automatic = true;
# Bootloader.
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot";
boot.loader.systemd-boot.enable = true;
2024-11-06 14:03:40 +01:00
boot.loader.systemd-boot.extraEntries."debian.conf" = ''
title Debian
efi /efi/debian/shimx64.efi
'';
2024-02-16 13:59:46 +01:00
networking.hostName = "gunther";
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Berlin";
2025-01-05 10:48:09 +01:00
time.hardwareClockInLocalTime = true;
2024-02-16 13:59:46 +01:00
i18n.supportedLocales = [
"en_US.UTF-8/UTF-8"
"de_DE.UTF-8/UTF-8"
];
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LANG = "en_US.UTF-8";
LC_ALL = "en_US.UTF-8";
LANGUAGE = "en_US.UTF-8";
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
services.greetd = {
enable = true;
settings = {
default_session = {
2024-03-31 10:26:42 +02:00
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland";
2024-02-16 13:59:46 +01:00
user = "greeter";
};
};
};
# Configure console keymap
console.keyMap = "us";
# Enable CUPS to print documents.
services.avahi = {
enable = true;
2024-03-04 10:31:15 +01:00
nssmdns4 = true;
2024-02-16 13:59:46 +01:00
openFirewall = true;
2024-05-13 08:43:36 +02:00
publish.enable = true;
publish.userServices = true;
2024-02-16 13:59:46 +01:00
};
services.printing = {
enable = true;
drivers = [ pkgs.splix ];
2024-05-13 08:43:36 +02:00
browsing = true;
listenAddresses = [ "*:631" ];
allowFrom = [ "all" ];
defaultShared = true;
extraConf = ''
BrowseLocalProtocols all
'';
openFirewall = true;
2024-02-16 13:59:46 +01:00
};
# bluetooth
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
services.blueman.enable = true;
# Enable sound with pipewire.
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Define a user account.
users.users.leonv = {
isNormalUser = true;
description = "Leon Vatthauer";
2025-01-20 23:17:36 +01:00
extraGroups = [ "networkmanager" "wheel" "docker" ];
2024-02-16 13:59:46 +01:00
initialPassword = "leonv"; # just for setup
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile.
environment.systemPackages =
with pkgs;
2024-08-30 21:10:54 +02:00
[
2024-02-16 13:59:46 +01:00
# for connecting to nas
nfs-utils
# some standards for convenience
vim
parted
os-prober
qpdfview
swww
# greeter
greetd.gtkgreet
# deps for hyprland / eww
socat
2024-05-13 08:43:36 +02:00
texliveFull
2024-02-16 13:59:46 +01:00
];
2024-02-25 21:03:35 +01:00
system.stateVersion = "24.05";
2024-02-16 13:59:46 +01:00
# source zsh
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
nix.settings.substituters = [
2024-05-13 08:43:36 +02:00
"https://aseipp-nix-cache.freetls.fastly.net"
2024-02-16 13:59:46 +01:00
];
# environment variables
environment.sessionVariables = {
## disable logging when direnv changes
DIRENV_LOG_FORMAT = [];
};
# fonts
fonts = {
packages = with pkgs; [
2024-12-10 15:28:34 +01:00
nerd-fonts.hack
nerd-fonts.dejavu-sans-mono
nerd-fonts.droid-sans-mono
nerd-fonts.noto
2024-02-16 13:59:46 +01:00
mononoki
# noto-fonts
2024-11-06 14:03:40 +01:00
noto-fonts-cjk-sans
2024-02-16 13:59:46 +01:00
noto-fonts-emoji
];
enableDefaultPackages = true;
fontconfig = {
defaultFonts = {
2025-01-20 23:17:36 +01:00
monospace = [ "BerkeleyMono Nerd Font Mono" ];
2024-02-16 13:59:46 +01:00
sansSerif = [ "NotoSans Nerd Font" ];
serif = [ "NotoSans Nerd Font" ];
emoji = [ "Noto Color Emoji" ];
};
};
};
# enable flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# hyprland
programs.hyprland.enable = true;
# ssh
programs.ssh.startAgent = true;
programs.ssh.extraConfig = ''
AddKeysToAgent yes
IdentityFile ~/.ssh/git
2024-11-21 12:25:29 +01:00
Host cipterm0.cip.cs.fau.de
HostName cipterm0.cip.cs.fau.de
User hy84coky
2024-02-16 13:59:46 +01:00
'';
# thunar
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
services.gvfs.enable = true; # Mount, trash, and others
services.tumbler.enable = true; # thumbnail support for images
}