about summary refs log tree commit diff
path: root/machines
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-03-28 15:32:00 +0200
committersternenseemann <sternenseemann@systemli.org>2022-03-28 15:32:00 +0200
commitb66c81ab3ba2b0cdd4eac8e975b40b75dcaeedd7 (patch)
treee76a308ae4daf29b4c66f2fdb0a17dda3663beea /machines
parent4a1a9e182bb3f0effeee2dbc7da5f5058fa00338 (diff)
machines/sternenseemann: use emacs as default EDITOR
Install vim as TTY fallback editor.
Diffstat (limited to 'machines')
-rw-r--r--machines/sternenseemann/base-laptop.nix36
-rw-r--r--machines/sternenseemann/base.nix11
-rw-r--r--machines/sternenseemann/vim-basic.nix28
3 files changed, 57 insertions, 18 deletions
diff --git a/machines/sternenseemann/base-laptop.nix b/machines/sternenseemann/base-laptop.nix
index b4fa9aaf..e81b768d 100644
--- a/machines/sternenseemann/base-laptop.nix
+++ b/machines/sternenseemann/base-laptop.nix
@@ -38,18 +38,30 @@
 
     programs.mosh.enable = true;
 
-    environment.systemPackages = with pkgs; [
-      lr
-      lowdown
-      lynx sacc
-      zip unzip
-      stow
-      silver-searcher
-      nmap
-      ffmpeg graphicsmagick
-      pavucontrol
-      vuizvui.tvl.users.sterni.emacs
-    ] ++ pkgs.vuizvui.sternenseemann.scripts.default;
+    environment = let inherit (pkgs.vuizvui.tvl.users.sterni) emacs; in {
+      systemPackages = with pkgs; [
+        lr
+        lowdown
+        lynx sacc
+        zip unzip
+        stow
+        silver-searcher
+        nmap
+        ffmpeg graphicsmagick
+        pavucontrol
+        emacs
+      ] ++ pkgs.vuizvui.sternenseemann.scripts.default;
+
+      variables = {
+        EDITOR = "${emacs}/bin/emacsclient";
+        VISUAL = "${emacs}/bin/emacsclient";
+      };
+    };
+
+    # To accomodate old habits
+    programs.fish.shellInit = ''
+      alias nvim emacsclient
+    '';
 
     services.earlyoom = {
       enable = true;
diff --git a/machines/sternenseemann/base.nix b/machines/sternenseemann/base.nix
index 8d8d7c94..b9f27beb 100644
--- a/machines/sternenseemann/base.nix
+++ b/machines/sternenseemann/base.nix
@@ -6,11 +6,13 @@ let
     getBins
     ;
 
-  bins = (getBins pkgs.neovim [ "nvim" ])
-      // (getBins pkgs.less [ "less" ])
-      ;
+  bins = getBins pkgs.less [ "less" ];
 
 in {
+  imports = [
+    ./vim-basic.nix
+  ];
+
   config = {
     boot.cleanTmpDir = true;
 
@@ -103,12 +105,9 @@ in {
       man-pages-posix
       gitFull
       file htop psmisc tmux
-      neovim
     ];
 
     environment.variables = {
-      EDITOR = bins.nvim;
-      VISUAL = bins.nvim;
       PAGER = "${bins.less} -R";
       # git-diff without the extra options passed to less
       GIT_PAGER = bins.less;
diff --git a/machines/sternenseemann/vim-basic.nix b/machines/sternenseemann/vim-basic.nix
new file mode 100644
index 00000000..5f994149
--- /dev/null
+++ b/machines/sternenseemann/vim-basic.nix
@@ -0,0 +1,28 @@
+{ lib, pkgs, ... }:
+
+let
+  # Slightly modified version of
+  # https://leahneukirchen.org/blog/archive/2020/05/a-minimal-vimrc.html
+  vimrc = pkgs.writeText "vimrc" ''
+    set nocp bs=2 hid is ru sm t_te= t_ti= vb wim=longest,list
+    set ignorecase smartcase
+  '';
+
+  vim = pkgs.writeShellScriptBin "vim" ''
+    exec "${lib.getBin pkgs.vim}/bin/vim" -u "${vimrc}" "$@"
+  '';
+
+in
+
+{
+  config = {
+    environment = {
+      systemPackages = [ vim ];
+      variables = {
+        # on non-servers this will be set to emacs in base-laptop.nix
+        EDITOR = lib.mkDefault "${vim}/bin/vim";
+        VISUAL = lib.mkDefault "${vim}/bin/vim";
+      };
+    };
+  };
+}