diff options
| author | spl3g <spleefer6@yandex.ru> | 2023-12-31 15:08:06 +0300 |
|---|---|---|
| committer | spl3g <spleefer6@yandex.ru> | 2025-05-01 14:56:39 +0300 |
| commit | b8a5c62b112859f463a53ac97b43f7f8cdc544a9 (patch) | |
| tree | 8b320bc9631fbd60ffe4b701e6afee148bb2313a /nixos | |
| parent | 7db487dba2262af7b7822d110122ff496070ca92 (diff) | |
uhm
Diffstat (limited to 'nixos')
| -rw-r--r-- | nixos/configuration.new.nix~ | 100 | ||||
| -rw-r--r-- | nixos/configuration.old.nix | 180 | ||||
| -rw-r--r-- | nixos/general.nix | 74 | ||||
| -rw-r--r-- | nixos/laptop/configuration.nix | 47 | ||||
| -rw-r--r-- | nixos/laptop/configuration.nix~ (renamed from nixos/configuration.nix) | 38 | ||||
| -rw-r--r-- | nixos/laptop/hardware-configuration.nix (renamed from nixos/hardware-configuration.nix) | 4 | ||||
| -rw-r--r-- | nixos/pc/configuration.nix | 40 | ||||
| -rw-r--r-- | nixos/pc/configuration.nix~ | 12 |
8 files changed, 189 insertions, 306 deletions
diff --git a/nixos/configuration.new.nix~ b/nixos/configuration.new.nix~ deleted file mode 100644 index 5b6f6c4..0000000 --- a/nixos/configuration.new.nix~ +++ /dev/null @@ -1,100 +0,0 @@ -# This is your system's configuration file. -# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) - -{ 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 - - # You can also split up your configuration and import pieces of it here: - # ./users.nix - - # Import your generated (nixos-generate-config) hardware configuration - ./hardware-configuration.nix - ]; - - nixpkgs = { - # You can add overlays here - overlays = [ - # Add overlays your own flake exports (from overlays and pkgs dir): - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - - # You can also add overlays exported from other flakes: - # neovim-nightly-overlay.overlays.default - - # Or define it inline, for example: - # (final: prev: { - # hi = final.hello.overrideAttrs (oldAttrs: { - # patches = [ ./change-hello-to-hi.patch ]; - # }); - # }) - ]; - # Configure your nixpkgs instance - config = { - # Disable if you don't want unfree packages - allowUnfree = true; - }; - }; - - 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; - - # 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; - - settings = { - # Enable flakes and new 'nix' command - experimental-features = "nix-command flakes"; - # Deduplicate and optimize nix store - auto-optimise-store = true; - }; - }; - - # FIXME: Add the rest of your current configuration - - # TODO: Set your hostname - networking.hostName = "your-hostname"; - - # TODO: This is just an example, be sure to use whatever bootloader you prefer - boot.loader.systemd-boot.enable = true; - - # TODO: Configure your system-wide user settings (groups, etc), add more users as needed. - users.users = { - # FIXME: Replace with your username - your-username = { - # TODO: You can set an initial password for your user. - # If you do, you can skip setting a root password by passing '--no-root-passwd' to nixos-install. - # Be sure to change it (using passwd) after rebooting! - initialPassword = "correcthorsebatterystaple"; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - # TODO: Add your SSH public key(s) here, if you plan on using SSH to connect - ]; - # TODO: Be sure to add any other groups you need (such as networkmanager, audio, docker, etc) - extraGroups = [ "wheel" ]; - }; - }; - - # This setups a SSH server. Very important if you're setting up a headless system. - # Feel free to remove if you don't need it. - services.openssh = { - enable = true; - # Forbid root login through SSH. - permitRootLogin = "no"; - # Use keys only. Remove if you want to SSH using password (not recommended) - passwordAuthentication = false; - }; - - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion - system.stateVersion = "23.05"; -}
\ No newline at end of file diff --git a/nixos/configuration.old.nix b/nixos/configuration.old.nix deleted file mode 100644 index bb8a218..0000000 --- a/nixos/configuration.old.nix +++ /dev/null @@ -1,180 +0,0 @@ -# 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’). - -{ config, pkgs, inputs, outputs, ... }: - -{ - imports = - [ - ./hardware-configuration.nix - inputs.home-manager.nixosModules.home-manager - ]; - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - useGlobalPkgs = true; - useUserPackages = true; - users.jerpo = import ../home-manager/home.nix; - }; - - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 1w"; - }; - - nix.settings.auto-optimise-store = true; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "ltrr"; - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Enable networking - # networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "Asia/Yekaterinburg"; - - # 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"; - }; - - # Enable the X11 windowing system. - services.xserver = { - enable = true; - displayManager.sddm = { - enable = true; - theme = "sugar-dark"; - }; - # displayManager.startx.enable = true; - displayManager.defaultSession = "none+bspwm"; - desktopManager.gnome.enable = true; - windowManager.dwm.enable = true; - windowManager.bspwm.enable = true; - }; - - # Configure keymap in X11 - services.xserver = { - layout = "us,ru"; - xkbOptions = "grp:win_space_toggle,grp:alt_shift_toggle"; - }; - - # 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; - jack.enable = true; - - # no need to redefine it in your config for now) - #media-session.enable = true; - }; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.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" ]; - }; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - vim - wget - git - firefox - neovim - ripgrep - fd - 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 - nix-prefetch-scripts - xkb-switch - pamixer - rustup - linuxKernel.packages.linux_6_4.v4l2loopback - v4l-utils - ]; - - # 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; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # 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? - -} diff --git a/nixos/general.nix b/nixos/general.nix new file mode 100644 index 0000000..f02e889 --- /dev/null +++ b/nixos/general.nix @@ -0,0 +1,74 @@ +{ inputs, outputs, lib, config, pkgs, ... }: { + nixpkgs = { + overlays = [ + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + outputs.overlays.emacs-overlay + + # You can also add overlays exported from other flakes: + # neovim-nightly-overlay.overlays.default + ]; + config = { + allowUnfree = true; + }; + }; + 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; + + # 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; + + gc = { + automatic = true; + dates = "weekly"; + }; + + settings = { + # Enable flakes and new 'nix' command + experimental-features = "nix-command flakes"; + # Deduplicate and optimize nix store + auto-optimise-store = true; + }; + }; + networking.networkmanager = { + enable = true; + }; + networking.firewall.enable = false; + networking.nftables.enable = true; + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + audio.enable = true; + wireplumber.enable = true; + alsa.enable = true; + pulse.enable = true; + jack.enable = true; + }; + environment.systemPackages = with pkgs; [ + vim + git + ]; + services.udisks2 = { + enable = true; + mountOnMedia = true; + }; + programs.dconf.enable = true; + i18n.defaultLocale = "ru_RU.UTF-8"; + programs.fish.enable = true; + users.users = { + jerpo = { + isNormalUser = true; + shell = pkgs.fish; + extraGroups = [ "networkmanager" "wheel" "docker" "libvirtd" "input" "adbusers" ]; + }; + }; + +} diff --git a/nixos/laptop/configuration.nix b/nixos/laptop/configuration.nix new file mode 100644 index 0000000..948aed6 --- /dev/null +++ b/nixos/laptop/configuration.nix @@ -0,0 +1,47 @@ +{ inputs, outputs, 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 + + ../general.nix + ./hardware-configuration.nix + inputs.home-manager.nixosModules.home-manager + ]; + + + time.timeZone = "Europe/Moscow"; + networking.hostName = "ltrr-mini"; + + virtualisation.libvirtd.enable = true; + programs.virt-manager.enable = true; + + services.xserver = { + enable = false; + displayManager.lightdm.enable = false; + }; + + + environment.systemPackages = with pkgs; [ + qemu + ]; + + programs.adb.enable = true; + services.udev.packages = [ + pkgs.android-udev-rules + ]; + + home-manager = { + extraSpecialArgs = { inherit inputs outputs; }; + useGlobalPkgs = true; + useUserPackages = true; + users.jerpo = import ../../home-manager/laptop; + }; + + # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion + system.stateVersion = "23.05"; +} diff --git a/nixos/configuration.nix b/nixos/laptop/configuration.nix~ index f7530ba..0309aca 100644 --- a/nixos/configuration.nix +++ b/nixos/laptop/configuration.nix~ @@ -39,7 +39,6 @@ gc = { automatic = true; dates = "weekly"; - options = "--delete-older-than 1w"; }; settings = { @@ -47,7 +46,6 @@ experimental-features = "nix-command flakes"; # Deduplicate and optimize nix store auto-optimise-store = true; - # Enable cachix }; }; @@ -65,10 +63,12 @@ efi.canTouchEfiVariables = true; }; - services.openssh.enable = true; + # services.openssh.enable = true; - services = { - xserver = { + virtualisation.libvirtd.enable = true; + programs.virt-manager.enable = true; + + services.xserver = { enable = true; # dm @@ -85,19 +85,13 @@ libinput.enable = true; # wm - windowManager.bspwm.enable = true; + # windowManager.bspwm.enable = true; # Layout layout = "us,ru"; xkbOptions = "grp:win_space_toggle"; }; - acpid = { - enable = true; - powerEventCommands = ""; - lidEventCommands = "firefox"; - }; - # Printing # printing.enable = true; # printing.drivers = [ pkgs.hplipWithPlugin ]; @@ -106,7 +100,6 @@ # nssmdns = true; # openFirewall = true; # }; - }; security.rtkit.enable = true; services.pipewire = { enable = true; @@ -120,8 +113,7 @@ environment.systemPackages = with pkgs; [ vim git - ntfs3g - xorg.xinit + qemu ]; services.udisks2 = { enable = true; @@ -141,13 +133,16 @@ 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" "docker" "input" "adbusers" ]; + extraGroups = [ "networkmanager" "wheel" "docker" "libvirtd" "input" "adbusers" ]; }; }; + users.users.test3 = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + home = "/home/test2"; + }; + home-manager = { extraSpecialArgs = { inherit inputs outputs; }; useGlobalPkgs = true; @@ -155,11 +150,6 @@ users.jerpo = import ../home-manager/home.nix; }; - qt = { - platformTheme = "gtk"; - style = "gtk"; - }; - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion system.stateVersion = "23.05"; } diff --git a/nixos/hardware-configuration.nix b/nixos/laptop/hardware-configuration.nix index d829fdb..e3e8a01 100644 --- a/nixos/hardware-configuration.nix +++ b/nixos/laptop/hardware-configuration.nix @@ -36,12 +36,12 @@ # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.bluetooth = { enable = true; - powerOnBoot = true; }; + hardware.opengl = { enable = true; driSupport = true; diff --git a/nixos/pc/configuration.nix b/nixos/pc/configuration.nix new file mode 100644 index 0000000..ef63c66 --- /dev/null +++ b/nixos/pc/configuration.nix @@ -0,0 +1,40 @@ +{ inputs, outputs, lib, config, pkgs, ... }: { + imports = [ + ../general.nix + inputs.home-manager.nixosModules.home-manager + ]; + + time.timeZone = "Europe/Yekaterinburg"; + networking.hostName = "ltrr"; + + services.xserver = { + enable = true; + displayManager.sddm.enable = true; + + # wm + windowManager.bspwm.enable = true; + + # Layout + layout = "us,ru"; + xkbOptions = "grp:win_space_toggle"; + }; + + # Printing + services = { + printing.enable = true; + printing.drivers = [ pkgs.hplipWithPlugin ]; + avahi = { + enable = true; + nssmdns = true; + openFirewall = true; + }; + }; + + home-manager = { + extraSpecialArgs = { inherit inputs outputs; }; + useGlobalPkgs = true; + useUserPackages = true; + users.jerpo = import ../home-manager/pc; + }; + +} diff --git a/nixos/pc/configuration.nix~ b/nixos/pc/configuration.nix~ new file mode 100644 index 0000000..b6fa0a7 --- /dev/null +++ b/nixos/pc/configuration.nix~ @@ -0,0 +1,12 @@ +{ inputs, outputs, lib, config, pkgs, ... }: { + imports = [ + ../general.nix + inputs.home-manager.nixosModules.home-manager + ]; + + time.timeZone = "Europe/Yekaterinburg"; + + services.xserver = { + enable = true; + }; +} |
