diff options
| author | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-07-23 00:56:24 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-07-23 00:56:24 +0530 |
| commit | 2ad7b06ced0ffa39d20e6be41466e5bd834ee956 (patch) | |
| tree | 86bc522072c09c80098bff8854d2377137a6c39c /modules/web/w3m | |
| parent | a61001ad8696f6d9a5ebe0f18a71d747941ec9d0 (diff) | |
| download | home-manager-config-2ad7b06ced0ffa39d20e6be41466e5bd834ee956.tar.gz home-manager-config-2ad7b06ced0ffa39d20e6be41466e5bd834ee956.zip | |
feat(w3m): add module with desktop entry + integrate into neomutt
- modules/web/w3m: enable/package options, desktop entry via kitty,
assertion
- modules/web/w3m: delegate to programs.w3m under the hood
- modules/web/w3m: default package to programs.w3m.finalPackage
- modules/desktop/xdg: add portal config with common.default = "*"
- neomutt/nix: use lib.getExe' config.web.w3m.package for w3m refs
- neomutt/assertions: add w3m dependency assertion
- users/arpit: enable web.w3m
Diffstat (limited to 'modules/web/w3m')
| -rw-r--r-- | modules/web/w3m/assertions.nix | 13 | ||||
| -rw-r--r-- | modules/web/w3m/default.nix | 42 |
2 files changed, 55 insertions, 0 deletions
diff --git a/modules/web/w3m/assertions.nix b/modules/web/w3m/assertions.nix new file mode 100644 index 0000000..b5ae2be --- /dev/null +++ b/modules/web/w3m/assertions.nix @@ -0,0 +1,13 @@ +# Assertions - Validates kitty is enabled for w3m desktop entry +{ config, ... }: +{ + assertions = [ + { + assertion = !config.web.w3m.enable || config.terminal.kitty.enable; + message = '' + web.w3m is enabled but terminal.kitty.enable is not. + w3m's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty. + ''; + } + ]; +} diff --git a/modules/web/w3m/default.nix b/modules/web/w3m/default.nix new file mode 100644 index 0000000..3dad0a2 --- /dev/null +++ b/modules/web/w3m/default.nix @@ -0,0 +1,42 @@ +# w3m - Text-based web browser and pager +{ + config, + lib, + pkgs, + ... +}: +let + w3mDesktopItem = pkgs.makeDesktopItem { + name = "w3m"; + desktopName = "w3m"; + exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe' config.web.w3m.package "w3m"}"; + icon = "kitty"; + categories = [ "Network" ]; + comment = "Text-based web browser"; + terminal = false; + type = "Application"; + }; +in +{ + imports = [ + ./assertions.nix + ]; + + options.web.w3m = { + enable = lib.mkEnableOption "Enables w3m."; + package = lib.mkOption { + type = lib.types.package; + default = config.programs.w3m.finalPackage; + defaultText = lib.literalExpression "config.programs.w3m.finalPackage"; + description = "Package to use for w3m. Defaults to the wrapped finalPackage from programs.w3m."; + }; + }; + + config = lib.mkIf config.web.w3m.enable { + programs.w3m.enable = true; + home.packages = [ + config.web.w3m.package + w3mDesktopItem + ]; + }; +} |
