From e513913099c768ec021615f67438c9ced6fbd8b8 Mon Sep 17 00:00:00 2001 From: System administrator Date: Tue, 30 Jan 2024 04:25:25 +0000 Subject: [PATCH] WSL + more modularity --- flake.lock | 73 ++++++++++++++++ flake.nix | 38 ++++++++- homeConfig/home.nix | 21 ----- homeConfig/modules/bash/config/alias.nix | 3 - .../modules/utils/modules/vim/default.nix | 19 ----- src/modules/bash/config/alias.nix | 3 + .../modules/bash/config/bashprofile.nix | 0 .../modules/bash/config/bashrc.nix | 0 .../modules/bash/config/prompt.nix | 0 {homeConfig => src}/modules/bash/default.nix | 0 {homeConfig => src}/modules/default.nix | 0 {homeConfig => src}/modules/git/default.nix | 0 {homeConfig => src}/modules/gpg/default.nix | 0 {homeConfig => src}/modules/gui/default.nix | 0 .../gui/desktopEnvironments/default.nix | 0 .../modules/alacritty/config/alacritty.nix | 0 .../modules/alacritty/default.nix | 4 +- .../modules/browsers/default.nix | 4 +- .../modules/corn/default.nix | 4 +- .../desktopEnvironments/modules/default.nix | 3 +- .../modules/fun/default.nix | 4 +- .../modules/neovim/config/lazyvim/init.lua | 0 .../config/lazyvim/lua/config/autocmds.lua | 0 .../config/lazyvim/lua/config/keymaps.lua | 0 .../neovim/config/lazyvim/lua/config/lazy.lua | 0 .../config/lazyvim/lua/config/options.lua | 0 .../config/lazyvim/lua/plugins/core.lua | 0 .../modules/neovim/config/servers.nix | 0 .../modules/neovim/default.nix | 4 +- .../modules/utils}/default.nix | 4 +- .../modules/writing/default.nix | 17 ++++ .../desktopEnvironments/sway/config/rofi.nix | 0 .../sway/config/shellHook.nix | 0 .../desktopEnvironments/sway/config/sway.nix | 0 .../gui/desktopEnvironments/sway/default.nix | 9 -- .../modules/security/default.nix | 0 {homeConfig => src}/modules/utils/default.nix | 10 +-- .../modules/utils/modules/default.nix | 0 .../modules/utils/modules/dev/default.nix | 4 +- .../utils/modules/email/config/aerc.conf | 0 .../utils/modules/email/config/binds.conf | 0 .../modules/utils/modules/email/default.nix | 4 +- .../modules/utils/modules/irc/default.nix | 4 +- .../modules/utils/modules/vim/config/vimrc | 25 ++++-- src/modules/utils/modules/vim/default.nix | 22 +++++ .../systems}/desktop/default.nix | 2 + {sysConfig => src/systems}/desktop/disks.nix | 0 .../systems}/desktop/hardware.nix | 0 src/systems/desktop/home.nix | 43 ++++++++++ {sysConfig => src/systems}/desktop/system.nix | 0 {sysConfig => src/systems}/laptop/default.nix | 0 {sysConfig => src/systems}/server/default.nix | 0 src/systems/wsl/default.nix | 8 ++ src/systems/wsl/home.nix | 33 ++++++++ src/systems/wsl/system.nix | 83 +++++++++++++++++++ {user => src/user}/default.nix | 0 {user => src/user}/pgpKey.nix | 0 57 files changed, 356 insertions(+), 92 deletions(-) delete mode 100644 homeConfig/home.nix delete mode 100644 homeConfig/modules/bash/config/alias.nix delete mode 100644 homeConfig/modules/utils/modules/vim/default.nix create mode 100644 src/modules/bash/config/alias.nix rename {homeConfig => src}/modules/bash/config/bashprofile.nix (100%) rename {homeConfig => src}/modules/bash/config/bashrc.nix (100%) rename {homeConfig => src}/modules/bash/config/prompt.nix (100%) rename {homeConfig => src}/modules/bash/default.nix (100%) rename {homeConfig => src}/modules/default.nix (100%) rename {homeConfig => src}/modules/git/default.nix (100%) rename {homeConfig => src}/modules/gpg/default.nix (100%) rename {homeConfig => src}/modules/gui/default.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/default.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/alacritty/config/alacritty.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/alacritty/default.nix (60%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/browsers/default.nix (60%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/corn/default.nix (86%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/default.nix (77%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/fun/default.nix (78%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/init.lua (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/autocmds.lua (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/keymaps.lua (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/lazy.lua (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/options.lua (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/plugins/core.lua (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/config/servers.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/modules/neovim/default.nix (78%) rename {homeConfig/modules/gui/desktopEnvironments/modules/guiUtils => src/modules/gui/desktopEnvironments/modules/utils}/default.nix (69%) create mode 100644 src/modules/gui/desktopEnvironments/modules/writing/default.nix rename {homeConfig => src}/modules/gui/desktopEnvironments/sway/config/rofi.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/sway/config/shellHook.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/sway/config/sway.nix (100%) rename {homeConfig => src}/modules/gui/desktopEnvironments/sway/default.nix (85%) rename {homeConfig => src}/modules/security/default.nix (100%) rename {homeConfig => src}/modules/utils/default.nix (62%) rename {homeConfig => src}/modules/utils/modules/default.nix (100%) rename {homeConfig => src}/modules/utils/modules/dev/default.nix (65%) rename {homeConfig => src}/modules/utils/modules/email/config/aerc.conf (100%) rename {homeConfig => src}/modules/utils/modules/email/config/binds.conf (100%) rename {homeConfig => src}/modules/utils/modules/email/default.nix (65%) rename {homeConfig => src}/modules/utils/modules/irc/default.nix (65%) rename {homeConfig => src}/modules/utils/modules/vim/config/vimrc (76%) create mode 100644 src/modules/utils/modules/vim/default.nix rename {sysConfig => src/systems}/desktop/default.nix (77%) rename {sysConfig => src/systems}/desktop/disks.nix (100%) rename {sysConfig => src/systems}/desktop/hardware.nix (100%) create mode 100644 src/systems/desktop/home.nix rename {sysConfig => src/systems}/desktop/system.nix (100%) rename {sysConfig => src/systems}/laptop/default.nix (100%) rename {sysConfig => src/systems}/server/default.nix (100%) create mode 100644 src/systems/wsl/default.nix create mode 100644 src/systems/wsl/home.nix create mode 100644 src/systems/wsl/system.nix rename {user => src/user}/default.nix (100%) rename {user => src/user}/pgpKey.nix (100%) diff --git a/flake.lock b/flake.lock index 55c531e..7536f09 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,39 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -21,6 +55,29 @@ "type": "github" } }, + "nixos-wsl": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1702823833, + "narHash": "sha256-Sreo1VEMSwS/T83QxXeN1cDtgXWXPMibGYfQ8pLLSVc=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "34eda458bd3f6bad856a99860184d775bc1dd588", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "2311.5.3", + "repo": "NixOS-WSL", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1705916986, @@ -40,8 +97,24 @@ "root": { "inputs": { "home-manager": "home-manager", + "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index affbdb8..2699b03 100644 --- a/flake.nix +++ b/flake.nix @@ -7,9 +7,13 @@ url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixos-wsl = { + url = "github:nix-community/NixOS-WSL/2311.5.3"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { self, nixpkgs, home-manager }: + outputs = { self, nixpkgs, home-manager, nixos-wsl }: let system = "x86_64-linux"; pkgs = import nixpkgs { @@ -24,12 +28,40 @@ nixosConfigurations.desktop = nixpkgs.lib.nixosSystem { inherit system pkgs; modules = [ - ./sysConfig/desktop + ./src/systems/desktop home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.users.bryan = import ./homeConfig/home.nix; + home-manager.users.bryan = import ./src/systems/desktop/home.nix; + } + ]; + }; + nixosConfigurations.windows = nixpkgs.lib.nixosSystem { + inherit system pkgs; + modules = [ + ./src/systems/wsl + nixos-wsl.nixosModules.wsl + { + wsl = { + enable = true; + defaultUser = nixpkgs.lib.mkDefault "bryan"; + nativeSystemd = true; + + wslConf = { + boot.command = "cd"; + network = { + hostname = "plato"; + generateHosts = true; + }; + }; + }; + } + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.bryan = import ./src/systems/wsl/home.nix; } ]; }; diff --git a/homeConfig/home.nix b/homeConfig/home.nix deleted file mode 100644 index 1378377..0000000 --- a/homeConfig/home.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, ... }: - -{ - programs.home-manager.enable = true; - - imports = [ ./modules ../user ]; - - home.stateVersion = "22.11"; - - home.username = "${config.user.name}"; - home.homeDirectory = "/home/${config.user.name}"; - - modules = { - bash.enable = true; - git.enable = true; - gpg.enable = true; - gui.enable = true; - security.enable = true; - utils.enable = true; - }; -} diff --git a/homeConfig/modules/bash/config/alias.nix b/homeConfig/modules/bash/config/alias.nix deleted file mode 100644 index 1b750ba..0000000 --- a/homeConfig/modules/bash/config/alias.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - nixup = "sudo nixos-rebuild switch --flake /etc/nixos/.#desktop"; -} diff --git a/homeConfig/modules/utils/modules/vim/default.nix b/homeConfig/modules/utils/modules/vim/default.nix deleted file mode 100644 index d25287c..0000000 --- a/homeConfig/modules/utils/modules/vim/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ pkgs, lib, config, ... }: - -with lib; -let - cfg = config.modules.vim; - -in -{ options.modules.vim = { enable = mkEnableOption "vim"; }; - config = mkIf cfg.enable { - programs.vim = { - enable = true; - package = pkgs.vim; - extraConfig = import ./config/vimrc; - }; - programs.bash.shellAliases = { - vi = "${pkgs.vim}/bin/vim"; - }; - }; -} diff --git a/src/modules/bash/config/alias.nix b/src/modules/bash/config/alias.nix new file mode 100644 index 0000000..ad04d6c --- /dev/null +++ b/src/modules/bash/config/alias.nix @@ -0,0 +1,3 @@ +{ + cd = "cd -L"; +} diff --git a/homeConfig/modules/bash/config/bashprofile.nix b/src/modules/bash/config/bashprofile.nix similarity index 100% rename from homeConfig/modules/bash/config/bashprofile.nix rename to src/modules/bash/config/bashprofile.nix diff --git a/homeConfig/modules/bash/config/bashrc.nix b/src/modules/bash/config/bashrc.nix similarity index 100% rename from homeConfig/modules/bash/config/bashrc.nix rename to src/modules/bash/config/bashrc.nix diff --git a/homeConfig/modules/bash/config/prompt.nix b/src/modules/bash/config/prompt.nix similarity index 100% rename from homeConfig/modules/bash/config/prompt.nix rename to src/modules/bash/config/prompt.nix diff --git a/homeConfig/modules/bash/default.nix b/src/modules/bash/default.nix similarity index 100% rename from homeConfig/modules/bash/default.nix rename to src/modules/bash/default.nix diff --git a/homeConfig/modules/default.nix b/src/modules/default.nix similarity index 100% rename from homeConfig/modules/default.nix rename to src/modules/default.nix diff --git a/homeConfig/modules/git/default.nix b/src/modules/git/default.nix similarity index 100% rename from homeConfig/modules/git/default.nix rename to src/modules/git/default.nix diff --git a/homeConfig/modules/gpg/default.nix b/src/modules/gpg/default.nix similarity index 100% rename from homeConfig/modules/gpg/default.nix rename to src/modules/gpg/default.nix diff --git a/homeConfig/modules/gui/default.nix b/src/modules/gui/default.nix similarity index 100% rename from homeConfig/modules/gui/default.nix rename to src/modules/gui/default.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/default.nix b/src/modules/gui/desktopEnvironments/default.nix similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/default.nix rename to src/modules/gui/desktopEnvironments/default.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/alacritty/config/alacritty.nix b/src/modules/gui/desktopEnvironments/modules/alacritty/config/alacritty.nix similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/alacritty/config/alacritty.nix rename to src/modules/gui/desktopEnvironments/modules/alacritty/config/alacritty.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/alacritty/default.nix b/src/modules/gui/desktopEnvironments/modules/alacritty/default.nix similarity index 60% rename from homeConfig/modules/gui/desktopEnvironments/modules/alacritty/default.nix rename to src/modules/gui/desktopEnvironments/modules/alacritty/default.nix index 9a639b6..f8d1c2b 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/alacritty/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/alacritty/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.alacritty; + cfg = config.modules.gui.alacritty; in -{ options.modules.alacritty = { enable = mkEnableOption "alacritty"; }; +{ options.modules.gui.alacritty = { enable = mkEnableOption "gui.alacritty"; }; config = mkIf cfg.enable { programs.alacritty = { enable = true; diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/browsers/default.nix b/src/modules/gui/desktopEnvironments/modules/browsers/default.nix similarity index 60% rename from homeConfig/modules/gui/desktopEnvironments/modules/browsers/default.nix rename to src/modules/gui/desktopEnvironments/modules/browsers/default.nix index 98c82e6..d358e1a 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/browsers/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/browsers/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.browsers; + cfg = config.modules.gui.browsers; in -{ options.modules.browsers = { enable = mkEnableOption "browsers"; }; +{ options.modules.gui.browsers = { enable = mkEnableOption "gui.browsers"; }; config = mkIf cfg.enable { programs.firefox.enable = true; diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/corn/default.nix b/src/modules/gui/desktopEnvironments/modules/corn/default.nix similarity index 86% rename from homeConfig/modules/gui/desktopEnvironments/modules/corn/default.nix rename to src/modules/gui/desktopEnvironments/modules/corn/default.nix index 1948c72..8a246e2 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/corn/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/corn/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.corn; + cfg = config.modules.gui.corn; in -{ options.modules.corn = { enable = mkEnableOption "corn"; }; +{ options.modules.gui.corn = { enable = mkEnableOption "gui.corn"; }; config = mkIf cfg.enable { home.packages = with pkgs; [ trezor-suite diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/default.nix b/src/modules/gui/desktopEnvironments/modules/default.nix similarity index 77% rename from homeConfig/modules/gui/desktopEnvironments/modules/default.nix rename to src/modules/gui/desktopEnvironments/modules/default.nix index 7472415..55c23db 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/default.nix @@ -4,7 +4,8 @@ ./browsers ./corn ./fun - ./guiUtils + ./utils ./neovim + ./writing ]; } diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/fun/default.nix b/src/modules/gui/desktopEnvironments/modules/fun/default.nix similarity index 78% rename from homeConfig/modules/gui/desktopEnvironments/modules/fun/default.nix rename to src/modules/gui/desktopEnvironments/modules/fun/default.nix index 14b73bb..eec5776 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/fun/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/fun/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.fun; + cfg = config.modules.gui.fun; in -{ options.modules.fun = { enable = mkEnableOption "fun"; }; +{ options.modules.gui.fun = { enable = mkEnableOption "gui.fun"; }; config = mkIf cfg.enable { programs.obs-studio = { enable = true; diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/init.lua b/src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/init.lua similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/init.lua rename to src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/init.lua diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/autocmds.lua b/src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/autocmds.lua similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/autocmds.lua rename to src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/autocmds.lua diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/keymaps.lua b/src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/keymaps.lua similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/keymaps.lua rename to src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/keymaps.lua diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/lazy.lua b/src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/lazy.lua similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/lazy.lua rename to src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/lazy.lua diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/options.lua b/src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/options.lua similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/options.lua rename to src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/config/options.lua diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/plugins/core.lua b/src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/plugins/core.lua similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/plugins/core.lua rename to src/modules/gui/desktopEnvironments/modules/neovim/config/lazyvim/lua/plugins/core.lua diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/servers.nix b/src/modules/gui/desktopEnvironments/modules/neovim/config/servers.nix similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/config/servers.nix rename to src/modules/gui/desktopEnvironments/modules/neovim/config/servers.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/default.nix b/src/modules/gui/desktopEnvironments/modules/neovim/default.nix similarity index 78% rename from homeConfig/modules/gui/desktopEnvironments/modules/neovim/default.nix rename to src/modules/gui/desktopEnvironments/modules/neovim/default.nix index d511999..81e1c58 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/neovim/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/neovim/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.neovim; + cfg = config.modules.gui.neovim; in -{ options.modules.neovim = { enable = mkEnableOption "neovim"; }; +{ options.modules.gui.neovim = { enable = mkEnableOption "gui.neovim"; }; config = mkIf cfg.enable { programs.neovim = { enable = true; diff --git a/homeConfig/modules/gui/desktopEnvironments/modules/guiUtils/default.nix b/src/modules/gui/desktopEnvironments/modules/utils/default.nix similarity index 69% rename from homeConfig/modules/gui/desktopEnvironments/modules/guiUtils/default.nix rename to src/modules/gui/desktopEnvironments/modules/utils/default.nix index 602b947..cfabea7 100644 --- a/homeConfig/modules/gui/desktopEnvironments/modules/guiUtils/default.nix +++ b/src/modules/gui/desktopEnvironments/modules/utils/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.guiUtils; + cfg = config.modules.gui.utils; in -{ options.modules.guiUtils = { enable = mkEnableOption "guiUtils"; }; +{ options.modules.gui.utils = { enable = mkEnableOption "gui.utils"; }; config = mkIf cfg.enable { programs.btop.enable = true; home.packages = with pkgs; [ diff --git a/src/modules/gui/desktopEnvironments/modules/writing/default.nix b/src/modules/gui/desktopEnvironments/modules/writing/default.nix new file mode 100644 index 0000000..8d2e20c --- /dev/null +++ b/src/modules/gui/desktopEnvironments/modules/writing/default.nix @@ -0,0 +1,17 @@ +{ pkgs, lib, config, ... }: + +with lib; +let + cfg = config.modules.gui.writing; + +in +{ options.modules.gui.writing = { enable = mkEnableOption "gui.writing"; }; + config = mkIf cfg.enable { + home.packages = with pkgs; [ + mdbook + texlive.combined.scheme-tetex + pandoc + asciidoctor + ]; + }; +} diff --git a/homeConfig/modules/gui/desktopEnvironments/sway/config/rofi.nix b/src/modules/gui/desktopEnvironments/sway/config/rofi.nix similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/sway/config/rofi.nix rename to src/modules/gui/desktopEnvironments/sway/config/rofi.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/sway/config/shellHook.nix b/src/modules/gui/desktopEnvironments/sway/config/shellHook.nix similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/sway/config/shellHook.nix rename to src/modules/gui/desktopEnvironments/sway/config/shellHook.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/sway/config/sway.nix b/src/modules/gui/desktopEnvironments/sway/config/sway.nix similarity index 100% rename from homeConfig/modules/gui/desktopEnvironments/sway/config/sway.nix rename to src/modules/gui/desktopEnvironments/sway/config/sway.nix diff --git a/homeConfig/modules/gui/desktopEnvironments/sway/default.nix b/src/modules/gui/desktopEnvironments/sway/default.nix similarity index 85% rename from homeConfig/modules/gui/desktopEnvironments/sway/default.nix rename to src/modules/gui/desktopEnvironments/sway/default.nix index 9d56070..7c30df8 100644 --- a/homeConfig/modules/gui/desktopEnvironments/sway/default.nix +++ b/src/modules/gui/desktopEnvironments/sway/default.nix @@ -55,14 +55,5 @@ in }; fonts.fontconfig.enable = true; - - modules = { - alacritty.enable = true; - browsers.enable = true; - corn.enable = true; - fun.enable = true; - guiUtils.enable = true; - neovim.enable = true; - }; }; } diff --git a/homeConfig/modules/security/default.nix b/src/modules/security/default.nix similarity index 100% rename from homeConfig/modules/security/default.nix rename to src/modules/security/default.nix diff --git a/homeConfig/modules/utils/default.nix b/src/modules/utils/default.nix similarity index 62% rename from homeConfig/modules/utils/default.nix rename to src/modules/utils/default.nix index 8791d28..aa60b02 100644 --- a/homeConfig/modules/utils/default.nix +++ b/src/modules/utils/default.nix @@ -8,19 +8,11 @@ in { options.modules.utils = { enable = mkEnableOption "utils"; }; imports = [ ./modules ]; config = mkIf cfg.enable { - modules = { - vim.enable = false; - email.enable = true; - irc.enable = true; - dev.enable = true; - }; - home.packages = with pkgs; [ wget curl tree neofetch unzip fping calc qrencode fd pkg-config pciutils - mdbook rsync pandoc texlive.combined.scheme-tetex - zip asciidoctor + rsync zip ]; }; } diff --git a/homeConfig/modules/utils/modules/default.nix b/src/modules/utils/modules/default.nix similarity index 100% rename from homeConfig/modules/utils/modules/default.nix rename to src/modules/utils/modules/default.nix diff --git a/homeConfig/modules/utils/modules/dev/default.nix b/src/modules/utils/modules/dev/default.nix similarity index 65% rename from homeConfig/modules/utils/modules/dev/default.nix rename to src/modules/utils/modules/dev/default.nix index dd4616b..a36421f 100644 --- a/homeConfig/modules/utils/modules/dev/default.nix +++ b/src/modules/utils/modules/dev/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.dev; + cfg = config.modules.utils.dev; in -{ options.modules.dev = { enable = mkEnableOption "dev"; }; +{ options.modules.utils.dev = { enable = mkEnableOption "utils.dev"; }; config = mkIf cfg.enable { home.packages = with pkgs; [ nix-init diff --git a/homeConfig/modules/utils/modules/email/config/aerc.conf b/src/modules/utils/modules/email/config/aerc.conf similarity index 100% rename from homeConfig/modules/utils/modules/email/config/aerc.conf rename to src/modules/utils/modules/email/config/aerc.conf diff --git a/homeConfig/modules/utils/modules/email/config/binds.conf b/src/modules/utils/modules/email/config/binds.conf similarity index 100% rename from homeConfig/modules/utils/modules/email/config/binds.conf rename to src/modules/utils/modules/email/config/binds.conf diff --git a/homeConfig/modules/utils/modules/email/default.nix b/src/modules/utils/modules/email/default.nix similarity index 65% rename from homeConfig/modules/utils/modules/email/default.nix rename to src/modules/utils/modules/email/default.nix index 94acb74..93b7c5e 100644 --- a/homeConfig/modules/utils/modules/email/default.nix +++ b/src/modules/utils/modules/email/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.email; + cfg = config.modules.utils.email; in -{ options.modules.email = { enable = mkEnableOption "email"; }; +{ options.modules.utils.email = { enable = mkEnableOption "utils.email"; }; config = mkIf cfg.enable { programs.aerc = { enable = true; diff --git a/homeConfig/modules/utils/modules/irc/default.nix b/src/modules/utils/modules/irc/default.nix similarity index 65% rename from homeConfig/modules/utils/modules/irc/default.nix rename to src/modules/utils/modules/irc/default.nix index 17fa07f..848e130 100644 --- a/homeConfig/modules/utils/modules/irc/default.nix +++ b/src/modules/utils/modules/irc/default.nix @@ -2,10 +2,10 @@ with lib; let - cfg = config.modules.irc; + cfg = config.modules.utils.irc; in -{ options.modules.irc = { enable = mkEnableOption "irc"; }; +{ options.modules.utils.irc = { enable = mkEnableOption "utils.irc"; }; config = mkIf cfg.enable { home.packages = with pkgs; [ weechat diff --git a/homeConfig/modules/utils/modules/vim/config/vimrc b/src/modules/utils/modules/vim/config/vimrc similarity index 76% rename from homeConfig/modules/utils/modules/vim/config/vimrc rename to src/modules/utils/modules/vim/config/vimrc index 6941905..f9c371e 100644 --- a/homeConfig/modules/utils/modules/vim/config/vimrc +++ b/src/modules/utils/modules/vim/config/vimrc @@ -14,14 +14,14 @@ autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) call plug#begin('~/.vim/plugged') -Plug 'joshdick/onedark.vim' -Plug 'tpope/vim-surround' -Plug 'jiangmiao/auto-pairs' -Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } -Plug 'junegunn/fzf.vim' -Plug 'mtdl9/vim-log-highlighting' -Plug 'machakann/vim-highlightedyank' -Plug 'itchyny/lightline.vim' + Plug 'joshdick/onedark.vim' + Plug 'tpope/vim-surround' + Plug 'jiangmiao/auto-pairs' + Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } + Plug 'junegunn/fzf.vim' + Plug 'mtdl9/vim-log-highlighting' + Plug 'machakann/vim-highlightedyank' + Plug 'itchyny/lightline.vim' call plug#end() @@ -34,17 +34,23 @@ let g:highlightedyank_highlight_duration = 80 let g:lightline = { 'colorscheme': 'one', } set laststatus=2 + set number set relativenumber +set cursorline + set noincsearch -set clipboard=unnamedplus set ignorecase + +set clipboard=unnamedplus set noswapfile set tabstop=2 set shiftwidth=2 set expandtab +highlight CursorLine ctermbg=NONE guibg=NONE +highlight CursorLineNr ctermfg=magenta guifg=magenta highlight HighlightedyankRegion ctermfg=NONE guifg=NONE highlight Normal ctermbg=NONE guibg=NONE highlight NormalNC ctermbg=NONE guibg=NONE @@ -56,6 +62,7 @@ vnoremap > >gv nnoremap zz nnoremap zz +nnoremap e :Explore nnoremap :noh nnoremap / :Rg nnoremap ts :execute "normal! a" . strftime('[%b %d %H:%M:%S - BR]') diff --git a/src/modules/utils/modules/vim/default.nix b/src/modules/utils/modules/vim/default.nix new file mode 100644 index 0000000..d8469dd --- /dev/null +++ b/src/modules/utils/modules/vim/default.nix @@ -0,0 +1,22 @@ +{ pkgs, lib, config, ... }: + +with lib; +let + cfg = config.modules.utils.vim; + +in +{ options.modules.utils.vim = { enable = mkEnableOption "utils.vim"; }; + config = mkIf cfg.enable { + home = { + packages = with pkgs; [ + vim + ]; + file.".config/.vimrc" = { + source = ./config/vimrc; + }; + }; + programs.bash.shellAliases = { + vi = "${pkgs.vim}/bin/vim"; + }; + }; +} diff --git a/sysConfig/desktop/default.nix b/src/systems/desktop/default.nix similarity index 77% rename from sysConfig/desktop/default.nix rename to src/systems/desktop/default.nix index f11467b..7dc74b6 100644 --- a/sysConfig/desktop/default.nix +++ b/src/systems/desktop/default.nix @@ -1,3 +1,5 @@ +{ lib, pkgs, ... }: + { imports = [ ../../user diff --git a/sysConfig/desktop/disks.nix b/src/systems/desktop/disks.nix similarity index 100% rename from sysConfig/desktop/disks.nix rename to src/systems/desktop/disks.nix diff --git a/sysConfig/desktop/hardware.nix b/src/systems/desktop/hardware.nix similarity index 100% rename from sysConfig/desktop/hardware.nix rename to src/systems/desktop/hardware.nix diff --git a/src/systems/desktop/home.nix b/src/systems/desktop/home.nix new file mode 100644 index 0000000..0a06cda --- /dev/null +++ b/src/systems/desktop/home.nix @@ -0,0 +1,43 @@ +{ config, ... }: + +{ + programs.home-manager.enable = true; + programs.bash.shellAliases = { + nixup = "sudo nixos-rebuild switch --flake /etc/nixos/.#desktop"; + }; + + imports = [ + ../../modules + ../../user + ]; + + home.stateVersion = "22.11"; + + home.username = "${config.user.name}"; + home.homeDirectory = "/home/${config.user.name}"; + + modules = { + bash.enable = true; + git.enable = true; + gpg.enable = true; + security.enable = true; + + utils = { + enable = true; + dev.enable = true; + irc.enable = true; + vim.enable = false; + }; + + gui = { + enable = true; + alacritty.enable = true; + browsers.enable = true; + corn.enable = true; + fun.enable = true; + neovim.enable = true; + utils.enable = true; + writing.enable = true; + }; + }; +} diff --git a/sysConfig/desktop/system.nix b/src/systems/desktop/system.nix similarity index 100% rename from sysConfig/desktop/system.nix rename to src/systems/desktop/system.nix diff --git a/sysConfig/laptop/default.nix b/src/systems/laptop/default.nix similarity index 100% rename from sysConfig/laptop/default.nix rename to src/systems/laptop/default.nix diff --git a/sysConfig/server/default.nix b/src/systems/server/default.nix similarity index 100% rename from sysConfig/server/default.nix rename to src/systems/server/default.nix diff --git a/src/systems/wsl/default.nix b/src/systems/wsl/default.nix new file mode 100644 index 0000000..5318a10 --- /dev/null +++ b/src/systems/wsl/default.nix @@ -0,0 +1,8 @@ +{ lib, ... }: + +{ + imports = [ + ../../user + ./system.nix + ]; +} diff --git a/src/systems/wsl/home.nix b/src/systems/wsl/home.nix new file mode 100644 index 0000000..d4d3c19 --- /dev/null +++ b/src/systems/wsl/home.nix @@ -0,0 +1,33 @@ +{ config, ... }: + +{ + programs.home-manager.enable = true; + programs.bash.shellAliases = { + nixup = "sudo nixos-rebuild switch --flake .#windows"; + }; + + imports = [ + ../../modules + ../../user + ]; + + home.stateVersion = "23.11"; + + home.username = "${config.user.name}"; + home.homeDirectory = "/home/${config.user.name}"; + + modules = { + bash.enable = true; + git.enable = true; + gpg.enable = true; + gui.enable = false; + security.enable = true; + utils = { + enable = true; + dev.enable = true; + email.enable = true; + irc.enable = true; + vim.enable = true; + }; + }; +} diff --git a/src/systems/wsl/system.nix b/src/systems/wsl/system.nix new file mode 100644 index 0000000..756aff7 --- /dev/null +++ b/src/systems/wsl/system.nix @@ -0,0 +1,83 @@ +{ pkgs, lib, config, ... }: + +{ system.stateVersion = "23.11"; + +# Users + users.users = { + ${config.user.name} = { + isNormalUser = true; + extraGroups = config.user.groups; + openssh.authorizedKeys.keys = config.user.sshKeys; + }; + }; + boot.isContainer = true; + +# Nix + nix = { + channel.enable = false; + package = pkgs.nixFlakes; + extraOptions = "experimental-features = nix-command flakes"; + settings = { + auto-optimise-store = true; + trusted-users = [ "${config.user.name}" ]; + }; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + }; +# Sudo Options + security.sudo = { + wheelNeedsPassword = false; + execWheelOnly = true; + }; + +# System Services + services = { + cron = { + enable = true; + systemCronJobs = []; + }; + }; + +# Locale + time = { + timeZone = "America/New_York"; + }; + + services.timesyncd = { + enable = true; + servers = [ + "0.pool.ntp.org" + "1.pool.ntp.org" + "2.pool.ntp.org" + "3.pool.ntp.org" + ]; + }; + + i18n.defaultLocale = "en_US.UTF-8"; + + console = { + font = "Lat2-Terminus16"; + useXkbConfig = true; + }; + +# Networking + networking = { + useDHCP = lib.mkDefault true; + firewall = { + enable = true; + allowedTCPPorts = [ 22 80 443 ]; + }; + }; + + services.openssh = { + enable = true; + startWhenNeeded = true; + settings = { + X11Forwarding = false; + PasswordAuthentication = false; + }; + }; +} diff --git a/user/default.nix b/src/user/default.nix similarity index 100% rename from user/default.nix rename to src/user/default.nix diff --git a/user/pgpKey.nix b/src/user/pgpKey.nix similarity index 100% rename from user/pgpKey.nix rename to src/user/pgpKey.nix