mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
feat: improve NixOS core functions
This commit is contained in:
parent
f41ec53ee6
commit
61137e106f
4 changed files with 127 additions and 129 deletions
|
|
@ -4890,7 +4890,7 @@ This snipped is added to the activation script that is run after every rebuild a
|
||||||
system.activationScripts.diff = {
|
system.activationScripts.diff = {
|
||||||
supportsDryActivation = true;
|
supportsDryActivation = true;
|
||||||
text = ''
|
text = ''
|
||||||
${pkgs.nvd}/bin/nvd --nix-bin-dir=${pkgs.nix}/bin diff \
|
${pkgs.nvd}/bin/nvd --color=always --nix-bin-dir=${pkgs.nix}/bin diff \
|
||||||
/run/current-system "$systemConfig"
|
/run/current-system "$systemConfig"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
@ -7362,7 +7362,6 @@ This holds packages that I can use as provided, or with small modifications (as
|
||||||
nmap
|
nmap
|
||||||
lsof
|
lsof
|
||||||
nvd
|
nvd
|
||||||
nh
|
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
hyprpicker # color picker
|
hyprpicker # color picker
|
||||||
findutils
|
findutils
|
||||||
|
|
@ -8190,125 +8189,125 @@ zsh is the most convenient shell for me and it happens to be super neat to confi
|
||||||
Here we set some aliases (some of them should be shellApplications instead) as well as some zsh plugins like =fzf-tab=.
|
Here we set some aliases (some of them should be shellApplications instead) as well as some zsh plugins like =fzf-tab=.
|
||||||
|
|
||||||
#+begin_src nix :tangle profiles/common/home/zsh.nix
|
#+begin_src nix :tangle profiles/common/home/zsh.nix
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellAliases = lib.recursiveUpdate
|
shellAliases = lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
hg = "history | grep";
|
hg = "history | grep";
|
||||||
hmswitch = "home-manager --flake ${config.swarselsystems.flakePath}#$(whoami)@$(hostname) switch";
|
hmswitch = "home-manager --flake ${config.swarselsystems.flakePath}#$(whoami)@$(hostname) switch |& nom";
|
||||||
nswitch = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) switch";
|
nswitch = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json";
|
||||||
nboot = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) boot";
|
nboot = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
|
||||||
magit = "emacsclient -nc -e \"(magit-status)\"";
|
magit = "emacsclient -nc -e \"(magit-status)\"";
|
||||||
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
||||||
g = "git";
|
g = "git";
|
||||||
c = "git --git-dir=$HOME/.dotfiles/.git --work-tree=$HOME/.dotfiles/";
|
c = "git --git-dir=$FLAKE/.git --work-tree=$FLAKE/";
|
||||||
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
||||||
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
||||||
hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
|
hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
|
||||||
cd = "z";
|
cd = "z";
|
||||||
cd-orig = "cd";
|
cd-orig = "cd";
|
||||||
cat-orig = "cat";
|
cat-orig = "cat";
|
||||||
cdr = "cd \"$( (find /home/swarsel/Documents/GitHub -maxdepth 1 && echo /home/swarsel/.dotfiles) | fzf )\"";
|
cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\"";
|
||||||
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
||||||
fs-diff = "sudo mount -o subvol=/ /dev/mapper/cryptroot /mnt ; fs-diff";
|
fs-diff = "sudo mount -o subvol=/ /dev/mapper/cryptroot /mnt ; fs-diff";
|
||||||
lt = "ls -lath";
|
lt = "eza -las modified --total-size";
|
||||||
oldshell = "nix shell github:nixos/nixpkgs/\"$1\" \"$2\"";
|
boot-diff = "nix store diff-closures /run/*-system";
|
||||||
}
|
}
|
||||||
config.swarselsystems.shellAliases;
|
config.swarselsystems.shellAliases;
|
||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
syntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
autocd = false;
|
autocd = false;
|
||||||
cdpath = [
|
cdpath = [
|
||||||
"~/.dotfiles"
|
"~/.dotfiles"
|
||||||
# "~/Documents/GitHub"
|
# "~/Documents/GitHub"
|
||||||
];
|
];
|
||||||
defaultKeymap = "emacs";
|
defaultKeymap = "emacs";
|
||||||
dirHashes = {
|
dirHashes = {
|
||||||
dl = "$HOME/Downloads";
|
dl = "$HOME/Downloads";
|
||||||
gh = "$HOME/Documents/GitHub";
|
gh = "$HOME/Documents/GitHub";
|
||||||
|
};
|
||||||
|
history = {
|
||||||
|
expireDuplicatesFirst = true;
|
||||||
|
path = "$HOME/.histfile";
|
||||||
|
save = 10000;
|
||||||
|
size = 10000;
|
||||||
|
};
|
||||||
|
historySubstringSearch.enable = true;
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "fzf-tab";
|
||||||
|
src = pkgs.zsh-fzf-tab;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
initExtra = ''
|
||||||
|
bindkey "^[[1;5D" backward-word
|
||||||
|
bindkey "^[[1;5C" forward-word
|
||||||
|
|
||||||
|
my-backward-delete-word() {
|
||||||
|
# Copy the global WORDCHARS variable to a local variable. That way any
|
||||||
|
# modifications are scoped to this function only
|
||||||
|
local WORDCHARS=$WORDCHARS
|
||||||
|
# Use bash string manipulation to remove `:` so our delete will stop at it
|
||||||
|
WORDCHARS="''${WORDCHARS//:}"
|
||||||
|
# Use bash string manipulation to remove `/` so our delete will stop at it
|
||||||
|
WORDCHARS="''${WORDCHARS//\/}"
|
||||||
|
# Use bash string manipulation to remove `.` so our delete will stop at it
|
||||||
|
WORDCHARS="''${WORDCHARS//.}"
|
||||||
|
# zle <widget-name> will run an existing widget.
|
||||||
|
zle backward-delete-word
|
||||||
|
}
|
||||||
|
zle -N my-backward-delete-word
|
||||||
|
bindkey '^H' my-backward-delete-word
|
||||||
|
|
||||||
|
# This will be our `ctrl+alt+w` command
|
||||||
|
my-backward-delete-whole-word() {
|
||||||
|
# Copy the global WORDCHARS variable to a local variable. That way any
|
||||||
|
# modifications are scoped to this function only
|
||||||
|
local WORDCHARS=$WORDCHARS
|
||||||
|
# Use bash string manipulation to add `:` to WORDCHARS if it's not present
|
||||||
|
# already.
|
||||||
|
[[ ! $WORDCHARS == *":"* ]] && WORDCHARS="$WORDCHARS"":"
|
||||||
|
# zle <widget-name> will run that widget.
|
||||||
|
zle backward-delete-word
|
||||||
|
}
|
||||||
|
# `zle -N` will create a new widget that we can use on the command line
|
||||||
|
zle -N my-backward-delete-whole-word
|
||||||
|
# bind this new widget to `ctrl+alt+w`
|
||||||
|
bindkey '^W' my-backward-delete-whole-word
|
||||||
|
|
||||||
|
vterm_printf() {
|
||||||
|
if [ -n "$TMUX" ] && ([ "''${TERM%%-*}" = "tmux" ] || [ "''${TERM%%-*}" = "screen" ]); then
|
||||||
|
# Tell tmux to pass the escape sequences through
|
||||||
|
printf "\ePtmux;\e\e]%s\007\e\\" "$1"
|
||||||
|
elif [ "''${TERM%%-*}" = "screen" ]; then
|
||||||
|
# GNU screen (screen, screen-256color, screen-256color-bce)
|
||||||
|
printf "\eP\e]%s\007\e\\" "$1"
|
||||||
|
else
|
||||||
|
printf "\e]%s\e\\" "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
vterm_prompt_end() {
|
||||||
|
vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"
|
||||||
|
}
|
||||||
|
setopt PROMPT_SUBST
|
||||||
|
PROMPT=$PROMPT'%{$(vterm_prompt_end)%}'
|
||||||
|
|
||||||
|
vterm_cmd() {
|
||||||
|
local vterm_elisp
|
||||||
|
vterm_elisp=""
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
vterm_elisp="$vterm_elisp""$(printf '"%s" ' "$(printf "%s" "$1" | sed -e 's|\\|\\\\|g' -e 's|"|\\"|g')")"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
vterm_printf "51;E$vterm_elisp"
|
||||||
|
}
|
||||||
|
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
history = {
|
}
|
||||||
expireDuplicatesFirst = true;
|
|
||||||
path = "$HOME/.histfile";
|
|
||||||
save = 10000;
|
|
||||||
size = 10000;
|
|
||||||
};
|
|
||||||
historySubstringSearch.enable = true;
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "fzf-tab";
|
|
||||||
src = pkgs.zsh-fzf-tab;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
initExtra = ''
|
|
||||||
bindkey "^[[1;5D" backward-word
|
|
||||||
bindkey "^[[1;5C" forward-word
|
|
||||||
|
|
||||||
my-backward-delete-word() {
|
|
||||||
# Copy the global WORDCHARS variable to a local variable. That way any
|
|
||||||
# modifications are scoped to this function only
|
|
||||||
local WORDCHARS=$WORDCHARS
|
|
||||||
# Use bash string manipulation to remove `:` so our delete will stop at it
|
|
||||||
WORDCHARS="''${WORDCHARS//:}"
|
|
||||||
# Use bash string manipulation to remove `/` so our delete will stop at it
|
|
||||||
WORDCHARS="''${WORDCHARS//\/}"
|
|
||||||
# Use bash string manipulation to remove `.` so our delete will stop at it
|
|
||||||
WORDCHARS="''${WORDCHARS//.}"
|
|
||||||
# zle <widget-name> will run an existing widget.
|
|
||||||
zle backward-delete-word
|
|
||||||
}
|
|
||||||
zle -N my-backward-delete-word
|
|
||||||
bindkey '^H' my-backward-delete-word
|
|
||||||
|
|
||||||
# This will be our `ctrl+alt+w` command
|
|
||||||
my-backward-delete-whole-word() {
|
|
||||||
# Copy the global WORDCHARS variable to a local variable. That way any
|
|
||||||
# modifications are scoped to this function only
|
|
||||||
local WORDCHARS=$WORDCHARS
|
|
||||||
# Use bash string manipulation to add `:` to WORDCHARS if it's not present
|
|
||||||
# already.
|
|
||||||
[[ ! $WORDCHARS == *":"* ]] && WORDCHARS="$WORDCHARS"":"
|
|
||||||
# zle <widget-name> will run that widget.
|
|
||||||
zle backward-delete-word
|
|
||||||
}
|
|
||||||
# `zle -N` will create a new widget that we can use on the command line
|
|
||||||
zle -N my-backward-delete-whole-word
|
|
||||||
# bind this new widget to `ctrl+alt+w`
|
|
||||||
bindkey '^W' my-backward-delete-whole-word
|
|
||||||
|
|
||||||
vterm_printf() {
|
|
||||||
if [ -n "$TMUX" ] && ([ "''${TERM%%-*}" = "tmux" ] || [ "''${TERM%%-*}" = "screen" ]); then
|
|
||||||
# Tell tmux to pass the escape sequences through
|
|
||||||
printf "\ePtmux;\e\e]%s\007\e\\" "$1"
|
|
||||||
elif [ "''${TERM%%-*}" = "screen" ]; then
|
|
||||||
# GNU screen (screen, screen-256color, screen-256color-bce)
|
|
||||||
printf "\eP\e]%s\007\e\\" "$1"
|
|
||||||
else
|
|
||||||
printf "\e]%s\e\\" "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
vterm_prompt_end() {
|
|
||||||
vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"
|
|
||||||
}
|
|
||||||
setopt PROMPT_SUBST
|
|
||||||
PROMPT=$PROMPT'%{$(vterm_prompt_end)%}'
|
|
||||||
|
|
||||||
vterm_cmd() {
|
|
||||||
local vterm_elisp
|
|
||||||
vterm_elisp=""
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
vterm_elisp="$vterm_elisp""$(printf '"%s" ' "$(printf "%s" "$1" | sed -e 's|\\|\\\\|g' -e 's|"|\\"|g')")"
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
vterm_printf "51;E$vterm_elisp"
|
|
||||||
}
|
|
||||||
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
**** zellij
|
**** zellij
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@
|
||||||
nmap
|
nmap
|
||||||
lsof
|
lsof
|
||||||
nvd
|
nvd
|
||||||
nh
|
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
hyprpicker # color picker
|
hyprpicker # color picker
|
||||||
findutils
|
findutils
|
||||||
|
|
|
||||||
|
|
@ -5,24 +5,24 @@
|
||||||
shellAliases = lib.recursiveUpdate
|
shellAliases = lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
hg = "history | grep";
|
hg = "history | grep";
|
||||||
hmswitch = "home-manager --flake ${config.swarselsystems.flakePath}#$(whoami)@$(hostname) switch";
|
hmswitch = "home-manager --flake ${config.swarselsystems.flakePath}#$(whoami)@$(hostname) switch |& nom";
|
||||||
nswitch = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) switch";
|
nswitch = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json";
|
||||||
nboot = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) boot";
|
nboot = "sudo nixos-rebuild --flake ${config.swarselsystems.flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
|
||||||
magit = "emacsclient -nc -e \"(magit-status)\"";
|
magit = "emacsclient -nc -e \"(magit-status)\"";
|
||||||
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
||||||
g = "git";
|
g = "git";
|
||||||
c = "git --git-dir=$HOME/.dotfiles/.git --work-tree=$HOME/.dotfiles/";
|
c = "git --git-dir=$FLAKE/.git --work-tree=$FLAKE/";
|
||||||
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
||||||
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
||||||
hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
|
hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
|
||||||
cd = "z";
|
cd = "z";
|
||||||
cd-orig = "cd";
|
cd-orig = "cd";
|
||||||
cat-orig = "cat";
|
cat-orig = "cat";
|
||||||
cdr = "cd \"$( (find /home/swarsel/Documents/GitHub -maxdepth 1 && echo /home/swarsel/.dotfiles) | fzf )\"";
|
cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\"";
|
||||||
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
||||||
fs-diff = "sudo mount -o subvol=/ /dev/mapper/cryptroot /mnt ; fs-diff";
|
fs-diff = "sudo mount -o subvol=/ /dev/mapper/cryptroot /mnt ; fs-diff";
|
||||||
lt = "ls -lath";
|
lt = "eza -las modified --total-size";
|
||||||
oldshell = "nix shell github:nixos/nixpkgs/\"$1\" \"$2\"";
|
boot-diff = "nix store diff-closures /run/*-system";
|
||||||
}
|
}
|
||||||
config.swarselsystems.shellAliases;
|
config.swarselsystems.shellAliases;
|
||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
system.activationScripts.diff = {
|
system.activationScripts.diff = {
|
||||||
supportsDryActivation = true;
|
supportsDryActivation = true;
|
||||||
text = ''
|
text = ''
|
||||||
${pkgs.nvd}/bin/nvd --nix-bin-dir=${pkgs.nix}/bin diff \
|
${pkgs.nvd}/bin/nvd --color=always --nix-bin-dir=${pkgs.nix}/bin diff \
|
||||||
/run/current-system "$systemConfig"
|
/run/current-system "$systemConfig"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue