From 87be0d3dd54e71f33b9d8a757273ae4f2170e3f0 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 18 Jan 2026 21:17:14 -0600 Subject: Multiple configs --- modules/common.nix | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ modules/home.nix | 15 +++++++++++++ modules/xmonad.hs | 29 ++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 modules/common.nix create mode 100644 modules/home.nix create mode 100644 modules/xmonad.hs (limited to 'modules') diff --git a/modules/common.nix b/modules/common.nix new file mode 100644 index 0000000..73dc435 --- /dev/null +++ b/modules/common.nix @@ -0,0 +1,66 @@ +{ config, lib, pkgs, inputs, ... }: + +{ + imports = [ + inputs.nix-index-database.nixosModules.nix-index + inputs.home-manager.nixosModules.home-manager + ]; + # Experimental features + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Configure network connections interactively with nmcli or nmtui. + networking.networkmanager.enable = true; + + # Set your time zone. + # time.timeZone = "Europe/Amsterdam"; + time.timeZone = "America/Chicago"; + + # Enable the X11 windowing system. + services.xserver.enable = true; + services.xserver.windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + config = builtins.readFile ./xmonad.hs; + }; + + services.xserver.xkb.layout = "us"; + + # User + users.users.christian = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + }; + + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.christian = import ./home.nix; + home-manager.extraSpecialArgs = { inherit inputs; }; + + environment.systemPackages = with pkgs; [ + git + wget + alacritty + ]; + + programs.firefox.enable = true; + + programs.neovim = { + enable = true; + vimAlias = true; + viAlias = true; + defaultEditor = true; + }; + + programs.bash.shellAliases = { + rebuild = "sudo nixos-rebuild switch --flake /etc/nixos"; + }; + + programs.nix-index.enable = true; + programs.nix-index-database.comma.enable = true; + programs.command-not-found.enable = false; +} + diff --git a/modules/home.nix b/modules/home.nix new file mode 100644 index 0000000..93cbeed --- /dev/null +++ b/modules/home.nix @@ -0,0 +1,15 @@ +{ config, pkgs, inputs, ... }: +{ + + home.stateVersion = "25.11"; + + home.packages = with pkgs; [ ]; + + programs.git = { + enable = true; + settings.user.name = "Christian"; + settings.user.email = "thechristiansoltermann@gmail.com"; + }; + + programs.home-manager.enable = true; +} diff --git a/modules/xmonad.hs b/modules/xmonad.hs new file mode 100644 index 0000000..1df21b5 --- /dev/null +++ b/modules/xmonad.hs @@ -0,0 +1,29 @@ +import XMonad +import XMonad.Util.EZConfig (additionalKeys) +import Control.Monad (when) +import Text.Printf (printf) +import System.Posix.Process (executeFile) +import System.Info (arch,os) +import System.Environment (getArgs) +import System.FilePath (()) + +compiledConfig = printf "xmonad-%s-%s" arch os + +myConfig = defaultConfig + { modMask = mod1Mask + , terminal = "alacritty" } + `additionalKeys` + [ ( (mod1Mask, xK_r), compileRestart True) + , ( (mod1Mask, xK_q), restart "xmonad" True ) ] + +compileRestart resume = do + dirs <- asks directories + whenX (recompile dirs True) $ do + when resume writeStateToFile + catchIO + ( do + args <- getArgs + executeFile (cacheDir dirs compiledConfig) False args Nothing + ) + +main = getDirectories >>= launch myConfig -- cgit v1.2.3