Working on modularizing nix configs

This commit is contained in:
lulusilly 2025-09-13 15:10:42 -04:00
parent 77deb9e0d7
commit 5d531dc695
4 changed files with 66 additions and 81 deletions

View file

@ -23,4 +23,36 @@
nixpkgs.config.allowUnfree = true;
# Enable nix-command and flakes
nix.settings.experimental-features = [ "nix-command" "flakes"];
# using piprewire cuz embrace muh modernity
services.pipewire = {
enable = true;
pulse.enable = true;
};
# Basic configuration stuff - WiFi, Xserver keyboard layout, Stylix
networking.networkmanager.enable = true;
time.timeZone = "America/St_Thomas";
i18n.defaultLocale = "en_US.UTF-8";
services.xserver.xkb = {
layout = "us";
variant = "";
};
stylix = {
enable = true;
image = ./bg.jpg;
};
# Zsh
programs.zsh.enable = true;
# Browser
programs.firefox.enable = true;
# Tailscale
services.tailscale.enable = true;
# Syncthing
services.syncthing.enable = true;
# GPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# OpenSSH
services.openssh.enable = true;
}

View file

@ -6,23 +6,6 @@
./hardware-configuration.nix
];
# Enable automatic system updates
system.autoUpgrade = {
enable = true;
flake = inputs.self.outPath;
flags = [
"--update-input"
"nixpkgs"
"-L" # print build logs
];
dates = "weekly";
randomizedDelaySec = "45min";
};
# Allow non-free software (RMS will be mad at me :<)
nixpkgs.config.allowUnfree = true;
# Enable nix-command and flakes
nix.settings.experimental-features = [ "nix-command" "flakes"];
# SystemD-boot is good enough
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;

View file

@ -4,66 +4,22 @@
imports =
[
./hardware-configuration.nix
../../modules/kanata.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
systemd.tpm2.enable = false;
networking.hostName = "syntheticnexus";
networking.networkmanager.enable = true;
time.timeZone = "America/St_Thomas";
i18n.defaultLocale = "en_US.UTF-8";
services.xserver.xkb = {
layout = "us";
variant = "";
};
stylix = {
enable = true;
image = ./bg.jpg;
};
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
services.gnome.core-apps.enable = false;
services.gnome.core-developer-tools.enable = false;
services.gnome.games.enable = false;
environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];
# using piprewire cuz embrace muh modernity
services.pipewire = {
enable = true;
pulse.enable = true;
};
services.libinput.enable = true; # for laptop touchpad
# Kanata setup
# Mostly copied from https://dev.to/shanu-kumawat/how-to-set-up-kanata-on-nixos-a-step-by-step-guide-1jkc
boot.kernelModules = [ "uinput" ]; # Enable uinput kernel module
hardware.uinput.enable = true; # Enable uinput
# Set up udev rules for uinput
services.udev.extraRules = ''
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
'';
users.groups.uinput = { }; # ensure uinput group exists
# Add Kanata service user to necessary groups
systemd.services.kanata-internalKeyboard.serviceConfig = {
SupplementaryGroups = [
"input"
"uinput"
];
};
# Kanata configuration
services.kanata = {
enable = true;
keyboards = {
internalKeyboard = {
devices = [
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
];
configFile = builtins.fetchurl {
url = https://git.luluslly.xyz/lulusilly/dotfiles/raw/branch/master/.config/kanata/conf.kbd;
sha256 = "1jv6051igv4yxwr9bxzil6qrynvg3imlnh65lxhjdfcvpnmlcy6p";
};
};
};
};
users.users.lunita = {
isNormalUser = true;
@ -86,21 +42,5 @@
nyxt
];
# Zsh
programs.zsh.enable = true;
# Browser
programs.firefox.enable = true;
# Tailscale
services.tailscale.enable = true;
# Syncthing
services.syncthing.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
services.openssh.enable = true;
system.stateVersion = "25.05";
}

View file

@ -0,0 +1,30 @@
{ config, libs, pkgs. inputs, ... }
{
# Kanata setup
# Mostly copied from https://dev.to/shanu-kumawat/how-to-set-up-kanata-on-nixos-a-step-by-step-guide-1jkc
boot.kernelModules = [ "uinput" ]; # Enable uinput kernel module
hardware.uinput.enable = true; # Enable uinput
# Set up udev rules for uinput
services.udev.extraRules = ''
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
'';
users.groups.uinput = { }; # ensure uinput group exists
# Add Kanata service user to necessary groups
systemd.services.kanata-internalKeyboard.serviceConfig = {
SupplementaryGroups = [
"input"
"uinput"
];
};
# Kanata configuration
services.kanata = {
enable = true;
keyboards = {
internalKeyboard = {
devices = [
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
];
configFile = builtins.readFile ../../kanata/conf.kbd;
};
};
}