nix-conf/home/user/shellAlias.nix

74 lines
1.9 KiB
Nix

{
osConfig,
config,
pkgs,
...
}:
let
hostname = osConfig.networking.hostName;
shouldNotify =
(builtins.hasAttr "ntfy-client" config.services) && config.services.ntfy-client.enable;
rebuildCommand = ''
sudo nixos-rebuild switch --target-host "$TARGET" \
--build-host "$BUILD" \
--sudo --ask-sudo-password $@'';
rebuild = pkgs.writeShellScriptBin "rebuild" ''
${rebuildCommand}
'';
# Notification
nrebuild = pkgs.writeShellScriptBin "nrebuild" ''
${
if shouldNotify then
''
export NTFY_TITLE="🎯 ${hostname}"
export NTFY_TAGS="gear"
if ${rebuildCommand}
then
ntfy pub system-build " Build success" > /dev/null 2>&1
else
ntfy pub system-build " Build failed" > /dev/null 2>&1
fi
''
else
rebuildCommand
}
'';
in
{
home.packages = [
nrebuild
rebuild
];
programs.fish.shellAliases = {
ls = "exa --icons";
lp = "exa"; # Pure output
cat = "bat";
g = "git";
t = "tmux";
podt = "podman-tui";
# Nixos
fullClean = "sudo nix store gc && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
# Hyprland
hyprlog = "grep -v \"arranged\" $XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log | cat";
# Systemd Boot
setWin = "sudo bootctl set-oneshot auto-windows";
goWin = "sudo bootctl set-oneshot auto-windows && reboot";
goBios = "sudo bootctl set-oneshot auto-reboot-to-firmware-setup && reboot";
# TTY
hideTTY = ''sudo sh -c "echo 0 > /sys/class/graphics/fb0/blank"'';
showTTY = ''sudo sh -c "echo 1 > /sys/class/graphics/fb0/blank"'';
# Recover from hyprlock corruption
letMeIn = ''hyprctl --instance 0 "keyword misc:allow_session_lock_restore 1" && hyprctl --instance 0 dispatch "exec hyprlock"'';
};
}