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;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
networking.hostName = "gunther";
|
|
|
|
|
networking.networkmanager.enable = true;
|
|
|
|
|
|
|
|
|
|
# Set your time zone.
|
|
|
|
|
time.timeZone = "Europe/Berlin";
|
|
|
|
|
|
|
|
|
|
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";
|
|
|
|
|
extraGroups = [ "networkmanager" "wheel" ];
|
|
|
|
|
initialPassword = "leonv"; # just for setup
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Allow unfree packages
|
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
|
|
|
|
|
|
# List packages installed in system profile.
|
|
|
|
|
environment.systemPackages =
|
|
|
|
|
with pkgs;
|
|
|
|
|
let
|
|
|
|
|
catp-gtk = pkgs.catppuccin-gtk.override {
|
|
|
|
|
accents = [ "flamingo" ]; # You can specify multiple accents here to output multiple themes
|
|
|
|
|
size = "compact";
|
|
|
|
|
tweaks = [ "rimless" "black" ]; # You can also specify multiple tweaks here
|
|
|
|
|
variant = "macchiato";
|
|
|
|
|
};
|
|
|
|
|
in [
|
|
|
|
|
# for connecting to nas
|
|
|
|
|
nfs-utils
|
|
|
|
|
|
|
|
|
|
# some standards for convenience
|
|
|
|
|
vim
|
|
|
|
|
parted
|
|
|
|
|
os-prober
|
|
|
|
|
qpdfview
|
|
|
|
|
swww
|
|
|
|
|
|
|
|
|
|
# greeter
|
|
|
|
|
greetd.gtkgreet
|
|
|
|
|
catp-gtk
|
|
|
|
|
|
|
|
|
|
# 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;
|
|
|
|
|
|
2024-03-25 09:57:11 +01:00
|
|
|
|
# # Binary Cache for Haskell.nix
|
|
|
|
|
# nix.settings.trusted-public-keys = [
|
|
|
|
|
# "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
|
|
|
|
|
# ];
|
2024-02-16 13:59:46 +01:00
|
|
|
|
nix.settings.substituters = [
|
2024-05-13 08:43:36 +02:00
|
|
|
|
"https://aseipp-nix-cache.freetls.fastly.net"
|
|
|
|
|
# "https://aseipp-nix-cache.global.ssl.fastly.net"
|
2024-03-25 09:57:11 +01:00
|
|
|
|
# "https://cache.iog.io"
|
2024-02-16 13:59:46 +01:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
# environment variables
|
|
|
|
|
environment.sessionVariables = {
|
|
|
|
|
## disable logging when direnv changes
|
|
|
|
|
DIRENV_LOG_FORMAT = [];
|
|
|
|
|
# GTK theme (set here for greetd)
|
|
|
|
|
GTK_THEME = "Catppuccin-Macchiato-Compact-Flamingo-Dark";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# fonts
|
|
|
|
|
fonts = {
|
|
|
|
|
packages = with pkgs; [
|
|
|
|
|
((nerdfonts.override { fonts = [ "Hack" "DejaVuSansMono" "DroidSansMono" "Noto" ]; }))
|
|
|
|
|
mononoki
|
|
|
|
|
# noto-fonts
|
|
|
|
|
noto-fonts-cjk
|
|
|
|
|
noto-fonts-emoji
|
|
|
|
|
];
|
|
|
|
|
enableDefaultPackages = true;
|
|
|
|
|
fontconfig = {
|
|
|
|
|
defaultFonts = {
|
|
|
|
|
monospace = [ "Berkeley Mono Nerd Font" ];
|
|
|
|
|
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
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
programs.steam.enable = true;
|
|
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
}
|