nix/home-manager/common/software/cli/bash.nix

224 lines
7 KiB
Nix
Raw Normal View History

2023-07-01 19:12:43 +09:00
{ config, pkgs, ... }: {
# Configure BASH exports
2023-07-07 07:36:51 +09:00
# https://nix-community.github.io/home-manager/options.html
# https://github.com/justjanne/powerline-go
2023-08-16 10:53:33 +09:00
# https://nix-community.github.io/home-manager/options.html#opt-programs.powerline-go.enable
programs.powerline-go = {
2024-01-19 13:02:09 +09:00
enable = false;
2023-08-16 10:53:33 +09:00
# https://github.com/justjanne/powerline-go#customization
settings = {
2023-08-21 20:51:58 +09:00
hostname-only-if-ssh = true;
cwd-max-depth = 2;
2024-01-04 22:22:55 +09:00
condensed = false;
2024-01-05 16:57:48 +09:00
theme = "default";
2023-12-13 22:37:54 +09:00
# valid choices: default, low-contrast, gruvbox, solarized-dark16, solarized-light16
2024-01-04 19:41:36 +09:00
# theme = "gruvbox";
2023-08-16 10:53:33 +09:00
};
2023-08-16 20:07:56 +09:00
modules = [
"venv"
"user"
2023-08-21 20:51:58 +09:00
"host"
2023-08-16 20:07:56 +09:00
"ssh"
"cwd"
"nix-shell"
"perms"
"git"
"docker"
"exit"
2023-08-21 19:33:50 +09:00
"root"
2023-08-16 20:07:56 +09:00
];
2023-08-16 10:53:33 +09:00
};
2023-07-10 19:50:38 +09:00
2024-01-19 13:13:18 +09:00
imports = [ ./bash.d/starship-theme.nix ];
2023-07-01 19:12:43 +09:00
programs = {
2024-01-19 13:02:09 +09:00
starship = {
enable = true;
enableBashIntegration = true;
};
2023-07-01 19:12:43 +09:00
bash = {
2023-07-01 19:39:48 +09:00
enable = true;
2023-07-01 19:12:43 +09:00
enableCompletion = true;
2023-09-01 17:22:07 +09:00
initExtra = ''
GPG_TTY=$(tty)
2023-12-13 21:27:28 +09:00
ssh-add
2023-09-01 17:22:07 +09:00
'';
2023-08-22 21:11:46 +09:00
sessionVariables = {
# Set the GTK Theme
2023-08-31 21:17:58 +09:00
# GTK_THEME = "Gruvbox-Dark-BL";
2023-08-22 21:11:46 +09:00
XDG_DATA_HOME = "$HOME/.local/share";
2023-09-01 13:07:30 +09:00
# Disable askpass for cli auth:
2023-10-16 12:39:13 +09:00
# SSH_ASKPASS = "";
2023-08-22 21:11:46 +09:00
};
2023-07-07 07:36:51 +09:00
bashrcExtra = ''
2023-12-28 12:05:53 +09:00
restart-docker() {
docker stop $1
docker rm $1
docker-compose up -d $1
}
2023-09-30 14:03:08 +09:00
# Build ISOs/SD Card Images
2023-12-15 13:56:53 +09:00
nixos-build-all-images-verbose() {
echo "Building Linode image..."
nixos-build-linode-img-verbose
echo "Building Raspberry Pi image..."
nixos-build-pi-img-verbose
echo "Building ISO Console image..."
nixos-build-console-verbose
echo "Building ISO Desktop image..."
nixos-build-desktop-verbose
ls -lah ~/ | grep nixos
}
2023-12-13 17:02:30 +09:00
nixos-build-all-images() {
2023-12-15 13:53:18 +09:00
echo "Building Linode image..."
2023-12-13 17:02:30 +09:00
nixos-build-linode-img
2023-12-15 13:53:18 +09:00
echo "Building Raspberry Pi image..."
2023-12-15 11:20:44 +09:00
nixos-build-pi-img
2023-12-15 13:53:18 +09:00
echo "Building ISO Console image..."
2023-12-13 17:02:30 +09:00
nixos-build-console
2023-12-15 13:53:18 +09:00
echo "Building ISO Desktop image..."
2023-12-13 17:02:30 +09:00
nixos-build-desktop
2023-12-15 13:53:18 +09:00
ls -lah ~/ | grep nixos
2023-12-13 17:02:30 +09:00
}
2023-12-15 13:56:53 +09:00
nixos-build-pi-img-verbose() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-rpi4-img --show-trace --verbose
cp result/sd-image/nixos-sd-image* ~/.
rm -f result
popd
}
nixos-build-linode-img-verbose() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-linode-img --show-trace --verbose
cp result/nixos.img.gz ~/nixos-linode-`ddate`-`git rev-parse HEAD | cut -b 1-7`.img.gz
rm -f result
popd
}
nixos-build-console-verbose() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-iso-console --show-trace --verbose
cp result/iso/nixos.iso ~/nixos-console-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso
rm -f result
popd
}
nixos-build-desktop-verbose() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-iso-desktop --show-trace --verbose
cp result/iso/nixos.iso ~/nixos-desktop-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso
rm -f result
popd
}
2023-09-30 14:03:08 +09:00
nixos-build-pi-img() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-rpi4-img
2023-12-15 11:20:44 +09:00
cp result/sd-image/nixos-sd-image* ~/.
rm -f result
2023-09-30 14:03:08 +09:00
popd
}
2023-12-05 13:31:11 +09:00
nixos-build-linode-img() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-linode-img
2023-12-13 16:58:59 +09:00
cp result/nixos.img.gz ~/nixos-linode-`ddate`-`git rev-parse HEAD | cut -b 1-7`.img.gz
rm -f result
2023-12-05 13:31:11 +09:00
popd
}
2023-09-30 14:03:08 +09:00
nixos-build-console() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-iso-console
cp result/iso/nixos.iso ~/nixos-console-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso
rm -f result
popd
}
2023-09-30 14:08:43 +09:00
nixos-build-desktop() {
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-iso-desktop
cp result/iso/nixos.iso ~/nixos-desktop-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso
rm -f result
popd
}
2023-09-30 14:03:08 +09:00
# NixOS Related
2023-07-07 07:33:18 +09:00
nix-clean-all() {
2023-08-23 22:14:35 +09:00
sudo nix-env -u --always
sudo nix-collect-garbage -d
2023-07-07 07:33:18 +09:00
}
2023-09-30 14:03:08 +09:00
# Update SOPS Secrets
2023-09-23 09:19:07 +09:00
install-secrets() {
pushd /etc/nixos/git
nix develop -c update-repo
popd
}
update-repo() {
for i in $(ls secrets); do
2023-09-23 09:21:44 +09:00
echo "Updateing secrets/$i"
2023-09-23 09:19:07 +09:00
sops updatekeys secrets/$i -y
done
}
2023-07-07 07:33:18 +09:00
'';
2023-07-01 19:12:43 +09:00
shellAliases = {
2023-07-12 12:55:20 +09:00
prime-select = "nvidia-offload";
2024-01-07 21:54:59 +09:00
screenshot = ''grim -g "$(slurp)" | wl-copy -t image/png'';
2023-07-12 12:54:40 +09:00
2023-08-25 21:27:31 +09:00
# Don't use X to open emacs
2023-08-25 21:29:57 +09:00
emacs = "emacs -nw";
2023-08-25 21:27:31 +09:00
2023-07-01 20:14:29 +09:00
# docker
2023-12-16 10:34:33 +09:00
d = "docker";
dc = "docker-compose";
de = "docker exec -it";
dl = "docker logs -f ";
2023-12-26 12:43:55 +09:00
dps = ''docker ps --format "table [{{.ID}}] {{.Names}}\t{{.Status}}\t{{.State}}\t{{.Label \"type\"}}"'';
2023-07-01 20:14:29 +09:00
# bash / system
2024-01-19 12:21:26 +09:00
ls = "exa --icons -F --group-directories-first --git";
2023-09-28 20:05:34 +09:00
cp = "rsync -avr";
2024-01-19 12:21:26 +09:00
ll = "exa -lah --icons -F --group-directories-first --git";
2023-09-28 20:05:34 +09:00
rm = "rm -i";
df = "duf";
cat = "bat";
2023-07-01 20:14:29 +09:00
# git
2023-11-21 20:50:22 +09:00
g = "git";
2023-09-01 17:22:07 +09:00
ga = "git add -A";
gb = "git branch";
gc = "git commit";
2023-07-01 19:12:43 +09:00
gca = "git commit -a";
gco = "git checkout";
2023-09-01 17:22:07 +09:00
gd = "git diff";
gp = "git pull --prune";
2023-07-01 19:12:43 +09:00
gpu = "git push origin HEAD";
2023-09-01 17:22:07 +09:00
gs = "git status -sb";
2023-07-01 20:14:29 +09:00
# time / date
2023-07-01 19:12:43 +09:00
tdate = "date +%Y.%m.%d..%H.%M";
ttime = "date +%H.%M";
2023-07-01 20:14:29 +09:00
ddate = "date +%Y.%m.%d";
2023-09-01 17:22:07 +09:00
dday = "date +%A";
2023-07-01 20:42:01 +09:00
2023-07-01 20:14:29 +09:00
# nixos-rebuild
2023-09-20 18:52:00 +09:00
ns = "nix shell";
2023-09-01 17:22:07 +09:00
nr = "sudo nixos-rebuild";
2023-08-23 22:14:35 +09:00
nrs = "sudo nixos-rebuild --upgrade switch";
nrt = "sudo nixos-rebuild test";
nrb = "sudo nixos-rebuild build";
2023-08-23 15:09:52 +09:00
# Rebuild everything
2023-08-23 22:46:54 +09:00
rebuild-home = "git -C /etc/nixos/git pull && home-manager switch -b backup --flake /etc/nixos/git";
rebuild-host = "git -C /etc/nixos/git pull && sudo nixos-rebuild switch --flake /etc/nixos/git";
2023-12-10 13:54:39 +09:00
rebuild-all = "rebuild-host && rebuild-home";
2023-11-21 14:37:16 +09:00
rebuild-host-remote = "git -C /etc/nixos/git pull && sudo nixos-rebuild switch --flake /etc/nixos/git -j0";
2023-11-21 14:38:39 +09:00
rebuild-home-remote = "git -C /etc/nixos/git pull && home-manager switch -b backup --flake /etc/nixos/git --max-jobs 0";
2023-12-10 13:54:39 +09:00
rebuild-all-remote = "rebuild-host-remote && rebuild-home-remote";
2023-07-01 19:12:43 +09:00
};
};
};
}