{ inputs, config, pkgs, lib, ... }: let flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; in { # Bootloader boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; # Networking networking.networkmanager.enable = true; services.openssh.enable = true; services.tailscale.enable = true; # Router shared filesystem fileSystems."/home/andrey/Public" = { device = "root@192.168.2.1:/mnt/sda1"; fsType = "sshfs"; options = [ "nodev" "noatime" "allow_other" "reconnect" "IdentityFile=/home/andrey/.ssh/id_ed25519" ]; }; # l10n and i8n time.timeZone = "Europe/Riga"; i18n.defaultLocale = "en_US.UTF-8"; # Editor programs.neovim = { enable = true; viAlias = true; vimAlias = true; defaultEditor = true; }; # Nix nixpkgs.config.allowUnfree = true; nix = { settings = { trusted-users = [ "andrey" ]; experimental-features = [ "nix-command" "flakes" ]; flake-registry = ""; nix-path = config.nix.nixPath; }; channel.enable = false; registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; }; # Users users.mutableUsers = false; users.users.andrey = { isNormalUser = true; initialHashedPassword = "$y$j9T$mGZT4otEkrc94e.Ile.P20$BoxfgxCiacs.tYoEp7S5AjcP.aMUBrsaCJYJkBot635"; extraGroups = [ "wheel" "cdrom" "networkmanager" "audio" "dialout" "scanner" "lp" ]; }; security.sudo.execWheelOnly = true; security.sudo.wheelNeedsPassword = false; # Printers and scanners hardware.sane.enable = true; services.printing.enable = true; services.printing.drivers = [ pkgs.cnijfilter2 ]; programs.system-config-printer.enable = true; # Programs programs = { git = { enable = true; config = { init.defaultBranch = "master"; url."https://github.com/".insteadOf = [ "gh:" "github:" ]; url."https://git.psf.lt/".insteadOf = [ "psf:" "gitea:" ]; }; }; }; # Packages environment.systemPackages = with pkgs; [ alsa-utils ]; # Xorg security.rtkit.enable = true; services = { xserver.enable = true; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; libinput.touchpad = { naturalScrolling = true; disableWhileTyping = false; tappingDragLock = false; }; }; }