diff options
Diffstat (limited to 'modules/by-name/fo/foot')
| -rw-r--r-- | modules/by-name/fo/foot/module.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/modules/by-name/fo/foot/module.nix b/modules/by-name/fo/foot/module.nix new file mode 100644 index 00000000..d818aac0 --- /dev/null +++ b/modules/by-name/fo/foot/module.nix @@ -0,0 +1,82 @@ +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. +{ + config, + lib, + libraries, + ... +}: let + cfg = config.soispha.foot; +in { + options.soispha.foot = { + enable = libraries.base.options.mkEnable "foot terminal"; + }; + + config = lib.mkIf cfg.enable { + home-manager.users.soispha = { + programs.foot = { + enable = true; + server.enable = true; + settings = { + main = { + font = "SauceCodePro Nerd Font Mono:size=12"; + horizontal-letter-offset = -1; + vertical-letter-offset = -1; + }; + # environment = { + # COLORTERM = "truecolor"; + # }; + "regex:hashes" = { + regex = "([a-fA-F0-9]{7,128})"; + launch = "git show \${match}"; + }; + "regex:paths" = { + regex = "([^ '\"`=:\\\\[\\\\(]*/)([^/: '\"`\\\\)\\\\]]*)"; + launch = "ll \${match}"; + }; + + key-bindings = { + regex-launch = [ + "[hashes] Control+h" + "[paths] Control+t" + ]; + regex-copy = [ + "[hashes] Control+Shift+h" + "[paths] Control+Shift+t" + ]; + }; + }; + }; + + systemd.user.services = let + footCfg = config.home-manager.users.soispha.programs.foot; + inherit (footCfg.server) systemdTarget; + in { + foot-initial-term = { + Unit = { + Description = "Fast, lightweight and minimalistic Wayland terminal emulator."; + Documentation = "man:foot(1)"; + PartOf = [systemdTarget]; + After = [systemdTarget]; + ConditionEnvironment = "WAYLAND_DISPLAY"; + }; + + Service = { + ExecStart = "${lib.getExe' footCfg.package "footclient"}"; + }; + + Install = { + WantedBy = [systemdTarget]; + }; + }; + }; + }; + }; +} |
