summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorChristian <[email protected]>2026-01-18 21:17:14 -0600
committerChristian <[email protected]>2026-01-18 21:41:12 -0600
commit87be0d3dd54e71f33b9d8a757273ae4f2170e3f0 (patch)
tree758db0c339023ef7bdae276dab85770a31c6644f /modules
parent44adb7d61e71370acb7d839e6b76270f9a081939 (diff)
Multiple configs
Diffstat (limited to 'modules')
-rw-r--r--modules/common.nix66
-rw-r--r--modules/home.nix15
-rw-r--r--modules/xmonad.hs29
3 files changed, 110 insertions, 0 deletions
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 = "[email protected]";
+ };
+
+ 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