From 44af71946efc57fe37d57919eab6ddc81b445cc6 Mon Sep 17 00:00:00 2001
From: Chris Cochrun <chris@cochrun.xyz>
Date: Fri, 19 Jul 2024 09:04:34 -0500
Subject: [PATCH] some tweaks to nu

---
 home/home.nix             | 13 +++++++++++--
 modules/emacs.nix         |  2 ++
 pkgs/desktop-packages.nix |  2 +-
 scripts/rust-script-gen   | 14 ++++++++++++++
 scripts/rusty.rs          |  4 ++--
 5 files changed, 30 insertions(+), 5 deletions(-)
 create mode 100755 scripts/rust-script-gen

diff --git a/home/home.nix b/home/home.nix
index 3f55d50..bb5ecac 100644
--- a/home/home.nix
+++ b/home/home.nix
@@ -956,6 +956,12 @@ end
     };
     configFile = {
       text = ''
+      let fish_completer = {|spans|
+          fish --command $'complete "--do-complete=($spans | str join " ")"'
+          | $"value(char tab)description(char newline)" + $in
+          | from tsv --flexible --no-infer
+      }
+
       $env.config = {
         show_banner: false
       }
@@ -971,7 +977,10 @@ end
   };
 
 
-  programs.atuin.enable = true;
+  programs.atuin = {
+    enable = true;
+    enableNushellIntegration = false;
+  };
 
   programs.direnv = {
     enable = true;
@@ -1068,7 +1077,7 @@ end
         padding.y = 10;
         dynamic_padding = true;
       };
-      shell.program = "fish";
+      shell.program = "nu";
       font = {
         normal = {
           family = "VictorMono Nerd Font";
diff --git a/modules/emacs.nix b/modules/emacs.nix
index 4dab319..3bb8071 100644
--- a/modules/emacs.nix
+++ b/modules/emacs.nix
@@ -19,6 +19,8 @@ with lib;
         vertico-posframe
         chatgpt-shell
         denote
+        nushell-ts-mode
+        nushell-mode
         # geiser-guile
         # flymake-guile
         # flycheck-guile
diff --git a/pkgs/desktop-packages.nix b/pkgs/desktop-packages.nix
index f0e42ef..e327470 100644
--- a/pkgs/desktop-packages.nix
+++ b/pkgs/desktop-packages.nix
@@ -129,7 +129,7 @@ with lib;
     xdg-desktop-portal-kde
     lxappearance
     spotdl
-    rustdesk
+    # rustdesk
     # (kdenlive.override {
     #     mlt = mlt.override {
     #       ffmpeg = ffmpeg-full;
diff --git a/scripts/rust-script-gen b/scripts/rust-script-gen
new file mode 100755
index 0000000..d6e9504
--- /dev/null
+++ b/scripts/rust-script-gen
@@ -0,0 +1,14 @@
+#!/usr/bin/env nu
+
+def main [script: string] {
+    cd /home/chris/dev
+    mkdir $script
+    cd $script
+    git init
+    nix flake init --template templates#rust
+    direnv allow
+    echo "Try running this next:
+    cargo init
+    cargo add clap --features=derive"
+    emacsclient /home/chris/dev/$script
+}
diff --git a/scripts/rusty.rs b/scripts/rusty.rs
index b191f7b..de2be29 100755
--- a/scripts/rusty.rs
+++ b/scripts/rusty.rs
@@ -1,7 +1,7 @@
 #!/usr/bin/env -S nix shell "github:nix-community/fenix?rev=092bd452904e749efa39907aa4a20a42678ac31e#minimal.toolchain" -c cargo -q -Zscript
 ```cargo
 [dependencies]
-clap = { version = "4.2", features = ["derive"] }
+clap = { version = "4.7", features = ["derive"] }
 ```
 
 use clap::Parser;
@@ -10,7 +10,7 @@ use clap::Parser;
 #[clap(version)]
 struct Args {
     #[clap(short, long, help = "Path to config")]
-    config: Option<std::path::PathBuf>,
+    video: Option<std::path::PathBuf>,
 }
 
 fn main() {