{ config, lib, pkgs, callPackage, ... }: { imports = [ # Include the results of the hardware scan. /etc/nixos/hardware-configuration.nix ]; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; # grub = { # enable = true; # device = "nodev"; # useOSProber = true; # }; }; supportedFilesystems = [ "btrfs" "ext2" "ext3" "ext4" "exfat" "f2fs" "fat16" "fat32" "nfs" "ntfs" "xfs" ]; }; networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; networking.networkmanager.enable = true; time.timeZone = "Europe/Berlin"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { 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"; }; qt = { enable = true; platformTheme = "gtk2"; style = "gtk2"; }; hardware.opengl.driSupport32Bit = true; hardware.nvidia.modesetting.enable = true; sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; nixpkgs.config.allowUnfree = true; nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1v" ]; users.users.dym = { isNormalUser = true; description = "dym"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ ]; }; environment.systemPackages = with pkgs; [ alacritty appimage-run appimagekit bash bat bc binutils blender bun cargo cifs-utils copyq curl dbeaver deno doublecmd dpkg espanso exa ffmpeg file firefox gdk-pixbuf gdk-pixbuf-xlib ghostscript gimp git go gparted graphicsmagick i3 imagemagick imwheel inkscape jpegoptim kate keepassxc kid3 krita lapce libreoffice-qt libsForQt5.kcharselect libsForQt5.kdenlive lutris lxappearance lynx nano nettools nextcloud-client nfs-utils nix-index nodejs_18 ntfs3g numlockx ocaml oh-my-zsh opam opam-installer p7zip pavucontrol php82 pngcrush pngquant postgresql_15 python311 python311Packages.pip rdfind restic ripgrep rustc sd sqlite sshfs stdenv stdenv.cc steam sublime-merge sublime4 transmission unzip vlc wget wmctrl xdotool xmonad-with-packages xorg.xmodmap zlib ]; services = { printing.enable = true; 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; }; rpcbind.enable = true; xserver = { enable = true; layout = "us"; xkbVariant = "mac"; videoDrivers = [ "nvidia" ]; desktopManager = { plasma5.enable = true; }; displayManager = { defaultSession = "none+i3"; sddm.enable = true; autoLogin = { enable = true; user = "dym"; }; }; windowManager.i3 = { enable = true; extraPackages = with pkgs; [ rofi ]; }; }; }; programs.zsh.enable = true; environment = { pathsToLink = [ "/libexec" ]; # links /libexec from derivations to /run/current-system/sw shells = with pkgs; [ bash zsh ]; variables = { NIXPKGS_CONFIG = "/etc/nix/nixpkgs-config.nix"; # note: many programs exec() this directly, so default options for less must not # be specified here; do so in the default value of programs.less.envVariables instead PAGER = "less"; EDITOR = "code"; # XDG_CONFIG_DIRS = [ "/etc/xdg" ]; # needs to be before profile-relative paths to allow changes through environment.etc PATH = "$HOME/.local/bin:$PATH"; }; }; users.defaultUserShell = pkgs.zsh; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; # programs.gnupg.agent = { # enable = true; # enableSSHSupport = true; # }; # services.openssh.enable = true; # networking.firewall.allowedTCPPorts = [ ]; # networking.firewall.extraCommands = ''iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns''; # networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.enable = false; # 192.168.0.222:/nfs/Public /Data nfs auto 0 0 # fileSystems."/Data" = { # device = "192.168.0.222:/nfs/Public"; # fsType = "nfs"; # options = [ "defaults" "user" "rw" "utf8" "noauto" "umask=000" ]; # }; system.stateVersion = "23.05"; }