diff --git a/default.nix b/default.nix index 7391cd0..ba7c41b 100644 --- a/default.nix +++ b/default.nix @@ -1,7 +1,23 @@ -{ ... }: { - imports = [ ./nixos ]; +top@{ inputs, ... }: { + imports = [ ./nixos ./home ]; systems = [ "x86_64-linux" ]; - perSystem = { inputs, system, ... }: { - _module.args.pkgs = import inputs.nixpkgs { inherit system; }; + perSystem = perSystem@{ system, ... }: { + config._module.args = { + pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ + (final: prev: { + nvim = inputs.ide.nvim.${system}.standalone { + plugins.lsp.servers = { + bashls.enable = true; + nushell.enable = true; + }; + }; + scripts = (prev.buildEnv { name = "scripts"; paths = [ ./. ]; }); + }) + ]; + }; + stateVersion = "24.05"; + }; }; } diff --git a/home/configs/default.nix b/home/configs/default.nix new file mode 100644 index 0000000..7af47ea --- /dev/null +++ b/home/configs/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./ivand ]; +} diff --git a/home/configs/ivand/default.nix b/home/configs/ivand/default.nix new file mode 100644 index 0000000..9585ffc --- /dev/null +++ b/home/configs/ivand/default.nix @@ -0,0 +1,22 @@ +toplevel@{ inputs, withSystem, ... }: +{ + flake.homeConfigurations.ivand = withSystem "x86_64-linux" (ctx@{ pkgs, stateVersion, ... }: + inputs.home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = + let + mods = toplevel.config.flake.homeManagerModules; + in + [ + { + home.stateVersion = stateVersion; + } + inputs.nid.hmModules.nix-index + mods.all + mods.dev + mods.essential + mods.random + inputs.catppuccin.homeManagerModules.catppuccin + ]; + }); +} diff --git a/home/default.nix b/home/default.nix index 8a0d4eb..0cf186f 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,41 +1,3 @@ -{ stateVersion, pkgs, home-manager, modules, nid, catppuccin, ... }: -let - ivand-programs = with modules.home.programs; [ - bat - bottom - browserpass - carapace - chromium - cliphist - comma - firefox - git - gpg - imv - kitty - lf - mako - mpv - nushell - nvim - obs-studio - pueue - rofi - starship - sway - swaylock - tealdeer - tmux - waybar - zsh - ]; - ivand-packages = { - home.packages = with modules.home.packages; (dev ++ essential ++ random); - }; -in { - ivand = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [{ home.stateVersion = stateVersion; } ./ivand nid.hmModules.nix-index ivand-packages] ++ ivand-programs ++ [ catppuccin.homeManagerModules.catppuccin ]; - }; + imports = [ ./modules ./configs ]; } diff --git a/home/ivand/default.nix b/home/ivand/default.nix deleted file mode 100644 index 9e3b40e..0000000 --- a/home/ivand/default.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ pkgs, ... }: rec { - - programs.home-manager = { enable = true; }; - - - catppuccin = { - enable = true; - flavor = "mocha"; - }; - - gtk = { - enable = true; - catppuccin.enable = true; - }; - - home = rec { - username = "ivand"; - homeDirectory = "/home/ivand"; - sessionPath = [ - "$HOME/.local/bin" - ]; - sessionVariables = { - PASSWORD_STORE_DIR = "${homeDirectory}/.password-store"; - EDITOR = "nvim"; - PAGER = "bat"; - TERM = "screen-256color"; - }; - pointerCursor = { - name = "Catppuccin-Mocha-Green-Cursors"; - package = pkgs.catppuccin-cursors.mochaGreen; - }; - }; - - systemd.user = { - timers = { - rbingwp = { - Timer = { - OnCalendar = "*-*-* 10:00:00"; - Persistent = true; - }; - Install = { - WantedBy = [ "timers.target" ]; - }; - }; - }; - services = { - wpd = { - Service = { - Environment = [ - "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin" - ]; - ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ]; - }; - }; - bingwp = { - Service = { - Type = "oneshot"; - Environment = [ - "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin" - ]; - ExecStart = [ "${pkgs.scripts}/bin/bingwp" ]; - }; - }; - rbingwp = { - Install = { - WantedBy = [ "sway-session.target" ]; - }; - Unit = { - Description = "Restart bingwp and wpd services"; - After = "graphical-session-pre.target"; - PartOf = "graphical-session.target"; - }; - Service = { - Type = "oneshot"; - ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ]; - }; - }; - }; - }; - - xdg = { - enable = true; - userDirs = { - enable = true; - createDirectories = true; - desktop = "${home.homeDirectory}/dt"; - documents = "${home.homeDirectory}/doc"; - download = "${home.homeDirectory}/dl"; - pictures = "${home.homeDirectory}/pic"; - videos = "${home.homeDirectory}/vid"; - templates = "${home.homeDirectory}/tpl"; - publicShare = "${home.homeDirectory}/pub"; - music = "${home.homeDirectory}/mus"; - }; - mimeApps = { - enable = true; - defaultApplications = { - "text/html" = "firefox.desktop"; - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = "firefox.desktop"; - "x-scheme-handler/about" = "firefox.desktop"; - "x-scheme-handler/unknown" = "firefox.desktop"; - "x-scheme-handler/mailto" = "userapp-Thunderbird-LDALA2.desktop"; - "message/rfc822" = "userapp-Thunderbird-LDALA2.desktop"; - "x-scheme-handler/mid" = "userapp-Thunderbird-LDALA2.desktop"; - }; - }; - }; -} diff --git a/home/modules/default.nix b/home/modules/default.nix new file mode 100644 index 0000000..9f5c055 --- /dev/null +++ b/home/modules/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./packages ]; +} diff --git a/home/modules/packages/default.nix b/home/modules/packages/default.nix new file mode 100644 index 0000000..62afb81 --- /dev/null +++ b/home/modules/packages/default.nix @@ -0,0 +1,146 @@ +{ moduleWithSystem, ... }: { + flake.homeManagerModules = { + dev = moduleWithSystem ( + top@{ ... }: + perSystem@{ pkgs, ... }: { + home.packages = with pkgs; [ + openssh + procs + ripgrep + fswatch + nvim + ]; + } + ); + essential = moduleWithSystem ( + top@{ ... }: + perSystem@{ pkgs, ... }: { + home.packages = with pkgs; [ + gopass + ffmpeg + transmission + ]; + } + ); + random = moduleWithSystem ( + top@{ ... }: + perSystem@{ pkgs, ... }: { + home.packages = with pkgs; [ + xonotic + ]; + } + ); + all = moduleWithSystem + ( + top@{ ... }: + perSystem@{ pkgs, ... }: + rec { + imports = [ ../programs ]; + programs.home-manager = { enable = true; }; + catppuccin = { + enable = true; + flavor = "mocha"; + }; + + gtk = { + enable = true; + catppuccin.enable = true; + }; + + home = rec { + username = "ivand"; + homeDirectory = "/home/ivand"; + sessionPath = [ + "$HOME/.local/bin" + ]; + sessionVariables = { + PASSWORD_STORE_DIR = "${homeDirectory}/.password-store"; + EDITOR = "nvim"; + PAGER = "bat"; + TERM = "screen-256color"; + }; + pointerCursor = { + name = "Catppuccin-Mocha-Green-Cursors"; + package = pkgs.catppuccin-cursors.mochaGreen; + }; + }; + + systemd.user = { + timers = { + rbingwp = { + Timer = { + OnCalendar = "*-*-* 10:00:00"; + Persistent = true; + }; + Install = { + WantedBy = [ "timers.target" ]; + }; + }; + }; + services = { + wpd = { + Service = { + Environment = [ + "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin" + ]; + ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ]; + }; + }; + bingwp = { + Service = { + Type = "oneshot"; + Environment = [ + "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin" + ]; + ExecStart = [ "${pkgs.scripts}/bin/bingwp" ]; + }; + }; + rbingwp = { + Install = { + WantedBy = [ "sway-session.target" ]; + }; + Unit = { + Description = "Restart bingwp and wpd services"; + After = "graphical-session-pre.target"; + PartOf = "graphical-session.target"; + }; + Service = { + Type = "oneshot"; + ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ]; + }; + }; + }; + }; + + xdg = { + enable = true; + userDirs = { + enable = true; + createDirectories = true; + desktop = "${home.homeDirectory}/dt"; + documents = "${home.homeDirectory}/doc"; + download = "${home.homeDirectory}/dl"; + pictures = "${home.homeDirectory}/pic"; + videos = "${home.homeDirectory}/vid"; + templates = "${home.homeDirectory}/tpl"; + publicShare = "${home.homeDirectory}/pub"; + music = "${home.homeDirectory}/mus"; + }; + mimeApps = { + enable = true; + defaultApplications = { + "text/html" = "firefox.desktop"; + "x-scheme-handler/http" = "firefox.desktop"; + "x-scheme-handler/https" = "firefox.desktop"; + "x-scheme-handler/about" = "firefox.desktop"; + "x-scheme-handler/unknown" = "firefox.desktop"; + "x-scheme-handler/mailto" = "userapp-Thunderbird-LDALA2.desktop"; + "message/rfc822" = "userapp-Thunderbird-LDALA2.desktop"; + "x-scheme-handler/mid" = "userapp-Thunderbird-LDALA2.desktop"; + }; + }; + }; + } + ); + }; +} diff --git a/modules/home/programs/bat/default.nix b/home/modules/programs/bat/default.nix similarity index 100% rename from modules/home/programs/bat/default.nix rename to home/modules/programs/bat/default.nix diff --git a/modules/home/programs/bottom/default.nix b/home/modules/programs/bottom/default.nix similarity index 100% rename from modules/home/programs/bottom/default.nix rename to home/modules/programs/bottom/default.nix diff --git a/modules/home/programs/carapace/default.nix b/home/modules/programs/carapace/default.nix similarity index 100% rename from modules/home/programs/carapace/default.nix rename to home/modules/programs/carapace/default.nix diff --git a/modules/home/programs/chromium/default.nix b/home/modules/programs/chromium/default.nix similarity index 83% rename from modules/home/programs/chromium/default.nix rename to home/modules/programs/chromium/default.nix index 97fcacd..a337fcb 100644 --- a/modules/home/programs/chromium/default.nix +++ b/home/modules/programs/chromium/default.nix @@ -1,4 +1,4 @@ -{ pkgs }: { +{ pkgs, ... }: { programs.chromium = { enable = true; package = pkgs.ungoogled-chromium; diff --git a/modules/home/programs/cliphist/default.nix b/home/modules/programs/cliphist/default.nix similarity index 100% rename from modules/home/programs/cliphist/default.nix rename to home/modules/programs/cliphist/default.nix diff --git a/modules/home/programs/comma/default.nix b/home/modules/programs/comma/default.nix similarity index 100% rename from modules/home/programs/comma/default.nix rename to home/modules/programs/comma/default.nix diff --git a/home/modules/programs/default.nix b/home/modules/programs/default.nix new file mode 100644 index 0000000..a82645f --- /dev/null +++ b/home/modules/programs/default.nix @@ -0,0 +1,29 @@ +{ ... }: { + imports = [ + ./bat + ./bottom + ./carapace + ./chromium + ./cliphist + ./comma + ./firefox + ./git + ./gpg + ./imv + ./mako + ./kitty + ./lf + ./mpv + ./nushell + ./obs-studio + ./pueue + ./rofi + ./starship + ./sway + ./swaylock + ./tealdeer + ./tmux + ./waybar + ./zsh + ]; +} diff --git a/modules/home/programs/firefox/default.nix b/home/modules/programs/firefox/default.nix similarity index 99% rename from modules/home/programs/firefox/default.nix rename to home/modules/programs/firefox/default.nix index 6286ea8..ecb5184 100644 --- a/modules/home/programs/firefox/default.nix +++ b/home/modules/programs/firefox/default.nix @@ -1,4 +1,4 @@ -{ pkgs }: { +{ pkgs, ... }: { programs.firefox = { enable = true; profiles.ivand = { diff --git a/modules/home/programs/git/default.nix b/home/modules/programs/git/default.nix similarity index 100% rename from modules/home/programs/git/default.nix rename to home/modules/programs/git/default.nix diff --git a/modules/home/programs/gpg/default.nix b/home/modules/programs/gpg/default.nix similarity index 100% rename from modules/home/programs/gpg/default.nix rename to home/modules/programs/gpg/default.nix diff --git a/modules/home/programs/imv/default.nix b/home/modules/programs/imv/default.nix similarity index 100% rename from modules/home/programs/imv/default.nix rename to home/modules/programs/imv/default.nix diff --git a/modules/home/programs/kitty/default.nix b/home/modules/programs/kitty/default.nix similarity index 100% rename from modules/home/programs/kitty/default.nix rename to home/modules/programs/kitty/default.nix diff --git a/modules/home/programs/lf/default.nix b/home/modules/programs/lf/default.nix similarity index 100% rename from modules/home/programs/lf/default.nix rename to home/modules/programs/lf/default.nix diff --git a/modules/home/programs/lf/lfrc b/home/modules/programs/lf/lfrc similarity index 100% rename from modules/home/programs/lf/lfrc rename to home/modules/programs/lf/lfrc diff --git a/modules/home/programs/mako/default.nix b/home/modules/programs/mako/default.nix similarity index 100% rename from modules/home/programs/mako/default.nix rename to home/modules/programs/mako/default.nix diff --git a/modules/home/programs/mpv/default.nix b/home/modules/programs/mpv/default.nix similarity index 100% rename from modules/home/programs/mpv/default.nix rename to home/modules/programs/mpv/default.nix diff --git a/home/modules/programs/neovim/default.nix b/home/modules/programs/neovim/default.nix new file mode 100644 index 0000000..0a22a1a --- /dev/null +++ b/home/modules/programs/neovim/default.nix @@ -0,0 +1,3 @@ +{ nvim, ... }: +nvim +{ } diff --git a/modules/home/programs/nushell/default.nix b/home/modules/programs/nushell/default.nix similarity index 100% rename from modules/home/programs/nushell/default.nix rename to home/modules/programs/nushell/default.nix diff --git a/modules/home/programs/obs-studio/default.nix b/home/modules/programs/obs-studio/default.nix similarity index 86% rename from modules/home/programs/obs-studio/default.nix rename to home/modules/programs/obs-studio/default.nix index 6b7d5cf..2987ddf 100644 --- a/modules/home/programs/obs-studio/default.nix +++ b/home/modules/programs/obs-studio/default.nix @@ -1,4 +1,4 @@ -{ pkgs }: { +{ pkgs, ... }: { programs.obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; diff --git a/modules/home/programs/pueue/default.nix b/home/modules/programs/pueue/default.nix similarity index 100% rename from modules/home/programs/pueue/default.nix rename to home/modules/programs/pueue/default.nix diff --git a/modules/home/programs/rofi/default.nix b/home/modules/programs/rofi/default.nix similarity index 100% rename from modules/home/programs/rofi/default.nix rename to home/modules/programs/rofi/default.nix diff --git a/modules/home/programs/starship/default.nix b/home/modules/programs/starship/default.nix similarity index 100% rename from modules/home/programs/starship/default.nix rename to home/modules/programs/starship/default.nix diff --git a/modules/home/programs/sway/default.nix b/home/modules/programs/sway/default.nix similarity index 99% rename from modules/home/programs/sway/default.nix rename to home/modules/programs/sway/default.nix index 8943976..7912533 100644 --- a/modules/home/programs/sway/default.nix +++ b/home/modules/programs/sway/default.nix @@ -59,7 +59,6 @@ libreoffice-qt mupdf pavucontrol - scripts slurp wl-clipboard xdg-user-dirs diff --git a/modules/home/programs/swaylock/default.nix b/home/modules/programs/swaylock/default.nix similarity index 100% rename from modules/home/programs/swaylock/default.nix rename to home/modules/programs/swaylock/default.nix diff --git a/modules/home/programs/tealdeer/default.nix b/home/modules/programs/tealdeer/default.nix similarity index 100% rename from modules/home/programs/tealdeer/default.nix rename to home/modules/programs/tealdeer/default.nix diff --git a/modules/home/programs/tmux/default.nix b/home/modules/programs/tmux/default.nix similarity index 100% rename from modules/home/programs/tmux/default.nix rename to home/modules/programs/tmux/default.nix diff --git a/modules/home/programs/waybar/default.nix b/home/modules/programs/waybar/default.nix similarity index 100% rename from modules/home/programs/waybar/default.nix rename to home/modules/programs/waybar/default.nix diff --git a/modules/home/programs/waybar/style.css b/home/modules/programs/waybar/style.css similarity index 100% rename from modules/home/programs/waybar/style.css rename to home/modules/programs/waybar/style.css diff --git a/modules/home/programs/zsh/default.nix b/home/modules/programs/zsh/default.nix similarity index 100% rename from modules/home/programs/zsh/default.nix rename to home/modules/programs/zsh/default.nix diff --git a/modules/default.nix b/modules/default.nix deleted file mode 100644 index aa3a07c..0000000 --- a/modules/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ system, nixpkgs, pkgs, ide, ... }: -{ - nixos = { - gaming = import ./nixos/gaming { inherit nixpkgs; }; - nvidia = import ./nixos/nvidia { inherit nixpkgs; }; - dnscrypt = import ./nixos/dnscrypt; - wireguard = import ./nixos/wireguard; - }; - home = { - packages = import ./home/packages pkgs; - programs = import ./home/programs { inherit system pkgs ide; }; - }; -} diff --git a/modules/home/packages/default.nix b/modules/home/packages/default.nix deleted file mode 100644 index ec8239d..0000000 --- a/modules/home/packages/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -pkgs: with pkgs; { - dev = [ - openssh - procs - ripgrep - fswatch - ]; - essential = [ - gopass - ffmpeg - transmission - ]; - random = [ - telegram-desktop - xonotic - ]; -} diff --git a/modules/home/programs/default.nix b/modules/home/programs/default.nix deleted file mode 100644 index ee63b85..0000000 --- a/modules/home/programs/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ system, pkgs, ide, ... }: { - - nvim = import ./neovim { - nvim = ide.nvim.${system}.homeManagerModules.nvim; - }; - bat = import ./bat; - bottom = import ./bottom; - browserpass = { programs.browserpass.enable = true; }; - carapace = import ./carapace; - chromium = import ./chromium { inherit pkgs; }; - cliphist = import ./cliphist; - comma = import ./comma; - firefox = import ./firefox { inherit pkgs; }; - git = import ./git; - gpg = import ./gpg { inherit pkgs; }; - imv = import ./imv; - mako = import ./mako; - kitty = import ./kitty { inherit pkgs; }; - lf = import ./lf; - mpv = import ./mpv; - nushell = import ./nushell { inherit pkgs; }; - obs-studio = import ./obs-studio { inherit pkgs; }; - pueue = import ./pueue; - rofi = import ./rofi { inherit pkgs; }; - starship = import ./starship; - sway = import ./sway { inherit pkgs; }; - swaylock = import ./swaylock; - tealdeer = import ./tealdeer; - tmux = import ./tmux { inherit pkgs; }; - waybar = import ./waybar; - zsh = import ./zsh { inherit pkgs; }; -} diff --git a/modules/home/programs/neovim/default.nix b/modules/home/programs/neovim/default.nix deleted file mode 100644 index 1bcddee..0000000 --- a/modules/home/programs/neovim/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ nvim, ... }: -nvim -{ - enable = true; - plugins.lsp.servers = { - bashls.enable = true; - nushell.enable = true; - }; -} diff --git a/nixos/systems/default.nix b/nixos/configs/default.nix similarity index 100% rename from nixos/systems/default.nix rename to nixos/configs/default.nix diff --git a/nixos/systems/laptop-hardware.nix b/nixos/configs/laptop-hardware.nix similarity index 100% rename from nixos/systems/laptop-hardware.nix rename to nixos/configs/laptop-hardware.nix diff --git a/nixos/default.nix b/nixos/default.nix index f582c2b..e1af904 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -1,3 +1,3 @@ { ... }: { - imports = [ ./modules ./systems ]; + imports = [ ./modules ./configs ]; }