185 lines
4.1 KiB
Nix
185 lines
4.1 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let unstable = import <nixos-unstable> { };
|
|
in {
|
|
environment.systemPackages = with pkgs; [
|
|
acpi
|
|
aspell
|
|
aspellDicts.de
|
|
aspellDicts.en
|
|
bash
|
|
bash-completion
|
|
bat
|
|
borgbackup
|
|
curl
|
|
direnv
|
|
fd
|
|
file
|
|
fzf
|
|
git
|
|
gnupg
|
|
htop
|
|
jq
|
|
mtr
|
|
ncdu
|
|
nix-index
|
|
nload
|
|
nnn
|
|
ntfs3g
|
|
openssl
|
|
patchelf
|
|
pv
|
|
restic
|
|
ripgrep
|
|
starship
|
|
sysstat
|
|
tcpdump
|
|
tmux
|
|
unzip
|
|
wget
|
|
zoxide
|
|
(import ../packages/neovim.nix)
|
|
];
|
|
|
|
environment = {
|
|
etc = { "starship.toml".source = ../dotfiles/starship.toml; };
|
|
|
|
variables = {
|
|
BAT_THEME = "ansi";
|
|
EDITOR = "nvim";
|
|
STARSHIP_CONFIG = "/etc/starship.toml";
|
|
HISTCONTROL = "ignoreboth";
|
|
NIXOS_OZONE_WL = "y";
|
|
};
|
|
};
|
|
|
|
programs.bash = {
|
|
promptInit = ''
|
|
. <(starship init bash)
|
|
'';
|
|
interactiveShellInit = ''
|
|
|
|
if [ -f ~/.ssh/agent.env ] ; then
|
|
. ~/.ssh/agent.env > /dev/null
|
|
if ! kill -0 "$SSH_AGENT_PID" > /dev/null 2>&1; then
|
|
echo "Stale agent file found. Spawning a new agent. "
|
|
eval `ssh-agent | tee ~/.ssh/agent.env`
|
|
ssh-add
|
|
fi
|
|
else
|
|
echo "Starting ssh-agent"
|
|
eval `ssh-agent | tee ~/.ssh/agent.env`
|
|
ssh-add
|
|
fi
|
|
|
|
set_win_title() {
|
|
echo -ne "\033]0;$USER@$HOSTNAME: $PWD\007"
|
|
}
|
|
starship_precmd_user_func=set_win_title
|
|
|
|
. "$(fzf-share)/key-bindings.bash"
|
|
. "$(fzf-share)/completion.bash"
|
|
. <(zoxide init bash)
|
|
. <(direnv hook bash)
|
|
. ${pkgs.bash-completion}/etc/profile.d/bash_completion.sh
|
|
|
|
alias cat="bat -pp"
|
|
alias docker="sudo -g docker docker"
|
|
alias docker-compose="sudo -g docker docker-compose"
|
|
alias less="bat -p"
|
|
alias ls="ls --color=auto"
|
|
alias vim="nvim"
|
|
alias k="kubectl"
|
|
alias n="nix-shell -p"
|
|
alias nu="nix-shell -I nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos-unstable -p"
|
|
|
|
sink() {
|
|
VAULT_TOKEN=$(vault token lookup -format=json | jq -r .data.id) \
|
|
ENVIRONMENTS=staging \
|
|
~/git/bitsbeats/vault-sink/sink
|
|
}
|
|
vsink() {
|
|
if ! grep -q /values.yaml .gitignore; then
|
|
echo refusing to sink with missing gitignore
|
|
return 1
|
|
fi
|
|
sink < ./helm/*/values.yaml > ./values.yaml
|
|
}
|
|
|
|
for script in "$HOME"/dotfiles/bashrc/*.sh; do
|
|
. "$script"
|
|
done
|
|
|
|
if [[ -z $DISPLAY ]] \
|
|
&& [[ $(tty) = /dev/tty1 ]] \
|
|
&& [[ "$USER" = "stefan" ]] \
|
|
&& [[ -x /run/current-system/sw/bin/startsway ]]
|
|
then
|
|
exec startsway
|
|
fi
|
|
'';
|
|
|
|
shellAliases = {
|
|
cat = "bat -pp";
|
|
less = "bat -p";
|
|
ls = "ls --color=auto";
|
|
vim = "nvim";
|
|
};
|
|
};
|
|
|
|
users.users.stefan = {
|
|
extraGroups = [ "wheel" "dialout" "libvirtd" "input" ];
|
|
home = "/home/stefan";
|
|
isNormalUser = true;
|
|
uid = 1000;
|
|
};
|
|
|
|
security.sudo.extraConfig = ''
|
|
Defaults timestamp_timeout=5
|
|
Defaults env_keep+=SSH_AUTH_SOCK
|
|
'';
|
|
|
|
services.fwupd.enable = true;
|
|
services.resolved.enable = true;
|
|
|
|
services.lorri.enable = true;
|
|
systemd.user.services.lorri.serviceConfig = {
|
|
ProtectSystem = pkgs.lib.mkForce "full";
|
|
ProtectHome = pkgs.lib.mkForce false;
|
|
};
|
|
|
|
security.wrappers.gvfsd-nfs = {
|
|
source = "${pkgs.gnome.gvfs}/libexec/gvfsd-nfs";
|
|
owner = "nobody";
|
|
group = "nogroup";
|
|
capabilities = "cap_net_bind_service+ep";
|
|
};
|
|
services.gvfs = {
|
|
enable = true;
|
|
package = lib.mkForce (pkgs.gnome.gvfs.overrideAttrs (oldAttrs: {
|
|
postInstall = ''
|
|
ln -sf /run/wrappers/bin/gvfsd-nfs $out/libexec/gvfsd-nfs
|
|
'';
|
|
}));
|
|
};
|
|
|
|
services.zfs.autoSnapshot = {
|
|
enable = true;
|
|
frequent = 8;
|
|
monthly = 6;
|
|
};
|
|
|
|
i18n = {
|
|
defaultLocale = "en_US.UTF-8";
|
|
extraLocaleSettings = {
|
|
LC_TIME = "de_DE.UTF-8";
|
|
LC_NUMERIC = "de_DE.UTF-8";
|
|
LC_PAPER = "de_DE.UTF-8";
|
|
LC_MONETARY = "de_DE.UTF-8";
|
|
LC_MEASUREMENT = "de_DE.UTF-8";
|
|
LC_NAME = "de_DE.UTF-8";
|
|
LC_TELEPHONE = "de_DE.UTF-8";
|
|
LC_IDENTIFICATION = "de_DE.UTF-8";
|
|
};
|
|
};
|
|
}
|