aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/fo/foot/module.nix82
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];
+ };
+ };
+ };
+ };
+ };
+}