9a0f472ea5
- /.local/assets/Betelgeuse.macOS.terminal - /.local/bin/bwc - /.local/bin/fonttest - /.local/bin/install-dotfiles - /.local/bin/install-gnome-extensions - /.local/bin/install-program - /.local/bin/install-terminal-theme - /.local/bin/ksetwallpaper - /.local/bin/load-secrets - /.local/bin/logg - /.local/bin/open - /.local/bin/provision - /.local/bin/ramqube - /.local/bin/run - /.local/bin/slack - /.local/bin/squash-symlink - /.local/delta/themes.gitconfig - /.local/konsole/Default.profile - /.local/scripts/motd.bash - /.local/scripts/p10k.zsh - /.local/theme/Betelgeuse.macOS.terminal - /.local/theme/background.jpg - /.local/vagrant.d/.gitkeep - /.local/share/bash-completion/completions/deno.bash - /.local/share/bash-completion/completions/direnv.bash - /.local/share/bash-completion/completions/fig.bash - /.local/share/bash-completion/completions/fzf-key-bindings.bash - /.local/share/bash-completion/completions/fzf.bash - /.local/share/bash-completion/completions/gcloud.bash - /.local/share/bash-completion/completions/gh.bash - /.local/share/bash-completion/completions/googler.bash - /.local/share/bash-completion/completions/gradle.bash - /.local/share/bash-completion/completions/helm.bash - /.local/share/bash-completion/completions/hyperfine.bash - /.local/share/bash-completion/completions/kubectl.bash - /.local/share/bash-completion/completions/mcfly.bash - /.local/share/bash-completion/completions/nb.bash - /.local/share/bash-completion/completions/nnn.bash - /.local/share/bash-completion/completions/poetry.bash - /.local/share/bash-completion/completions/volta.bash - /.local/share/bash-completion/completions/wp.bash - /.local/share/bash-completion/completions/zoxide.bash - /.local/share/bash-completion/generate.sh - /.local/share/fonts/FontAwesome.ttf - /.local/share/fonts/Hack Bold Italic Nerd Font Complete Mono Windows Compatible.ttf - /.local/share/fonts/Hack Bold Italic Nerd Font Complete Mono.ttf - /.local/share/fonts/Hack Bold Italic Nerd Font Complete Windows Compatible.ttf - /.local/share/fonts/Hack Bold Italic Nerd Font Complete.ttf - /.local/share/fonts/Hack Bold Nerd Font Complete Mono Windows Compatible.ttf - /.local/share/fonts/Hack Bold Nerd Font Complete Mono.ttf - /.local/share/fonts/Hack Bold Nerd Font Complete Windows Compatible.ttf - /.local/share/fonts/Hack Bold Nerd Font Complete.ttf - /.local/share/fonts/Hack Italic Nerd Font Complete Mono Windows Compatible.ttf - /.local/share/fonts/Hack Italic Nerd Font Complete Mono.ttf - /.local/share/fonts/Hack Italic Nerd Font Complete Windows Compatible.ttf - /.local/share/fonts/Hack Italic Nerd Font Complete.ttf - /.local/share/fonts/Hack Regular Nerd Font Complete Mono Windows Compatible.ttf - /.local/share/fonts/Hack Regular Nerd Font Complete Mono.ttf - /.local/share/fonts/Hack Regular Nerd Font Complete Windows Compatible.ttf - /.local/share/fonts/Hack Regular Nerd Font Complete.ttf - /.local/share/fonts/Montserrat-Black.ttf - /.local/share/fonts/Montserrat-BlackItalic.ttf - /.local/share/fonts/Montserrat-Bold.ttf - /.local/share/fonts/Montserrat-BoldItalic.ttf - /.local/share/fonts/Montserrat-ExtraBold.ttf - /.local/share/fonts/Montserrat-ExtraBoldItalic.ttf - /.local/share/fonts/Montserrat-ExtraLight.ttf - /.local/share/fonts/Montserrat-ExtraLightItalic.ttf - /.local/share/fonts/Montserrat-Italic.ttf - /.local/share/fonts/Montserrat-Light.ttf - /.local/share/fonts/Montserrat-LightItalic.ttf - /.local/share/fonts/Montserrat-Medium.ttf - /.local/share/fonts/Montserrat-MediumItalic.ttf - /.local/share/fonts/Montserrat-Regular.ttf - /.local/share/fonts/Montserrat-SemiBold.ttf - /.local/share/fonts/Montserrat-SemiBoldItalic.ttf - /.local/share/fonts/Montserrat-Thin.ttf - /.local/share/fonts/Montserrat-ThinItalic.ttf - /.local/share/fonts/Weather-Icons.ttf - /.local/share/fonts/ZillaSlab-Bold.ttf - /.local/share/fonts/ZillaSlab-BoldItalic.ttf - /.local/share/fonts/ZillaSlab-Italic.ttf - /.local/share/fonts/ZillaSlab-Light.ttf - /.local/share/fonts/ZillaSlab-LightItalic.ttf - /.local/share/fonts/ZillaSlab-Medium.ttf - /.local/share/fonts/ZillaSlab-MediumItalic.ttf - /.local/share/fonts/ZillaSlab-Regular.ttf - /.local/share/fonts/ZillaSlab-SemiBold.ttf - /.local/share/fonts/ZillaSlab-SemiBoldItalic.ttf - /.local/share/git-core/templates/hooks/post-commit - /.local/share/kactivitymanagerd/resources/database - /.local/share/kactivitymanagerd/resources/database-shm - /.local/share/kactivitymanagerd/resources/database-wal - /.gnupg/public/apt.hashicorp.sig - /.gnupg/public/linux.wazuh.sig - /.gnupg/public/qubes.uman.sig - /.gnupg/public/unman.sig - /.gnupg/public/wazuh.sig - /.config/Kvantum/kvantum.config - /.config/age/expect - /.config/age/run_once_before_decrypt-private-key.sh.tmpl - /.config/alacritty/alacritty.yml - /.config/asdf/asdfrc - /.config/asdf/default-cargo-pkgs - /.config/asdf/default-golang-pkgs - /.config/asdf/default-npm-packages - /.config/asdf/default-python-pkgs - /.config/asdf/default-ruby-pkgs - /.config/bashtop/bashtop.cfg - /.config/bat/config - /.config/brew/whalebrew - /.config/crontab/config - /.config/direnv/direnv.toml - /.config/fd/ignore - /.config/firejail/bitwarden.local - /.config/firejail/chromium.local - /.config/firejail/code.local - /.config/firejail/gcloud.local - /.config/firejail/google-chrome-stable.local - /.config/firejail/slack.local - /.config/firejail/thunderbird.local - /.config/fontconfig/fonts.conf - /.config/ghorg/conf.yaml - /.config/git/attributes - /.config/git/commit-template - /.config/git/ignore - /.config/gtk-2.0/gtkrc - /.config/gtk-3.0/settings.ini - /.config/himalaya/config.toml - /.config/k9s/plugin.yml - /.config/kitty/Betelgeuse-dark.conf - /.config/kitty/Betelgeuse-light.conf - /.config/kitty/kitty.conf - /.config/ngrok/ngrok.yml - /.config/npm/npmrc.tmpl.TODO - /.config/oh-my-posh/Betelgeuse-minimal.omp.json - /.config/oh-my-posh/Betelgeuse.omp.json - /.config/pgcli/config - /.config/plasma/plasmoids.yml - /.config/powershell/takuya.omp.json - /.config/powershell/user_profile.ps1 - /.config/rclone/merge_rclone.conf - /.config/readline/inputrc - /.config/ripgrep/config - /.config/shell/.private - /.config/shell/functions - /.config/shell/motd - /.config/shell/profile - /.config/slack-term/config - /.config/tabby/config.yaml - /.config/terminator/config - /.config/wget/wgetrc - /.config/xsettingsd/xsettingsd.conf - /.config/youtube-dl/config - /.config/xfce4/terminal/terminalrc - /.config/misc/.warp/themes/betelgeuse_dark.yaml - /.config/misc/.warp/themes/betelgeuse_light.yaml - /.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml - /.config/misc/.tmux.themer - /.config/Code/User/extensions/theme-betelgeuse-vscode/themes/themer-dark-color-theme.json - /.config/Code/User/extensions/theme-betelgeuse-vscode/themes/themer-light-color-theme.json - /.config/Code/User/extensions/theme-betelgeuse-vscode/README.md - /.config/Code/User/extensions/theme-betelgeuse-vscode/icon.svg - /.config/Code/User/extensions/theme-betelgeuse-vscode/package.json - /.config/Code/User/extensions.json - /.config/Code/User/keybindings.json - /.config/Code/User/settings.json - /.config/batrc - /.config/chromium-flags.conf - /.config/dircolors - /.config/gtkrc - /.config/kactivitymanagerdrc - /.config/kcminputrc - /.config/kdeglobals - /.config/konsolerc - /.config/ksplashrc - /.config/ktimezonedrc - /.config/kwinrc - /.config/mimeapps.list - /.config/plasma-localerc - /.config/plasmarc - /.config/ripgreprc - /.config/wgetrc - /.config/whalebrew - /.vim/colors/betelgeuse.vim - /.vim/autoload/lightline/colorscheme/Betelgeuse.vim - /.vim/autoload/plug.vim - /.vim/vimrc - /.vscode/extensions.json - /.vscode/settings.json - /AppData/Local/clink/oh-my-posh.lua - /Library/Preferences/com.apple.Terminal.plist - /Library/VirtualBox/VirtualBox.xml - /Library/Application Support/tabby/plugins/package-lock.json - /Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Dark.dvtcolortheme - /Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Light.dvtcolortheme - /.local/share/chezmoi/docs/CHEZMOI-INTRO.md - /.local/share/chezmoi/home/.chezmoi.yaml.tmpl - /.local/share/chezmoi/home/.chezmoidata.yaml - /.local/share/chezmoi/home/.chezmoiexternal.toml - /.local/share/chezmoi/home/.chezmoiignore - /.local/share/chezmoi/home/.chezmoiremove - /.local/share/chezmoi/home/.chezmoiscripts/_universal/run_onchange_before_5-install-homebrew.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/_universal/run_onchange_before_8-install-zx.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/_universal/run_onchange_before_9-ensure-node-version.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/archlinux/run_onchange_before_10_install-archlinux-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/centos/run_onchange_before_10-install-centos-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_after_10_configure-macos.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_after_20-ensure-zsh-macos.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_after_set-wallpaper.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_before_10_install-darwin-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_before_20-ensure-user-group.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/debian/run_onchange_before_10-install-debian-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/fedora/run_onchange_before_10-install-fedora-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/freebsd/run_onchange_before_11-install-freebsd-packages.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/linux/run_onchange_before_10-system-tweaks.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/linux/run_onchange_before_configure-swap.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/opensuse/run_onchange_before_11-install-opensuse-software.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_after_11-set-wallpaper.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_11-update-timezone.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_12-update-dom0.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_13-install-official-templates.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_14-ensure-minimal-vms-passwordless.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_15-install-unofficial-templates.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_16-update-template-vms.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_17-install-mirage-firewall.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_18-configure-sys-usb.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_19-setup-sys-gui.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/ubuntu/run_onchange_before_10_install-ubuntu-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_once_before_1-decrypt-age-key.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-ansible-roles.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_12-install-packages.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_14_install-aqua-packages.sh.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_15_install-asdf-packages.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_18-install-sdkman.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_50-crontab.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_59-connect-tailscale.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_80-bash-completions.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_99_bootstrap-zsh-plugins.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/windows/run_onchange_after_14-cleanup-windows - /.local/share/chezmoi/home/.chezmoiscripts/windows/run_onchange_before_10-install-windows-dependencies.tmpl - /.local/share/chezmoi/home/.chezmoiscripts/windows/run_onchange_before_11-install-windows-packages.tmpl - /.local/share/chezmoi/home/.chezmoitemplates/darwin/Brewfile - /.local/share/chezmoi/home/.chezmoitemplates/universal/essential-packages - /.local/share/chezmoi/home/.chezmoitemplates/universal/logg - /.local/share/chezmoi/home/.chezmoitemplates/universal/logg-compat - /.local/share/chezmoi/home/.chezmoitemplates/universal/profile - /.local/share/chezmoi/home/AppData/Local/clink/oh-my-posh.lua - /.local/share/chezmoi/home/AppData/Roaming/Google Assistant/symlink_config.json.tmpl - /.local/share/chezmoi/home/Library/Application Support/tabby/plugins/package-lock.json - /.local/share/chezmoi/home/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Dark.dvtcolortheme - /.local/share/chezmoi/home/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Light.dvtcolortheme - /.local/share/chezmoi/home/Library/Fonts/run_onchange_after_add-fonts.tmpl - /.local/share/chezmoi/home/Library/Preferences/com.apple.Terminal.plist - /.local/share/chezmoi/home/Library/Preferences/com.googlecode.iterm2.plist - /.local/share/chezmoi/home/Library/VirtualBox/VirtualBox.xml.tmpl - /.local/share/chezmoi/home/dot_VirtualBox/VirtualBox.xml.tmpl - /.local/share/chezmoi/home/dot_Xresources - /.local/share/chezmoi/home/dot_bashrc - /.local/share/chezmoi/home/dot_cache/readonly_rclone/remove_dot_gitkeep - /.local/share/chezmoi/home/dot_cache/zsh/remove_dot_gitkeep - /.local/share/chezmoi/home/dot_editorconfig - /.local/share/chezmoi/home/dot_gnupg/public/apt.hashicorp.sig - /.local/share/chezmoi/home/dot_gnupg/public/linux.wazuh.sig - /.local/share/chezmoi/home/dot_gnupg/public/qubes.uman.sig - /.local/share/chezmoi/home/dot_local/Taskfile-local.yml - /.local/share/chezmoi/home/dot_local/assets/Betelgeuse.macOS.terminal - /.local/share/chezmoi/home/dot_local/bin/executable_gist - /.local/share/chezmoi/home/dot_local/bin/executable_install-gnome-extensions - /.local/share/chezmoi/home/dot_local/bin/executable_install-program - /.local/share/chezmoi/home/dot_local/bin/executable_install-terminal-theme.tmpl - /.local/share/chezmoi/home/dot_local/bin/executable_kde-wallpaper - /.local/share/chezmoi/home/dot_local/bin/executable_logg - /.local/share/chezmoi/home/dot_local/bin/executable_open - /.local/share/chezmoi/home/dot_local/bin/executable_provision.tmpl - /.local/share/chezmoi/home/dot_local/bin/executable_ramqube - /.local/share/chezmoi/home/dot_local/bin/executable_squash-symlink - /.local/share/chezmoi/home/dot_local/bin/executable_task - /.local/share/chezmoi/home/dot_local/bin/executable_tinypng.tmpl - /.local/share/chezmoi/home/dot_local/bin/firejail/executable_slack - /.local/share/chezmoi/home/dot_local/bin/run_onchange_ensure-executable.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_bat.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_bombshell-client.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_fd.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_install-software.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_qrun.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_qscp - /.local/share/chezmoi/home/dot_local/bin/symlink_qssh.tmpl - /.local/share/chezmoi/home/dot_local/bin/symlink_readlink.tmpl - /.local/share/chezmoi/home/dot_local/konsole/Default.profile - /.local/share/chezmoi/home/dot_local/log/remove_dot_gitkeep - /.local/share/chezmoi/home/dot_local/scripts/docker-functions.bash - /.local/share/chezmoi/home/dot_local/scripts/motd.bash - /.local/share/chezmoi/home/dot_local/scripts/p10k.zsh - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_commonlib.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubes_pass.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubesformation.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubesguid.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubessls.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/connection/symlink_qubes.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubes_pass.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubesformation.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubesguid.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubessls.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/lookup/symlink_jq.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/plugins/lookup/symlink_qubes-pass.py.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/run_onchange_after_symlink-ansible-configs.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_README.md.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_Vagrantfile.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_ansible.cfg.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_docs.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_environments.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_main.yml.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_playbooks.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/symlink_requirements.yml.tmpl - /.local/share/chezmoi/home/dot_local/share/ansible/tasks/symlink_qubes.tmpl - /.local/share/chezmoi/home/dot_local/share/fonts/FontAwesome.ttf - /.local/share/chezmoi/home/dot_local/share/fonts/Weather-Icons.ttf - /.local/share/chezmoi/home/dot_local/share/git-core/templates/hooks/post-commit - /.local/share/chezmoi/home/dot_local/state/bash/remove_dot_gitkeep - /.local/share/chezmoi/home/dot_local/state/zsh/remove_dot_gitkeep - /.local/share/chezmoi/home/dot_ssh/authorized_keys.github.tmpl - /.local/share/chezmoi/home/dot_ssh/private_config.tmpl - /.local/share/chezmoi/home/dot_ssh/run_onchanges_after_ensure-private-key.tmpl - /.local/share/chezmoi/home/dot_ssh/run_onchanges_after_generate-public-keys.tmpl - /.local/share/chezmoi/home/dot_ssh/symlink_authorized_keys.tmpl - /.local/share/chezmoi/home/dot_tool-versions.tmpl - /.local/share/chezmoi/home/dot_vim/autoload/lightline/colorscheme/Betelgeuse.vim - /.local/share/chezmoi/home/dot_vim/colors/Betelgeuse.vim - /.local/share/chezmoi/home/dot_zshrc - /.local/share/chezmoi/home/key.txt.age - /.local/share/chezmoi/home/private_dot_config/Google Assistant/client-secret.json - /.local/share/chezmoi/home/private_dot_config/Google Assistant/config.json.tmpl - /.local/share/chezmoi/home/private_dot_config/Kvantum/kvantum.config - /.local/share/chezmoi/home/private_dot_config/VirtualBox/VirtualBox.xml.tmpl - /.local/share/chezmoi/home/private_dot_config/alacritty/alacritty.yml - /.local/share/chezmoi/home/private_dot_config/asdf/asdfrc.tmpl - /.local/share/chezmoi/home/private_dot_config/asdf/default-cargo-pkgs - /.local/share/chezmoi/home/private_dot_config/asdf/default-golang-pkgs - /.local/share/chezmoi/home/private_dot_config/asdf/default-npm-packages - /.local/share/chezmoi/home/private_dot_config/asdf/default-python-pkgs - /.local/share/chezmoi/home/private_dot_config/asdf/default-ruby-pkgs - /.local/share/chezmoi/home/private_dot_config/bashtop/bashtop.cfg - /.local/share/chezmoi/home/private_dot_config/bat/config - /.local/share/chezmoi/home/private_dot_config/brew/Brewfile.tmpl - /.local/share/chezmoi/home/private_dot_config/brew/whalebrew - /.local/share/chezmoi/home/private_dot_config/chromium-flags.conf - /.local/share/chezmoi/home/private_dot_config/crontab/config - /.local/share/chezmoi/home/private_dot_config/direnv/direnv.toml - /.local/share/chezmoi/home/private_dot_config/fd/ignore - /.local/share/chezmoi/home/private_dot_config/firejail/bitwarden.local - /.local/share/chezmoi/home/private_dot_config/firejail/chromium.local - /.local/share/chezmoi/home/private_dot_config/firejail/code.local - /.local/share/chezmoi/home/private_dot_config/firejail/gcloud.local - /.local/share/chezmoi/home/private_dot_config/firejail/google-chrome-stable.local - /.local/share/chezmoi/home/private_dot_config/firejail/slack.local - /.local/share/chezmoi/home/private_dot_config/firejail/thunderbird.local - /.local/share/chezmoi/home/private_dot_config/fontconfig/fonts.conf - /.local/share/chezmoi/home/private_dot_config/ghorg/conf.yaml.tmpl - /.local/share/chezmoi/home/private_dot_config/git/attributes - /.local/share/chezmoi/home/private_dot_config/git/commit-template - /.local/share/chezmoi/home/private_dot_config/git/config.tmpl - /.local/share/chezmoi/home/private_dot_config/git/ignore - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_commit-msg - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_post-checkout - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_post-commit - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_post-merge - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_post-rewrite - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_pre-commit - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_pre-push - /.local/share/chezmoi/home/private_dot_config/git/template/symlink_prepare-commit-msg - /.local/share/chezmoi/home/private_dot_config/gtk-1.0/.gitkeep - /.local/share/chezmoi/home/private_dot_config/gtk-2.0/gtkrc - /.local/share/chezmoi/home/private_dot_config/gtk-3.0/settings.ini - /.local/share/chezmoi/home/private_dot_config/gtkrc - /.local/share/chezmoi/home/private_dot_config/heroku/deploy.yml.tmpl - /.local/share/chezmoi/home/private_dot_config/himalaya/config.toml - /.local/share/chezmoi/home/private_dot_config/k9s/plugin.yml - /.local/share/chezmoi/home/private_dot_config/kcminputrc - /.local/share/chezmoi/home/private_dot_config/kdeglobals - /.local/share/chezmoi/home/private_dot_config/kitty/Betelgeuse-dark.conf - /.local/share/chezmoi/home/private_dot_config/kitty/Betelgeuse-light.conf - /.local/share/chezmoi/home/private_dot_config/kitty/kitty.conf - /.local/share/chezmoi/home/private_dot_config/konsolerc - /.local/share/chezmoi/home/private_dot_config/ksplashrc - /.local/share/chezmoi/home/private_dot_config/ktimezonedrc - /.local/share/chezmoi/home/private_dot_config/kwinrc - /.local/share/chezmoi/home/private_dot_config/libvirt/libvirtd.conf - /.local/share/chezmoi/home/private_dot_config/mimeapps.list - /.local/share/chezmoi/home/private_dot_config/ngrok/ngrok.yml.tmpl - /.local/share/chezmoi/home/private_dot_config/npm/npmrc.tmpl.TODO - /.local/share/chezmoi/home/private_dot_config/oh-my-posh/Betelgeuse-minimal.omp.json - /.local/share/chezmoi/home/private_dot_config/oh-my-posh/Betelgeuse.omp.json - /.local/share/chezmoi/home/private_dot_config/pg/.gitkeep - /.local/share/chezmoi/home/private_dot_config/pgcli/config - /.local/share/chezmoi/home/private_dot_config/plasma-localerc - /.local/share/chezmoi/home/private_dot_config/plasma/plasmoids.yml - /.local/share/chezmoi/home/private_dot_config/plasmarc - /.local/share/chezmoi/home/private_dot_config/powershell/profile.ps1 - /.local/share/chezmoi/home/private_dot_config/private_Code/User/extensions.json - /.local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/README.md - /.local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/icon.svg - /.local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/package.json - /.local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/themes/themer-dark-color-theme.json - /.local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/themes/themer-light-color-theme.json - /.local/share/chezmoi/home/private_dot_config/private_Code/User/keybindings.json - /.local/share/chezmoi/home/private_dot_config/private_Code/User/settings.json - /.local/share/chezmoi/home/private_dot_config/putty/.gitkeep - /.local/share/chezmoi/home/private_dot_config/rclone/merge_rclone.conf - /.local/share/chezmoi/home/private_dot_config/readline/inputrc - /.local/share/chezmoi/home/private_dot_config/ripgrep/config - /.local/share/chezmoi/home/private_dot_config/rofi/config.rasi.tmpl - /.local/share/chezmoi/home/private_dot_config/shell/aliases.sh.tmpl - /.local/share/chezmoi/home/private_dot_config/shell/exports.sh.tmpl - /.local/share/chezmoi/home/private_dot_config/shell/functions.sh - /.local/share/chezmoi/home/private_dot_config/shell/motd.sh - /.local/share/chezmoi/home/private_dot_config/shell/private_private.sh - /.local/share/chezmoi/home/private_dot_config/shell/profile.sh - /.local/share/chezmoi/home/private_dot_config/slack-term/config.tmpl - /.local/share/chezmoi/home/private_dot_config/tabby/config.yaml.tmpl - /.local/share/chezmoi/home/private_dot_config/terminator/config - /.local/share/chezmoi/home/private_dot_config/tmux/remove_dot_gitkeep - /.local/share/chezmoi/home/private_dot_config/vim/vimrc - /.local/share/chezmoi/home/private_dot_config/wget/wgetrc - /.local/share/chezmoi/home/private_dot_config/xfce4/terminal/terminalrc - /.local/share/chezmoi/home/private_dot_config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml - /.local/share/chezmoi/home/private_dot_config/xsettingsd/xsettingsd.conf - /.local/share/chezmoi/home/private_dot_config/youtube-dl/config - /.local/share/chezmoi/home/private_dot_config/zap/v2/config.ini - /.local/share/chezmoi/system/.chezmoidata.yaml - /.local/share/chezmoi/system/.chezmoiexternal.toml - /.local/share/chezmoi/system/.chezmoiignore - /.local/share/chezmoi/system/Applications/Firefox.app/Contents/Resources/distribution/policies.json - /.local/share/chezmoi/system/boot/efi/EFI/qubes/modify_grubenv - /.local/share/chezmoi/system/etc/cockpit/machines.d/TODO.cockpit-machine.json.tmpl - /.local/share/chezmoi/system/etc/cups/cupsd.conf - /.local/share/chezmoi/system/etc/cups/modify_cupsd.conf - /.local/share/chezmoi/system/etc/default/modify_grub - /.local/share/chezmoi/system/etc/fonts/local.conf - /.local/share/chezmoi/system/etc/grub.d/31-hold-shift - /.local/share/chezmoi/system/etc/keybase/config.json - /.local/share/chezmoi/system/etc/modify_environment - /.local/share/chezmoi/system/etc/opt/chrome/policies/managed/policies.json - /.local/share/chezmoi/system/etc/qubes/repo-templates/qubes-templates.repo - /.local/share/chezmoi/system/etc/rcloneignore - /.local/share/chezmoi/system/etc/sanoid/sanoid.conf.TODO - /.local/share/chezmoi/system/etc/sddm.conf - /.local/share/chezmoi/system/etc/systemd/system/r2-docker.service - /.local/share/chezmoi/system/etc/systemd/system/r2-{{ .user.username }}.service.tmpl - /.local/share/chezmoi/system/etc/timeshift/timeshift.json - /.local/share/chezmoi/system/etc/yum.repos.d/qubes-dom0.repo - /.local/share/chezmoi/system/mnt/private_r2-docker/remove_dot_gitkeep - /.local/share/chezmoi/system/usr/lib/firefox-esr/distribution/policies.json - /.local/share/chezmoi/system/usr/lib/firefox/distribution/policies.json - /.local/share/chezmoi/system/usr/local/bin/executable_rclone-mount - /.local/share/chezmoi/system/usr/local/bin/executable_squash-symlink - /.local/share/chezmoi/system/usr/local/share/run_onchange_after_setup-share-folder - /.local/share/chezmoi/system/usr/share/run_onchange_after_setup-share-folder - /.local/share/chezmoi/system/var/cache/rclone/remove_dot_gitkeep - /.local/share/chezmoi/system/var/log/user/run_onchange_after-symlink-user-logs - /.local/share/chezmoi/.chezmoiignore - /.local/share/chezmoi/.chezmoiroot - /.local/share/chezmoi/software.yml - /.local/Taskfile-local.yml - /.local/aliases - /.local/antigen.zsh - /.local/dockerfunc.sh - /.local/functions - /.local/motd.sh - /.bashrc - /.tool-versions - /.Xresources - /.zshrc - /TODO.md - /sync.sh - /docs/TODO.md - /docs/partials/guide.md - /docs/partials/CHEZMOI-INTRO.md - /home/.chezmoiscripts/linux/run_onchange_before_configure-swap - /home/.chezmoiscripts/linux/run_onchange_before_10-system-tweaks - /home/.chezmoiscripts/qubes/run_onchange_before_19-setup-sys-gui - /home/.chezmoiscripts/qubes/run_onchange_after_11-set-wallpaper.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_12-update-dom0.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_13-install-official-templates.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_11-update-timezone.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_14-ensure-minimal-vms-passwordless.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_15-install-unofficial-templates.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_16-update-template-vms.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_17-install-mirage-firewall.tmpl - /home/.chezmoiscripts/qubes/run_onchange_before_18-configure-sys-usb.tmpl - /home/.chezmoiscripts/_universal/run_onchange_before_8-install-zx.tmpl - /home/.chezmoiscripts/_universal/run_onchange_before_9-ensure-node-version.tmpl - /home/.chezmoiscripts/_universal/run_onchange_before_5-install-homebrew.tmpl - /home/.chezmoiscripts/archlinux/run_onchange_before_10_install-archlinux-dependencies.tmpl - /home/.chezmoiscripts/centos/run_onchange_before_10-install-centos-dependencies.tmpl - /home/.chezmoiscripts/darwin/run_onchange_after_10_configure-macos.tmpl - /home/.chezmoiscripts/darwin/run_onchange_before_20-ensure-user-group.tmpl - /home/.chezmoiscripts/darwin/run_onchange_after_set-wallpaper.tmpl - /home/.chezmoiscripts/darwin/run_onchange_after_20-ensure-zsh-macos.tmpl - /home/.chezmoiscripts/darwin/run_onchange_before_10_install-darwin-dependencies.tmpl - /home/.chezmoiscripts/debian/run_onchange_before_10-install-debian-dependencies.tmpl - /home/.chezmoiscripts/fedora/run_onchange_before_10-install-fedora-dependencies.tmpl - /home/.chezmoiscripts/freebsd/run_onchange_before_11-install-freebsd-packages.tmpl - /home/.chezmoiscripts/opensuse/run_onchange_before_11-install-opensuse-software.tmpl - /home/.chezmoiscripts/ubuntu/run_onchange_before_10_install-ubuntu-dependencies.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_59-connect-tailscale.tmpl - /home/.chezmoiscripts/universal/run_once_before_1-decrypt-age-key.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_80-bash-completions.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_50-crontab.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_11-symlink-ansible-roles.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_12-install-packages.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_14_install-aqua-packages.sh.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_15_install-asdf-packages.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_99_bootstrap-zsh-plugins.tmpl - /home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.tmpl - /home/.chezmoiscripts/universal/run_onchange_after_18-install-sdkman.tmpl - /home/.chezmoiscripts/windows/run_onchange_before_11-install-windows-packages.tmpl - /home/.chezmoiscripts/windows/run_onchange_after_14-cleanup-windows - /home/.chezmoiscripts/windows/run_onchange_before_10-install-windows-dependencies.tmpl - /home/.chezmoidata.yaml - /home/.chezmoiexternal.toml - /home/.chezmoiignore - /home/.chezmoiremove - /home/.chezmoitemplates/darwin/Brewfile - /home/.chezmoitemplates/universal/logg-compat - /home/.chezmoitemplates/universal/profile - /home/.chezmoitemplates/universal/logg - /home/.chezmoitemplates/universal/essential-packages - /home/AppData/Local/clink/oh-my-posh.lua - /home/AppData/Roaming/Google Assistant/symlink_config.json.tmpl - /home/Library/Application Support/tabby/plugins/package-lock.json - /home/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Light.dvtcolortheme - /home/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Dark.dvtcolortheme - /home/Library/Fonts/run_onchange_after_add-fonts.tmpl - /home/Library/Preferences/com.apple.Terminal.plist - /home/Library/Preferences/com.googlecode.iterm2.plist - /home/Library/VirtualBox/VirtualBox.xml.tmpl - /home/dot_VirtualBox/VirtualBox.xml.tmpl - /home/dot_cache/readonly_rclone/remove_dot_gitkeep - /home/dot_cache/zsh/remove_dot_gitkeep - /home/dot_gnupg/public/apt.hashicorp.sig - /home/dot_gnupg/public/qubes.uman.sig - /home/dot_gnupg/public/linux.wazuh.sig - /home/dot_local/assets/Betelgeuse.macOS.terminal - /home/dot_local/bin/executable_install-program - /home/dot_local/bin/firejail/executable_slack - /home/dot_local/bin/executable_ramqube - /home/dot_local/bin/executable_squash-symlink - /home/dot_local/bin/symlink_bombshell-client.tmpl - /home/dot_local/bin/symlink_fd.tmpl - /home/dot_local/bin/symlink_qssh.tmpl - /home/dot_local/bin/executable_kde-wallpaper - /home/dot_local/bin/symlink_bat.tmpl - /home/dot_local/bin/executable_tinypng.tmpl - /home/dot_local/bin/executable_task - /home/dot_local/bin/executable_install-terminal-theme.tmpl - /home/dot_local/bin/symlink_qscp - /home/dot_local/bin/symlink_readlink.tmpl - /home/dot_local/bin/executable_logg - /home/dot_local/bin/executable_install-gnome-extensions - /home/dot_local/bin/executable_gist - /home/dot_local/bin/symlink_qrun.tmpl - /home/dot_local/bin/symlink_install-software.tmpl - /home/dot_local/bin/executable_open - /home/dot_local/bin/run_onchange_ensure-executable.tmpl - /home/dot_local/bin/executable_provision.tmpl - /home/dot_local/konsole/Default.profile - /home/dot_local/log/remove_dot_gitkeep - /home/dot_local/scripts/docker-functions.bash - /home/dot_local/scripts/motd.bash - /home/dot_local/scripts/p10k.zsh - /home/dot_local/share/ansible/plugins/action/symlink_commonlib.py.tmpl - /home/dot_local/share/ansible/plugins/action/symlink_qubesguid.py.tmpl - /home/dot_local/share/ansible/plugins/action/symlink_qubessls.py.tmpl - /home/dot_local/share/ansible/plugins/action/symlink_qubesformation.py.tmpl - /home/dot_local/share/ansible/plugins/action/symlink_qubes_pass.py.tmpl - /home/dot_local/share/ansible/plugins/connection/symlink_qubes.py.tmpl - /home/dot_local/share/ansible/plugins/library/symlink_qubessls.py.tmpl - /home/dot_local/share/ansible/plugins/library/symlink_qubesguid.py.tmpl - /home/dot_local/share/ansible/plugins/library/symlink_qubesformation.py.tmpl - /home/dot_local/share/ansible/plugins/library/symlink_qubes_pass.py.tmpl - /home/dot_local/share/ansible/plugins/lookup/symlink_qubes-pass.py.tmpl - /home/dot_local/share/ansible/plugins/lookup/symlink_jq.py.tmpl - /home/dot_local/share/ansible/tasks/symlink_qubes.tmpl - /home/dot_local/share/ansible/symlink_docs.tmpl - /home/dot_local/share/ansible/symlink_main.yml.tmpl - /home/dot_local/share/ansible/symlink_playbooks.tmpl - /home/dot_local/share/ansible/symlink_README.md.tmpl - /home/dot_local/share/ansible/symlink_requirements.yml.tmpl - /home/dot_local/share/ansible/symlink_environments.tmpl - /home/dot_local/share/ansible/symlink_Vagrantfile.tmpl - /home/dot_local/share/ansible/symlink_ansible.cfg.tmpl - /home/dot_local/share/ansible/run_onchange_after_symlink-ansible-configs.tmpl - /home/dot_local/share/fonts/Weather-Icons.ttf - /home/dot_local/share/fonts/FontAwesome.ttf - /home/dot_local/share/git-core/templates/hooks/post-commit - /home/dot_local/state/bash/remove_dot_gitkeep - /home/dot_local/state/zsh/remove_dot_gitkeep - /home/dot_local/Taskfile-local.yml - /home/dot_ssh/symlink_authorized_keys.tmpl - /home/dot_ssh/authorized_keys.github.tmpl - /home/dot_ssh/run_onchanges_after_ensure-private-key.tmpl - /home/dot_ssh/run_onchanges_after_generate-public-keys.tmpl - /home/dot_ssh/private_config.tmpl - /home/dot_vim/autoload/lightline/colorscheme/Betelgeuse.vim - /home/dot_vim/colors/Betelgeuse.vim - /home/private_dot_config/Google Assistant/client-secret.json - /home/private_dot_config/Google Assistant/config.json.tmpl - /home/private_dot_config/Kvantum/kvantum.config - /home/private_dot_config/VirtualBox/VirtualBox.xml.tmpl - /home/private_dot_config/alacritty/alacritty.yml - /home/private_dot_config/asdf/default-ruby-pkgs - /home/private_dot_config/asdf/asdfrc.tmpl - /home/private_dot_config/asdf/default-golang-pkgs - /home/private_dot_config/asdf/default-cargo-pkgs - /home/private_dot_config/asdf/default-python-pkgs - /home/private_dot_config/asdf/default-npm-packages - /home/private_dot_config/bashtop/bashtop.cfg - /home/private_dot_config/bat/config - /home/private_dot_config/brew/whalebrew - /home/private_dot_config/brew/Brewfile.tmpl - /home/private_dot_config/crontab/config - /home/private_dot_config/direnv/direnv.toml - /home/private_dot_config/fd/ignore - /home/private_dot_config/firejail/google-chrome-stable.local - /home/private_dot_config/firejail/bitwarden.local - /home/private_dot_config/firejail/thunderbird.local - /home/private_dot_config/firejail/slack.local - /home/private_dot_config/firejail/code.local - /home/private_dot_config/firejail/gcloud.local - /home/private_dot_config/firejail/chromium.local - /home/private_dot_config/fontconfig/fonts.conf - /home/private_dot_config/ghorg/conf.yaml.tmpl - /home/private_dot_config/git/template/symlink_post-checkout - /home/private_dot_config/git/template/symlink_post-rewrite - /home/private_dot_config/git/template/symlink_prepare-commit-msg - /home/private_dot_config/git/template/symlink_pre-push - /home/private_dot_config/git/template/symlink_post-commit - /home/private_dot_config/git/template/symlink_commit-msg - /home/private_dot_config/git/template/symlink_pre-commit - /home/private_dot_config/git/template/symlink_post-merge - /home/private_dot_config/git/attributes - /home/private_dot_config/git/ignore - /home/private_dot_config/git/config.tmpl - /home/private_dot_config/git/commit-template - /home/private_dot_config/gtk-1.0/.gitkeep - /home/private_dot_config/gtk-2.0/gtkrc - /home/private_dot_config/gtk-3.0/settings.ini - /home/private_dot_config/heroku/deploy.yml.tmpl - /home/private_dot_config/himalaya/config.toml - /home/private_dot_config/k9s/plugin.yml - /home/private_dot_config/kitty/Betelgeuse-light.conf - /home/private_dot_config/kitty/Betelgeuse-dark.conf - /home/private_dot_config/kitty/kitty.conf - /home/private_dot_config/libvirt/libvirtd.conf - /home/private_dot_config/ngrok/ngrok.yml.tmpl - /home/private_dot_config/npm/npmrc.tmpl.TODO - /home/private_dot_config/oh-my-posh/Betelgeuse-minimal.omp.json - /home/private_dot_config/oh-my-posh/Betelgeuse.omp.json - /home/private_dot_config/pg/.gitkeep - /home/private_dot_config/pgcli/config - /home/private_dot_config/plasma/plasmoids.yml - /home/private_dot_config/powershell/profile.ps1 - /home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/themes/themer-light-color-theme.json - /home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/themes/themer-dark-color-theme.json - /home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/README.md - /home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/package.json - /home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/icon.svg - /home/private_dot_config/private_Code/User/settings.json - /home/private_dot_config/private_Code/User/keybindings.json - /home/private_dot_config/private_Code/User/extensions.json - /home/private_dot_config/putty/.gitkeep - /home/private_dot_config/rclone/merge_rclone.conf - /home/private_dot_config/readline/inputrc - /home/private_dot_config/ripgrep/config - /home/private_dot_config/rofi/config.rasi.tmpl - /home/private_dot_config/shell/exports.sh.tmpl - /home/private_dot_config/shell/profile.sh - /home/private_dot_config/shell/functions.sh - /home/private_dot_config/shell/aliases.sh.tmpl - /home/private_dot_config/shell/private_private.sh - /home/private_dot_config/shell/motd.sh - /home/private_dot_config/slack-term/config.tmpl - /home/private_dot_config/tabby/config.yaml.tmpl - /home/private_dot_config/terminator/config - /home/private_dot_config/tmux/remove_dot_gitkeep - /home/private_dot_config/vim/vimrc - /home/private_dot_config/wget/wgetrc - /home/private_dot_config/xfce4/terminal/terminalrc - /home/private_dot_config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml - /home/private_dot_config/xsettingsd/xsettingsd.conf - /home/private_dot_config/youtube-dl/config - /home/private_dot_config/zap/v2/config.ini - /home/private_dot_config/kcminputrc - /home/private_dot_config/kwinrc - /home/private_dot_config/gtkrc - /home/private_dot_config/mimeapps.list - /home/private_dot_config/ksplashrc - /home/private_dot_config/ktimezonedrc - /home/private_dot_config/plasma-localerc - /home/private_dot_config/plasmarc - /home/private_dot_config/chromium-flags.conf - /home/private_dot_config/konsolerc - /home/private_dot_config/kdeglobals - /home/dot_editorconfig - /home/key.txt.age - /home/dot_tool-versions.tmpl - /home/dot_Xresources - /home/dot_zshrc - /home/.chezmoi.yaml.tmpl - /home/dot_bashrc - /system/Applications/Firefox.app/Contents/Resources/distribution/policies.json - /system/boot/efi/EFI/qubes/modify_grubenv - /system/etc/cockpit/machines.d/TODO.cockpit-machine.json.tmpl - /system/etc/cups/cupsd.conf - /system/etc/cups/modify_cupsd.conf - /system/etc/default/modify_grub - /system/etc/fonts/local.conf - /system/etc/grub.d/31-hold-shift - /system/etc/keybase/config.json - /system/etc/opt/chrome/policies/managed/policies.json - /system/etc/qubes/repo-templates/qubes-templates.repo - /system/etc/sanoid/sanoid.conf.TODO - /system/etc/systemd/system/r2-docker.service - /system/etc/systemd/system/r2-{{ .user.username }}.service.tmpl - /system/etc/timeshift/timeshift.json - /system/etc/yum.repos.d/qubes-dom0.repo - /system/etc/modify_environment - /system/etc/rcloneignore - /system/etc/sddm.conf - /system/mnt/private_r2-docker/remove_dot_gitkeep - /system/usr/lib/firefox-esr/distribution/policies.json - /system/usr/lib/firefox/distribution/policies.json - /system/usr/local/bin/executable_rclone-mount - /system/usr/local/bin/executable_squash-symlink - /system/usr/local/share/run_onchange_after_setup-share-folder - /system/usr/share/run_onchange_after_setup-share-folder - /system/var/cache/rclone/remove_dot_gitkeep - /system/var/log/user/run_onchange_after-symlink-user-logs - /system/.chezmoidata.yaml - /system/.chezmoiexternal.toml - /system/.chezmoiignore - /.chezmoiignore - /.chezmoiroot - /software.yml - /README.md - /local/sync.sh
669 lines
24 KiB
Bash
669 lines
24 KiB
Bash
#!/usr/bin/env bash
|
||
# shellcheck disable=SC1090,SC1091
|
||
|
||
BAR_ELEMENT="-"
|
||
BAR_HEALTHY_COLOR="32"
|
||
BAR_WARNING_THRESHOLD=70
|
||
BAR_WARNING_COLOR="33"
|
||
BAR_CRITICAL_THRESHOLD=90
|
||
BAR_CRITICAL_COLOR="31"
|
||
|
||
BANNER_KERNEL_ICON=""
|
||
BANNER_KERNEL_COLOR="33"
|
||
BANNER_UPTIME_ICON=""
|
||
BANNER_UPTIME_COLOR="94"
|
||
BANNER_DEBIAN_ICON=""
|
||
BANNER_DEBIAN_COLOR="95"
|
||
BANNER_FEDORA_ICON=""
|
||
BANNER_FEDORA_COLOR="34"
|
||
BANNER_FONTPATH=""
|
||
BANNER_TEXT="$(hostname -s)"
|
||
|
||
PROCESSOR_LOADAVG_ICON="ﲯ"
|
||
PROCESSOR_LOADAVG_HEALTHY_COLOR="32"
|
||
PROCESSOR_LOADAVG_WARNING_THRESHOLD=2
|
||
PROCESSOR_LOADAVG_WARNING_COLOR="33"
|
||
PROCESSOR_LOADAVG_CRITICAL_THRESHOLD=4
|
||
PROCESSOR_LOADAVG_CRITICAL_COLOR="31"
|
||
PROCESSOR_MODEL_ICON=""
|
||
|
||
MEMORY_ICON=""
|
||
|
||
SWAP_ICON=""
|
||
|
||
DISKSPACE_ICON=""
|
||
|
||
SERVICES_UP_ICON=""
|
||
SERVICES_UP_COLOR="32"
|
||
SERVICES_DOWN_ICON=""
|
||
SERVICES_DOWN_COLOR="31"
|
||
SERVICES_FILE=".bashrc_motd_services.txt"
|
||
|
||
# TODO - Fill this in if Podman is ever used
|
||
PODMAN_VERSION_ICON="#"
|
||
PODMAN_IMAGES_ICON="#"
|
||
PODMAN_RUNNING_ICON="#"
|
||
PODMAN_RUNNING_COLOR="32"
|
||
PODMAN_OTHER_ICON="#"
|
||
PODMAN_OTHER_COLOR="90"
|
||
|
||
DOCKER_VERSION_ICON=""
|
||
DOCKER_IMAGES_ICON=""
|
||
DOCKER_RUNNING_ICON=""
|
||
DOCKER_RUNNING_COLOR="32"
|
||
DOCKER_OTHER_ICON=""
|
||
DOCKER_OTHER_COLOR="90"
|
||
|
||
UPDATES_ZERO_ICON=""
|
||
UPDATES_ZERO_COLOR="32"
|
||
UPDATES_AVAILIABLE_ICON="ﮮ"
|
||
UPDATES_AVAILIABLE_COLOR="33"
|
||
UPDATES_SECURITY_ICON="撚"
|
||
UPDATES_SECURITY_COLOR="31"
|
||
|
||
LETSENCRYPT_VALID_ICON="ﲘ"
|
||
LETSENCRYPT_VALID_COLOR="32"
|
||
LETSENCRYPT_WARNING_ICON="ﲙ"
|
||
LETSENCRYPT_WARNING_COLOR="33"
|
||
LETSENCRYPT_INVALID_ICON=""
|
||
LETSENCRYPT_INVALID_COLOR="31"
|
||
LETSENCRYPT_CERTPATH="/etc/letsencrypt/live"
|
||
|
||
LOGIN_LOGIN_ICON=""
|
||
LOGIN_LOGOUT_ICON=""
|
||
LOGIN_IP_ICON="ﯱ"
|
||
|
||
INCLUDE_FILE="ownscript.sh"
|
||
|
||
generate_unit_byte() {
|
||
# 1 - unit in M
|
||
|
||
if [ "$1" -ge 1024 ]; then
|
||
unit_symbol="G"
|
||
unit_value=$(echo "$1/1024" | bc -l | LANG=C xargs printf "%.1f\n")
|
||
else
|
||
unit_symbol="M"
|
||
unit_value=$1
|
||
fi
|
||
|
||
echo "$unit_value$unit_symbol"
|
||
}
|
||
|
||
generate_space() {
|
||
# 1 - already used
|
||
# 2 - total
|
||
|
||
space_fill=$(($2 - ${#1}))
|
||
space_chars=""
|
||
|
||
while [ $space_fill -ge 0 ]; do
|
||
space_chars="$space_chars "
|
||
space_fill=$((space_fill - 1))
|
||
done
|
||
|
||
echo "$space_chars"
|
||
}
|
||
|
||
generate_bar() {
|
||
# 1 - icon
|
||
# 2 - total
|
||
# 3 - used_1
|
||
# 4 - [ used_2 ]
|
||
|
||
bar_percent=$(($3 * 100 / $2))
|
||
bar_separator=$(($3 * 100 * 10 / $2 / 25))
|
||
|
||
if [ $bar_percent -ge "$BAR_WARNING_THRESHOLD" ]; then
|
||
bar_color=$BAR_WARNING_COLOR
|
||
elif [ $bar_percent -ge "$BAR_CRITICAL_THRESHOLD" ]; then
|
||
bar_color=$BAR_CRITICAL_COLOR
|
||
else
|
||
bar_color=$BAR_HEALTHY_COLOR
|
||
fi
|
||
|
||
printf " %s \\033[%dm" "$1" "$bar_color"
|
||
|
||
if [ -z "$4" ]; then
|
||
bar_piece=0
|
||
while [ $bar_piece -le 40 ]; do
|
||
if [ "$bar_piece" -ne "$bar_separator" ]; then
|
||
printf "%s" "$BAR_ELEMENT"
|
||
else
|
||
printf "%s\\033[1;30m" "$BAR_ELEMENT"
|
||
fi
|
||
|
||
bar_piece=$((bar_piece + 1))
|
||
done
|
||
else
|
||
bar_cached_val=$(($3 + $4))
|
||
bar_cached_separator=$((bar_cached_val * 100 * 10 / $2 / 25))
|
||
|
||
bar_piece=0
|
||
while [ $bar_piece -le 40 ]; do
|
||
if [ $bar_piece -eq $bar_separator ]; then
|
||
printf "%s\\033[1;36m" "$BAR_ELEMENT"
|
||
elif [ $bar_piece -eq $bar_cached_separator ]; then
|
||
printf "%s\\033[1;30m" "$BAR_ELEMENT"
|
||
else
|
||
printf "%s" "$BAR_ELEMENT"
|
||
fi
|
||
|
||
bar_piece=$((bar_piece + 1))
|
||
done
|
||
fi
|
||
|
||
printf "\\033[0m\\n"
|
||
}
|
||
|
||
generate_bar_memory() {
|
||
# 1 - icon
|
||
# 2 - total memory in M
|
||
# 3 - used memory in M
|
||
# 4 - cached memory in M
|
||
|
||
bar_memory_used=$(generate_unit_byte "$3")
|
||
bar_memory_cached=$(generate_unit_byte "$4")
|
||
bar_memory_available=$(generate_unit_byte $(($2 - $3)))
|
||
|
||
printf " %s used / %s cached / %s available\\n" "$bar_memory_used" "$bar_memory_cached" "$bar_memory_available"
|
||
generate_bar "$1" "$2" "$3" "$4"
|
||
}
|
||
|
||
generate_bar_swap() {
|
||
# 1 - icon
|
||
# 2 - total swap in M
|
||
# 3 - used swap in M
|
||
|
||
bar_swap_used=$(generate_unit_byte "$3")
|
||
|
||
bar_swap_available=$(($2 - $3))
|
||
bar_swap_available=$(generate_unit_byte "$bar_swap_available")
|
||
|
||
printf " %s used / %s available\\n" "$bar_swap_used" "$bar_swap_available"
|
||
generate_bar "$1" "$2" "$3"
|
||
}
|
||
|
||
generate_bar_disk() {
|
||
# 1 - icon
|
||
# 2 - total size in M
|
||
# 3 - used space in M
|
||
# 4 - mount path
|
||
|
||
bar_disk_mount="$4$(generate_space "$4" 10)"
|
||
|
||
bar_disk_used="$(generate_unit_byte "$3")"
|
||
bar_disk_used="$(generate_space "$bar_disk_used" 5)$bar_disk_used used"
|
||
|
||
bar_disk_available="$(($2 - $3))"
|
||
bar_disk_available="$(generate_unit_byte "$bar_disk_available") available"
|
||
|
||
printf " %s%s / %s\\n" "$bar_disk_mount" "$bar_disk_used" "$bar_disk_available"
|
||
|
||
generate_bar "$1" "$2" "$3"
|
||
}
|
||
|
||
print_banner() {
|
||
if command -v lolcat >/dev/null && command -v figlet >/dev/null; then
|
||
if [[ "${#HOSTNAME}" -lt 14 ]]; then
|
||
figlet "$(hostname)" | lolcat -f
|
||
else
|
||
printf "\\n"
|
||
printf " \\033[1;37mHostname:\\033[0m %s\\n" "$(hostname)"
|
||
fi
|
||
elif command -v figlet >/dev/null; then
|
||
printf "\\n%s\\n" "$(figlet -t -f "$BANNER_FONTPATH" " $BANNER_TEXT")"
|
||
else
|
||
printf "\\n"
|
||
printf " \\033[1;37mHostname:\\033[0m %s\\n" "$(hostname)"
|
||
fi
|
||
|
||
if [ -f /etc/os-release ]; then
|
||
. /etc/os-release
|
||
|
||
if [ "$ID" = "debian" ]; then
|
||
banner_distro_icon="$BANNER_DEBIAN_ICON"
|
||
banner_distro_color="$BANNER_DEBIAN_COLOR"
|
||
banner_distro_name="Debian"
|
||
banner_distro_version="$(cat /etc/debian_version)"
|
||
elif [ "$ID" = "fedora" ]; then
|
||
banner_distro_icon="$BANNER_FEDORA_ICON"
|
||
banner_distro_color="$BANNER_FEDORA_COLOR"
|
||
banner_distro_name="Fedora"
|
||
banner_distro_version="$VERSION_ID"
|
||
else
|
||
banner_distro_icon="$OS_ICON"
|
||
banner_distro_color="0"
|
||
if [ -n "$NAME" ]; then
|
||
banner_distro_name="$NAME"
|
||
elif [ -n "$PRETTY_NAME" ]; then
|
||
banner_distro_name="$PRETTY_NAME"
|
||
else
|
||
banner_distro_name="Linux"
|
||
fi
|
||
if [ -n "$VERSION" ]; then
|
||
banner_distro_version="$VERSION"
|
||
elif [ -n "$VERSION_ID" ]; then
|
||
banner_distro_version="$VERSION_ID"
|
||
elif [ -n "$BUILD_ID" ]; then
|
||
banner_distro_version="$BUILD_ID"
|
||
else
|
||
banner_distro_version="Version Unknown"
|
||
fi
|
||
fi
|
||
|
||
banner_distro_space="$(generate_space "$banner_distro_name" 13)"
|
||
if [ "$(hostname)" = 'dom0' ]; then
|
||
# Qubes dom0
|
||
banner_distro_space="$(generate_space "$NAME" 13)"
|
||
printf " \\033[%sm%s %s\\033[0m%s%s\\n" "$banner_distro_color" "" "$NAME" "$banner_distro_space" "$VERSION"
|
||
else
|
||
printf " \\033[%sm%s %s\\033[0m%s%s\\n" "$banner_distro_color" "$banner_distro_icon" "$banner_distro_name" "$banner_distro_space" "$banner_distro_version"
|
||
fi
|
||
printf " \\033[%sm%s Linux\\033[0m %s\\n" "$BANNER_KERNEL_COLOR" "$BANNER_KERNEL_ICON" "$(cut -d ' ' -f 3 </proc/version)"
|
||
printf " \\033[%sm%s Uptime\\033[0m %s\\n" "$BANNER_UPTIME_COLOR" "$BANNER_UPTIME_ICON" "$(uptime -p | cut -d ' ' -f 2-)"
|
||
else
|
||
if [ -d '/Applications' ] && [ -d '/System' ]; then
|
||
printf " \\033[%sm%s OS \\033[0m %s\\n" "$UPDATES_ZERO_COLOR" "" "macOS $(sw_vers -productVersion) / Build $(sw_vers -buildVersion)"
|
||
printf " \\033[%sm%s UUID \\033[0m %s\\n" "$PODMAN_RUNNING_COLOR" "" "$(ioreg -d2 -c IOPlatformExpertDevice | awk -F\" '/IOPlatformUUID/{print $(NF-1)}')"
|
||
printf " \\033[%sm%s LAN IP \\033[0m %s\\n" "$BANNER_KERNEL_COLOR" "ﯱ" "$(ifconfig en0 2>/dev/null | grep 'inet ' | cut -d ' ' -f 2)"
|
||
IP_ADDR_PUB="$(timeout 1 sh -c 'curl -sSL ifconfig.me')"
|
||
if [ -n "$IP_ADDR_PUB" ]; then
|
||
printf " \\033[%sm%s Public IP\\033[0m %s\\n" "$UPDATES_SECURITY_COLOR" "" "$IP_ADDR_PUB"
|
||
fi
|
||
fi
|
||
fi
|
||
}
|
||
|
||
print_processor() {
|
||
printf "\\n"
|
||
printf " \\033[1;37mProcessor:\\033[0m\\n"
|
||
|
||
processor_loadavg="$(cut -d " " -f 1,2,3 </proc/loadavg)"
|
||
if [ "$(echo "$processor_loadavg" | cut -d "." -f 1)" -ge "$PROCESSOR_LOADAVG_CRITICAL_THRESHOLD" ]; then
|
||
processor_loadavg_color="$PROCESSOR_LOADAVG_CRITICAL_COLOR"
|
||
elif [ "$(echo "$processor_loadavg" | cut -d "." -f 1)" -ge "$PROCESSOR_LOADAVG_WARNING_THRESHOLD" ]; then
|
||
processor_loadavg_color="$PROCESSOR_LOADAVG_WARNING_COLOR"
|
||
else
|
||
processor_loadavg_color="$PROCESSOR_LOADAVG_HEALTHY_COLOR"
|
||
fi
|
||
|
||
processor_info=$(cat /proc/cpuinfo)
|
||
|
||
processor_arch=$(uname -m)
|
||
|
||
if [ "$processor_arch" = "x86_64" ]; then
|
||
processor_model="$(echo "$processor_info" | grep "model name" | sort -u | cut -d ':' -f 2)"
|
||
processor_count=$(echo "$processor_info" | grep "physical id" | sort -u | wc -l)
|
||
processor_cores=$(echo "$processor_info" | grep "cpu cores" | sort -u | cut -d ':' -f 2)
|
||
processor_threads=$(($(echo "$processor_info" | grep "siblings" | tail -n 1 | cut -d ':' -f 2)))
|
||
|
||
if [ ! "$processor_cores" -eq $processor_threads ]; then
|
||
processor_threads=", $processor_threads Threads"
|
||
else
|
||
processor_threads=""
|
||
fi
|
||
elif [ "$processor_arch" = "mips64" ]; then
|
||
processor_model="$(echo "$processor_info" | grep "cpu model" | sort -u | cut -d ':' -f 2)"
|
||
processor_count=$(echo "$processor_info" | grep "package" | sort -u | wc -l)
|
||
processor_cores=$(echo "$processor_info" | grep -c processor)
|
||
processor_threads=""
|
||
else
|
||
processor_model="?"
|
||
processor_count=0
|
||
processor_cores=0
|
||
processor_threads=0
|
||
fi
|
||
|
||
processor_model="${processor_model//\(R\)/}"
|
||
processor_model="${processor_model//\(tm\)/}"
|
||
processor_model="${processor_model// @/,}"
|
||
processor_model="${processor_model// CPU/}"
|
||
processor_model="${processor_model// / }"
|
||
# shellcheck disable=SC2001
|
||
processor_model="$(echo "$processor_model" | sed "s/^ //g")"
|
||
|
||
processor_cores=$((processor_cores * processor_count))
|
||
|
||
if [ "$processor_count" -gt 1 ]; then
|
||
processor_count="$processor_count""x "
|
||
else
|
||
processor_count=""
|
||
fi
|
||
|
||
printf " %s \\033[%dm%s\\033[0m\\n" "$PROCESSOR_LOADAVG_ICON" "$processor_loadavg_color" "$processor_loadavg"
|
||
printf " %s %s%s = %s Cores%s\\n" "$PROCESSOR_MODEL_ICON" "$processor_count" "$processor_model" "$processor_cores" "$processor_threads"
|
||
}
|
||
|
||
print_memory() {
|
||
printf "\\n"
|
||
printf " \\033[1;37mMemory:\\033[0m\\n"
|
||
|
||
memory_usage=$(LANG=C free --mega | grep "Mem:")
|
||
memory_total=$(echo "$memory_usage" | awk '{ print $2 }')
|
||
memory_used=$(echo "$memory_usage" | awk '{ print $3 }')
|
||
memory_cached=$(echo "$memory_usage" | awk '{ print $6 }')
|
||
|
||
generate_bar_memory "$MEMORY_ICON" "$memory_total" "$memory_used" "$memory_cached"
|
||
}
|
||
|
||
print_swap() {
|
||
swap_usage=$(LANG=C free --mega | grep "Swap:")
|
||
|
||
swap_total=$(echo "$swap_usage" | awk '{ print $2 }')
|
||
swap_used=$(echo "$swap_usage" | awk '{ print $3 }')
|
||
|
||
if [ "$swap_total" -ne 0 ]; then
|
||
printf "\\n"
|
||
printf " \\033[1;37mSwap:\\033[0m\\n"
|
||
|
||
generate_bar_swap "$SWAP_ICON" "$swap_total" "$swap_used"
|
||
fi
|
||
}
|
||
|
||
print_diskspace() {
|
||
if command -v jq >/dev/null; then
|
||
printf "\\n"
|
||
printf " \\033[1;37mDiskspace:\\033[0m\\n"
|
||
|
||
diskspace_devices=$(lsblk -Jlo NAME,MOUNTPOINT | jq -c '.blockdevices | sort_by(.mountpoint) | .[] | select( .mountpoint != null and .mountpoint != "[SWAP]" )')
|
||
diskspace_partitions=$(df -B M 2> /dev/null | sed -e "s/M//g")
|
||
|
||
diskspace_index=0
|
||
echo "$diskspace_devices" | while read -r line; do
|
||
diskspace_disk_name="$(echo "$line" | jq -r '.name')"
|
||
diskspace_disk_mount="$(echo "$line" | jq -r '.mountpoint')"
|
||
|
||
diskspace_disk_size="$(echo "$diskspace_partitions" | grep "$diskspace_disk_name " | awk '{ print $2 }')"
|
||
diskspace_disk_used="$(echo "$diskspace_partitions" | grep "$diskspace_disk_name " | awk '{ print $3 }')"
|
||
if [[ "$diskspace_disk_mount" != '/var/lib/snapd/snap'* ]] && [[ "$diskspace_disk_mount" != '/snap/'* ]]; then
|
||
if [ -z "$diskspace_disk_size" ]; then
|
||
diskspace_disk_size="$(echo "$diskspace_partitions" | grep "$diskspace_disk_mount" | awk '{ print $2 }')"
|
||
fi
|
||
if [ -z "$diskspace_disk_used" ]; then
|
||
diskspace_disk_used="$(echo "$diskspace_partitions" | grep "$diskspace_disk_mount" | awk '{ print $3 }')"
|
||
fi
|
||
if [ "$diskspace_index" -ne 0 ]; then
|
||
printf "\\n"
|
||
fi
|
||
diskspace_index=$((diskspace_index + 1))
|
||
generate_bar_disk "$DISKSPACE_ICON" "$diskspace_disk_size" "$diskspace_disk_used" "$diskspace_disk_mount"
|
||
fi
|
||
done
|
||
fi
|
||
}
|
||
|
||
print_services() {
|
||
if [ -f $SERVICES_FILE ] && [ "$(wc -l <$SERVICES_FILE)" != 0 ]; then
|
||
printf "\\n"
|
||
printf " \\033[1;37mServices:\\033[0m \\033[1;37mVersion:\\033[0m\\n"
|
||
|
||
while read -r line; do
|
||
service_description=$(echo "$line" | cut -d ';' -f 1)
|
||
|
||
service_name=$(echo "$line" | cut -d ';' -f 2)
|
||
|
||
service_package=$(echo "$line" | cut -d ';' -f 3)
|
||
|
||
if [ -n "$service_description" ] && [ -n "$service_name" ]; then
|
||
if systemctl is-active --quiet "$service_name".service; then
|
||
service_icon="$SERVICES_UP_ICON"
|
||
service_color="$SERVICES_UP_COLOR"
|
||
else
|
||
service_icon="$SERVICES_DOWN_ICON"
|
||
service_color="$SERVICES_DOWN_COLOR"
|
||
fi
|
||
|
||
service_space=$(generate_space "$service_description" 34)
|
||
|
||
if [ -n "$service_package" ]; then
|
||
if [ -f /usr/bin/apt ]; then
|
||
package_version=$(dpkg -s "$service_package" | grep '^Version:' | cut -d ' ' -f 2 | cut -d ':' -f 2 | cut -d '-' -f 1)
|
||
elif [ -f /usr/bin/rpm ]; then
|
||
package_version=$(rpm -q --queryformat '%{VERSION}' "$service_package")
|
||
else
|
||
package_version="?"
|
||
fi
|
||
else
|
||
package_version="--"
|
||
fi
|
||
fi
|
||
|
||
printf " \\033[%sm%s\\033[0m %s%s%s\\n" "$service_color" "$service_icon" "$service_description" "$service_space" "$package_version"
|
||
done <"$SERVICES_FILE" | grep -v '#'
|
||
fi
|
||
}
|
||
|
||
print_podman() {
|
||
if command -v jq >/dev/null; then
|
||
printf "\\n"
|
||
printf " \\033[1;37mPodman:\\033[0m\\n"
|
||
|
||
podman_version="$(sudo podman version --format json | jq -r '.Client.Version')"
|
||
podman_space="$(generate_space "$podman_version" 23)"
|
||
podman_images="$(sudo podman images --format json | jq '. | length')"
|
||
|
||
printf " %s Version %s%s%s %s Images\\n\\n" "$PODMAN_VERSION_ICON" "$podman_version" "$podman_space" "$PODMAN_IMAGES_ICON" "$podman_images"
|
||
|
||
podman_list=$(sudo podman pod ls --sort name --format json)
|
||
podman_pods=$(echo "$podman_list" | jq -r '.[] .Name')
|
||
|
||
echo "$podman_pods" | while read -r pod; do
|
||
if [ "$(echo "$podman_list" | jq -r ".[] | select(.Name == \"$pod\") | .Status")" = "Running" ]; then
|
||
pod_space=$(generate_space "$pod" 34)
|
||
|
||
pod_container_running="$(echo "$podman_list" | jq -r ".[] | select(.Name == \"$pod\") | .Containers[] | select(.Status == \"running\") | .Status" | wc -l)"
|
||
|
||
if [ "$pod_container_running" -ne 0 ]; then
|
||
pod_container_running=$(printf "\\033[%um%u Running\\033[0m" "$PODMAN_RUNNING_COLOR" "$pod_container_running")
|
||
fi
|
||
|
||
pod_container_other="$(echo "$podman_list" | jq -r ".[] | select(.Name == \"$pod\") | .Containers[] | select(.Status != \"running\") | .Status" | wc -l)"
|
||
|
||
if [ "$pod_container_other" -ne 0 ]; then
|
||
pod_container_other=$(printf ", \\033[%um%u Other\\033[0m" "$PODMAN_OTHER_COLOR" "$pod_container_other")
|
||
else
|
||
pod_container_other=""
|
||
fi
|
||
|
||
pod_status="$pod_container_running$pod_container_other"
|
||
|
||
printf " \\033[%um%s\\033[0m %s%s%s\\n" "$PODMAN_RUNNING_COLOR" "$PODMAN_RUNNING_ICON" "$pod" "$pod_space" "$pod_status"
|
||
else
|
||
printf " \\033[%um%s\\033[0m \\033[%um%s\\033[0m\\n" "$PODMAN_OTHER_COLOR" "$PODMAN_OTHER_ICON" "$PODMAN_OTHER_COLOR" "$pod"
|
||
fi
|
||
done
|
||
fi
|
||
}
|
||
|
||
print_docker() {
|
||
if command -v jq >/dev/null && [ "$(systemctl is-active docker.service)" = "active" ]; then
|
||
printf "\\n"
|
||
printf " \\033[1;37mDocker:\\033[0m\\n"
|
||
|
||
docker_info=$(sudo curl -sf --unix-socket /var/run/docker.sock http:/v1.40/info)
|
||
|
||
docker_version=$(echo "$docker_info" | jq -r '.ServerVersion')
|
||
|
||
docker_space=$(generate_space "$docker_version" 23)
|
||
|
||
docker_images=$(echo "$docker_info" | jq -r '.Images')
|
||
|
||
printf " %s Version %s%s%s %s Images\\n" "$DOCKER_VERSION_ICON" "$docker_version" "$docker_space" "$DOCKER_IMAGES_ICON" "$docker_images"
|
||
|
||
docker_list_curl="$(sudo curl -sf --unix-socket /var/run/docker.sock "http://v1.40/containers/json?all=true")"
|
||
docker_list_curl_length="$(echo "$docker_list_curl" | jq -c '. | length')"
|
||
docker_list="$(echo "$docker_list_curl" | jq -c ' .[]')"
|
||
|
||
if [ "$docker_list_curl_length" != '0' ]; then
|
||
echo "$docker_list" | while read -r line; do
|
||
container_name="$(echo "$line" | jq -r '.Names[]' | sed 's/\///')"
|
||
container_status="$(echo "$line" | jq -r '.Status' | sed 's/.*/\l&/')"
|
||
container_space=$(generate_space "$container_name" 34)
|
||
if [ "$(echo "$line" | jq -r '.State')" = "running" ]; then
|
||
printf " \\033[%um%s\\033[0m %s%s%s\\n" "$DOCKER_RUNNING_COLOR" "$DOCKER_RUNNING_ICON" "$container_name" "$container_space" "$container_status"
|
||
else
|
||
printf " \\033[%um%s\\033[0m \\033[%um%s\\033[0m%s\\033[%um%s\\033[0m\\n" "$DOCKER_OTHER_COLOR" "$DOCKER_OTHER_ICON" "$DOCKER_OTHER_COLOR" "$container_name" "$container_space" "$DOCKER_OTHER_COLOR" "$container_status"
|
||
fi
|
||
done
|
||
fi
|
||
fi
|
||
}
|
||
|
||
print_updates() {
|
||
printf "\\n"
|
||
printf " \\033[1;37mHealth:\\033[0m\\n"
|
||
if [ -f /usr/bin/apt ]; then
|
||
updates_count_regular=$(apt-get -qq -y --ignore-hold --allow-change-held-packages --allow-unauthenticated -s dist-upgrade | grep ^Inst | grep -c -v Security)
|
||
updates_count_security=$(apt-get -qq -y --ignore-hold --allow-change-held-packages --allow-unauthenticated -s dist-upgrade | grep ^Inst | grep -c Security)
|
||
|
||
if [ "$updates_count_regular" -ne 0 ]; then
|
||
if [ -n "$updates_count_security" ] && [ "$updates_count_security" -ne 0 ]; then
|
||
updates_icon=$UPDATES_SECURITY_ICON
|
||
updates_color=$UPDATES_SECURITY_COLOR
|
||
updates_message="$updates_count_regular packages can be updated, $updates_count_security are security updates."
|
||
else
|
||
updates_icon=$UPDATES_AVAILIABLE_ICON
|
||
updates_color=$UPDATES_AVAILIABLE_COLOR
|
||
updates_message="$updates_count_regular packages can be updated."
|
||
fi
|
||
else
|
||
updates_icon=$UPDATES_ZERO_ICON
|
||
updates_color=$UPDATES_ZERO_COLOR
|
||
updates_message="The system apt packages are up-to-date!"
|
||
fi
|
||
|
||
printf " \\033[%sm%s \\033[0m %s\\n" "$updates_color" "$updates_icon" "$updates_message"
|
||
elif [ -f /usr/bin/dnfTODO ]; then
|
||
# TODO - Find way of quickly acquiring details
|
||
mkdir -p "$HOME/.local/labs" > /dev/null
|
||
(command dnf list updates | grep updates | wc -l > "$HOME/.local/labs/dnf-updates-reg" &)
|
||
(command dnf updateinfo list --security --available | grep '/Sec. ' | wc -l > "$HOME/.local/labs/dnf-updates-sec" &)
|
||
updates_count_security="0"
|
||
updates_count_reg="0"
|
||
if [ -f "$HOME/.local/labs/dnf-updates-sec" ]; then
|
||
updates_count_security="$(cat "$HOME/.local/labs/dnf-updates-sec")"
|
||
fi
|
||
if [ -f "$HOME/.local/labs/dnf-updates-reg" ]; then
|
||
updates_count_reg="$(cat "$HOME/.local/labs/dnf-updates-reg")"
|
||
fi
|
||
|
||
if [ -n "$updates_count_regular" ] && [ "$updates_count_regular" -ne 0 ]; then
|
||
if [ -n "$updates_count_security" ] && [ "$updates_count_security" -ne 0 ]; then
|
||
updates_icon=$UPDATES_SECURITY_ICON
|
||
updates_color=$UPDATES_SECURITY_COLOR
|
||
updates_message="$(generate_space "$updates_count_regular" 5) packages can be updated, $updates_count_security are security updates."
|
||
else
|
||
updates_icon=$UPDATES_AVAILIABLE_ICON
|
||
updates_color=$UPDATES_AVAILIABLE_COLOR
|
||
updates_message="$(generate_space "$bar_disk_used" 5) packages can be updated."
|
||
fi
|
||
else
|
||
updates_icon=$UPDATES_ZERO_ICON
|
||
updates_color=$UPDATES_ZERO_COLOR
|
||
updates_message="The system dnf packages are up-to-date!"
|
||
fi
|
||
|
||
printf " \\033[%sm%s \\033[0m %s\\n" "$updates_color" "$updates_icon" "$updates_message"
|
||
fi
|
||
if command -v systemctl > /dev/null; then
|
||
running_services_count="$(systemctl --type=service --plain | grep 'active running' | wc -l)"
|
||
failed_services_count="$(systemctl --type=service --failed | grep 'failed failed' | wc -l)"
|
||
|
||
if [ "$failed_services_count" -eq 0 ]; then
|
||
printf " \\033[%sm%s \\033[0m All enabled services are running!\\n" "32" ""
|
||
elif [ "$failed_services_count" -eq 1 ]; then
|
||
printf " \\033[%sm%s \\033[0m %s services are are currently running\\n" "32" "" "$running_services_count"
|
||
printf " \\033[%sm%s \\033[0m 1 service failed to start (%s)\\n" "31" "" "$(systemctl --type=service --failed | grep 'failed failed' | sed 's/..\([^ ]*\).service.*/\1/')"
|
||
elif [ "$failed_services_count" -gt 1 ]; then
|
||
printf " \\033[%sm%s \\033[0m %s services are are currently running\\n" "32" "" "$running_services_count"
|
||
printf " \\033[%sm%s \\033[0m %s services failed to start (see \`systemctl --type=service\`)\\n" "31" "" "$failed_services_count"
|
||
fi
|
||
fi
|
||
}
|
||
|
||
print_letsencrypt() {
|
||
if [ -d $LETSENCRYPT_CERTPATH ] && [ "$(ls -a $LETSENCRYPT_CERTPATH)" ]; then
|
||
printf "\\n"
|
||
printf " \\033[1;37mSSL / let’s encrypt:\\033[0m\\n"
|
||
|
||
cert_list=$(sudo find $LETSENCRYPT_CERTPATH -name cert.pem)
|
||
|
||
for cert_file in $cert_list; do
|
||
sudo openssl x509 -checkend $((25 * 86400)) -noout -in "$cert_file" >>/dev/null
|
||
result=$?
|
||
|
||
cert_name=$(echo "$cert_file" | rev | cut -d '/' -f 2 | rev)
|
||
|
||
if [ "$result" -eq 0 ]; then
|
||
printf " \\033[%sm%s\\033[0m %s\\n" "$LETSENCRYPT_VALID_COLOR" "$LETSENCRYPT_VALID_ICON" "$cert_name"
|
||
else
|
||
sudo openssl x509 -checkend $((0 * 86400)) -noout -in "$cert_file" >>/dev/null
|
||
result=$?
|
||
|
||
if [ "$result" -eq 0 ]; then
|
||
printf " \\033[%sm%s\\033[0m %s\\n" "$LETSENCRYPT_WARNING_COLOR" "$LETSENCRYPT_WARNING_ICON" "$cert_name"
|
||
else
|
||
printf " \\033[%sm%s\\033[0m %s\\n" "$LETSENCRYPT_INVALID_COLOR" "$LETSENCRYPT_INVALID_ICON" "$cert_name"
|
||
fi
|
||
fi
|
||
done
|
||
fi
|
||
}
|
||
|
||
print_login() {
|
||
login_last="$(last -n 2 -a -d --time-format iso "$(whoami)" | head -n 2 | tail -n 1)"
|
||
|
||
if [ "$(echo "$login_last" | awk '{ print $1 }')" = "$(whoami)" ]; then
|
||
login_ip="$(echo "$login_last" | awk '{ print $7 }')"
|
||
|
||
login_login="$(date -d "$(echo "$login_last" | awk '{ print $3 }' | cut -d '+' -f 1 | sed "s/T/ /")" "+%a, %d.%m.%y %H:%M")"
|
||
|
||
login_space=$(generate_space "$login_login" 25)
|
||
|
||
if [ "$(echo "$login_last" | awk '{ print $4 }')" = "still" ]; then
|
||
login_logout="still connected"
|
||
else
|
||
login_logout="$(date -d "$(echo "$login_last" | awk '{ print $5 }' | cut -d '+' -f 1 | sed "s/T/ /")" "+%a, %d.%m.%y %H:%M")"
|
||
fi
|
||
|
||
printf "\\n"
|
||
printf " \\033[1;37mLast login for %s:\\033[0m\\n" "$(echo "$login_last" | awk '{ print $1 }')"
|
||
printf " %s %s%s%s %s\\n" "$LOGIN_LOGIN_ICON" "$login_login" "$login_space" "$LOGIN_LOGOUT_ICON" "$login_logout"
|
||
printf " %s %s\\n" "$LOGIN_IP_ICON" "$login_ip"
|
||
fi
|
||
}
|
||
|
||
print_include() {
|
||
. $INCLUDE_FILE
|
||
}
|
||
|
||
bash_motd() {
|
||
for module in "$@"; do
|
||
if [ "$module" = "--banner" ]; then
|
||
print_banner
|
||
elif [ "$module" = "--processor" ]; then
|
||
print_processor
|
||
elif [ "$module" = "--memory" ]; then
|
||
print_memory
|
||
elif [ "$module" = "--swap" ]; then
|
||
print_swap
|
||
elif [ "$module" = "--diskspace" ]; then
|
||
print_diskspace
|
||
elif [ "$module" = "--services" ]; then
|
||
print_services
|
||
elif [ "$module" = "--podman" ]; then
|
||
print_podman
|
||
elif [ "$module" = "--docker" ]; then
|
||
print_docker
|
||
elif [ "$module" = "--updates" ]; then
|
||
print_updates
|
||
elif [ "$module" = "--letsencrypt" ]; then
|
||
print_letsencrypt
|
||
elif [ "$module" = "--login" ]; then
|
||
print_login
|
||
elif [ "$module" = "--include" ]; then
|
||
print_include
|
||
fi
|
||
done
|
||
printf "\\n"
|
||
}
|