move ssh out to its own file and add zsh
This commit is contained in:
@@ -38,9 +38,9 @@
|
|||||||
services.autoaspm.enable = true;
|
services.autoaspm.enable = true;
|
||||||
powerManagement.powertop.enable = true;
|
powerManagement.powertop.enable = true;
|
||||||
|
|
||||||
|
|
||||||
# enable flakes
|
# enable flakes
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||||
|
users.defaultUserShell = pkgs.zsh;
|
||||||
|
|
||||||
# passwordless rebuild
|
# passwordless rebuild
|
||||||
security.sudo.extraRules = [
|
security.sudo.extraRules = [
|
||||||
|
|||||||
28
users/blake/dots/ssh/default.nix
Normal file
28
users/blake/dots/ssh/default.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.ssh = {
|
||||||
|
enable = true;
|
||||||
|
matchBlocks = {
|
||||||
|
"git.blakedheld.xyz" = {
|
||||||
|
user = "gitea";
|
||||||
|
identityFile = "~/.ssh/id_snowbelle";
|
||||||
|
};
|
||||||
|
"git.snowbelle.lan" = {
|
||||||
|
user = "gitea";
|
||||||
|
identityFile = "~/.ssh/id_snowbelle";
|
||||||
|
};
|
||||||
|
"bebe" = {
|
||||||
|
hostname = "10.10.0.1";
|
||||||
|
user = "root";
|
||||||
|
identityFile = "~/.ssh/id_snowbelle";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# import sshkeys from keyring
|
||||||
|
home.file.".ssh/id_snowbelle".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle;
|
||||||
|
home.file.".ssh/id_snowbelle.pub".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle.pub;
|
||||||
|
}
|
||||||
@@ -6,8 +6,6 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [inputs.stylix.homeManagerModules.default];
|
||||||
inputs.stylix.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,20 +3,18 @@
|
|||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
|
||||||
home.packages = with pkgs; [xdg-ninja];
|
home.packages = with pkgs; [xdg-ninja];
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
configHome = "${config.home.homeDirectory}/.config";
|
configHome = "${config.home.homeDirectory}/.config";
|
||||||
cacheHome = "${config.home.homeDirectory}/.cache";
|
cacheHome = "${config.home.homeDirectory}/.cache";
|
||||||
dataHome = "${config.home.homeDirectory}/.local/share";
|
dataHome = "${config.home.homeDirectory}/.local/share";
|
||||||
stateHome = "${config.home.homeDirectory}/.local/state";
|
stateHome = "${config.home.homeDirectory}/.local/state";
|
||||||
|
|
||||||
userDirs = { # ~/.config/user-dirs.dirs
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# You can override defaults here:
|
# writes ~/.config/user-dirs.dirs
|
||||||
desktop = "${config.home.homeDirectory}/desktop";
|
desktop = "${config.home.homeDirectory}/desktop";
|
||||||
download = "${config.home.homeDirectory}/downloads";
|
download = "${config.home.homeDirectory}/downloads";
|
||||||
documents = "${config.home.homeDirectory}/documents";
|
documents = "${config.home.homeDirectory}/documents";
|
||||||
@@ -28,5 +26,10 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# misc env variables to get things out of ~ (<3 xdg-ninja)
|
||||||
|
home.sessionVariables = {
|
||||||
|
GOPATH="$XDG_DATA_HOME/go";
|
||||||
|
_JAVA_OPTIONS="-Djava.util.prefs.userRoot=""$XDG_CONFIG_HOME""/java";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,140 @@
|
|||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
# export some defaults
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
PAGER = "less";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
dotDir = ".config/zsh";
|
||||||
|
autocd = true;
|
||||||
|
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion = {
|
||||||
|
enable = true;
|
||||||
|
highlight = "fg=#ff00ff,bg=cyan,bold,underline";
|
||||||
|
};
|
||||||
|
|
||||||
|
syntaxHighlighting = {
|
||||||
|
enable = true;
|
||||||
|
highlighters = ["main" "brackets" "pattern" "regexp" "cursor" "root"];
|
||||||
|
styles = {
|
||||||
|
"default" = "none";
|
||||||
|
"unknown-token" = "fg=yellow,bold";
|
||||||
|
"reserved-word" = "fg=blue,bold";
|
||||||
|
"alias" = "fg=magenta";
|
||||||
|
"suffix-alias" = "fg=magenta";
|
||||||
|
"builtin" = "fg=cyan";
|
||||||
|
"function" = "fg=cyan";
|
||||||
|
"command" = "fg=white,bold";
|
||||||
|
"precommand" = "fg=cyan,underline";
|
||||||
|
"commandseparator" = "fg=white";
|
||||||
|
"hashed-command" = "fg=blue";
|
||||||
|
"path" = "fg=white,underline";
|
||||||
|
"globbing" = "fg=magenta";
|
||||||
|
"history-expansion" = "fg=yellow";
|
||||||
|
"single-hyphen-option" = "fg=blue";
|
||||||
|
"double-hyphen-option" = "fg=blue";
|
||||||
|
"back-quoted-argument" = "fg=yellow";
|
||||||
|
"single-quoted-argument" = "fg=white";
|
||||||
|
"double-quoted-argument" = "fg=white";
|
||||||
|
"dollar-double-quoted-argument" = "fg=cyan";
|
||||||
|
"back-double-quoted-argument" = "fg=cyan";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
history = {
|
||||||
|
size = 10000;
|
||||||
|
save = 10000;
|
||||||
|
share = true;
|
||||||
|
append = true;
|
||||||
|
extended = true;
|
||||||
|
path = "$XDG_STATE_HOME/zsh/history";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAilses = {
|
||||||
|
# --- zsh ---
|
||||||
|
cfz = "nvim $HOME/.config/zsh/.zshrc";
|
||||||
|
src = "source $HOME/.config/zsh/.zshrc";
|
||||||
|
|
||||||
|
# --- config editing ---
|
||||||
|
cfh = "nvim $HOME/.config/hypr/hyprland.conf";
|
||||||
|
cfl = "nvim $HOME/.config/lf/lfrc";
|
||||||
|
|
||||||
|
# --- navigation ---
|
||||||
|
ls = "ls --color=auto --group-directories-first";
|
||||||
|
ll = "ls -lh --color=auto --group-directories-first";
|
||||||
|
la = "ls -Alh --color=auto --group-directories-first";
|
||||||
|
".." = "cd ..";
|
||||||
|
"..." = "cd ../..";
|
||||||
|
fs = "du -h | sort -h";
|
||||||
|
ds = "du -hs";
|
||||||
|
|
||||||
|
# --- shortcuts ---
|
||||||
|
vswap = "cd ~/.local/state/nvim/swap";
|
||||||
|
rswap = "rm ~/.local/state/nvim/swap/*";
|
||||||
|
v = "nvim";
|
||||||
|
sv = "sudo nvim";
|
||||||
|
vim = "nvim";
|
||||||
|
|
||||||
|
# --- safety ---
|
||||||
|
cp = "cp -iv";
|
||||||
|
mv = "mv -iv";
|
||||||
|
rm = "rm -Iv";
|
||||||
|
|
||||||
|
# --- colors ---
|
||||||
|
grep = "grep --color=auto";
|
||||||
|
fgrep = "fgrep --color=auto";
|
||||||
|
egrep = "egrep --color=auto";
|
||||||
|
|
||||||
|
# --- scripts ---
|
||||||
|
rebuild = "sh ~/.nix/bin/rebuild.sh";
|
||||||
|
perms = "sudo sh ~/.nix/bin/perms.sh";
|
||||||
|
bb = "sudo sh ~/.nix/bin/backup_browse.sh";
|
||||||
|
|
||||||
|
# --- git ---
|
||||||
|
status = "git status";
|
||||||
|
add = "git add";
|
||||||
|
commit = "git commit -am";
|
||||||
|
push = "git push";
|
||||||
|
pull = "git pull";
|
||||||
|
dotfiles = "/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME";
|
||||||
|
dtf = "/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME";
|
||||||
|
|
||||||
|
# --- systemd ---
|
||||||
|
stat = "sudo systemctl status";
|
||||||
|
restart = "sudo systemctl restart";
|
||||||
|
start = "sudo systemctl start";
|
||||||
|
stop = "sudo systemctl stop";
|
||||||
|
jou = "sudo journalctl -xeu";
|
||||||
|
live = "sudo journalctl -o short-iso -n 50 -fu";
|
||||||
|
|
||||||
|
# --- system ---
|
||||||
|
peace = "systemctl poweroff";
|
||||||
|
love = "systemctl reboot";
|
||||||
|
lock = "loginctl lock-session";
|
||||||
|
};
|
||||||
|
|
||||||
|
initContent = ''
|
||||||
|
|
||||||
|
# the prompt
|
||||||
|
PS1='%F{0}%K{126}%B[%n@%m]%b%k%f:%F{015}%B[%~]%b%f%F{015}%S$%s%f '
|
||||||
|
|
||||||
|
# lf changes working dir on exit
|
||||||
|
alias lf='lfcd'
|
||||||
|
lfcd () {cd "$(command lf -print-last-dir "$@")"}
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
# zplug = {
|
||||||
|
# enable = true;
|
||||||
|
# zplugHome = "$XDG_STATE_HOME/zsh/zplug";
|
||||||
|
# plugins = [
|
||||||
|
# {name = "zsh-users/zsh-syntax-highlighting";}
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./dots/neovim
|
./dots/neovim
|
||||||
./dots/lf
|
./dots/lf
|
||||||
|
./dots/zsh
|
||||||
|
./dots/ssh
|
||||||
./dots/git
|
./dots/git
|
||||||
./dots/xdg
|
./dots/xdg
|
||||||
];
|
];
|
||||||
@@ -28,45 +30,27 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# setup zsh
|
# setup zsh
|
||||||
home.sessionVariables.ZDOTDIR = "$HOME/.config/zsh";
|
#home.sessionVariables.ZDOTDIR = "$HOME/.config/zsh";
|
||||||
programs.zsh = {
|
#programs.zsh = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
# dotDir = ".config/zsh";
|
# # dotDir = ".config/zsh";
|
||||||
};
|
#};
|
||||||
# link dotfiles
|
## link dotfiles
|
||||||
xdg.configFile."zsh" = {
|
#xdg.configFile."zsh" = {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dotfiles/zsh";
|
# source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dotfiles/zsh";
|
||||||
recursive = true;
|
# recursive = true;
|
||||||
};
|
#};
|
||||||
|
|
||||||
programs.gpg = {
|
programs.gpg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableSshSupport = true;
|
||||||
|
#pinentry.package = pkgs.pinentry-qt;
|
||||||
|
#pinentry.program = "pinentry-qt";
|
||||||
};
|
};
|
||||||
|
#home.packages with pkgs; = [pinentry-qt pinentry_mac];
|
||||||
programs.ssh = {
|
|
||||||
enable = true;
|
|
||||||
matchBlocks = {
|
|
||||||
"git.blakedheld.xyz" = {
|
|
||||||
user = "gitea";
|
|
||||||
identityFile = "~/.ssh/id_snowbelle";
|
|
||||||
};
|
|
||||||
"git.snowbelle.lan" = {
|
|
||||||
user = "gitea";
|
|
||||||
identityFile = "~/.ssh/id_snowbelle";
|
|
||||||
};
|
|
||||||
"dockers" = {
|
|
||||||
hostname = "10.10.0.30";
|
|
||||||
user = "blake";
|
|
||||||
identityFile = "~/.ssh/id_snowbelle";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# import sshkeys from keyring
|
|
||||||
home.file.".ssh/id_snowbelle".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle;
|
|
||||||
home.file.".ssh/id_snowbelle.pub".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle.pub;
|
|
||||||
|
|
||||||
# # manage secrets with sops
|
# # manage secrets with sops
|
||||||
# sops.secrets = {
|
# sops.secrets = {
|
||||||
|
|||||||
Reference in New Issue
Block a user