aboutsummaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
authorspl3g <spleefer6@yandex.ru>2023-12-31 15:08:06 +0300
committerspl3g <spleefer6@yandex.ru>2025-05-01 14:56:39 +0300
commitb8a5c62b112859f463a53ac97b43f7f8cdc544a9 (patch)
tree8b320bc9631fbd60ffe4b701e6afee148bb2313a /nixos
parent7db487dba2262af7b7822d110122ff496070ca92 (diff)
uhm
Diffstat (limited to 'nixos')
-rw-r--r--nixos/configuration.new.nix~100
-rw-r--r--nixos/configuration.old.nix180
-rw-r--r--nixos/general.nix74
-rw-r--r--nixos/laptop/configuration.nix47
-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.nix40
-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;
+ };
+}