From 95deda78acd10057c430ac54fe249221e2d986f2 Mon Sep 17 00:00:00 2001 From: Ivan Dimitrov Date: Sat, 18 Nov 2023 12:39:46 +0200 Subject: [PATCH] modular programs --- flake.nix | 2 +- home/default.nix | 13 +++- modules/default.nix | 7 +-- modules/programs/chromium/default.nix | 6 ++ modules/programs/default.nix | 62 ++++--------------- modules/programs/git/default.nix | 11 ++++ modules/programs/kitty/default.nix | 10 +++ modules/programs/lf/default.nix | 20 +++--- modules/programs/obs-studio/default.nix | 6 ++ modules/programs/sway/default.nix | 12 ++-- modules/programs/swaylock/default.nix | 10 +++ .../programs/{tmux.nix => tmux/default.nix} | 2 +- modules/programs/{zsh.nix => zsh/default.nix} | 0 13 files changed, 83 insertions(+), 78 deletions(-) create mode 100644 modules/programs/chromium/default.nix create mode 100644 modules/programs/git/default.nix create mode 100644 modules/programs/kitty/default.nix create mode 100644 modules/programs/obs-studio/default.nix create mode 100644 modules/programs/swaylock/default.nix rename modules/programs/{tmux.nix => tmux/default.nix} (93%) rename modules/programs/{zsh.nix => zsh/default.nix} (100%) diff --git a/flake.nix b/flake.nix index 615640d..6fe2a3c 100644 --- a/flake.nix +++ b/flake.nix @@ -14,7 +14,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { self, nixpkgs, home-manager, hosts, ide, ... }: let system = "x86_64-linux"; @@ -43,5 +42,6 @@ ivand = home.ivand; vid = home.vid; }; + modules = modules; }; } diff --git a/home/default.nix b/home/default.nix index 52dd0f6..7e78dbb 100644 --- a/home/default.nix +++ b/home/default.nix @@ -3,16 +3,23 @@ inherit pkgs; modules = [ ./ivand - modules.programs modules.packages - modules.nvim + modules.programs.nvim + modules.programs.zsh + modules.programs.tmux + modules.programs.git + modules.programs.chromium + modules.programs.kitty + modules.programs.lf + modules.programs.obs-studio + modules.programs.sway + modules.programs.swaylock ]; }; vid = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./home/vid - modules.programs ]; }; } diff --git a/modules/default.nix b/modules/default.nix index 61b1637..d0f2d5f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,10 +1,7 @@ -{ system, nixpkgs, pkgs, ide, my-overlay, ... }: +{ system, nixpkgs, pkgs, ide, ... }: { gaming = import ./gaming { inherit nixpkgs; }; dnscrypt = import ./dnscrypt; packages = import ./packages { inherit pkgs; }; - programs = import ./programs { inherit pkgs; }; - nvim = import ./programs/neovim { - nvim = ide.homeManagerModules.${system}.nvim; - }; + programs = import ./programs { inherit system pkgs ide; }; } diff --git a/modules/programs/chromium/default.nix b/modules/programs/chromium/default.nix new file mode 100644 index 0000000..97fcacd --- /dev/null +++ b/modules/programs/chromium/default.nix @@ -0,0 +1,6 @@ +{ pkgs }: { + programs.chromium = { + enable = true; + package = pkgs.ungoogled-chromium; + }; +} diff --git a/modules/programs/default.nix b/modules/programs/default.nix index 1096193..27a9fe3 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -1,53 +1,15 @@ -{ pkgs, ... }: -let - lib = pkgs.lib; -in -{ - imports = [ ./sway ./tmux.nix ./zsh.nix ./lf ]; +{ system, pkgs, ide, ... }: { - 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; - }; - }; - 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; - }; + nvim = import ./neovim { + nvim = ide.homeManagerModules.${system}.nvim; }; + git = import ./git; + chromium = import ./chromium { inherit pkgs; }; + kitty = import ./kitty; + lf = import ./lf; + obs-studio = import ./obs-studio { inherit pkgs; }; + swaylock = import ./swaylock; + tmux = import ./tmux { inherit pkgs; }; + zsh = import ./zsh { inherit pkgs; }; + sway = import ./sway { inherit pkgs; }; } diff --git a/modules/programs/git/default.nix b/modules/programs/git/default.nix new file mode 100644 index 0000000..46eb67e --- /dev/null +++ b/modules/programs/git/default.nix @@ -0,0 +1,11 @@ +{ + programs.git = { + enable = true; + userName = "Ivan Dimitrov"; + userEmail = "ivan@idimitrov.dev"; + extraConfig = { + color.ui = "auto"; + pull.rebase = true; + }; + }; +} diff --git a/modules/programs/kitty/default.nix b/modules/programs/kitty/default.nix new file mode 100644 index 0000000..e4dbc73 --- /dev/null +++ b/modules/programs/kitty/default.nix @@ -0,0 +1,10 @@ +{ + programs.kitty = { + enable = true; + settings = { + enable_tab_bar = false; + background_opacity = "0.96"; + cursor_shape = "beam"; + }; + }; +} diff --git a/modules/programs/lf/default.nix b/modules/programs/lf/default.nix index 1d3dde4..7846592 100644 --- a/modules/programs/lf/default.nix +++ b/modules/programs/lf/default.nix @@ -1,14 +1,12 @@ -{ pkgs, ... }: { - programs = { - lf = { - enable = true; - extraConfig = builtins.readFile ./lfrc; - keybindings = { - D = "trash"; - T = "touch"; - M = "mkdir"; - R = "mv"; - }; +{ + programs.lf = { + enable = true; + extraConfig = builtins.readFile ./lfrc; + keybindings = { + D = "trash"; + T = "touch"; + M = "mkdir"; + R = "mv"; }; }; } diff --git a/modules/programs/obs-studio/default.nix b/modules/programs/obs-studio/default.nix new file mode 100644 index 0000000..6b7d5cf --- /dev/null +++ b/modules/programs/obs-studio/default.nix @@ -0,0 +1,6 @@ +{ pkgs }: { + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; + }; +} diff --git a/modules/programs/sway/default.nix b/modules/programs/sway/default.nix index 8a3f97b..58cfbd0 100644 --- a/modules/programs/sway/default.nix +++ b/modules/programs/sway/default.nix @@ -1,9 +1,7 @@ -{ pkgs, lib, ... }: { - wayland = { - windowManager.sway = { - enable = true; - config = null; - extraConfig = builtins.readFile ./config; - }; +{ pkgs, ... }: { + wayland.windowManager.sway = { + enable = true; + config = null; + extraConfig = builtins.readFile ./config; }; } diff --git a/modules/programs/swaylock/default.nix b/modules/programs/swaylock/default.nix new file mode 100644 index 0000000..f8b476f --- /dev/null +++ b/modules/programs/swaylock/default.nix @@ -0,0 +1,10 @@ +{ + programs.swaylock = { + enable = true; + settings = { + color = "000000"; + line-color = "ffffff"; + show-failed-attempts = true; + }; + }; +} diff --git a/modules/programs/tmux.nix b/modules/programs/tmux/default.nix similarity index 93% rename from modules/programs/tmux.nix rename to modules/programs/tmux/default.nix index e47ce2d..a29fa4a 100644 --- a/modules/programs/tmux.nix +++ b/modules/programs/tmux/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ pkgs, ... }: { programs.tmux = { enable = true; clock24 = true; diff --git a/modules/programs/zsh.nix b/modules/programs/zsh/default.nix similarity index 100% rename from modules/programs/zsh.nix rename to modules/programs/zsh/default.nix