global zsh config

This commit is contained in:
Rouven Seifert 2023-04-21 20:03:23 +02:00
parent 82b62d2cae
commit 1737739b73
Signed by: rouven.seifert
GPG key ID: B95E8FE6B11C4D09
10 changed files with 73 additions and 107 deletions

View file

@ -117,11 +117,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1681971090, "lastModified": 1682072616,
"narHash": "sha256-3j0M63GkG6GGny9e+C//GyuDCx1IwrurD27S0YI+GQY=", "narHash": "sha256-sR5RL3LACGuq5oePcAoJ/e1S3vitKQQSNACMYmqIE1E=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "5160039edca28a7e66bad0cfc72a07c91d6768ad", "rev": "47d6c3f65234230d37f1cf7d3d6b5575ec80fe0c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -140,16 +140,17 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1682031571, "lastModified": 1682080615,
"narHash": "sha256-zYApIP2EeBa5Pef2MDzHaoTtTPRaxZ97cHqBYZ+6wBE=", "narHash": "sha256-g3YTp28uN+YDMHhrrx1bef68/2qIfpWW4zf0XSi9+tg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "510db64860fa307e33db5fdb843c6cc5a428b5a4", "rev": "2df0d034bc4a18fafb3524401eeeceaa6b23e753",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "2df0d034bc4a18fafb3524401eeeceaa6b23e753",
"type": "github" "type": "github"
} }
}, },
@ -221,11 +222,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1680875144, "lastModified": 1682090414,
"narHash": "sha256-Ub/Y+/zoAoji+E7WCLbTykcTmfRiyzLJ5QEyR3NbHgY=", "narHash": "sha256-ZU0NVk068KndcG2o+JvgJPOfnjrCb36LP5wW/r1piXc=",
"owner": "Misterio77", "owner": "Misterio77",
"repo": "nix-colors", "repo": "nix-colors",
"rev": "41cc6c1086a4d26509f9fc80a538131d03a11234", "rev": "4ccd57b4d4f900567455542f114e062a4fab6a98",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -35,7 +35,8 @@
}; };
hyprland = { hyprland = {
url = github:hyprwm/Hyprland; # temp pin hyprland until wayland is updated in nixpkgs
url = github:hyprwm/Hyprland/2df0d034bc4a18fafb3524401eeeceaa6b23e753;
inputs = { inputs = {
xdph.follows = "xdph"; xdph.follows = "xdph";
}; };
@ -89,6 +90,7 @@
nixos-hardware.nixosModules.common-pc-laptop-ssd nixos-hardware.nixosModules.common-pc-laptop-ssd
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
nix-index-database.nixosModules.nix-index
{ {
home-manager.extraSpecialArgs = attrs; home-manager.extraSpecialArgs = attrs;
home-manager.users.rouven = { home-manager.users.rouven = {

View file

@ -33,7 +33,6 @@
keyMap = "dvorak"; keyMap = "dvorak";
}; };
programs.command-not-found.enable = false;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim vim
wget wget

View file

@ -29,7 +29,6 @@
keyMap = "dvorak"; keyMap = "dvorak";
}; };
programs.command-not-found.enable = false;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim vim
wget wget

View file

@ -1,12 +0,0 @@
{ ... }:
{
programs.bash.shellInit = ''
download_nixpkgs_cache_index () {
filename="index-$(uname -m)-$(uname | tr A-Z a-z)"
mkdir -p ~/.cache/nix-index && cd ~/.cache/nix-index
# -N will only download a new version if there is an update.
wget -q -N https://github.com/Mic92/nix-index-database/releases/latest/download/$filename
ln -f $filename files
}
'';
}

View file

@ -1,10 +1,10 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./bash.nix
./caches.nix ./caches.nix
./gpg.nix ./gpg.nix
./sops.nix ./sops.nix
./vim.nix ./vim.nix
./zsh.nix
]; ];
} }

59
shared/zsh.nix Normal file
View file

