From 72e82deb5536a88b6438a708b3e825029f621d14 Mon Sep 17 00:00:00 2001 From: spl3g Date: Mon, 21 Aug 2023 09:14:28 +0000 Subject: damn --- nixos/configuration.nix | 278 +++++++++++++++------------------------ nixos/hardware-configuration.nix | 2 +- 2 files changed, 108 insertions(+), 172 deletions(-) (limited to 'nixos') diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 7414d60..38e1cc2 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -1,201 +1,137 @@ -# 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’). +{ inputs, outputs, lib, config, pkgs, ... }: { + # You can import other NixOS modules here + imports = [ + # If you want to use modules your own flake exports (from modules/nixos): + # outputs.nixosModules.example + + # Or modules from other flakes (such as nixos-hardware): + # inputs.hardware.nixosModules.common-cpu-amd + # inputs.hardware.nixosModules.common-ssd + + ./hardware-configuration.nix + inputs.home-manager.nixosModules.home-manager + ]; -{ config, pkgs, inputs, outputs, ... }: + nixpkgs = { + overlays = [ + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - inputs.home-manager.nixosModules.home-manager + # You can also add overlays exported from other flakes: + # neovim-nightly-overlay.overlays.default ]; - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - useGlobalPkgs = true; - useUserPackages = true; - users.jerpo = import ../home-manager/home/home.nix; + config = { + allowUnfree = true; + }; }; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - networking.hostName = "ltrr"; # Define your hostname. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + nix = { + # This will add each flake input as a registry + # To make nix3 commands consistent with your flake + registry = lib.mapAttrs (_: value: { flake = value; }) inputs; - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + # This will additionally add your inputs to the system's legacy channels + # Making legacy nix commands consistent as well, awesome! + nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; - # Enable networking - networking.networkmanager.enable = true; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 1w"; + }; - # Set your time zone. - time.timeZone = "Asia/Yekaterinburg"; + settings = { + # Enable flakes and new 'nix' command + experimental-features = "nix-command flakes"; + # Deduplicate and optimize nix store + auto-optimise-store = true; + }; + }; - # Select internationalisation properties. - i18n.defaultLocale = "ru_RU.UTF-8"; - i18n.extraLocaleSettings = { - LC_ADDRESS = "ru_RU.UTF-8"; - LC_IDENTIFICATION = "ru_RU.UTF-8"; - LC_MEASUREMENT = "ru_RU.UTF-8"; - LC_MONETARY = "ru_RU.UTF-8"; - LC_NAME = "ru_RU.UTF-8"; - LC_NUMERIC = "ru_RU.UTF-8"; - LC_PAPER = "ru_RU.UTF-8"; - LC_TELEPHONE = "ru_RU.UTF-8"; - LC_TIME = "ru_RU.UTF-8"; + networking.hostName = "ltrr"; + + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; }; - # Enable the X11 windowing system. - services.xserver = { - enable = true; - displayManager.sddm = { + services = { + xserver = { enable = true; - theme = "sugar-dark"; + + # dm + displayManager = { + defaultSession = "none+bspwm"; + sddm = { + enable = true; + theme = "sugar-dark"; + }; + }; + + # wm + windowManager.bspwm.enable = true; + + # Layout + layout = "us,ru"; + xkbOptions = "grp:win_space_toggle,grp:alt_shift_toggle"; }; - # displayManager.startx.enable = true; - displayManager.defaultSession = "none+bspwm"; - desktopManager.gnome.enable = true; - windowManager.dwm.enable = true; - windowManager.bspwm.enable = true; - }; - # nixpkgs.overlays = [ - # (final: prev: { - # dwm = prev.dwm.overrideAttrs (oldAttrs: rec { - # patches = [ - # # Fibonacci for indle - # (prev.fetchpatch { - # url = "https://dwm.suckless.org/patches/fibonacci/dwm-fibonacci-6.2.diff"; - # sha256 = "12y4kknly5irwd6yhqj1zfr3h06hixi2p7ybjymhhhy0ixr7c49d"; - # }) - # # Dwmc for sxhkd - # (prev.fetchpatch { - # url = "https://dwm.suckless.org/patches/dwmc/dwm-dwmc-6.2.diff"; - # sha256 = "0k1cyjji7s4mwx7m9wk4kj0ax8yc1q9bpz3rjhkw45dz43r4vp4f"; - # }) - # # Attachaside - # (prev.fetchpatch { - # url = "https://dwm.suckless.org/patches/attachaside/dwm-attachaside-6.3.diff"; - # sha256 = "10kg93gvmpcjlx35624bhcvdpv8q8vkqpmckax2n0vr4bvrg4ipd"; - # }) - # ]; - # configFile = pkgs.writeText "config.def.h" (builtins.readFile ./dwm/config.h); - # postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h"; - # }); - # }) - # ]; - - # Configure keymap in X11 - services.xserver = { - layout = "us,ru"; - xkbOptions = "grp:win_space_toggle"; - xkbVariant = ""; - }; - # Enable CUPS to print documents. - services.printing.enable = true; - - # 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; - # If you want to use JACK applications, uncomment this - 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; - }; + # Printing + printing.enable = true; + printing.drivers = [ pkgs.hplipWithPlugin ]; + avahi = { + enable = true; + nssmdns = true; + openFirewall = true; + }; - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; + pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + jack.enable = true; + }; - # Define a user account. Don't forget to set a password with ‘passwd’. - programs.fish.enable = true; - users.defaultUserShell = pkgs.fish; - users.users.jerpo = { - isNormalUser = true; - description = "jerpo"; - extraGroups = [ "networkmanager" "wheel" ]; + v2raya.enable = true; }; - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - nix.settings.auto-optimise-store = true; - - # List packages installed in system profile. To search, run: - # $ nix search wget environment.systemPackages = with pkgs; [ vim - wget - git - firefox - neovim - ripgrep - fd + git killall - fzf - silver-searcher - tldr - unzip - cmake - python3Full - nodejs_20 - xorg.xinit - gnumake - gcc btrfs-progs ntfs3g - libtool - jq - vkd3d - dxvk - wineWowPackages.full - wineWowPackages.fonts - winetricks - nvtop-nvidia - nix-prefetch-scripts - xkb-switch - pamixer - rustup + sddm-sugar-dark-theme ]; - services.v2raya.enable = true; - - # 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; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; + services.udisks2 = { + enable = true; + mountOnMedia = true; + }; + + i18n.defaultLocale = "ru_RU.UTF-8"; - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; + programs.fish.enable = true; + users.users = { + jerpo = { + isNormalUser = true; + shell = pkgs.fish; + openssh.authorizedKeys.keys = [ + # TODO: Add your SSH public key(s) here, if you plan on using SSH to connect + ]; + extraGroups = [ "networkmanager" "wheel" ]; + }; + }; - # 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‘s 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 = "23.05"; # Did you read the comment? + home-manager = { + extraSpecialArgs = { inherit inputs outputs; }; + useGlobalPkgs = true; + useUserPackages = true; + users.jerpo = import ../home-manager/home.nix; + }; + # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion + system.stateVersion = "23.05"; } diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix index 8d69197..e173cbd 100644 --- a/nixos/hardware-configuration.nix +++ b/nixos/hardware-configuration.nix @@ -10,7 +10,7 @@ boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ata_piix" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; + boot.kernelModules = [ "kvm-intel" "v4l2loopback" ]; boot.extraModulePackages = [ ]; fileSystems."/" = -- cgit v1.2.3