summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-08-28 20:36:04 -0700
committerFuwn <[email protected]>2024-08-28 20:36:04 -0700
commitf3c31e4ad7fab36e151f3a2e207fafb1eda1a787 (patch)
treee265a1a5270b4522049110b8bc5aa13fda142c2f /modules
parentmany (diff)
downloadnixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.tar.xz
nixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.zip
hi
Diffstat (limited to 'modules')
-rw-r--r--modules/boot/default.nix12
-rw-r--r--modules/datetime/default.nix26
-rw-r--r--modules/default.nix18
-rw-r--r--modules/environment/default.nix24
-rw-r--r--modules/hardware/bluetooth.nix6
-rw-r--r--modules/hardware/default.nix8
-rw-r--r--modules/hardware/graphics.nix8
-rw-r--r--modules/hardware/nvidia.nix17
-rw-r--r--modules/networking/default.nix12
-rw-r--r--modules/nix/default.nix37
-rw-r--r--modules/programs/default.nix34
-rw-r--r--modules/programs/hyprland.nix8
-rw-r--r--modules/security/default.nix19
-rw-r--r--modules/services/dbus.nix9
-rw-r--r--modules/services/default.nix15
-rw-r--r--modules/services/libinput.nix13
-rw-r--r--modules/services/openssh.nix9
-rw-r--r--modules/services/pipewire.nix14
-rw-r--r--modules/services/xserver.nix6
-rw-r--r--modules/users/default.nix17
-rw-r--r--modules/virtualisation/default.nix11
-rw-r--r--modules/xdg-portal.nix10
22 files changed, 333 insertions, 0 deletions
diff --git a/modules/boot/default.nix b/modules/boot/default.nix
new file mode 100644
index 0000000..4f37c41
--- /dev/null
+++ b/modules/boot/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+{
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+
+ kernelPackages = pkgs.linuxPackages_zen;
+ kernelParams = [ "nvidia-drm.fbdev=1" ];
+ };
+}
diff --git a/modules/datetime/default.nix b/modules/datetime/default.nix
new file mode 100644
index 0000000..2e4fbe0
--- /dev/null
+++ b/modules/datetime/default.nix
@@ -0,0 +1,26 @@
+{ pkgs, ... }:
+{
+ time.timeZone = "America/Los_Angeles";
+
+ i18n = {
+ defaultLocale = "en_US.UTF-8";
+
+ inputMethod = {
+ enabled = "fcitx5";
+
+ fcitx5 = {
+ waylandFrontend = true;
+
+ addons = with pkgs; [
+ fcitx5-configtool
+ fcitx5-gtk
+ fcitx5-hangul
+ fcitx5-mozc
+ fcitx5-rime
+ rime-data
+ catppuccin-fcitx5
+ ];
+ };
+ };
+ };
+}
diff --git a/modules/default.nix b/modules/default.nix
new file mode 100644
index 0000000..a2d6ec4
--- /dev/null
+++ b/modules/default.nix
@@ -0,0 +1,18 @@
+{
+ imports = [
+ ./boot
+ ./datetime
+ ./environment
+ ./hardware
+ ./networking
+ ./nix
+ ./programs
+ ./security
+ ./services
+ ./users
+ ./virtualisation
+ ./xdg-portal.nix
+ ];
+
+ location.provider = "geoclue2";
+}
diff --git a/modules/environment/default.nix b/modules/environment/default.nix
new file mode 100644
index 0000000..b20dcf4
--- /dev/null
+++ b/modules/environment/default.nix
@@ -0,0 +1,24 @@
+{
+ environment = {
+ variables = {
+ LIBVA_DRIVER_NAME = "nvidia";
+ XDG_SESSION_TYPE = "wayland";
+ GBM_BACKEND = "nvidia-drm";
+ __GLX_VENDOR_LIBRARY_NAME = "nvidia";
+ __GL_GSYNC_ALLOWED = "1";
+ __GL_VRR_ALLOWED = "0";
+ QT_AUTO_SCREEN_SCALE_FACTOR = "1";
+ QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
+ CUDA_CACHE_PATH = "$XDG_CACHE_HOME/nv";
+ };
+
+ sessionVariables = {
+ NIXOS_OZONE_WL = "1";
+ WLR_NO_HARDWARE_CURSORS = "1";
+ };
+
+ shellAliases = {
+ nvidia-settings = "nvidia-settings --config='$XDG_CONFIG_HOME'/nvidia/settings";
+ };
+ };
+}
diff --git a/modules/hardware/bluetooth.nix b/modules/hardware/bluetooth.nix
new file mode 100644
index 0000000..1b6e38b
--- /dev/null
+++ b/modules/hardware/bluetooth.nix
@@ -0,0 +1,6 @@
+{
+ hardware.bluetooth = {
+ enable = true;
+ powerOnBoot = true;
+ };
+}
diff --git a/modules/hardware/default.nix b/modules/hardware/default.nix
new file mode 100644
index 0000000..c22d253
--- /dev/null
+++ b/modules/hardware/default.nix
@@ -0,0 +1,8 @@
+{ config, pkgs, ... }:
+{
+ imports = [
+ ./bluetooth.nix
+ ./graphics.nix
+ ./nvidia.nix
+ ];
+}
diff --git a/modules/hardware/graphics.nix b/modules/hardware/graphics.nix
new file mode 100644
index 0000000..ae9d2fc
--- /dev/null
+++ b/modules/hardware/graphics.nix
@@ -0,0 +1,8 @@
+{ pkgs, ... }:
+{
+ hardware.graphics = {
+ enable = true;
+ enable32Bit = true;
+ extraPackages = with pkgs; [ nvidia-vaapi-driver ];
+ };
+}
diff --git a/modules/hardware/nvidia.nix b/modules/hardware/nvidia.nix
new file mode 100644
index 0000000..d6c16e2
--- /dev/null
+++ b/modules/hardware/nvidia.nix
@@ -0,0 +1,17 @@
+{ config, ... }:
+{
+ hardware.nvidia = {
+ modesetting.enable = true;
+ open = false;
+ nvidiaSettings = true;
+ package = config.boot.kernelPackages.nvidiaPackages.beta;
+ forceFullCompositionPipeline = true;
+
+ powerManagement = {
+ enable = true;
+ finegrained = false;
+ };
+
+ prime.nvidiaBusId = "PCI:43:0:0";
+ };
+}
diff --git a/modules/networking/default.nix b/modules/networking/default.nix
new file mode 100644
index 0000000..0a9d796
--- /dev/null
+++ b/modules/networking/default.nix
@@ -0,0 +1,12 @@
+{
+ networking = {
+ hostName = "kansai";
+ # wireless.enable = true;
+ networkmanager.enable = false;
+
+ dhcpcd = {
+ wait = "background";
+ extraConfig = "noarp";
+ };
+ };
+}
diff --git a/modules/nix/default.nix b/modules/nix/default.nix
new file mode 100644
index 0000000..365dc77
--- /dev/null
+++ b/modules/nix/default.nix
@@ -0,0 +1,37 @@
+{
+ nixpkgs.config.allowUnfree = true;
+
+ nix = {
+ settings = {
+ auto-optimise-store = true;
+ http-connections = 50;
+ warn-dirty = false;
+ log-lines = 50;
+ # sandbox = "relaxed";
+
+ trusted-users = [
+ "root"
+ "@wheel"
+ ];
+
+ substituters = [
+ "https://nix-community.cachix.org"
+ "https://hyprland.cachix.org"
+ "https://ghostty.cachix.org"
+ ];
+
+ experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ };
+
+ gc = {
+ automatic = false;
+ dates = "weekly";
+ options = "--delete-older-than 7d";
+ };
+
+ # distributedBuilds = true;
+ };
+}
diff --git a/modules/programs/default.nix b/modules/programs/default.nix
new file mode 100644
index 0000000..f4fc813
--- /dev/null
+++ b/modules/programs/default.nix
@@ -0,0 +1,34 @@
+{ pkgs, ... }:
+{
+ imports = [ ./hyprland.nix ];
+
+ environment.systemPackages = with pkgs; [
+ vim
+ wget
+ git
+ gtk2
+ gtk3
+ gtk4
+ mediastreamer-openh264
+ ];
+
+ programs = {
+ fish.enable = true;
+ mtr.enable = true;
+ dconf.enable = true;
+
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ nh = {
+ enable = true;
+
+ clean = {
+ enable = true;
+ extraArgs = "--keep-since 4d --keep 3";
+ };
+ };
+ };
+}
diff --git a/modules/programs/hyprland.nix b/modules/programs/hyprland.nix
new file mode 100644
index 0000000..befea76
--- /dev/null
+++ b/modules/programs/hyprland.nix
@@ -0,0 +1,8 @@
+{ pkgs, inputs, ... }:
+{
+ programs.hyprland = {
+ enable = true;
+ package = inputs.hyprland.packages.${pkgs.system}.hyprland;
+ portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
+ };
+}
diff --git a/modules/security/default.nix b/modules/security/default.nix
new file mode 100644
index 0000000..e7db804
--- /dev/null
+++ b/modules/security/default.nix
@@ -0,0 +1,19 @@
+{
+ security = {
+ sudo.enable = true;
+ polkit.enable = true;
+
+ doas = {
+ enable = true;
+ extraRules = [
+ {
+ keepEnv = true;
+ # persist = true;
+ noPass = true;
+
+ users = [ "ebisu" ];
+ }
+ ];
+ };
+ };
+}
diff --git a/modules/services/dbus.nix b/modules/services/dbus.nix
new file mode 100644
index 0000000..ad05b6d
--- /dev/null
+++ b/modules/services/dbus.nix
@@ -0,0 +1,9 @@
+{ pkgs, config, ... }:
+{
+ services.dbus.enable = true;
+
+ # services.dbus.packages = [
+ # # pkgs.flatpak
+ # pkgs.xdg-desktop-portal
+ # ];
+}
diff --git a/modules/services/default.nix b/modules/services/default.nix
new file mode 100644
index 0000000..48de7b2
--- /dev/null
+++ b/modules/services/default.nix
@@ -0,0 +1,15 @@
+{
+ imports = [
+ ./dbus.nix
+ ./libinput.nix
+ ./openssh.nix
+ ./pipewire.nix
+ ./xserver.nix
+ ];
+
+ services = {
+ # printing.enable = true;
+ gnome.gnome-keyring.enable = true;
+ fstrim.enable = true;
+ };
+}
diff --git a/modules/services/libinput.nix b/modules/services/libinput.nix
new file mode 100644
index 0000000..643f814
--- /dev/null
+++ b/modules/services/libinput.nix
@@ -0,0 +1,13 @@
+{
+ services.libinput = {
+ enable = true;
+
+ mouse = {
+ accelProfile = "flat";
+ };
+
+ touchpad = {
+ accelProfile = "flat";
+ };
+ };
+}
diff --git a/modules/services/openssh.nix b/modules/services/openssh.nix
new file mode 100644
index 0000000..35ea673
--- /dev/null
+++ b/modules/services/openssh.nix
@@ -0,0 +1,9 @@
+{
+ services.openssh = {
+ enable = true;
+ settings = {
+ Port = 2222;
+ PermitRootLogin = "yes";
+ };
+ };
+}
diff --git a/modules/services/pipewire.nix b/modules/services/pipewire.nix
new file mode 100644
index 0000000..80a24ce
--- /dev/null
+++ b/modules/services/pipewire.nix
@@ -0,0 +1,14 @@
+{
+ services.pipewire = {
+ enable = true;
+ wireplumber.enable = true;
+ jack.enable = true;
+ pulse.enable = true;
+ audio.enable = true;
+
+ alsa = {
+ enable = true;
+ support32Bit = true;
+ };
+ };
+}
diff --git a/modules/services/xserver.nix b/modules/services/xserver.nix
new file mode 100644
index 0000000..e08ac04
--- /dev/null
+++ b/modules/services/xserver.nix
@@ -0,0 +1,6 @@
+{
+ services.xserver = {
+ xkb.layout = "us";
+ videoDrivers = [ "nvidia" ];
+ };
+}
diff --git a/modules/users/default.nix b/modules/users/default.nix
new file mode 100644
index 0000000..fed20c3
--- /dev/null
+++ b/modules/users/default.nix
@@ -0,0 +1,17 @@
+{ pkgs, ... }:
+{
+ users.users.ebisu = {
+ isNormalUser = true;
+ initialPassword = "123456";
+ shell = pkgs.fish;
+
+ extraGroups = [
+ "networkmanager"
+ "wheel"
+ "input"
+ "docker"
+ "kvm"
+ "libvirtd"
+ ];
+ };
+}
diff --git a/modules/virtualisation/default.nix b/modules/virtualisation/default.nix
new file mode 100644
index 0000000..6add74f
--- /dev/null
+++ b/modules/virtualisation/default.nix
@@ -0,0 +1,11 @@
+{
+ virtualisation = {
+ docker = {
+ enable = true;
+ storageDriver = "btrfs";
+ enableOnBoot = false;
+ };
+
+ libvirtd.enable = true;
+ };
+}
diff --git a/modules/xdg-portal.nix b/modules/xdg-portal.nix
new file mode 100644
index 0000000..be2a014
--- /dev/null
+++ b/modules/xdg-portal.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+{
+ xdg.portal = {
+ enable = true;
+ # config.common.default = "*";
+ # wlr.enable = true;
+ # xdgOpenUsePortal = true;
+ extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
+ };
+}