From cb65c81403f61f49483858730b087ff6699c61c1 Mon Sep 17 00:00:00 2001 From: Nathaniel Barragan Date: Wed, 16 Apr 2025 19:41:17 +0000 Subject: [PATCH] chawan: init module (#6768) This is a super cool TUI browser capable of CSS and other cool stuff. Reminiscent of ELinks but modern and better. More info here: https://sr.ht/~bptato/chawan/ --- modules/modules.nix | 1 + modules/programs/chawan.nix | 47 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 modules/programs/chawan.nix diff --git a/modules/modules.nix b/modules/modules.nix index 13b719ce1..d4fe4b141 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -84,6 +84,7 @@ let ./programs/carapace.nix ./programs/cava.nix ./programs/cavalier.nix + ./programs/chawan.nix ./programs/chromium.nix ./programs/cmus.nix ./programs/command-not-found/command-not-found.nix diff --git a/modules/programs/chawan.nix b/modules/programs/chawan.nix new file mode 100644 index 000000000..a3cd6655e --- /dev/null +++ b/modules/programs/chawan.nix @@ -0,0 +1,47 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.programs.chawan; + tomlFormat = (pkgs.formats.toml { }); + tomlType = tomlFormat.type; + toConf = tomlFormat.generate "config.toml"; +in +{ + meta.maintainers = [ lib.maintainers.noodlez1232 ]; + + options.programs.chawan = { + enable = lib.mkEnableOption "chawan, A TUI web browser"; + package = lib.mkPackageOption pkgs "chawan" { nullable = true; }; + settings = lib.mkOption { + default = { }; + type = tomlType; + description = '' + Configuration options for chawan. + + See {manpage}`cha-config(5)` + ''; + example = lib.literalExpression '' + { + buffer = { + images = true; + autofocus = true; + }; + pager."C-k" = "() => pager.load('https://duckduckgo.com/?=')"; + } + ''; + }; + }; + + config = lib.mkIf cfg.enable { + home.packages = lib.mkIf (cfg.package != null) [ cfg.package ]; + xdg.configFile = lib.mkIf (cfg.settings != { }) { + "chawan/config.toml" = { + source = toConf cfg.settings; + }; + }; + }; +}