aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/fo
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/fo')
-rw-r--r--modules/by-name/fo/fonts/emoji_font.xml13
-rw-r--r--modules/by-name/fo/fonts/module.nix26
-rw-r--r--modules/by-name/fo/foot/module.nix82
3 files changed, 115 insertions, 6 deletions
diff --git a/modules/by-name/fo/fonts/emoji_font.xml b/modules/by-name/fo/fonts/emoji_font.xml
index f3f6bb3e..8a922f61 100644
--- a/modules/by-name/fo/fonts/emoji_font.xml
+++ b/modules/by-name/fo/fonts/emoji_font.xml
@@ -1,4 +1,17 @@
<?xml version="1.0"?>
+
+<!--
+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>.
+-->
+
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias binding="weak">
diff --git a/modules/by-name/fo/fonts/module.nix b/modules/by-name/fo/fonts/module.nix
index 057c3f36..f05cae5a 100644
--- a/modules/by-name/fo/fonts/module.nix
+++ b/modules/by-name/fo/fonts/module.nix
@@ -1,3 +1,12 @@
+# 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,
@@ -11,10 +20,15 @@ in {
fonts = lib.mkOption {
type = lib.types.listOf lib.types.package;
- example = lib.literalExpression ''with pkgs.nerdfonts; [SourceCodePro Overpass FiraCode]'';
- default = with pkgs.nerd-fonts; [
- sauce-code-pro
- overpass
+ example = lib.literalExpression ''
+ [
+ pkgs.nerd-fonts.source-code-pro
+ pkgs.nerd-fonts.overpass
+ pkgs.nerd-fonts.fira-code
+ ]'';
+ default = [
+ pkgs.nerd-fonts.sauce-code-pro
+ pkgs.nerd-fonts.overpass
];
description = "The nerd-fonts to install";
};
@@ -26,8 +40,8 @@ in {
fonts = {
packages =
cfg.fonts
- ++ (with pkgs; [liberation_ttf])
- ++ lib.optional cfg.enableEmoji pkgs.noto-fonts-emoji;
+ ++ [pkgs.liberation_ttf]
+ ++ lib.optional cfg.enableEmoji pkgs.noto-fonts-color-emoji;
fontconfig = {
# NOTE: This is responsible for color emoji support <2023-08-28>
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];
+ };
+ };
+ };
+ };
+ };
+}