diff --git a/flake.nix b/flake.nix index 781aed8..a358ffb 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,13 @@ my-overlay = self: super: { scripts = (super.buildEnv { name = "scripts"; paths = [ ./. ]; }); }; + home = import ./home/default.nix + { + inherit system nixpkgs my-overlay home-manager ide; + modules = import ./modules { + inherit system nixpkgs ide my-overlay; + }; + }; in { nixosConfigurations = { @@ -42,32 +49,8 @@ }; }; homeConfigurations = { - ivand = home-manager.lib.homeManagerConfiguration { - modules = [ - ./home/ivand - ./modules/programs - ./modules/packages - ( - import ./modules/programs/neovim - { - nvim = ide.homeManagerModules.${system}.nvim; - } - ) - ]; - pkgs = import nixpkgs { - inherit system; - overlays = [ my-overlay ]; - }; - }; - vid = home-manager.lib.homeManagerConfiguration { - modules = [ - ./home/vid - ./modules/programs - ]; - pkgs = import nixpkgs { - inherit system; - }; - }; + ivand = home.ivand; + vid = home.vid; }; }; } diff --git a/home/default.nix b/home/default.nix new file mode 100644 index 0000000..5c424bc --- /dev/null +++ b/home/default.nix @@ -0,0 +1,23 @@ +{ system, nixpkgs, my-overlay, home-manager, modules, ... }: { + ivand = home-manager.lib.homeManagerConfiguration { + modules = [ + ./ivand + modules.programs + modules.packages + modules.nvim + ]; + pkgs = import nixpkgs { + inherit system; + overlays = [ my-overlay ]; + }; + }; + vid = home-manager.lib.homeManagerConfiguration { + modules = [ + ./home/vid + modules.programs + ]; + pkgs = import nixpkgs { + inherit system; + }; + }; +} diff --git a/home/ivand/default.nix b/home/ivand/default.nix index 69bcd08..5247c06 100644 --- a/home/ivand/default.nix +++ b/home/ivand/default.nix @@ -46,11 +46,6 @@ }; }; - programs = { - shell.enable = true; - common.enable = true; - }; - xdg.configFile = { "user-dirs.dirs" = { text = '' diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..9b6e340 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,13 @@ +{ system, nixpkgs, ide, my-overlay, ... }: +let + pkgs = import nixpkgs { inherit system; overlays = [ my-overlay ]; }; +in +{ + gaming = import ./gaming { }; + dnscrypt = import ./dnscrypt { }; + packages = import ./packages { inherit pkgs; }; + programs = import ./programs { inherit pkgs; }; + nvim = import ./programs/neovim { + nvim = ide.homeManagerModules.${system}.nvim; + }; +} diff --git a/modules/programs/default.nix b/modules/programs/default.nix index bd4bbf4..1096193 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -1,59 +1,53 @@ -{ pkgs, lib, config, ... }: +{ pkgs, ... }: let - cfg = config.programs.common; + lib = pkgs.lib; in { imports = [ ./sway ./tmux.nix ./zsh.nix ./lf ]; - options.programs.common = { - enable = lib.mkEnableOption "common"; - }; - - config = lib.mkIf cfg.enable { - programs = { - thunderbird = { - enable = true; - profiles = { ivan = { isDefault = true; }; }; + programs = { + thunderbird = { + enable = true; + profiles = { ivan = { isDefault = true; }; }; + }; + chromium = { + enable = true; + package = pkgs.ungoogled-chromium; + }; + swaylock = { + enable = true; + settings = { + color = "000000"; + line-color = "ffffff"; + show-failed-attempts = true; }; - chromium = { - enable = true; - package = pkgs.ungoogled-chromium; + }; + obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; + }; + kitty = { + enable = true; + settings = { + enable_tab_bar = false; + background_opacity = "0.96"; + cursor_shape = "beam"; }; - swaylock = { - enable = true; - settings = { - color = "000000"; - line-color = "ffffff"; - show-failed-attempts = true; - }; - }; - obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; - }; - kitty = { - enable = true; - settings = { - enable_tab_bar = false; - background_opacity = "0.96"; - cursor_shape = "beam"; - }; - }; - git = { - enable = true; - userName = "Ivan Dimitrov"; - userEmail = "ivan@idimitrov.dev"; - extraConfig = { - color.ui = "auto"; - pull.rebase = true; - }; - }; - browserpass.enable = true; - newsboat = { - enable = true; - autoReload = true; - reloadTime = 1; + }; + git = { + enable = true; + userName = "Ivan Dimitrov"; + userEmail = "ivan@idimitrov.dev"; + extraConfig = { + color.ui = "auto"; + pull.rebase = true; }; }; + browserpass.enable = true; + newsboat = { + enable = true; + autoReload = true; + reloadTime = 1; + }; }; }