{ config, lib, pkgs, ... }: let unstable = import {}; in { environment.systemPackages = with pkgs; [ acpi aspell aspellDicts.de aspellDicts.en bash bash-completion bat borgbackup direnv fd file fzf git gnupg htop jq mtr ncdu nix-index nload ntfs3g openssl patchelf pv ripgrep starship sysstat tcpdump tmux unzip wget z-lua (import ../packages/neovim.nix) ]; environment = { etc = { "starship.toml".source = ../dotfiles/starship.toml; }; }; programs.bash = { promptInit = '' . <(starship init bash) ''; interactiveShellInit = '' export EDITOR=nvim export STARSHIP_CONFIG=/etc/starship.toml 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" . <(z --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 less="bat -p" alias ls="ls --color=auto" alias vim="nvim" 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"; sink = "VAULT_TOKEN=$(vault token lookup -format=json | jq -r .data.id) ENVIRONMENTS=staging ~/git/bitsbeats/vault-sink/sink"; }; }; users.users.stefan = { extraGroups = [ "wheel" "dialout" "libvirtd"]; home = "/home/stefan"; isNormalUser = true; uid = 1000; }; security.sudo.extraConfig = '' Defaults timestamp_timeout=5 Defaults env_keep+=SSH_AUTH_SOCK ''; services.gvfs = { enable = true; package = lib.mkForce pkgs.gnome3.gvfs; }; services.resolved.enable = true; services.lorri.enable = true; services.zfs.autoSnapshot = { enable = true; frequent = 8; monthly = 6; }; }