aboutsummaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
authorspl3g <spleefer6@yandex.ru>2024-04-20 20:24:36 +0300
committerspl3g <spleefer6@yandex.ru>2025-05-01 14:58:53 +0300
commitf5970d988c68ae1d2ac56f0a35324cd442a26be7 (patch)
tree3c7fa7d524c7337c3b999fd577081a1230690072 /nixos
parentec0e9896dcc0c88ef49d2b2bf8126498d3c2acec (diff)
add modules
Diffstat (limited to 'nixos')
-rw-r--r--nixos/general.nix42
-rw-r--r--nixos/laptop/configuration.nix59
-rw-r--r--nixos/nixosModules/default.nix11
-rw-r--r--nixos/nixosModules/disks.nix17
-rw-r--r--nixos/nixosModules/docker.nix20
-rw-r--r--nixos/nixosModules/greetd.nix22
-rw-r--r--nixos/nixosModules/powerbutton.nix14
-rw-r--r--nixos/nixosModules/printing.nix18
-rw-r--r--nixos/nixosModules/stylix.nix24
-rw-r--r--nixos/nixosModules/user.nix18
-rw-r--r--nixos/pc/configuration.nix12
11 files changed, 174 insertions, 83 deletions
diff --git a/nixos/general.nix b/nixos/general.nix
index 71400c8..84d8131 100644
--- a/nixos/general.nix
+++ b/nixos/general.nix
@@ -1,6 +1,10 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{
+ imports = [
+ ./nixosModules
+ ];
+
nixpkgs = {
overlays = [
outputs.overlays.additions
@@ -11,7 +15,7 @@
allowUnfree = true;
};
};
-
+
nix = {
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
@@ -35,13 +39,19 @@
trusted-users = [ "root" "@wheel" ];
};
};
+
+ # from nixosModules
+ disks.enable = true;
+ user.enable = true;
+ greetd.enable = true;
+ stylix.enable = true;
networking.networkmanager = {
enable = true;
};
- # networking.nftables.enable = true;
- networking.firewall.enable = false;
+ networking.nftables.enable = true;
+ # networking.firewall.enable = false;
boot.loader = {
systemd-boot.enable = true;
@@ -64,19 +74,18 @@
neovim
git
nh
+ home-manager
];
- services = {
- devmon.enable = true;
- gvfs.enable = true;
- udisks2 = {
- enable = true;
- mountOnMedia = true;
+ services.v2raya.enable = true;
+ services.openvpn = {
+ servers.prostovpn = {
+ autoStart = true;
+ config = "config /home/jerpo/.prostovpn.ovpn";
+ updateResolvConf = true;
};
};
- services.v2raya.enable = true;
-
fonts = {
packages = with pkgs; [
# icon fonts
@@ -100,7 +109,7 @@
fontconfig.defaultFonts = {
serif = [ "Noto Serif" "Noto Color Emoji" ];
sansSerif = [ "Noto Sans" "Noto Color Emoji" ];
- monospace = [ "Source Code Pro" ];
+ monospace = [ "Sauce Code Pro Nerd Font" ];
emoji = [ "Noto Color Emoji" ];
};
};
@@ -108,13 +117,4 @@
programs.dconf.enable = true;
i18n.defaultLocale = "en_US.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
index 2ec1099..9abd497 100644
--- a/nixos/laptop/configuration.nix
+++ b/nixos/laptop/configuration.nix
@@ -10,20 +10,13 @@
../general.nix
./hardware-configuration.nix
- inputs.home-manager.nixosModules.home-manager
+ ../nixosModules/powerbutton.nix
+ ../nixosModules/docker.nix
];
- services.greetd = {
- enable = true;
- settings = {
- default_session = {
- command = "${pkgs.greetd.tuigreet}/bin/tuigreet -t -r -c Hyprland";
- user = "jerpo";
- };
- };
- };
-
- programs.niri.enable = true;
+ # from nixosModules
+ pbutton.disable = true;
+ docker.enable = true;
time.timeZone = "Europe/Moscow";
networking.hostName = "ltrr-mini";
@@ -31,49 +24,15 @@
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
- services.xserver = {
- enable = false;
- displayManager.lightdm.enable = false;
- };
-
- environment.systemPackages = with pkgs; [
- joycond-cemuhook
- ];
-
- virtualisation.docker = {
- enable = true;
- liveRestore = true;
- daemon.settings = {
- bip = "172.20.0.1/16";
- default-address-pools = [{
- base = "172.20.0.0/8";
- size = 16;
- }];
- };
- };
-
- # virtualisation.waydroid.enable = true;
-
programs.adb.enable = true;
services.udev.packages = [
pkgs.android-udev-rules
];
-
+
services.joycond.enable = true;
-
- home-manager = {
- extraSpecialArgs = { inherit inputs outputs; };
- useGlobalPkgs = true;
- useUserPackages = true;
- users.jerpo = import ../../home-manager/laptop;
- };
-
- services.logind.extraConfig = ''
- HandlePowerKey=ignore
- HandleLidSwitch=suspend
- HandleLidSwitchExternalPower=suspend
- '';
-
+ environment.systemPackages = with pkgs; [
+ joycond-cemuhook
+ ];
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "23.05";
diff --git a/nixos/nixosModules/default.nix b/nixos/nixosModules/default.nix
new file mode 100644
index 0000000..05b64be
--- /dev/null
+++ b/nixos/nixosModules/default.nix
@@ -0,0 +1,11 @@
+{
+ imports = [
+ ./user.nix
+ ./disks.nix
+ ./docker.nix
+ ./greetd.nix
+ ./stylix.nix
+ ./powerbutton.nix
+ ./printing.nix
+ ];
+}
diff --git a/nixos/nixosModules/disks.nix b/nixos/nixosModules/disks.nix
new file mode 100644
index 0000000..e7a374a
--- /dev/null
+++ b/nixos/nixosModules/disks.nix
@@ -0,0 +1,17 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ disks.enable = lib.mkEnableOption "auto disk mount";
+ };
+ config = lib.mkIf config.disks.enable {
+ services = {
+ devmon.enable = true;
+ gvfs.enable = true;
+ udisks2 = {
+ enable = true;
+ mountOnMedia = true;
+ };
+ };
+ };
+}
diff --git a/nixos/nixosModules/docker.nix b/nixos/nixosModules/docker.nix
new file mode 100644
index 0000000..0536d7e
--- /dev/null
+++ b/nixos/nixosModules/docker.nix
@@ -0,0 +1,20 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ docker.enable = lib.mkEnableOption "enable docker";
+ };
+ config = lib.mkIf config.docker.enable {
+ virtualisation.docker = {
+ enable = true;
+ liveRestore = true;
+ daemon.settings = {
+ bip = "172.20.0.1/16";
+ default-address-pools = [{
+ base = "172.20.0.0/8";
+ size = 16;
+ }];
+ };
+ };
+ };
+}
diff --git a/nixos/nixosModules/greetd.nix b/nixos/nixosModules/greetd.nix
new file mode 100644
index 0000000..f48c291
--- /dev/null
+++ b/nixos/nixosModules/greetd.nix
@@ -0,0 +1,22 @@
+{ pkgs, config, lib, inputs, outputs, ... }:
+
+{
+ imports = [
+ inputs.stylix.nixosModules.stylix
+ ];
+
+ options = {
+ greetd.enable = lib.mkEnableOption "enable greetd";
+ };
+ config = lib.mkIf config.greetd.enable {
+ services.greetd = {
+ enable = true;
+ settings = {
+ default_session = {
+ command = "${pkgs.greetd.tuigreet}/bin/tuigreet -t -r -c Hyprland";
+ user = "jerpo";
+ };
+ };
+ };
+ };
+}
diff --git a/nixos/nixosModules/powerbutton.nix b/nixos/nixosModules/powerbutton.nix
new file mode 100644
index 0000000..fdf1ceb
--- /dev/null
+++ b/nixos/nixosModules/powerbutton.nix
@@ -0,0 +1,14 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ pbutton.disable = lib.mkEnableOption "enable pbutton";
+ };
+ config = lib.mkIf config.pbutton.disable {
+ services.logind.extraConfig = ''
+ HandlePowerKey=ignore
+ HandleLidSwitch=suspend
+ HandleLidSwitchExternalPower=suspend
+ '';
+ };
+}
diff --git a/nixos/nixosModules/printing.nix b/nixos/nixosModules/printing.nix
new file mode 100644
index 0000000..3d4eee1
--- /dev/null
+++ b/nixos/nixosModules/printing.nix
@@ -0,0 +1,18 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ printing.enable = lib.mkEnableOption "enable printing";
+ };
+ config = lib.mkIf config.printing.enable {
+ services = {
+ printing.enable = true;
+ printing.drivers = [ pkgs.hplipWithPlugin ];
+ avahi = {
+ enable = true;
+ nssmdns = true;
+ openFirewall = true;
+ };
+ };
+ };
+}
diff --git a/nixos/nixosModules/stylix.nix b/nixos/nixosModules/stylix.nix
new file mode 100644
index 0000000..7daab8e
--- /dev/null
+++ b/nixos/nixosModules/stylix.nix
@@ -0,0 +1,24 @@
+{ pkgs, config, lib, outputs, ... }:
+
+{
+ options = {
+ stylix.enable = lib.mkEnableOption "enable stylix";
+ };
+ config = lib.mkIf config.stylix.enable {
+ stylix = with outputs.homeConfigurations."jerpo@ltrr-mini".config.stylix; {
+ image = image;
+ base16Scheme = base16Scheme;
+ autoEnable = false;
+ targets.console.enable = true;
+ fonts = with fonts; {
+ serif = serif;
+
+ sansSerif = sansSerif;
+
+ monospace = monospace;
+
+ emoji = emoji;
+ };
+ };
+ };
+}
diff --git a/nixos/nixosModules/user.nix b/nixos/nixosModules/user.nix
new file mode 100644
index 0000000..da40b09
--- /dev/null
+++ b/nixos/nixosModules/user.nix
@@ -0,0 +1,18 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ user.enable = lib.mkEnableOption "default user configuration";
+ };
+ config = lib.mkIf config.user.enable {
+ programs.fish.enable = true;
+ users.users = {
+ jerpo = {
+ isNormalUser = true;
+ shell = pkgs.fish;
+ extraGroups = [ "networkmanager" "wheel" "docker" "libvirtd" "input" "adbusers" ];
+ };
+ };
+
+ };
+}
diff --git a/nixos/pc/configuration.nix b/nixos/pc/configuration.nix
index ef63c66..c691028 100644
--- a/nixos/pc/configuration.nix
+++ b/nixos/pc/configuration.nix
@@ -7,18 +7,6 @@
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;