From ab3127e37e98c54ec00062cff5747c03c7a0046d Mon Sep 17 00:00:00 2001
From: Eduardo Trujillo <ed@chromabits.com>
Date: Mon, 20 Mar 2023 19:27:50 -0700
Subject: [PATCH] feat: Improve experience when using the dev VM

---
 flake.nix | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/flake.nix b/flake.nix
index c883ac9..2c34d4c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -20,6 +20,16 @@
           inherit system;
         };
       in rec {
+        packages.resize-tty = pkgs.writeShellScriptBin "resize-tty" ''
+          echo -ne '\e[s\e[5000;5000H'
+          IFS='[;' read -p $'\e[6n' -d R -a pos -rs
+          echo -ne '\e[u'
+
+          ${pkgs.coreutils-full}/bin/stty cols "''${pos[2]}" rows "''${pos[1]}"
+
+          export TERM=xterm-256color
+        '';
+
         packages.nixosConfigurations.vm = nixpkgs.lib.nixosSystem {
           inherit system;
           modules = [
@@ -27,12 +37,15 @@
             ({pkgs, ...}: {
               system.stateVersion = "22.11";
 
+              services.getty.autologinUser = "neovim";
+
               virtualisation.vmVariant = {
                 virtualisation = {
                   graphics = false;
                 };
               };
 
+              users.groups.neovim = {};
               users.users.neovim = {
                 initialPassword = "example";
                 isNormalUser = true;
@@ -49,9 +62,21 @@
                 useUserPackages = true;
 
                 users.neovim = ({...}: {
-                  config.home.homeDirectory = "/home/neovim";
-                  config.home.stateVersion = "22.11";
                   imports = [self.nixosModules.home-manager.neovim-config];
+
+                  config = {
+                    home = {
+                      homeDirectory = "/home/neovim";
+                      stateVersion = "22.11";
+                    };
+
+                    programs.bash = {
+                      enable = true;
+                      bashrcExtra = ''
+                        ${self.packages.${system}.resize-tty}/bin/resize-tty
+                      '';
+                    };
+                  };
                 });
               };
             })
-- 
GitLab