about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2021-05-31 15:41:08 +0200
committersternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2021-05-31 15:42:56 +0200
commitcf25f85750f8dc32628512e38c7418128679fa02 (patch)
tree686a74bd9f694021fb0e8986fbc6a2a0ece380d3
parenteb766db679a5ffe72d32439bf1bcf36f99dfc8b9 (diff)
machines/sternenseemann/wolfgang: install saneterm
-rw-r--r--machines/sternenseemann/desktop-sway.nix5
-rw-r--r--modules/module-list.nix1
-rw-r--r--modules/user/sternenseemann/programs/saneterm.nix35
-rw-r--r--pkgs/sternenseemann/default.nix2
-rw-r--r--pkgs/sternenseemann/saneterm/default.nix44
5 files changed, 87 insertions, 0 deletions
diff --git a/machines/sternenseemann/desktop-sway.nix b/machines/sternenseemann/desktop-sway.nix
index 2494210f..107cfea5 100644
--- a/machines/sternenseemann/desktop-sway.nix
+++ b/machines/sternenseemann/desktop-sway.nix
@@ -18,6 +18,8 @@ let
       // (getBins pkgs.mako [ "makoctl" ])
       // (getBins screenshot [ "screenshot" ])
       // (getBins pkgs.foot [ "foot" ])
+      // (getBins pkgs.bash [ "sh" ])
+      // (getBins config.vuizvui.user.sternenseemann.programs.saneterm.package [ "saneterm" ])
       ;
 
   screenshot = pkgs.writers.writeDashBin "screenshot" ''
@@ -46,6 +48,7 @@ in
         "$mod+g" = "${bins.tep} copy -l 25 -p 'tep>' -i";
         "$mod+c" = "${bins.makoctl} dismiss -a";
         "$mod+x" = bins.screenshot;
+        "$mod+Shift+Return" = "${bins.saneterm} ${bins.sh}";
       };
       term = bins.foot;
       menu = "${bins.bemenu-run} -l 10 -i";
@@ -96,6 +99,8 @@ in
       };
     };
 
+    vuizvui.user.sternenseemann.programs.saneterm.enable = true;
+
     # notifications
     services.dbus.packages = [ pkgs.mako ];
 
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 517b9e87..5da9de76 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -43,4 +43,5 @@
   ./user/profpatsch/services/dunst.nix
   ./user/sternenseemann/documentation/mandoc.nix
   ./user/sternenseemann/services/sway.nix
+  ./user/sternenseemann/programs/saneterm.nix
 ]
diff --git a/modules/user/sternenseemann/programs/saneterm.nix b/modules/user/sternenseemann/programs/saneterm.nix
new file mode 100644
index 00000000..425c07bd
--- /dev/null
+++ b/modules/user/sternenseemann/programs/saneterm.nix
@@ -0,0 +1,35 @@
+{ pkgs, lib, config, ... }:
+
+let
+  cfg = config.vuizvui.user.sternenseemann.programs.saneterm;
+in
+
+{
+  options = {
+    vuizvui.user.sternenseemann.programs.saneterm = {
+      enable = lib.mkEnableOption "saneterm";
+      package = lib.mkOption {
+        type = lib.types.package;
+        description = ''
+          saneterm derivation to use.
+        '';
+        default = pkgs.vuizvui.sternenseemann.saneterm;
+        defaultText = lib.literalExample "pkgs.vuizvui.sternenseemann.saneterm";
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment = {
+      etc."profile".text = ''
+        if [ "$TERM" = "dumb" ]; then
+          export PAGER=cat
+          export GIT_PAGER=cat
+        fi
+      '';
+      systemPackages = [
+        cfg.package
+      ];
+    };
+  };
+}
diff --git a/pkgs/sternenseemann/default.nix b/pkgs/sternenseemann/default.nix
index 2b4e4888..1f3ffef2 100644
--- a/pkgs/sternenseemann/default.nix
+++ b/pkgs/sternenseemann/default.nix
@@ -135,6 +135,8 @@ lib.fix (self: {
   };
 
   # packaged 3rd party software
+  saneterm = pkgs.python3.pkgs.callPackage ./saneterm { };
+
   shakti = callPackage ./shakti { };
 
   t = python3Packages.callPackage ./t { };
diff --git a/pkgs/sternenseemann/saneterm/default.nix b/pkgs/sternenseemann/saneterm/default.nix
new file mode 100644
index 00000000..db0c9963
--- /dev/null
+++ b/pkgs/sternenseemann/saneterm/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonApplication
+, lib
+, fetchgit
+, makeWrapper
+, pygobject3
+, gtk3
+, gobject-introspection
+}:
+
+buildPythonApplication {
+  pname = "saneterm";
+  version = "git";
+
+  src = fetchgit {
+    url = "git://git.8pit.net/saneterm.git";
+    rev = "d96c2422b67e8c92a41e1f87813ebc1a839d5d69";
+    sha256 = "1546mds8c3yw418pqbnsjxv00lrspfdf74pwi31yqhmphbpzl6pf";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  propagatedBuildInputs = [
+    pygobject3
+  ];
+
+  buildInputs = [
+    gtk3
+    gobject-introspection
+  ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/saneterm" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH ":" "${lib.getLib gtk3}/lib"
+  '';
+
+  meta = {
+    description = "Modern line-oriented terminal emulator without support for TUIs";
+    homepage = "https://git.8pit.net/saneterm/";
+    license = lib.licenses.gpl3Only;
+  };
+}