Compare commits

...

2 Commits

Author SHA1 Message Date
4de1c6f3ed vimv 2026-02-03 22:28:09 +01:00
4d9906b59c admin tools 2026-02-03 22:28:01 +01:00
3 changed files with 135 additions and 1 deletions

View File

@@ -29,10 +29,13 @@
git = modules/git.nix;
udiskie = modules/udiskie.nix;
niri = modules/niri;
tools = modules/tool.nix;
};
overlays.default = final: prev: {
vim-kmein = prev.callPackage packages/vim { };
vimv = prev.callPackage packages/vimv.nix { };
ashell-kmein = import packages/ashell.nix {
inherit (inputs) wrappers;
pkgs = prev;
@@ -57,7 +60,13 @@
};
in
{
inherit (pkgs) vim-kmein git-kmein niri-kmein;
inherit (pkgs)
ashell-kmein
git-kmein
niri-kmein
vim-kmein
vimv
;
}
);

98
modules/tool.nix Normal file
View File

@@ -0,0 +1,98 @@
{ pkgs, lib, ... }:
let
isDarwin = lib.strings.hasSuffix "darwin" pkgs.system;
in
{
environment.systemPackages = [
pkgs.htop
pkgs.btop
pkgs.iftop
pkgs.lsof
pkgs.wget
pkgs.curl
pkgs.zip
pkgs.unzip
pkgs.unrar
pkgs.p7zip
pkgs.fd
pkgs.ripgrep
pkgs.bat
pkgs.findutils
pkgs.coreutils
pkgs.tree
pkgs.rlwrap
pkgs.file
pkgs.progress
pkgs.gdu
pkgs.rmlint
pkgs.jq
pkgs.yq
pkgs.bc
pkgs.vimv
pkgs.pciutils # for lspci
]
++ lib.optionals (!isDarwin) [
pkgs.usbutils # for lsusb
pkgs.lshw
pkgs.iotop
pkgs.psmisc # killall, pstree
];
environment.shellAliases =
let
take = pkgs.writers.writeDash "take" ''
mkdir "$1" && cd "$1"
'';
cdt = pkgs.writers.writeDash "cdt" ''
cd $(mktemp -p "$XDG_RUNTIME_DIR" -d "cdt-XXXXXX")
pwd
'';
wcd = pkgs.writers.writeDash "wcd" ''
cd "$(readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname)/.."
'';
where = pkgs.writers.writeDash "where" ''
readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname
'';
in
{
nixi = "nix repl nixpkgs";
take = "source ${take}";
wcd = "source ${wcd}";
where = "source ${where}";
# temporary files and directories
cdt = "source ${cdt}";
vit = "$EDITOR $(mktemp)";
# file safety
mv = "${pkgs.coreutils}/bin/mv --interactive";
rm = "${pkgs.coreutils}/bin/rm --interactive --verbose";
cp = "${pkgs.coreutils}/bin/cp --interactive";
# colours
cat = "${pkgs.bat}/bin/bat --theme=ansi --style=plain";
l = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso --almost-all";
ls = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso";
ll = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso -l";
la = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso --almost-all -l";
}
// (
if isDarwin then
{ }
else
{
"ß" = "${pkgs.util-linux}/bin/setsid";
ip = "${pkgs.iproute2}/bin/ip -c";
# systemd
s = "${pkgs.systemd}/bin/systemctl";
us = "${pkgs.systemd}/bin/systemctl --user";
j = "${pkgs.systemd}/bin/journalctl";
uj = "${pkgs.systemd}/bin/journalctl --user";
}
);
}

27
packages/vimv.nix Normal file
View File

@@ -0,0 +1,27 @@
{
lib,
stdenv,
bash,
fetchFromGitHub,
}:
stdenv.mkDerivation {
name = "vimv";
src = fetchFromGitHub {
owner = "thameera";
repo = "vimv";
rev = "4152496c1946f68a13c648fb7e583ef23dac4eb8";
sha256 = "1fsrfx2gs6bqx7wk7pgcji2i2x4alqpsi66aif4kqvnpqfhcfzjd";
};
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out/bin
sed 's:#!/bin/bash:#!${bash}/bin/bash:' $src/vimv > $out/bin/vimv
chmod 755 $out/bin/vimv
'';
meta = with lib; {
homepage = "https://github.com/thameera/vimv";
description = "Batch-rename files using Vim";
license = licenses.mit;
platforms = platforms.all;
};
}