From 881a65263d375f910f86f77bcf5bbd6e37225ac0 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sun, 4 May 2025 19:00:11 +0200 Subject: [PATCH] +skim functions for nushell --- home/features/cli/nushell.nix | 62 ++++++++++++++++++++++++++++++++-- secrets/m3tam3re-secrets.age | Bin 1400 -> 1405 bytes 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/home/features/cli/nushell.nix b/home/features/cli/nushell.nix index a7b8ada..f25b870 100644 --- a/home/features/cli/nushell.nix +++ b/home/features/cli/nushell.nix @@ -35,8 +35,6 @@ in { $env.FLAKE = $"($env.HOME)/p/nixos/nixos-config" ''; configFile.text = '' - #source /run/agenix/${config.home.username}-secrets - if (tty) == "/dev/tty1" { exec uwsm start -S -F /run/current-system/sw/bin/Hyprland } @@ -74,7 +72,65 @@ in { alias vi = nvim alias vim = nvim - def h [] { ^nu -c (history | get command | uniq | sk) } + def history_fuzzy [] { + let selected = ( + history + | uniq + | get command + | sk --height 40% --layout=reverse --color=fg:#f8f8f2,bg:#282a36,current_bg:#ff79c6,current_fg:#bd93f9,info:#ffb86c,marker:#6272a4,pointer:#50fa7b,spinner:#50fa7b + ) + if ($selected | is-not-empty) { + ^nu -c ($selected) + } else { + null + } + } + def find_fuzzy [] { + # Find non-hidden text files with matches for any content and select one via fuzzy search + let selected = ( + ^fd --type file --no-hidden -X rg -l --files-with-matches . + | lines + | sk --format { $in } + --height 40% + --layout=reverse + --preview { open $in | bat --color=always --line-range :50 } + --color=fg:#f8f8f2,bg:#282a36,current_bg:#ff79c6,current_fg:#bd93f9,info:#ffb86c,marker:#6272a4,pointer:#50fa7b,spinner:##50fa7b + ) + + # Open the selected file in the default editor if a selection was made + if ($selected | is-not-empty) { + ^$env.EDITOR $selected + } + } + + $env.config = { + keybindings: [ + { + name: history_fuzzy + modifier: control + keycode: char_r + mode: [emacs, vi_insert, vi_normal] + event: [ + { + send: executehostcommand + cmd: "history_fuzzy" + } + ] + } + { + name: history_fuzzy + modifier: control + keycode: char_t + mode: [emacs, vi_insert, vi_normal] + event: [ + { + send: executehostcommand + cmd: "find_fuzzy" + } + ] + } + ] + } ''; }; }; diff --git a/secrets/m3tam3re-secrets.age b/secrets/m3tam3re-secrets.age index dd69bad2d64bd7fb91467a2990bd0d10b461c073..acfef717408e7e5849f371b8c5da9e314fd2c91a 100644 GIT binary patch delta 1340 zcmeyt^_OdcPJLc!lDD>NcvV%DWq5&~OQ>U1iHB>HyG3YDkg1!ci+NeDZ%RsdL{W%q zGM7_WYNEMgN@+>4p-G8}X<%+(VXkqJbFQaXP>GXQg|k~hSx~;Oe`0W^374*&LUD11 zZfc5=si~o*f@yYnacN zy19O+le?QEm#KS-nTe@MUSUa8Wm;;mUuI5fsbgqzhGU3Ns&8I;T17~ZPjFR6V0e1| z#E;_P2E`?Y-hSDx9)+pFMFzq87M?|=z7?4Tq2{UHj={;^!S0Spmbu>f1`+vOQDK%L z=@~9QMFEL{70ChmPA;Cor6v{H86M%L0os|C6%hrlPTp>g`C%55;~B;4bG$OM%@VUR z+ep%=|5r3KLyQ6AhD-D@%+598GgVvm+cU!!iQ7!X16x6U!?sg1th`63cya zj4RzzeZ7jx%&T%Ds+`lyqFlnf+*8y291VS8p;T0ysNfQq<7!^cm1pFYnPM3b8B`P= z;GJpUpXZ*k>egv zT)~y-Qeo(y9A=oE>F1N=~m=zlHs3fYH3!UYaHaAmRcVb5awu@8RnQ;=&J1zX`Jnp z8s?ksRp^@R5#bjWY*?9X>>FrqRAiFklT=zz!DX3Q9;6@TpXOFrQDzyU9h~A@l44RG zV(Ob!84;9PYU&+WQ5cwNY+g~8Z62OwT#^`G8s+I+R&HwI?OW&-TF8}e5*+63>y+ja z=vYuzKx?kT^QsRq;J7hSmaXRS83vvU655)>8PC&oL1x= z>EdZ#;#yf%>SFHc6Ky#P;d!i&2mQT&~N@{CvE^ywu^PSD!d%d|#N!^+% zmotnySe3@c;UzA9wSa@A;_CS-wp`=E@I6J?)cA+8M-y7yPd2=6~ywW%{<~k7nS) zkhKEJ?>dz;T&7=B-v04P!tNi-b|}Y2o?l?x!tndVd+XyxR;@cr*WolsYyzpv5T9TerCQ|rgliBXOweErcq8%s9RvU z1y^N>Wm0aYXHIZ_n7*$?xL0Iad0J3;h?l-=V3K!%Z?J26shL}FsH1mUHkYoQLUD11 zZfc5=si~o*f@yYnaREzTP3BUMBuoB@r2B73rZ|76q0S zDS_UpkzSR?Zf3!iZdKvIKH82YIRP$3q1vI|URefJ5eAt?DIw{T;~B;4-O`IHEs{*L z{maawva?ci1D*0+Q!{c(vK(_W^g}W;oSY*(1H;3d%rXMGDsu``Lrp8R11hpz!i@cm zN*v8h3QhgWvU9Rhi#@%f%+ieVvO|m0e2gMtp;T0ysNfQq<7!^cmFwziXqe=Y6jYU5 zVrZEe8KiAtUQ+Lt5$;&von(*`m{{O%Rvh7&l9%KkmY?G2n(60gRG5_#k?iaqRA^FA z;mqaeZ<*?E8J-hT7UGg#6kHmT8jtQBa?15Rww0Ulw8-VBwhT<{#>w zZB%Yzk)LU3;iv8HoKlfe6p>e1>0j((n3R%N$d#E_Xk2CP8Ia-Y;$BeY>sIC%?BZ`x zUX>Ra8DJ2U?i1pX8xR>15oS>Cm+S9uYH8vV7Fp%zRGH+J;TWD=V!`E@;TM!>pzZ5g zu5D)GnOPqmG#SQ%Aen3m=qY@(l> z7oM2HkA% zVOEml%`H@97vCU>3m@RS=Y$Viaa*WLV&lS?S|%S)gxV znc{9(l=4Dh_n4IKpWNu#WZthbQ>E@Hf#igsOtKeFZ zT~u#U;arxOYFzH-66I7>Y#178QI&3KQkq|?pPriHQdc&U2x9 z>%1gqeK;?b`CI9|iSE4*T*3J^AGn!}B6~P$<;L*X?XY1du?7wdCO1O~uPV9a%~n(EW6m4#mr!=C7-_r>hoD@DF$Ix*x!h z^UWyOUFgzU<`-IhE!P%IxVUoD`MH+cdm1OL;#7}cYaF(l;raRCWf9jN@qBh!9UNL6 z=N0p^z^3Oz{jx}V-Dh4l?(6oi>!^&oUs{&N*R$!J{aqFIqp=|uBxhX^y#GzB?{qT* zZ?L$LzwXRxEvu`EIj(!2Tq#LoJ5ztD=gRASf9VmAOis3 Cp6Y`D