diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/boot/default.nix | 12 | ||||
| -rw-r--r-- | modules/datetime/default.nix | 26 | ||||
| -rw-r--r-- | modules/default.nix | 18 | ||||
| -rw-r--r-- | modules/environment/default.nix | 24 | ||||
| -rw-r--r-- | modules/hardware/bluetooth.nix | 6 | ||||
| -rw-r--r-- | modules/hardware/default.nix | 8 | ||||
| -rw-r--r-- | modules/hardware/graphics.nix | 8 | ||||
| -rw-r--r-- | modules/hardware/nvidia.nix | 17 | ||||
| -rw-r--r-- | modules/networking/default.nix | 12 | ||||
| -rw-r--r-- | modules/nix/default.nix | 37 | ||||
| -rw-r--r-- | modules/programs/default.nix | 34 | ||||
| -rw-r--r-- | modules/programs/hyprland.nix | 8 | ||||
| -rw-r--r-- | modules/security/default.nix | 19 | ||||
| -rw-r--r-- | modules/services/dbus.nix | 9 | ||||
| -rw-r--r-- | modules/services/default.nix | 15 | ||||
| -rw-r--r-- | modules/services/libinput.nix | 13 | ||||
| -rw-r--r-- | modules/services/openssh.nix | 9 | ||||
| -rw-r--r-- | modules/services/pipewire.nix | 14 | ||||
| -rw-r--r-- | modules/services/xserver.nix | 6 | ||||
| -rw-r--r-- | modules/users/default.nix | 17 | ||||
| -rw-r--r-- | modules/virtualisation/default.nix | 11 | ||||
| -rw-r--r-- | modules/xdg-portal.nix | 10 |
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 ]; + }; +} |