91 lines
1.5 KiB
Nix
91 lines
1.5 KiB
Nix
{ inputs, pkgs, ... }:
|
|
let
|
|
php = pkgs.php82;
|
|
phpPackages = pkgs.php82Packages;
|
|
|
|
inherit (pkgs) writeShellScriptBin;
|
|
|
|
script-t = writeShellScriptBin "t" ''
|
|
# Credit to ThePrimeagen.
|
|
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
if [[ $# -eq 1 ]]; then
|
|
selected=$1
|
|
else
|
|
# Get the session name from fuzzy-finding list of directories and generating a
|
|
# tmux-safe version.
|
|
items=$(find ~/Code/* ~/Code ~ ~/Documents /tmp \
|
|
-maxdepth 1 -mindepth 1 -type d \
|
|
! -name "*-old" \
|
|
! -name "*.old"
|
|
)
|
|
|
|
selected=$(echo "''${items}" | fzf)
|
|
fi
|
|
|
|
if [[ -z "''${selected}" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
session_name=$(basename "''${selected}" | sed 's/\./_/g')
|
|
session_path="''${selected}"
|
|
|
|
# Git worktrees.
|
|
if [[ -e "''${selected}/main" ]]; then
|
|
session_path="''${selected}/main"
|
|
fi
|
|
|
|
if tmux has-session -t "''${session_name}" 2> /dev/null; then
|
|
tmux attach -t "''${session_name}"
|
|
fi
|
|
|
|
tmux new-session -d -s "''${session_name}" -c "''${session_path}"
|
|
|
|
tmux switch-client -t "''${session_name}" || tmux attach -t "''${session_name}"
|
|
'';
|
|
in
|
|
with pkgs;
|
|
[
|
|
script-t
|
|
|
|
inputs.build-configs.packages.${pkgs.system}.default
|
|
|
|
awscli2
|
|
bitwarden-cli
|
|
bottom
|
|
cachix
|
|
ctop
|
|
delta
|
|
dog
|
|
doppler
|
|
entr
|
|
fd
|
|
file
|
|
gcc
|
|
gh
|
|
git
|
|
git-crypt
|
|
gnupg
|
|
go
|
|
htop
|
|
inotify-tools
|
|
jq
|
|
lua
|
|
mysql
|
|
php
|
|
phpPackages.composer
|
|
pv
|
|
rustywind
|
|
tldr
|
|
tree
|
|
tree-sitter
|
|
unzip
|
|
virtualenv
|
|
wget
|
|
xcp
|
|
xh
|
|
yarn
|
|
]
|