aboutsummaryrefslogtreecommitdiffstats
path: root/modules/web
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-23 00:56:24 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-23 00:56:24 +0530
commit2ad7b06ced0ffa39d20e6be41466e5bd834ee956 (patch)
tree86bc522072c09c80098bff8854d2377137a6c39c /modules/web
parenta61001ad8696f6d9a5ebe0f18a71d747941ec9d0 (diff)
downloadhome-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')
-rw-r--r--modules/web/default.nix3
-rw-r--r--modules/web/w3m/assertions.nix13
-rw-r--r--modules/web/w3m/default.nix42
3 files changed, 57 insertions, 1 deletions
diff --git a/modules/web/default.nix b/modules/web/default.nix
index a5c2ae6..436241a 100644
--- a/modules/web/default.nix
+++ b/modules/web/default.nix
@@ -1,8 +1,9 @@
-# Web - Web browser and downloader modules (aria2, brave)
+# Web - Web browser and downloader modules (aria2, brave, w3m)
{ ... }:
{
imports = [
./aria2
./brave
+ ./w3m
];
}
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
+ ];
+ };
+}