311 lines
7.2 KiB
Nix
311 lines
7.2 KiB
Nix
{ lib, pkgs, config, ... }:
|
|
{
|
|
home.packages = with pkgs; [
|
|
binutils
|
|
coreutils
|
|
dnsutils
|
|
dasht
|
|
dosfstools
|
|
#git
|
|
bottom
|
|
gptfdisk
|
|
starship
|
|
iputils
|
|
jq
|
|
manix
|
|
moreutils
|
|
nix-index
|
|
cached-nix-shell
|
|
nmap
|
|
ripgrep
|
|
skim
|
|
tealdeer
|
|
usbutils
|
|
utillinux
|
|
whois
|
|
iftop
|
|
wget
|
|
curl
|
|
exa
|
|
bat
|
|
fd
|
|
ncdu
|
|
duf
|
|
trash-cli
|
|
nix-index
|
|
silver-searcher
|
|
tcpdump
|
|
mtr
|
|
file
|
|
lsof
|
|
atool
|
|
strace
|
|
zip
|
|
unzip
|
|
rsync
|
|
tmux
|
|
pwgen
|
|
glow
|
|
pass
|
|
less
|
|
gdb
|
|
xxd
|
|
taskwarrior
|
|
gnupg
|
|
syncthing
|
|
dijo
|
|
#ssb-patchwork
|
|
fontconfig
|
|
pandoc
|
|
(pkgs.writeScriptBin "jq-repl" ''
|
|
#!/usr/bin/env bash
|
|
if [[ -z $1 ]] || [[ $1 == "-" ]]; then
|
|
input=$(mktemp)
|
|
trap "rm -f $input" EXIT
|
|
cat /dev/stdin > $input
|
|
else
|
|
input=$1
|
|
fi
|
|
|
|
echo "" \ | fzf --phony --preview-window="up:90%" --print-query --preview "jq --color-output -r {q} $input"
|
|
'')
|
|
(pkgs.writeScriptBin "flakify" ''
|
|
#!/usr/bin/env zsh
|
|
if [ ! -e flake.nix ]; then
|
|
nix flake new -t github:nix-community/nix-direnv .
|
|
elif [ ! -e .envrc ]; then
|
|
echo "use flake" > .envrc
|
|
direnv allow
|
|
fi
|
|
vim flake.nix
|
|
'')
|
|
(pkgs.writeScriptBin "mx" ''
|
|
#!/usr/bin/env bash
|
|
manix "" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | fzf --preview="manix '{}'" | xargs manix
|
|
'')
|
|
(pkgs.writeScriptBin "monitor" ''
|
|
# hotplug
|
|
connect() {
|
|
# Turn it on if it was off
|
|
xrandr --output HDMI-2 --auto
|
|
xrandr --output HDMI-2 --same-as eDP-1
|
|
}
|
|
|
|
disconnect() {
|
|
xrandr --output HDMI-2 --off
|
|
}
|
|
|
|
xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect
|
|
'')
|
|
(pkgs.writeScriptBin "disconnect-keyboard" ''
|
|
# keyboard on curve is busted
|
|
get_keyboard_id() {
|
|
xinput list | grep 'AT Translated Set' | cut -f2 | cut -d'=' -f2 | xinput float
|
|
}
|
|
|
|
disconnect_keyboard() {
|
|
id=$(get_keyboard_id)
|
|
xinput float $id
|
|
unset id
|
|
}
|
|
|
|
attach_keyboard() {
|
|
id=$(get_keyboard_id)
|
|
xinput reattach $id 3
|
|
unset id
|
|
}
|
|
|
|
disconnect_keyboard
|
|
'')
|
|
];
|
|
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
enableAutosuggestions = false;
|
|
|
|
initExtra = ''
|
|
bindkey -v
|
|
autopair-init
|
|
'';
|
|
sessionVariables = {
|
|
EDITOR = "nvim";
|
|
TERMINFO_DIRS = "${pkgs.kitty.terminfo.outPath}/share/terminfo"; # Needed to run home-manager switch on non-nixOS
|
|
};
|
|
plugins = [
|
|
{
|
|
name = "zsh-autocomplete";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "marlonrichert";
|
|
repo = "zsh-autocomplete";
|
|
rev = "22.01.21";
|
|
sha256 = "+UziTYsjgpiumSulrLojuqHtDrgvuG91+XNiaMD7wIs=";
|
|
};
|
|
}
|
|
{
|
|
name = "zsh-autopair";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "hlissner";
|
|
repo = "zsh-autopair";
|
|
rev = "34a8bca0c18fcf3ab1561caef9790abffc1d3d49";
|
|
sha256 = "1h0vm2dgrmb8i2pvsgis3lshc5b0ad846836m62y8h3rdb3zmpy1";
|
|
};
|
|
file = "autopair.zsh";
|
|
}
|
|
{
|
|
name = "zsh-syntax-highlighting";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "zsh-users";
|
|
repo = "zsh-syntax-highlighting";
|
|
rev = "0.6.0";
|
|
sha256 = "0zmq66dzasmr5pwribyh4kbkk23jxbpdw4rjxx0i7dx8jjp2lzl4";
|
|
};
|
|
file = "zsh-syntax-highlighting.zsh";
|
|
}
|
|
{
|
|
name = "zsh-autoquoter";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "ianthehenry";
|
|
repo = "zsh-autoquoter";
|
|
rev = "819a615fbfd2ad25c5d311080e3a325696b45de7";
|
|
sha256 = "r0jdo+YFTOejvNMTqzXi5ftcLzDpuKejX0wMFwqKdJY=";
|
|
};
|
|
file = "zsh-autoquoter.zsh";
|
|
}
|
|
# {
|
|
# name = "zsh-nix-shell";
|
|
# file = "nix-shell.plugin.zsh";
|
|
# src = pkgs.fetchFromGitHub {
|
|
# owner = "chisui";
|
|
# repo = "zsh-nix-shell";
|
|
# rev = "v0.5.0";
|
|
# sha256 = "0za4aiwwrlawnia4f29msk822rj9bgcygw6a8a6iikiwzjjz0g91";
|
|
# };
|
|
# }
|
|
];
|
|
};
|
|
|
|
programs.starship = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
programs.fzf = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
|
|
programs.zoxide = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
services.kdeconnect.enable = true;
|
|
|
|
home.shellAliases = {
|
|
# quick cd
|
|
".." = "cd ..";
|
|
"..." = "cd ../..";
|
|
"...." = "cd ../../..";
|
|
"....." = "cd ../../../..";
|
|
|
|
# kitaab recents
|
|
kr = "cd /home/anish/kitaab/vimwiki; exa --sort=modified --reverse | fzf --preview 'bat --style=numbers --color=always --terminal-width -1 ./{}'";
|
|
icat = "kitty +kitten icat";
|
|
yt = "ytfzf -T kitty -t ";
|
|
|
|
# modern cli tools
|
|
ls = "exa --icons";
|
|
l = "exa -l --icons";
|
|
la = "exa -la --icons";
|
|
tree = "ls --tree --icons";
|
|
cat = "bat";
|
|
unzip = "aunpack";
|
|
copy = "xclip -selection clipboard";
|
|
paste = "xclip -selection clipboard -o";
|
|
rm = "echo USE TRASH, FOOL: trash ";
|
|
trash = "trash-put";
|
|
make-secret = "< /dev/urandom \\tr -dc _A-Za-z0-9 | head -c \${1:-32};echo;";
|
|
|
|
# task warrior
|
|
# TODO: make blocked a context?
|
|
t = "task -BLOCKED";
|
|
tin = "task in";
|
|
tun = "task -BLOCKED -wait";
|
|
tb = "task list +backlog";
|
|
tr = "task newest limit:page";
|
|
tu = "task unblocked -wait";
|
|
tl = "task list";
|
|
ta = "task add";
|
|
tai = "task add +in";
|
|
tn = "task-note";
|
|
tp = "task limit:page";
|
|
ts = "task sync";
|
|
|
|
# keeping for posterity but now sxhkbd handles screenshot with <Super+O>
|
|
# scrot = "flameshot screen -c -p ~/screenshots/";
|
|
# scrotgui = "flameshot gui -p ~/screenshots/";
|
|
|
|
# git
|
|
g = "git";
|
|
|
|
# grep
|
|
grep = "rg";
|
|
gi = "grep -i";
|
|
|
|
# internet ip
|
|
myip = "dig +short myip.opendns.com @208.67.222.222 2>&1";
|
|
|
|
# nix
|
|
n = "nix";
|
|
np = "n profile";
|
|
ni = "np install";
|
|
nr = "np remove";
|
|
ns = "n search --no-update-lock-file";
|
|
nf = "n flake";
|
|
nfl = "nf lock";
|
|
nepl = "n repl '<nixpkgs>'";
|
|
srch = "ns nixpkgs";
|
|
orch = "ns override";
|
|
nrb = "cd /tmp; sudo nixos-rebuild switch --flake '/etc/nixos/#curve'; cd $OLDPWD";
|
|
nrt = "cd /tmp; sudo nixos-rebuild test --flake '/etc/nixos/#curve'; cd $OLDPWD";
|
|
ned = "cd /etc/nixos; vim; cd $OLDPWD";
|
|
ncd = "cd /etc/nixos";
|
|
mn = ''
|
|
manix "" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="manix '{}'" | xargs manix
|
|
'';
|
|
|
|
# sudo
|
|
s = "sudo -E ";
|
|
pls = "s";
|
|
si = "sudo -i";
|
|
se = "sudoedit";
|
|
|
|
# top
|
|
top = "btm";
|
|
|
|
# systemd
|
|
ctl = "systemctl";
|
|
stl = "s systemctl";
|
|
utl = "systemctl --user";
|
|
ut = "systemctl --user start";
|
|
un = "systemctl --user stop";
|
|
up = "s systemctl start";
|
|
dn = "s systemctl stop";
|
|
jtl = "journalctl";
|
|
|
|
# quick ssh
|
|
kssh = "kitten +kitty ssh";
|
|
smm = "ssh 10.0.69.4"; # box over wireguard
|
|
sm = "ssh mossnet.lan"; # box regular
|
|
ss = "ssh sealight.xyz"; # helix
|
|
# sl = "ssh 69.61.38.225"; # lituus has become helix
|
|
};
|
|
}
|