From a79d31fcfd156c4feda6c19d8490b16edb7c1c75 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sat, 22 Aug 2020 04:20:00 -0500 Subject: [PATCH] mcfly: add module PR #1452 --- .github/CODEOWNERS | 2 + modules/misc/news.nix | 7 ++++ modules/modules.nix | 1 + modules/programs/mcfly.nix | 77 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 modules/programs/mcfly.nix diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bf1be1a2..5aa1f6c4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -71,6 +71,8 @@ /modules/programs/matplotlib.nix @rprospero +/modules/programs/mcfly.nix @marsam + /modules/programs/mpv.nix @tadeokondrak /modules/programs/ne.nix @cwyc diff --git a/modules/misc/news.nix b/modules/misc/news.nix index 94ce35bd..bdbd589a 100644 --- a/modules/misc/news.nix +++ b/modules/misc/news.nix @@ -1635,6 +1635,13 @@ in A new module is available: 'services.kanshi' ''; } + + { + time = "2020-08-25T22:14:01+00:00"; + message = '' + A new module is available: 'programs.mcfly' + ''; + } ]; }; } diff --git a/modules/modules.nix b/modules/modules.nix index fa9c7f38..bae51d69 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -86,6 +86,7 @@ let (loadModule ./programs/man.nix { }) (loadModule ./programs/matplotlib.nix { }) (loadModule ./programs/mbsync.nix { }) + (loadModule ./programs/mcfly.nix { }) (loadModule ./programs/mercurial.nix { }) (loadModule ./programs/mpv.nix { }) (loadModule ./programs/msmtp.nix { }) diff --git a/modules/programs/mcfly.nix b/modules/programs/mcfly.nix new file mode 100644 index 00000000..bf2b0f6e --- /dev/null +++ b/modules/programs/mcfly.nix @@ -0,0 +1,77 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + + cfg = config.programs.mcfly; + +in { + meta.maintainers = [ maintainers.marsam ]; + + options.programs.mcfly = { + enable = mkEnableOption "mcfly"; + + keyScheme = mkOption { + type = types.enum [ "emacs" "vim" ]; + default = "emacs"; + description = '' + Key scheme to use. + ''; + }; + + enableLightTheme = mkOption { + default = false; + type = types.bool; + description = '' + Whether to enable light mode theme. + ''; + }; + + enableBashIntegration = mkOption { + default = true; + type = types.bool; + description = '' + Whether to enable Bash integration. + ''; + }; + + enableZshIntegration = mkOption { + default = true; + type = types.bool; + description = '' + Whether to enable Zsh integration. + ''; + }; + + enableFishIntegration = mkOption { + default = true; + type = types.bool; + description = '' + Whether to enable Fish integration. + ''; + }; + }; + + config = mkIf cfg.enable (mkMerge [ + { + home.packages = [ pkgs.mcfly ]; + + programs.bash.initExtra = mkIf cfg.enableBashIntegration '' + source "${pkgs.mcfly}/share/mcfly/mcfly.bash" + ''; + + programs.zsh.initExtra = mkIf cfg.enableZshIntegration '' + source "${pkgs.mcfly}/share/mcfly/mcfly.zsh" + ''; + + programs.fish.shellInit = mkIf cfg.enableFishIntegration '' + source "${pkgs.mcfly}/share/mcfly/mcfly.fish" + mcfly_key_bindings + ''; + + home.sessionVariables.MCFLY_KEY_SCHEME = cfg.keyScheme; + } + + (mkIf cfg.enableLightTheme { home.sessionVariables.MCFLY_LIGHT = "TRUE"; }) + ]); +}