From f893e3b8e2589b72ee4d6cec788e718a4ca6682d Mon Sep 17 00:00:00 2001 From: Tristan Date: Fri, 5 Jan 2024 20:59:06 +0000 Subject: [PATCH] move more modules to home --- global/home/default.nix | 9 +- global/system.nix | 5 - lib/mkconf.nix | 19 +-- lib/modules/editor.nix | 56 ------- lib/modules/email.nix | 236 --------------------------- lib/modules/home/editor.nix | 49 ++++++ lib/modules/home/email.nix | 228 ++++++++++++++++++++++++++ lib/modules/home/menu.nix | 34 ++++ lib/modules/home/mpd.nix | 65 ++++++++ lib/modules/{ => home}/scripts.nix | 23 +-- lib/modules/home/terminal.nix | 23 +++ lib/modules/menu.nix | 38 ----- lib/modules/mpd.nix | 69 -------- lib/modules/personal.nix | 12 +- lib/modules/terminal.nix | 31 ---- lib/modules/work.nix | 21 ++- lib/programs/home/neovim/default.nix | 2 +- lib/scripts.nix | 7 +- 18 files changed, 443 insertions(+), 484 deletions(-) delete mode 100644 lib/modules/editor.nix delete mode 100644 lib/modules/email.nix create mode 100644 lib/modules/home/editor.nix create mode 100644 lib/modules/home/email.nix create mode 100644 lib/modules/home/menu.nix create mode 100644 lib/modules/home/mpd.nix rename lib/modules/{ => home}/scripts.nix (77%) create mode 100644 lib/modules/home/terminal.nix delete mode 100644 lib/modules/menu.nix delete mode 100644 lib/modules/mpd.nix delete mode 100644 lib/modules/terminal.nix diff --git a/global/home/default.nix b/global/home/default.nix index dbf04f8..771699a 100644 --- a/global/home/default.nix +++ b/global/home/default.nix @@ -12,7 +12,7 @@ let slurp = "${pkgs.slurp}/bin/slurp"; amixer = "${pkgs.alsa-utils}/bin/amixer"; swaybg = "${pkgs.swaybg}/bin/swaybg"; - terminal = "${pkgs.foot}/bin/foot"; + terminal = "${config.programs.terminal}/bin/${config.programs.terminal.pname}"; chafa = "${pkgs.chafa}/bin/chafa"; exiftool = "${pkgs.exiftool}/bin/exiftool"; wc = "${pkgs.coreutils}/bin/wc"; @@ -30,6 +30,13 @@ in { imports = [ ./graphical.nix ../../lib/programs/home/neovim/. + ../../lib/modules/home/terminal.nix + ../../lib/modules/home/scripts.nix + ../../lib/scripts.nix + ../../lib/modules/home/email.nix + ../../lib/modules/home/editor.nix + ../../lib/modules/home/mpd.nix + ../../lib/modules/home/menu.nix ]; programs.home-manager.enable = true; diff --git a/global/system.nix b/global/system.nix index 0dab281..9f8854f 100644 --- a/global/system.nix +++ b/global/system.nix @@ -6,10 +6,6 @@ user: { lib, ... }: { - home-manager.users.${user}.imports = [ - ./home/. - ]; - nix = { settings = { experimental-features = ["nix-command" "flakes"]; @@ -128,7 +124,6 @@ user: { services.gvfs.enable = true; environment.systemPackages = with pkgs; [ - foot tealdeer alsa-utils pcmanfm diff --git a/lib/mkconf.nix b/lib/mkconf.nix index 05e32d2..b4391e2 100644 --- a/lib/mkconf.nix +++ b/lib/mkconf.nix @@ -28,33 +28,28 @@ nixpkgs.lib.nixosSystem { } { imports = [ - (import ./modules/terminal.nix {inherit user;}) - (import ./modules/scripts.nix {inherit user;}) - (import ./modules/editor.nix {inherit user;}) (import ./modules/keyboard.nix {inherit user;}) (import ./modules/display.nix {inherit user;}) (import ./modules/work.nix {inherit user;}) - (import ./modules/menu.nix {inherit user;}) - (import ./modules/email.nix {inherit user userName;}) - (import ./modules/mpd.nix {inherit user;}) (import ./modules/git.nix {inherit user userName;}) (import ./modules/laptop.nix {inherit user;}) (import ./modules/personal.nix {inherit user;}) (import ./modules/gamer.nix {inherit user;}) (import ./programs/hyprland.nix {inherit user;}) (import ../hardware/${name}.nix {inherit user;}) - ./scripts.nix (import ../global/system.nix user) ]; - programs.menu.enable = true; + home-manager.users.${user}.imports = [ + ../global/home/. + { + options.home.userFullname = nixpkgs.lib.mkOption { default = userName; }; + } + ]; + roles.work.enable = work; roles.git.enable = true; - programs.terminal.enable = true; roles.personal.enable = !work; - roles.mpd.enable = true; - programs.editor.neovim = true; - programs.editor.enable = true; } ]; } diff --git a/lib/modules/editor.nix b/lib/modules/editor.nix deleted file mode 100644 index a4d8981..0000000 --- a/lib/modules/editor.nix +++ /dev/null @@ -1,56 +0,0 @@ -{user}: { - lib, - pkgs, - config, - ... -}: -with lib; let - editor = config.programs.editor; - pkg = editor.package; - menu = config.programs.menu.package + config.programs.menu.dmenuCommand; - editorCmd = "NIXOS_OZONE_WL= ${pkg}/bin/${pkg.executableName}"; -in { - options.programs = { - editor = { - enable = mkEnableOption "editor"; - package = mkPackageOption pkgs "vscodium" { - example = "pkgs.vscode"; - }; - neovim = mkEnableOption "neovim mode"; - }; - }; - - config = mkIf editor.enable { - home-manager.users.${user}.imports = [ - { - programs.vscode = { - enable = true; - package = editor.package; - extensions = []; - userSettings = { - "keyboard.dispatch" = "keyCode"; - "terminal.integrated.sendKeybindingsToShell" = true; - "aws.telemetry" = false; - "gitlens.telemetry.enabled" = false; - "redhat.telemetry.enabled" = false; - "cSpell.language" = "en,en-GB"; - }; - }; - } - ]; - - programs.scripts = [ - { - name = "open-code"; - text = '' - code_dir=~/Documents/code - cd $code_dir - repo=$(ls | ${menu}) - [ -e "$repo" ] && ${editorCmd} $repo - ''; - install = false; - hotkeys = [{key = "C";}]; - } - ]; - }; -} diff --git a/lib/modules/email.nix b/lib/modules/email.nix deleted file mode 100644 index 4ae8abd..0000000 --- a/lib/modules/email.nix +++ /dev/null @@ -1,236 +0,0 @@ -{ - user, - userName, -}: { - lib, - pkgs, - config, - ... -}: -with lib; let - cfg = config.roles.email; - terminal = config.programs.terminal.package; - termcmd = "${terminal}/bin/${terminal.pname}"; -in { - options.roles = { - email = { - enable = mkEnableOption "email settings"; - email = mkOption { - description = "email address"; - }; - terminal = mkOption { - type = types.bool; - default = true; - }; - }; - }; - - config = mkIf cfg.enable { - programs.scripts = [ - { - name = "email"; - text = '' - ${termcmd} -e aerc - ''; - install = false; - hotkeys = [{key = "E";}]; - } - ]; - - home-manager.users.${user}.imports = [ - { - programs.git = { - userName = userName; - userEmail = cfg.email; - }; - - accounts.email.accounts.${cfg.email} = mkIf cfg.terminal { - notmuch.enable = true; - neomutt.enable = true; - aerc.enable = true; - mbsync.enable = true; - mbsync.create = "both"; - userName = cfg.email; - realName = userName; - address = cfg.email; - primary = true; - passwordCommand = "${pkgs.rbw}/bin/rbw get privateemail"; - smtp = { - host = "mail.privateemail.com"; - port = 465; - tls.enable = true; - }; - imap = { - host = "mail.privateemail.com"; - port = 993; - tls.enable = true; - }; - }; - - programs.notmuch.enable = cfg.terminal; - programs.neomutt = { - enable = cfg.terminal; - vimKeys = true; - sort = "reverse-date"; - sidebar.enable = true; - }; - programs.mbsync.enable = cfg.terminal; - services.mbsync.enable = cfg.terminal; - - programs.aerc = { - enable = cfg.terminal; - extraBinds = '' - # Binds are of the form = - # To use '=' in a key sequence, substitute it with "Eq": "" - # If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit - = :prev-tab - = :next-tab - = :term - - [messages] - Q = :quit - - T = :toggle-threads - - j = :next - = :next - = :next 50% - = :next 100% - = :next -s 100% - - k = :prev - = :prev - = :prev 50% - = :prev - = :prev -s 100% - gg = :select 0 - G = :select -1 - - J = :next-folder - K = :prev-folder - - v = :mark -t - V = :mark -v - - f = :flag - F = :unflag - - t = :toggle-threads - - = :view - D = :mv Trash - - C = :compose - - Rr = :reply - Rq = :reply -q - rr = :reply -a - rq = :reply -aq - rt = :unflag:reply -a -Tthanks - Rt = :unflag:reply -qa -Tquoted_thanks - - a = :mv Archive - - c = :cf - $ = :term - ! = :term - | = :pipe - - ga = :flag:pipe -mb git am -3 - gp = :term git push - gl = :term git log - - / = :search - \ = :filter - n = :next-result - N = :prev-result - - o = :term mbsync -a - q = :quit - - [view] - / = :toggle-key-passthrough/ - q = :close - | = :pipe -m - S = :save - H = :toggle-headers - D = :mv Trash - = :prev-part - = :next-part - J = :next - K = :prev - - f = :forward - Rr = :reply - Rq = :reply -q - rr = :reply -a - rq = :reply -aq - rt = :reply -Tthanks - - ga = :pipe -b git am -3 - gp = :term git push - gl = :term git log - - [view::passthrough] - $noinherit = true - $ex = - = :toggle-key-passthrough - - [compose] - $ex = - = :prev-field - = :next-field - = :next-field - - [compose::editor] - # Keybindings used when the embedded terminal is selected in the compose view - $noinherit = true - $ex = - = :term - = :prev-field - = :next-field - = :prev-tab - = :next-tab - - [compose::review] - # Keybindings used when reviewing a message to be sent - y = :send - n = :abort - e = :edit - a = :attach - c = :encrypt - s = :sign - V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION - A = :header -f X-Sourcehut-Patchset-Update APPLIED - R = :header -f X-Sourcehut-Patchset-Update REJECTED - - [terminal] - $noinherit = true - $ex = - - = :term - = :prev-tab - = :next-tab - ''; - - extraConfig = { - general = { - pgp-provider = "gpg"; - unsafe-accounts-conf = true; - }; - ui = {}; - viewer = {}; - filters = { - "text/plain" = "colorize"; - "text/calendar" = "calendar"; - "message/delivery-status" = "colorize"; - "message/rfc822" = "colorize"; - "image/*" = "img2sixel"; - "text/html" = "html | colorize"; - }; - }; - }; - } - ]; - }; -} diff --git a/lib/modules/home/editor.nix b/lib/modules/home/editor.nix new file mode 100644 index 0000000..2a8d01c --- /dev/null +++ b/lib/modules/home/editor.nix @@ -0,0 +1,49 @@ +{ + lib, + pkgs, + config, + ... +}: let + editor = config.programs.editor; + pkg = editor.package; + menu = config.programs.menu.package + config.programs.menu.dmenuCommand; + editorCmd = "NIXOS_OZONE_WL= ${pkg}/bin/${pkg.executableName}"; +in { + options.programs = with lib; { + editor = { + package = mkPackageOption pkgs "vscodium" { + example = "pkgs.vscode"; + }; + }; + }; + + config = { + programs.vscode = { + enable = true; + package = editor.package; + extensions = []; + userSettings = { + "keyboard.dispatch" = "keyCode"; + "terminal.integrated.sendKeybindingsToShell" = true; + "aws.telemetry" = false; + "gitlens.telemetry.enabled" = false; + "redhat.telemetry.enabled" = false; + "cSpell.language" = "en,en-GB"; + }; + }; + + programs.scripts = [ + { + name = "open-code"; + text = '' + code_dir=~/Documents/code + cd $code_dir + repo=$(ls | ${menu}) + [ -e "$repo" ] && ${editorCmd} $repo + ''; + install = false; + hotkeys = [{key = "C";}]; + } + ]; + }; +} diff --git a/lib/modules/home/email.nix b/lib/modules/home/email.nix new file mode 100644 index 0000000..a4fc403 --- /dev/null +++ b/lib/modules/home/email.nix @@ -0,0 +1,228 @@ +{ + lib, + pkgs, + config, + ... +}: let + cfg = config.roles.email; + terminal = config.programs.terminal; + termcmd = "${terminal}/bin/${terminal.pname}"; +in { + options.roles = with lib; { + email = { + enable = mkEnableOption "email settings"; + email = mkOption { + description = "email address"; + }; + terminal = mkOption { + type = types.bool; + default = true; + }; + }; + }; + + config = lib.mkIf cfg.enable { + programs.scripts = [ + { + name = "email"; + text = '' + ${termcmd} -e aerc + ''; + install = false; + hotkeys = [{key = "E";}]; + } + ]; + + programs.git = { + userName = config.home.userFullname; + userEmail = cfg.email; + }; + + accounts.email.accounts.${cfg.email} = lib.mkIf cfg.terminal { + notmuch.enable = true; + neomutt.enable = true; + aerc.enable = true; + mbsync.enable = true; + mbsync.create = "both"; + userName = cfg.email; + realName = config.home.userFullname; + address = cfg.email; + primary = true; + passwordCommand = "${pkgs.rbw}/bin/rbw get privateemail"; + smtp = { + host = "mail.privateemail.com"; + port = 465; + tls.enable = true; + }; + imap = { + host = "mail.privateemail.com"; + port = 993; + tls.enable = true; + }; + }; + + programs.notmuch.enable = cfg.terminal; + programs.neomutt = { + enable = cfg.terminal; + vimKeys = true; + sort = "reverse-date"; + sidebar.enable = true; + }; + programs.mbsync.enable = cfg.terminal; + services.mbsync.enable = cfg.terminal; + + programs.aerc = { + enable = cfg.terminal; + extraBinds = '' + # Binds are of the form = + # To use '=' in a key sequence, substitute it with "Eq": "" + # If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit + = :prev-tab + = :next-tab + = :term + + [messages] + Q = :quit + + T = :toggle-threads + + j = :next + = :next + = :next 50% + = :next 100% + = :next -s 100% + + k = :prev + = :prev + = :prev 50% + = :prev + = :prev -s 100% + gg = :select 0 + G = :select -1 + + J = :next-folder + K = :prev-folder + + v = :mark -t + V = :mark -v + + f = :flag + F = :unflag + + t = :toggle-threads + + = :view + D = :mv Trash + + C = :compose + + Rr = :reply + Rq = :reply -q + rr = :reply -a + rq = :reply -aq + rt = :unflag:reply -a -Tthanks + Rt = :unflag:reply -qa -Tquoted_thanks + + a = :mv Archive + + c = :cf + $ = :term + ! = :term + | = :pipe + + ga = :flag:pipe -mb git am -3 + gp = :term git push + gl = :term git log + + / = :search + \ = :filter + n = :next-result + N = :prev-result + + o = :term mbsync -a + q = :quit + + [view] + / = :toggle-key-passthrough/ + q = :close + | = :pipe -m + S = :save + H = :toggle-headers + D = :mv Trash + = :prev-part + = :next-part + J = :next + K = :prev + + f = :forward + Rr = :reply + Rq = :reply -q + rr = :reply -a + rq = :reply -aq + rt = :reply -Tthanks + + ga = :pipe -b git am -3 + gp = :term git push + gl = :term git log + + [view::passthrough] + $noinherit = true + $ex = + = :toggle-key-passthrough + + [compose] + $ex = + = :prev-field + = :next-field + = :next-field + + [compose::editor] + # Keybindings used when the embedded terminal is selected in the compose view + $noinherit = true + $ex = + = :term + = :prev-field + = :next-field + = :prev-tab + = :next-tab + + [compose::review] + # Keybindings used when reviewing a message to be sent + y = :send + n = :abort + e = :edit + a = :attach + c = :encrypt + s = :sign + V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION + A = :header -f X-Sourcehut-Patchset-Update APPLIED + R = :header -f X-Sourcehut-Patchset-Update REJECTED + + [terminal] + $noinherit = true + $ex = + + = :term + = :prev-tab + = :next-tab + ''; + + extraConfig = { + general = { + pgp-provider = "gpg"; + unsafe-accounts-conf = true; + }; + ui = {}; + viewer = {}; + filters = { + "text/plain" = "colorize"; + "text/calendar" = "calendar"; + "message/delivery-status" = "colorize"; + "message/rfc822" = "colorize"; + "image/*" = "img2sixel"; + "text/html" = "html | colorize"; + }; + }; + }; + }; +} diff --git a/lib/modules/home/menu.nix b/lib/modules/home/menu.nix new file mode 100644 index 0000000..fc50dd6 --- /dev/null +++ b/lib/modules/home/menu.nix @@ -0,0 +1,34 @@ +{ + lib, + pkgs, + config, + ... +}: let + cfg = config.programs.menu; + terminal = config.programs.terminal; + termcmd = "${terminal}/bin/${terminal.pname}"; +in { + options.programs = with lib; { + menu = { + package = mkPackageOption pkgs "wofi" { + example = "pkgs.dmenu-wayland"; + }; + dmenuCommand = mkOption { + default = "/bin/wofi --show dmenu"; + example = "/bin/dmenu"; + }; + }; + }; + + config = { + programs.wofi = lib.mkIf (cfg.package == pkgs.wofi) { + enable = true; + settings = { + term = termcmd; + insensitive = true; + }; + }; + + home.packages = [cfg.package]; + }; +} diff --git a/lib/modules/home/mpd.nix b/lib/modules/home/mpd.nix new file mode 100644 index 0000000..a634904 --- /dev/null +++ b/lib/modules/home/mpd.nix @@ -0,0 +1,65 @@ +{ + lib, + pkgs, + config, + ... +}: +with lib; let + cfg = config.roles.mpd; +in { + options.roles.mpd = { + enable = mkEnableOption "setup mpd client"; + host = mkOption {default = "192.168.1.2";}; + }; + + config = mkIf cfg.enable { + programs.ncmpcpp = { + enable = true; + settings.mpd_host = cfg.host; + bindings = [ + { + key = "j"; + command = "scroll_down"; + } + { + key = "k"; + command = "scroll_up"; + } + { + key = "l"; + command = "next_column"; + } + { + key = "h"; + command = "previous_column"; + } + { + key = "J"; + command = ["select_item" "scroll_down"]; + } + { + key = "K"; + command = ["select_item" "scroll_up"]; + } + ]; + }; + services.mpd-mpris = { + enable = true; + mpd.host = cfg.host; + }; + programs.waybar.settings.mainBar.mpd.server = cfg.host; + systemd.user.services = { + snapclient = { + Unit = { + Description = "Snapclient"; + }; + Service = { + ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${cfg.host}"; + }; + Install = { + WantedBy = ["graphical-session.target"]; + }; + }; + }; + }; +} diff --git a/lib/modules/scripts.nix b/lib/modules/home/scripts.nix similarity index 77% rename from lib/modules/scripts.nix rename to lib/modules/home/scripts.nix index f238439..476e2e6 100644 --- a/lib/modules/scripts.nix +++ b/lib/modules/home/scripts.nix @@ -1,4 +1,4 @@ -{user}: { +{ lib, pkgs, config, @@ -54,14 +54,13 @@ with lib; let installScripts = scripts: (map scriptToPackage (filter (s: s.install) scripts)); - bindScript = script: + bindScript = script: ( + map ( - map - ( - hotkey: "${hotkey.modifier}, ${hotkey.key}, exec, ${scriptExec {inherit script hotkey;}}" - ) - script.hotkeys - ); + hotkey: "${hotkey.modifier}, ${hotkey.key}, exec, ${scriptExec {inherit script hotkey;}}" + ) + script.hotkeys + ); in { options.programs = { scripts = mkOption { @@ -71,11 +70,7 @@ in { }; config = { - home-manager.users.${user}.imports = [ - { - home.packages = installScripts scripts; - wayland.windowManager.hyprland.settings.bind = builtins.concatMap bindScript scripts ; - } - ]; + home.packages = installScripts scripts; + wayland.windowManager.hyprland.settings.bind = builtins.concatMap bindScript scripts; }; } diff --git a/lib/modules/home/terminal.nix b/lib/modules/home/terminal.nix new file mode 100644 index 0000000..70a6e8c --- /dev/null +++ b/lib/modules/home/terminal.nix @@ -0,0 +1,23 @@ +{ + lib, + pkgs, + config, + ... +}: let + term = config.programs.terminal; +in { + options.programs = { + terminal = lib.mkPackageOption pkgs "foot" { + example = "pkgs.alacritty"; + }; + }; + + config = { + programs.foot = lib.mkIf (term == pkgs.foot) { + enable = true; + server.enable = true; + }; + + home.packages = [term]; + }; +} diff --git a/lib/modules/menu.nix b/lib/modules/menu.nix deleted file mode 100644 index c53666c..0000000 --- a/lib/modules/menu.nix +++ /dev/null @@ -1,38 +0,0 @@ -{user}: { - lib, - pkgs, - config, - ... -}: -with lib; let - cfg = config.programs.menu; - terminal = config.programs.terminal.package; - termcmd = "${terminal}/bin/${terminal.pname}"; -in { - options.programs = { - menu = { - enable = mkEnableOption "menu"; - package = mkPackageOption pkgs "wofi" { - example = "pkgs.dmenu-wayland"; - }; - dmenuCommand = mkOption { - default = "/bin/wofi --show dmenu"; - example = "/bin/dmenu"; - }; - }; - }; - - config = mkIf cfg.enable { - home-manager.users.${user}.imports = [ - { - programs.wofi = mkIf (cfg.package == pkgs.wofi) { - enable = true; - settings = { - term = termcmd; - insensitive = true; - }; - }; - } - ]; - }; -} diff --git a/lib/modules/mpd.nix b/lib/modules/mpd.nix deleted file mode 100644 index fd0216d..0000000 --- a/lib/modules/mpd.nix +++ /dev/null @@ -1,69 +0,0 @@ -{user}: { - lib, - pkgs, - config, - ... -}: -with lib; let - cfg = config.roles.mpd; -in { - options.roles.mpd = { - enable = mkEnableOption "setup mpd client"; - host = mkOption {default = "192.168.1.2";}; - }; - - config = mkIf cfg.enable { - home-manager.users.${user}.imports = [ - { - programs.ncmpcpp = { - enable = true; - settings.mpd_host = cfg.host; - bindings = [ - { - key = "j"; - command = "scroll_down"; - } - { - key = "k"; - command = "scroll_up"; - } - { - key = "l"; - command = "next_column"; - } - { - key = "h"; - command = "previous_column"; - } - { - key = "J"; - command = ["select_item" "scroll_down"]; - } - { - key = "K"; - command = ["select_item" "scroll_up"]; - } - ]; - }; - services.mpd-mpris = { - enable = true; - mpd.host = cfg.host; - }; - programs.waybar.settings.mainBar.mpd.server = cfg.host; - systemd.user.services = { - snapclient = { - Unit = { - Description = "Snapclient"; - }; - Service = { - ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${cfg.host}"; - }; - Install = { - WantedBy = ["graphical-session.target"]; - }; - }; - }; - } - ]; - }; -} diff --git a/lib/modules/personal.nix b/lib/modules/personal.nix index 0890700..815ea1e 100644 --- a/lib/modules/personal.nix +++ b/lib/modules/personal.nix @@ -10,12 +10,6 @@ with lib; { }; config = mkIf config.roles.personal.enable { - roles.email = { - enable = true; - email = "tristan@tristans.cloud"; - terminal = true; - }; - roles.gamer.enable = true; i18n.supportedLocales = [ @@ -26,6 +20,12 @@ with lib; { home-manager.users.${user}.imports = [ { + roles.email = { + enable = true; + email = "tristan@tristans.cloud"; + terminal = true; + }; + services.nextcloud-client.enable = true; services.gnome-keyring.enable = true; diff --git a/lib/modules/terminal.nix b/lib/modules/terminal.nix deleted file mode 100644 index 9894c45..0000000 --- a/lib/modules/terminal.nix +++ /dev/null @@ -1,31 +0,0 @@ -{user}: { - lib, - pkgs, - config, - ... -}: -with lib; let - cfg = config.programs.terminal; -in { - options.programs = { - terminal = { - enable = mkEnableOption "editor"; - package = mkPackageOption pkgs "foot" { - example = "pkgs.alacritty"; - }; - }; - }; - - config = mkIf cfg.enable { - home-manager.users.${user}.imports = [ - { - programs.foot = mkIf (cfg.package == pkgs.foot) { - enable = true; - server.enable = true; - }; - - home.packages = [cfg.package]; - } - ]; - }; -} diff --git a/lib/modules/work.nix b/lib/modules/work.nix index 94a4117..68eca8d 100644 --- a/lib/modules/work.nix +++ b/lib/modules/work.nix @@ -10,19 +10,18 @@ with lib; { }; config = mkIf config.roles.work.enable { - roles.email = { - enable = true; - email = "tristan.beedell@cryoserver.com"; - terminal = false; - }; - - programs.editor = { - enable = true; - package = pkgs.vscode; - }; - home-manager.users.${user}.imports = [ { + roles.email = { + enable = true; + email = "tristan.beedell@cryoserver.com"; + terminal = false; + }; + + programs.editor = { + package = pkgs.vscode; + }; + home.packages = with pkgs; [ onedrive kubectl diff --git a/lib/programs/home/neovim/default.nix b/lib/programs/home/neovim/default.nix index 064845e..6bab72b 100644 --- a/lib/programs/home/neovim/default.nix +++ b/lib/programs/home/neovim/default.nix @@ -40,7 +40,7 @@ }; programs.vscode = { - extensions = [ pkgs.vscode-extensions.asvetliakov.vscode-neovim ]; + extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim]; userSettings = { "vscode-neovim.neovimExecutablePaths.linux" = "${pkgs.neovim}/bin/nvim"; "extensions.experimental.affinity" = { diff --git a/lib/scripts.nix b/lib/scripts.nix index 3399c42..cd2088f 100644 --- a/lib/scripts.nix +++ b/lib/scripts.nix @@ -4,7 +4,7 @@ lib, ... }: let - terminal = config.programs.terminal.package; + terminal = config.programs.terminal; termcmd = "${terminal}/bin/${terminal.pname}"; my-deps = { notify-send = "${pkgs.libnotify}/bin/notify-send"; @@ -13,7 +13,6 @@ slurp = "${pkgs.slurp}/bin/slurp"; amixer = "${pkgs.alsa-utils}/bin/amixer"; swaybg = "${pkgs.swaybg}/bin/swaybg"; - terminal = "${pkgs.foot}/bin/foot"; chafa = "${pkgs.chafa}/bin/chafa"; exiftool = "${pkgs.exiftool}/bin/exiftool"; wc = "${pkgs.coreutils}/bin/wc"; @@ -159,7 +158,7 @@ in { (lib.mkIf config.roles.mpd.enable { name = "ncmpcpp"; text = '' - ${my-deps.terminal} -e ncmpcpp + ${termcmd} -e ncmpcpp ''; hotkeys = [ { @@ -270,7 +269,7 @@ in { } { name = "terminal"; - text = my-deps.terminal; + text = termcmd; hotkeys = [ {key = "RETURN";} ];