@ -0,0 +1,59 @@
{ pkgs, ... }:
{
programs.command-not-found.enable = false;
users.defaultUserShell = pkgs.zsh;
programs.zsh = {
enable = true;
shellAliases = {
rm = "trash";
ls = "exa --icons";
l = "ls -l";
ll = "ls -la";
la = "ls -a";
switch = "sudo nixos-rebuild switch && cat ${../images/another-cat-2.sixel}";
update = "cd /etc/nixos && nix flake update && cat ${../images/another-cat.sixel}";
garbage = "sudo nix-collect-garbage -d && cat ${../images/cat-garbage.sixel}";
q = "exit";
};
histSize = 100000;
histFile = "~/.local/share/zsh/history";
autosuggestions = {
enable = true;
highlightStyle = "fg=#00bbbb,bold";
};
ohMyZsh = {
enable = true;
plugins = [ "gh" ];
theme = "agnoster";
};
shellInit =
''
source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh
function c() {
if [ $# -eq 0 ]; then
cd $(find -maxdepth 4 -not -path '*[cC]ache*' -not -path '*[tT]rash*' -type d | fzf --preview '${pkgs.tree}/bin/tree -C {}')
else
$1 $(find -maxdepth 5 -not -path '*[cC]ache*' -not -path '*[tT]rash*' | fzf --preview '${pkgs.tree}/bin/tree -C {}')
fi
}
function svpn() {
unit=$(systemctl list-unit-files | grep "openconnect\|wg-quick\|wireguard\|openvpn" | cut -d "." -f1 | fzf --preview 'systemctl status {}')
if [ $(systemctl is-active $unit) = "inactive" ]; then
systemctl start $unit
else
systemctl stop $unit
fi
}
prompt_dir() {
prompt_segment blue $CURRENT_FG '%c'
}
cat ${../images/cat.sixel}
'';
};
}

View file

@ -1,8 +1,5 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# generate system completions
programs.zsh.enable = true;
# fixes pam entries for swaylock # fixes pam entries for swaylock
security.pam.services.swaylock.text = '' security.pam.services.swaylock.text = ''
# Account management. # Account management.

View file

@ -15,7 +15,6 @@
./tmux ./tmux
./vifm ./vifm
./theme ./theme
./zsh
./packages.nix ./packages.nix
]; ];
} }

View file

@ -1,78 +0,0 @@
{ config, pkgs, ... }:
{
programs.zsh = {
enable = true;
shellAliases = {
rm = "trash";
ls = "exa --icons";
l = "ls -l";
ll = "ls -la";
la = "ls -a";
switch = "sudo nixos-rebuild switch && cat ${../../../../images/another-cat-2.sixel}";
update = "cd /etc/nixos && nix flake update && cat ${../../../../images/another-cat.sixel}";
garbage = "sudo nix-collect-garbage -d && cat ${../../../../images/cat-garbage.sixel}";
q = "exit";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = {
enable = true;
plugins = [ "gh" "pass" ];
theme = "agnoster";
};
plugins = [
{
name = "zsh-autosuggestions";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-autosuggestions";
rev = "v0.7.0";
sha256 = "KLUYpUu4DHRumQZ3w59m9aTW6TBKMCXl2UcKi4uMd7w=";
};
}
{
name = "fzf-tab";
src = pkgs.fetchFromGitHub {
owner = "Aloxaf";
repo = "fzf-tab";
rev = "14f66e4d3d0b366552c0412eb08ca9e0f7c797bd";
sha256 = "YkfHPSuSKParz7JidR924CJSuXO6Rk0RZTlxPOBwLJk=";
};
}
];
localVariables = {
COMPLETION_WAITING_DOTS = "true";
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=#00bbbb,bold";
};
initExtra =
''
function c() {
if [ $# -eq 0 ]; then
cd $(find -maxdepth 4 -not -path '*[cC]ache*' -not -path '*[tT]rash*' -type d | fzf --preview '${pkgs.tree}/bin/tree -C {}')
else
$1 $(find -maxdepth 5 -not -path '*[cC]ache*' -not -path '*[tT]rash*' | fzf --preview '${pkgs.tree}/bin/tree -C {}')
fi
}
function svpn() {
unit=$(systemctl list-unit-files | grep "openconnect\|wg-quick\|wireguard\|openvpn" | cut -d "." -f1 | fzf --preview 'systemctl status {}')
if [ $(systemctl is-active $unit) = "inactive" ]; then
systemctl start $unit
else
systemctl stop $unit
fi
}
prompt_dir() {
prompt_segment blue $CURRENT_FG '%c'
}
cat ${../../../../images/cat.sixel}
'';
};
}