{ config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; hardware.opengl.enable = true; hardware.opengl.driSupport = true; hardware.opengl.driSupport32Bit = true; hardware.opengl.extraPackages = with pkgs; [ mesa.drivers rocm-opencl-icd rocm-opencl-runtime ]; boot = { loader = { grub = { enable = true; device = "/dev/sda"; memtest86.enable = true; enableCryptodisk = true; }; }; kernelParams = [ "radeon.si_support=0" "radeon.cik_support=0" "amdgpu.si_support=1" "amdgpu.cik_support=1" ]; extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback.out ]; kernelModules = [ "v4l2loopback" ]; initrd.kernelModules = [ "nouveau" ]; initrd.luks.devices."luks-2bd7a13f-62b5-4c44-822b-e836ebb84c01".keyFile = "/crypto_keyfile.bin"; # Enable swap on luks initrd.luks.devices."luks-aa357d98-202a-46e5-9171-fbe19261cec6".device = "/dev/disk/by-uuid/aa357d98-202a-46e5-9171-fbe19261cec6"; initrd.luks.devices."luks-aa357d98-202a-46e5-9171-fbe19261cec6".keyFile = "/crypto_keyfile.bin"; initrd.secrets = { "/crypto_keyfile.bin" = null; }; extraModprobeConfig = '' options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" ''; }; networking.hostName = "henna"; networking.networkmanager.enable = true; time.timeZone = "Europe/Helsinki"; i18n.defaultLocale = "fi_FI.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "fi_FI.UTF-8"; LC_IDENTIFICATION = "fi_FI.UTF-8"; LC_MEASUREMENT = "fi_FI.UTF-8"; LC_MONETARY = "fi_FI.UTF-8"; LC_NAME = "fi_FI.UTF-8"; LC_NUMERIC = "fi_FI.UTF-8"; LC_PAPER = "fi_FI.UTF-8"; LC_TELEPHONE = "fi_FI.UTF-8"; LC_TIME = "fi_FI.UTF-8"; }; services.xserver = { enable = true; layout = "fi"; xkbVariant = "nodeadkeys"; libinput = { enable = true; mouse = { accelProfile = "flat"; accelSpeed = ".5"; # -1..1 }; touchpad = { accelProfile = "flat"; }; }; deviceSection = '' Option "VariableRefresh" "True" ''; displayManager = { lightdm.enable = true; #autoLogin.enable = true; #autoLogin.user = "jt"; defaultSession = "none+i3"; }; windowManager = { i3 = { enable = true; extraPackages = with pkgs; [ dmenu rofi dunst imagemagick xclip i3status i3lock lxappearance ]; }; }; desktopManager = { xterm.enable = false; xfce = { enable = true; enableScreensaver = false; thunarPlugins = [ pkgs.xfce.thunar-archive-plugin ]; }; }; }; # Configure console keymap console.keyMap = "fi"; # Enable CUPS to print documents. services.printing.enable = true; services.avahi = { enable = true; nssmdns = true; }; services.gvfs = { enable = true; package = pkgs.gnome3.gvfs; }; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; # use the example session manager (no others are packaged yet so this is enabled by default, # no need to redefine it in your config for now) #media-session.enable = true; }; services.openssh.enable = true; services.gnome.gnome-keyring.enable = true; services.udev.packages = with pkgs; [ logitech-udev-rules ]; networking.firewall.enable = false; services.trezord.enable = true; virtualisation = { podman = { enable = true; dockerCompat = true; defaultNetwork.dnsname.enable = true; }; libvirtd.enable = true; spiceUSBRedirection.enable = true; }; #fonts.fontDir.enable = true; #fonts.enableDefaultFonts = true; fonts.fontconfig.defaultFonts.monospace = [ "Fira Code" ]; fonts.fonts = with pkgs; [ fira-code fira-code-symbols emacs-all-the-icons-fonts glasstty-ttf #symbola #fantasque-sans-mono #noto-fonts #noto-fonts-cjk #noto-fonts-emoji ]; nix.settings.auto-optimise-store = true; nixpkgs.config.allowUnfree = true; #programs.steam = { # enable = true; # remotePlay.openFirewall = # true; # Open ports in the firewall for Steam Remote Play # dedicatedServer.openFirewall = # true; # Open ports in the firewall for Source Dedicated Server #}; programs.bash ={ shellAliases = { cross="NIX_STORE=/nix/store cross"; }; }; programs.dconf.enable = true; programs.iftop.enable = true; programs.iotop.enable = true; programs.htop.enable = true; programs.tmux.enable = true; programs.seahorse.enable = true; environment.systemPackages = with pkgs; [ wget emacs nano polkit_gnome pavucontrol pasystray pulseaudio xarchiver gparted parted unrar unzip zip p7zip graphite-gtk-theme tela-circle-icon-theme qemu_full virt-manager python3 gxkb ]; security.polkit.enable = true; # Define a user account. Don't forget to set a password with passwd . users.users.jt = { isNormalUser = true; description = "Jarkko Toivanen"; extraGroups = [ "networkmanager" "wheel" "dialout" "libvirtd" "docker" ]; packages = with pkgs; [ #firefox brave wineWowPackages.stable winetricks #heroic libreoffice nextcloud-client helvum solaar vlc youtube-music kate kdenlive gimp #discord #element-desktop nheko mumble bitwarden chiaki prismlauncher mangohud #vulkan-tools git rustup rust-analyzer cargo-cross gcc obs-studio appimage-run steam-run-native #thunderbird #xmrig exodus ft2-clone ]; }; programs.gnupg.agent = { enable = true; pinentryFlavor = "gtk2"; enableSSHSupport = true; }; # 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 is 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 = "22.11"; # Did you read the comment? }