Latest
This commit is contained in:
parent
db7608b369
commit
97064b737e
18 changed files with 236 additions and 131 deletions
|
@ -22,6 +22,9 @@ This page outlines various projects and tasks that we are currently working on.
|
|||
* Create seed for Lulu
|
||||
* https://github.com/essandess/macOS-Fortress
|
||||
* https://wakatime.com/plugins
|
||||
* https://github.com/containers/toolbox consider for p10k.zsh file
|
||||
* Figure out where Vector service fits in
|
||||
* Figure out if Squid can be used to improve web surfing speed
|
||||
|
||||
## Upstream
|
||||
|
||||
|
|
|
@ -384,6 +384,8 @@ softwareGroups:
|
|||
- thefuck
|
||||
- tldr
|
||||
- xdotool
|
||||
- taskwarrior
|
||||
- timewarrior
|
||||
- tmuxinator
|
||||
- up
|
||||
- wallpaper-cli
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
if command -v postfix > /dev/null; then
|
||||
### Ensure dependencies are installed
|
||||
if command -v apt > /dev/null; then
|
||||
if command -v apt-get > /dev/null; then
|
||||
logg info 'Installing libsasl2-modules'
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libsasl2-modules || EXIT_CODE=$?
|
||||
|
@ -46,8 +46,8 @@ if command -v postfix > /dev/null; then
|
|||
|
||||
### Add Postfix main configuration
|
||||
logg "Adding configuration from ${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf to /etc/postfix/main.cf"
|
||||
echo "" | sudo tee -a "$CONFIG_FILE"
|
||||
cat "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf" | sudo tee -a "$CONFIG_FILE"
|
||||
echo "" | sudo tee -a "$CONFIG_FILE"
|
||||
fi
|
||||
|
||||
### Ensure proper permissions on `sasl_passwd` and update Postfix hashmaps
|
||||
|
@ -58,7 +58,7 @@ if command -v postfix > /dev/null; then
|
|||
sudo chmod 600 /etc/postfix/sasl_passwd
|
||||
logg info 'Updating Postfix hashmaps for /etc/postfix/sasl_passwd'
|
||||
sudo postmap /etc/postfix/sasl_passwd
|
||||
else
|
||||
elseThere was an error ensuring the Postfix-SendGrid dependencies were installed
|
||||
logg warn '~/.config/postfix/sasl_passwd file is missing'
|
||||
fi
|
||||
|
||||
|
|
|
@ -8,6 +8,15 @@
|
|||
{{ includeTemplate "universal/profile" }}
|
||||
{{ includeTemplate "universal/logg" }}
|
||||
|
||||
### SDKMan ~/.bashrc settings
|
||||
if command -v brew > /dev/null && command -v sdkman-cli > /dev/null; then
|
||||
export SDKMAN_DIR="$(brew --prefix sdkman-cli)/libexec"
|
||||
. "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
elif [ -f "$SDKMAN_DIR/bin/sdkman-init.sh" ]; then
|
||||
export SDKMAN_DIR="$XDG_DATA_HOME/sdkman"
|
||||
. "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
fi
|
||||
|
||||
### Ensure SDKMan is installed (https://sdkman.io/)
|
||||
if [ ! -d "$SDKMAN_DIR" ]; then
|
||||
logg info 'Installing SDKMan via `curl -s "https://get.sdkman.io?rcupdate=false`'
|
||||
|
|
|
@ -113,6 +113,15 @@ if command -v netdata-claim.sh > /dev/null; then
|
|||
fi
|
||||
fi
|
||||
|
||||
### Ensure / report whether speedtest-cli is installed
|
||||
if ! command -v speedtest-cli > /dev/null; then
|
||||
if command -v pipx > /dev/null; then
|
||||
pipx install speedtest-cli
|
||||
else
|
||||
logg warn 'speedtest-cli not installed and pipx is not available'
|
||||
fi
|
||||
fi
|
||||
|
||||
### Configure Netdata to gather information about Internet connection speed
|
||||
if command -v speedtest-cli > /dev/null; then
|
||||
SPEEDTEST_GIT="${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest"
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmNWduTWZXVDN4VWlhUW4x
|
||||
d2xWcEhpdWZOQnMwWWpmbWszbFI5UldjZmxnCm0wbmhBRm16Z2VkZjRPYm1tYnZP
|
||||
Nm95VTI3N2RHemhCNDkyOFVpanN5K28KLS0tIEpLN0x6M09jWHB4Q3hhc3hnMDNT
|
||||
b1BFMVVHMnNJZWRCRE9XZzZMZHI5SlEKj0npjixy7aNtXHHQEqM0YNeX9V5EGSJb
|
||||
quU8KuNxbS9vG0WK8dUNQccKbf1Bg+9h
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3MnUrR1Z1Vkg1cmJHUnp6
|
||||
LzRSa3E5THVJRnZmZS92MEI5ck0yRWRxNVVVClJhNThYOFJaUXVrN3FYU0pNRnhk
|
||||
ZHNBTUFUT3VGem40Q0U4N08reERVTncKLS0tICtiRGdZV2NHZUQ2N3M5TkM5THB5
|
||||
eDJlZ0szbFpZRmR5eURDV0hycTZOZFkKyldRoEIqhmTHAX71jlKvQ57jQnArFTtd
|
||||
geVsREvQtVX9Zw8PON4=
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -187,7 +187,9 @@ if [ "$BASH_SUPPORT" = 'true' ]; then
|
|||
|
||||
### zoxide
|
||||
if command -v zoxide > /dev/null; then
|
||||
eval "$(zoxide init --cmd cd bash)" > /dev/null
|
||||
eval "$(zoxide init --cmd z bash)" > /dev/null
|
||||
else
|
||||
alias z='cd'
|
||||
fi
|
||||
|
||||
### Ble.sh
|
||||
|
|
5
home/dot_config/postfix/README.md
Normal file
5
home/dot_config/postfix/README.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Postfix
|
||||
|
||||
**Configures Postfix to use SendGrid as a relay host**
|
||||
|
||||
This configuration file is appended to `/etc/postfix/main.cf` by one of the scripts. It configures SendGrid as a relay host that Postfix can use. More details can be found in the [SendGrid documentation on integrating Postfix](https://docs.sendgrid.com/for-developers/sending-email/postfix). Some FROM addresses do not work properly when using SendGrid. Because of this, the configuration will automatically re-write the FROM address to equal `system@public.domain.com`, where `public.domain.com` is the value specified under `.host.domain` in `~/.config/chezmoi/chezmoi.yml`.
|
|
@ -1,16 +1,7 @@
|
|||
### INSTALL DOCTOR MANAGED ### START
|
||||
# @file SendGrid Postfix configuration
|
||||
# @brief Configures Postfix to use SendGrid as a relay host
|
||||
# @description
|
||||
# This configuration file is appended to `/etc/postfix/main.cf` by one of the scripts. It configures SendGrid
|
||||
# as a relay host that Postfix can use. More details can be found in the
|
||||
# [SendGrid documentation on integrating Postfix](https://docs.sendgrid.com/for-developers/sending-email/postfix).
|
||||
#
|
||||
# Some FROM addresses do not work properly when using SendGrid. Because of this, the configuration will automatically
|
||||
# re-write the FROM address to equal `system@public.domain.com`, where `public.domain.com` is the value specified under
|
||||
# `.host.domain` in `~/.config/chezmoi/chezmoi.yml`.
|
||||
|
||||
header_size_limit = 4096000
|
||||
inet_interfaces = loopback-only
|
||||
myhostname = {{ .host.domain }}
|
||||
relayhost = [smtp.sendgrid.net]:587
|
||||
smtp_header_checks = regexp:/etc/postfix/header_checks
|
||||
|
|
|
@ -232,9 +232,7 @@ export GRADLE_USER_HOME="$XDG_DATA_HOME/gradle"
|
|||
|
||||
### Homebrew
|
||||
export HOMEBREW_BUNDLE_FILE="$XDG_CONFIG_HOME/Brewfile"
|
||||
{{ if (and (eq .host.distro.family "darwin") (.host.restricted)) }}
|
||||
export HOMEBREW_CASK_OPTS="--appdir=~/Applications"
|
||||
{{ end }}
|
||||
export HOMEBREW_CASK_OPTS="--appdir=/Applications --display-times"
|
||||
|
||||
### HTTPie
|
||||
export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME/httpie"
|
||||
|
|
|
@ -95,6 +95,10 @@ export GOOGLE_SEARCH_ID="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitempl
|
|||
### Serper.dev
|
||||
export SERP_API_KEY="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SERP_API_KEY")) }}{{ includeTemplate "secrets/SERP_API_KEY" | decrypt | trim }}{{ else }}{{ env "SERP_API_KEY" }}{{ end }}"
|
||||
|
||||
### SFTPGo
|
||||
export SFTPGO_DEFAULT_ADMIN_PASSWORD="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SFTPGO_DEFAULT_ADMIN_PASSWORD")) }}{{ includeTemplate "secrets/SFTPGO_DEFAULT_ADMIN_PASSWORD" | decrypt | trim }}{{ else }}{{ env "SFTPGO_DEFAULT_ADMIN_PASSWORD" }}{{ end }}"
|
||||
export SFTPGO_DEFAULT_ADMIN_USERNAME="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SFTPGO_DEFAULT_ADMIN_USERNAME")) }}{{ includeTemplate "secrets/SFTPGO_DEFAULT_ADMIN_USERNAME" | decrypt | trim }}{{ else }}{{ env "SFTPGO_DEFAULT_ADMIN_USERNAME" }}{{ end }}"
|
||||
|
||||
### Snapcraft
|
||||
export SNAPCRAFT_EMAIL="{{ .user.snapcraft.username }}"
|
||||
export SNAPCRAFT_MACAROON="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SNAPCRAFT_MACAROON")) }}{{ includeTemplate "secrets/SNAPCRAFT_MACAROON" | decrypt | trim }}{{ else }}{{ env "SNAPCRAFT_MACAROON" }}{{ end }}"
|
||||
|
|
|
@ -107,6 +107,10 @@ function fileExists(pathToFile) {
|
|||
return fs.existsSync(pathToFile)
|
||||
}
|
||||
|
||||
function dirExists(pathToDir) {
|
||||
return fs.existsSync(pathToDir)
|
||||
}
|
||||
|
||||
let installData
|
||||
let installOrders = {}
|
||||
let installMeta = {}
|
||||
|
@ -202,7 +206,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
} else if (softwarePackages[packageKey]['_' + currentSelector + ':' + osType + ':' + preference]) {
|
||||
pref = osType + ':' + preference
|
||||
}
|
||||
log('info', 'Filter', `${pkg} is being skipped because of the _when:${pref} condition`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${pkg} is being skipped because of the _when:${pref} condition`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
}
|
||||
|
@ -211,7 +215,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
await runSilentCommand(scopedPkgManager)
|
||||
} catch (e) {
|
||||
const pref = preference
|
||||
log('info', 'Filter', `${pkg} is being skipped because of the _when:${pref} condition`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${pkg} is being skipped because of the _when:${pref} condition`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
}
|
||||
|
@ -225,7 +229,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
} else if (softwarePackages[packageKey]['_' + currentSelector + ':' + osType]) {
|
||||
pref = osType
|
||||
}
|
||||
log('info', 'Filter', `${pkg} is being skipped because of the _when:${pref} condition`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${pkg} is being skipped because of the _when:${pref} condition`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
}
|
||||
|
@ -233,7 +237,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
try {
|
||||
await runSilentCommand(normalCheck)
|
||||
} catch (e) {
|
||||
log('info', 'Filter', `${pkg} is being skipped because of the _when condition`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${pkg} is being skipped because of the _when condition`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
}
|
||||
|
@ -267,7 +271,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
} else if (softwarePackages[packageKey]['_' + currentSelector + ':' + osType + ':' + preference]) {
|
||||
pref = osType + ':' + preference
|
||||
}
|
||||
log('info', 'Filter', `${bin} already in PATH (via _bin:${pref})`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${bin} already in PATH (via _bin:${pref})`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
} else {
|
||||
|
@ -282,7 +286,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
: scopedPkgManager.map((x) => which.sync(x, { nothrow: true })).every((y) => !!y)
|
||||
if (bin) {
|
||||
const pref = preference
|
||||
log('info', 'Filter', `${bin} already in PATH (via _bin:${pref})`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${bin} already in PATH (via _bin:${pref})`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
} else {
|
||||
|
@ -302,7 +306,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
} else if (softwarePackages[packageKey]['_' + currentSelector + ':' + osType]) {
|
||||
pref = osType
|
||||
}
|
||||
log('info', 'Filter', `${bin} already in PATH (via _bin:${pref})`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${bin} already in PATH (via _bin:${pref})`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
} else {
|
||||
|
@ -316,7 +320,7 @@ async function generateInstallOrders(pkgsToInstall) {
|
|||
? which.sync(normalCheck, { nothrow: true })
|
||||
: normalCheck.map((x) => which.sync(x, { nothrow: true })).every((y) => !!y)
|
||||
if (bin) {
|
||||
log('info', 'Filter', `${bin} already in PATH (via _bin)`)
|
||||
process.env.DEBUG === 'true' && log('info', 'Filter', `${bin} already in PATH (via _bin)`)
|
||||
processPluginOrders(pkg)
|
||||
continue pkgFor
|
||||
} else {
|
||||
|
@ -442,7 +446,8 @@ async function updateInstallMaps(preference, packages, scopedPreference, pkg, pa
|
|||
installOrdersPost = installOrdersPost.concat(typeof postHook === 'string' ? [postHook] : postHook)
|
||||
}
|
||||
const serviceHook = getHook(packages, 'service', scopedPreference, preference)
|
||||
if (serviceHook) {
|
||||
const serviceEnabledHook = getHook(packages, 'serviceEnabled', scopedPreference)
|
||||
if (serviceHook && serviceEnabledHook) {
|
||||
installOrdersService = installOrdersService.concat(typeof serviceHook === 'string' ? [serviceHook] : serviceHook)
|
||||
}
|
||||
const groupsHook = getHook(packages, 'groups', scopedPreference, preference)
|
||||
|
@ -523,12 +528,7 @@ async function OSTypeInstallerKey() {
|
|||
const yum = which.sync('yum', { nothrow: true })
|
||||
const zypper = which.sync('zypper', { nothrow: true })
|
||||
if (apt) {
|
||||
try {
|
||||
await $`test -d /etc/ubuntu-advantage`
|
||||
return 'ubuntu'
|
||||
} catch (e) {
|
||||
return 'apt'
|
||||
}
|
||||
return dirExists('/etc/ubuntu-advantage') ? 'ubuntu' : 'apt'
|
||||
} else if (dnf || yum) {
|
||||
return 'dnf'
|
||||
} else if (pacman) {
|
||||
|
@ -538,12 +538,7 @@ async function OSTypeInstallerKey() {
|
|||
} else if (freebsdPkg && freebsdVersion) {
|
||||
return 'freebsd'
|
||||
} else {
|
||||
try {
|
||||
await $`test -d /Applications && test -d /Library`
|
||||
return 'darwin'
|
||||
} catch (e) {
|
||||
return 'windows'
|
||||
}
|
||||
return dirExists('/Applications') && dirExists('/Library') ? 'darwin' : 'windows'
|
||||
}
|
||||
} catch (e) {
|
||||
log('error', 'OS Detection', 'There was an error determining the type of operating system')
|
||||
|
@ -553,17 +548,7 @@ async function OSTypeInstallerKey() {
|
|||
|
||||
// Acquire OS type
|
||||
async function OSType() {
|
||||
try {
|
||||
await $`test -d /Applications && test -d /Library`
|
||||
return 'darwin'
|
||||
} catch (e) {
|
||||
try {
|
||||
await $`test -f /etc/os-release`
|
||||
return 'linux'
|
||||
} catch (e) {
|
||||
return 'windows'
|
||||
}
|
||||
}
|
||||
return dirExists('/Applications') && dirExists('/Library') ? 'darwin' : (fileExists('/etc/os-release') ? 'linux' : 'windows')
|
||||
}
|
||||
|
||||
// Acquire release ID (for Linux)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
{{- $baseDomain := (join (join .host.hostname ".") .host.domain) -}}
|
||||
{{- if eq .host.qubes true -}}
|
||||
{{- $baseDomain := (join (join .host.hostname "-qube.") .host.domain) -}}
|
||||
{{- end -}}
|
||||
{
|
||||
"common": {
|
||||
"idle_timeout": 15,
|
||||
|
@ -20,7 +24,7 @@
|
|||
"whitelist_file": "",
|
||||
"allow_self_connections": 0,
|
||||
"defender": {
|
||||
"enabled": false,
|
||||
"enabled": true,
|
||||
"driver": "memory",
|
||||
"ban_time": 30,
|
||||
"ban_time_increment": 50,
|
||||
|
@ -56,8 +60,8 @@
|
|||
]
|
||||
},
|
||||
"acme": {
|
||||
"domains": [],
|
||||
"email": "",
|
||||
"domains": ["sftp.{{ $baseDomain }}"],
|
||||
"email": "{{ .user.cloudflare.username }}",
|
||||
"key_type": "4096",
|
||||
"certs_path": "certs",
|
||||
"ca_endpoint": "https://acme-v02.api.letsencrypt.org/directory",
|
||||
|
@ -236,7 +240,7 @@
|
|||
},
|
||||
"password_caching": true,
|
||||
"update_mode": 0,
|
||||
"create_default_admin": false,
|
||||
"create_default_admin": true,
|
||||
"naming_rules": 1,
|
||||
"is_shared": 0,
|
||||
"node": {
|
||||
|
@ -249,7 +253,7 @@
|
|||
"httpd": {
|
||||
"bindings": [
|
||||
{
|
||||
"port": 8080,
|
||||
"port": 11101,
|
||||
"address": "",
|
||||
"enable_web_admin": true,
|
||||
"enable_web_client": true,
|
||||
|
@ -354,7 +358,7 @@
|
|||
"installation_code": "",
|
||||
"installation_code_hint": "Installation code"
|
||||
},
|
||||
"hide_support_link": false
|
||||
"hide_support_link": true
|
||||
},
|
||||
"telemetry": {
|
||||
"bind_port": 0,
|
||||
|
@ -391,20 +395,20 @@
|
|||
"mfa": {
|
||||
"totp": [
|
||||
{
|
||||
"name": "Default",
|
||||
"issuer": "SFTPGo",
|
||||
"name": "Install Doctor",
|
||||
"issuer": "SFTPGo - Install Doctor",
|
||||
"algo": "sha1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"smtp": {
|
||||
"host": "",
|
||||
"port": 25,
|
||||
"from": "",
|
||||
"user": "",
|
||||
"password": "",
|
||||
"host": "smtp.sendgrid.net",
|
||||
"port": 587,
|
||||
"from": "LitOS SFTPGo <no-reply@{{ .host.domain }}",
|
||||
"user": "apikey",
|
||||
"password": "{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SENDGRID_API_KEY")) }}{{ includeTemplate "secrets/SENDGRID_API_KEY" | decrypt | trim }}{{ else }}{{ env "SENDGRID_API_KEY" }}",
|
||||
"auth_type": 0,
|
||||
"encryption": 0,
|
||||
"encryption": 1,
|
||||
"domain": "",
|
||||
"templates_path": "templates"
|
||||
},
|
||||
|
|
|
@ -203,20 +203,20 @@ generate_bar_disk() {
|
|||
}
|
||||
|
||||
print_banner() {
|
||||
if command -v lolcat >/dev/null && command -v figlet >/dev/null; then
|
||||
if [[ "${#HOSTNAME}" -lt 14 ]]; then
|
||||
figlet "$(hostname)" | lolcat -f
|
||||
else
|
||||
if [ ! -f "$HOME/.cache/hey-banner-printed" ]; then
|
||||
if command -v lolcat >/dev/null && command -v figlet >/dev/null; then
|
||||
figlet "Hey" | lolcat -f
|
||||
printf "\\n"
|
||||
elif command -v figlet >/dev/null; then
|
||||
printf "\\n%s\\n" "$(figlet -t -f "$BANNER_FONTPATH" " Hey")"
|
||||
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)"
|
||||
mkdir -p "$HOME/.cache"
|
||||
touch "$HOME/.cache/hey-banner-printed"
|
||||
fi
|
||||
|
||||
printf " \\033[1;37mHostname:\\033[0m %s\\n" "$(hostname)"
|
||||
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Generated by Powerlevel10k configuration wizard on 2022-10-29 at 08:32 EDT.
|
||||
# Based on romkatv/powerlevel10k/config/p10k-classic.zsh, checksum 52170.
|
||||
# Wizard options: nerdfont-complete + powerline, large icons, classic, unicode, dark,
|
||||
# 12h time, angled separators, sharp heads, flat tails, 2 lines, disconnected,
|
||||
# left frame, sparse, many icons, concise, transient_prompt, instant_prompt=verbose.
|
||||
# Generated by Powerlevel10k configuration wizard on 2023-08-04 at 00:33 EDT.
|
||||
# Based on romkatv/powerlevel10k/config/p10k-classic.zsh.
|
||||
# Wizard options: nerdfont-complete + powerline, large icons, classic, unicode, darkest,
|
||||
# 24h time, vertical separators, sharp heads, flat tails, 1 line, compact, many icons,
|
||||
# concise, transient_prompt, instant_prompt=quiet.
|
||||
# Type `p10k configure` to generate another config.
|
||||
#
|
||||
# Config for Powerlevel10k with classic powerline prompt style. Type `p10k configure` to generate
|
||||
|
@ -27,17 +27,14 @@
|
|||
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
|
||||
|
||||
# Zsh >= 5.1 is required.
|
||||
autoload -Uz is-at-least && is-at-least 5.1 || return
|
||||
[[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
|
||||
|
||||
# The list of segments shown on the left. Fill it with the most important segments.
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||
# =========================[ Line #1 ]=========================
|
||||
os_icon # os identifier
|
||||
dir # current directory
|
||||
vcs # git status
|
||||
# =========================[ Line #2 ]=========================
|
||||
newline # \n
|
||||
# prompt_char # prompt symbol
|
||||
prompt_char # prompt symbol
|
||||
)
|
||||
|
||||
# The list of segments shown on the right. Fill it with less important segments.
|
||||
|
@ -45,7 +42,6 @@
|
|||
# automatically hidden when the input line reaches it. Right prompt above the
|
||||
# last prompt line gets hidden if it would overlap with left prompt.
|
||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
||||
# =========================[ Line #1 ]=========================
|
||||
status # exit code of the last command
|
||||
command_execution_time # duration of the last command
|
||||
background_jobs # presence of background jobs
|
||||
|
@ -72,6 +68,7 @@
|
|||
# luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
|
||||
# jenv # java version from jenv (https://github.com/jenv/jenv)
|
||||
# plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
|
||||
# perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
|
||||
# phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
|
||||
# scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
|
||||
# haskell_stack # haskell version from stack (https://haskellstack.org/)
|
||||
|
@ -88,22 +85,23 @@
|
|||
# nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
|
||||
# ranger # ranger shell (https://github.com/ranger/ranger)
|
||||
nnn # nnn shell (https://github.com/jarun/nnn)
|
||||
# lf # lf shell (https://github.com/gokcehan/lf)
|
||||
# xplr # xplr shell (https://github.com/sayanarijit/xplr)
|
||||
vim_shell # vim shell indicator (:sh)
|
||||
# midnight_commander # midnight commander shell (https://midnight-commander.org/)
|
||||
# nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
|
||||
vi_mode # vi mode (you don't need this if you've enabled prompt_char)
|
||||
chezmoi_shell # chezmoi shell (https://www.chezmoi.io/)
|
||||
# vi_mode # vi mode (you don't need this if you've enabled prompt_char)
|
||||
# vpn_ip # virtual private network indicator
|
||||
# load # CPU load
|
||||
# disk_usage # disk usage
|
||||
ram # free RAM
|
||||
# ram # free RAM
|
||||
# swap # used swap
|
||||
# todo # todo items (https://github.com/todotxt/todo.txt-cli)
|
||||
# timewarrior # timewarrior tracking status (https://timewarrior.net/)
|
||||
# taskwarrior # taskwarrior task count (https://taskwarrior.org/)
|
||||
timewarrior # timewarrior tracking status (https://timewarrior.net/)
|
||||
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
|
||||
# cpu_arch # CPU architecture
|
||||
time # current time
|
||||
# =========================[ Line #2 ]=========================
|
||||
# newline # \n
|
||||
# ip # ip address and bandwidth usage for a specified network interface
|
||||
# public_ip # public IP address
|
||||
# proxy # system-wide http/https/ftp proxy
|
||||
|
@ -132,17 +130,17 @@
|
|||
typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=
|
||||
|
||||
# Add an empty line before each prompt.
|
||||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
|
||||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
|
||||
|
||||
# Connect left prompt lines with these symbols. You'll probably want to use the same color
|
||||
# as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%240F╭─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%240F├─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%240F╰─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%238F╭─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%238F├─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%238F╰─'
|
||||
# Connect right prompt lines with these symbols.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%238F─╮'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%238F─┤'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%238F─╯'
|
||||
|
||||
# Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or
|
||||
# '─'. The last two make it easier to see the alignment between left and right prompt and to
|
||||
|
@ -154,7 +152,7 @@
|
|||
if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
|
||||
# The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE
|
||||
# ornaments defined above.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=238
|
||||
# Start filler from the edge of the screen if there are no left segments on the first line.
|
||||
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
|
||||
# End filler on the edge of the screen if there are no right segments on the first line.
|
||||
|
@ -162,16 +160,19 @@
|
|||
fi
|
||||
|
||||
# Default background color.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND=236
|
||||
typeset -g POWERLEVEL9K_BACKGROUND=234
|
||||
|
||||
# Separator between same-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%244F\uE0B1'
|
||||
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%242F\u2502'
|
||||
# Separator between same-color segments on the right.
|
||||
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%244F\uE0B3'
|
||||
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%242F\u2502'
|
||||
# Separator between different-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
|
||||
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=''
|
||||
# Separator between different-color segments on the right.
|
||||
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2'
|
||||
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=''
|
||||
# To remove a separator between two segments, add "_joined" to the second segment name.
|
||||
# For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined)
|
||||
|
||||
# The right end of left prompt.
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
|
||||
# The left end of right prompt.
|
||||
|
@ -344,10 +345,10 @@
|
|||
# typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_DIR_PREFIX='%246Fin '
|
||||
# typeset -g POWERLEVEL9K_DIR_PREFIX='%244Fin '
|
||||
|
||||
#####################################[ vcs: git status ]######################################
|
||||
# Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
|
||||
# Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
|
||||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 '
|
||||
|
||||
# Untracked files icon. It's really a question mark, your font isn't broken.
|
||||
|
@ -374,7 +375,7 @@
|
|||
|
||||
if (( $1 )); then
|
||||
# Styling for up-to-date Git status.
|
||||
local meta='%246F' # grey foreground
|
||||
local meta='%244F' # grey foreground
|
||||
local clean='%76F' # green foreground
|
||||
local modified='%178F' # yellow foreground
|
||||
local untracked='%39F' # blue foreground
|
||||
|
@ -490,7 +491,7 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_VCS_PREFIX='%246Fon '
|
||||
# typeset -g POWERLEVEL9K_VCS_PREFIX='%244Fon '
|
||||
|
||||
# Show status of repositories of these types. You can add svn and/or hg if you are
|
||||
# using them. If you do, your prompt may become slow even when your current directory
|
||||
|
@ -551,7 +552,7 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%246Ftook '
|
||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%244Ftook '
|
||||
|
||||
#######################[ background_jobs: presence of background jobs ]#######################
|
||||
# Don't show the number of background jobs.
|
||||
|
@ -728,6 +729,12 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
|
||||
# lf shell color.
|
||||
typeset -g POWERLEVEL9K_LF_FOREGROUND=72
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
|
||||
# xplr shell color.
|
||||
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72
|
||||
|
@ -750,12 +757,21 @@
|
|||
# Nix shell color.
|
||||
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
|
||||
|
||||
# Display the icon of nix_shell if PATH contains a subdirectory of /nix/store.
|
||||
# typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false
|
||||
|
||||
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
|
||||
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
|
||||
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]##################
|
||||
# chezmoi shell color.
|
||||
typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=33
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################################[ disk_usage: disk usage ]##################################
|
||||
# Colors for different levels of disk usage.
|
||||
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
|
||||
|
@ -866,6 +882,17 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################################[ cpu_arch: CPU architecture ]################################
|
||||
# CPU architecture color.
|
||||
typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=172
|
||||
|
||||
# Hide the segment when on a specific CPU architecture.
|
||||
# typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
|
||||
# typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
|
||||
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################################[ context: user@hostname ]##################################
|
||||
# Context color when running with privileges.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
|
||||
|
@ -888,7 +915,7 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%246Fwith '
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%244Fwith '
|
||||
|
||||
###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
|
||||
# Python virtual environment color.
|
||||
|
@ -991,6 +1018,11 @@
|
|||
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
|
||||
# Nvm color.
|
||||
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
|
||||
# If set to false, hide node version if it's the same as default:
|
||||
# $(nvm version current) == $(nvm version default).
|
||||
typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false
|
||||
# If set to false, hide node version if it's equal to "system".
|
||||
typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
|
@ -1140,6 +1172,16 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
|
||||
# Perlbrew color.
|
||||
typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
|
||||
# Show perlbrew version only when in a perl project subdirectory.
|
||||
typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
|
||||
# Don't show "perl-" at the front.
|
||||
typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
|
||||
# PHP color.
|
||||
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
|
||||
|
@ -1222,7 +1264,7 @@
|
|||
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
|
||||
# Show kubecontext only when the command you are typing invokes one of these tools.
|
||||
# Tip: Remove the next line to always show kubecontext.
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl'
|
||||
|
||||
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
|
||||
# different contexts.
|
||||
|
@ -1304,7 +1346,7 @@
|
|||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%246Fat '
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%244Fat '
|
||||
|
||||
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
|
||||
# Show aws only when the command you are typing invokes one of these tools.
|
||||
|
@ -1465,7 +1507,7 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%246Fin '
|
||||
# typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%244Fin '
|
||||
|
||||
###############################[ public_ip: public IP address ]###############################
|
||||
# Public IP color.
|
||||
|
@ -1481,7 +1523,7 @@
|
|||
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
|
||||
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
|
||||
# to see the name of the interface.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'
|
||||
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)'
|
||||
# If set to true, show one segment per matching network interface. If set to false, show only
|
||||
# one segment corresponding to the first matching network interface.
|
||||
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
|
||||
|
@ -1560,7 +1602,7 @@
|
|||
# Current time color.
|
||||
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66
|
||||
# Format for the current time: 09:51:02. See `man 3 strftime`.
|
||||
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%I:%M:%S %p}'
|
||||
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
|
||||
# If set to true, time will update when you hit enter. This way prompts for the past
|
||||
# commands will contain the start times of their commands as opposed to the default
|
||||
# behavior where they contain the end times of their preceding commands.
|
||||
|
@ -1568,7 +1610,7 @@
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_TIME_PREFIX='%246Fat '
|
||||
# typeset -g POWERLEVEL9K_TIME_PREFIX='%244Fat '
|
||||
|
||||
# Example of a user-defined prompt segment. Function prompt_example will be called on every
|
||||
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
|
||||
|
@ -1638,4 +1680,4 @@
|
|||
typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
|
||||
|
||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
|
@ -8,10 +8,7 @@ export LC_ALL="en_US.UTF-8"
|
|||
export BASH_SUPPORT=true
|
||||
|
||||
### Import Common Settings
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
if [ -f "$HOME/.config/shell/profile.sh" ]; then
|
||||
. "$XDG_CONFIG_HOME/shell/profile.sh"
|
||||
fi
|
||||
[[ ! -f "$HOME/.config/shell/profile.sh" ]] || source "$HOME/.config/shell/profile.sh"
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
|
@ -31,15 +28,13 @@ export TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P'
|
|||
export ZSH_COMPDUMP="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION"
|
||||
|
||||
### Antigen
|
||||
export ADOTDIR="$HOME/.local/antigen"
|
||||
export ADOTDIR="${XDG_DATA_HOME:-$HOME/.local/share}/antigen"
|
||||
|
||||
### Powerline
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
[[ ! -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] || source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
|
||||
### Fig
|
||||
[[ -f "$HOME/.fig/shell/zshrc.pre.zsh" ]] && . "$HOME/.fig/shell/zshrc.pre.zsh"
|
||||
[[ -f "$HOME/.fig/shell/zshrc.pre.zsh" ]] && source "$HOME/.fig/shell/zshrc.pre.zsh"
|
||||
|
||||
# --------------------------------- SETTINGS ----------------------------------
|
||||
setopt AUTO_CD
|
||||
|
@ -110,7 +105,7 @@ bindkey ' ' magic-space
|
|||
# Plugin source helper
|
||||
_source_plugin() {
|
||||
local plugin_name="$1"
|
||||
for basedir in "$HOME/.local/antigen/bundles/zsh-users"; do
|
||||
for basedir in "${XDG_DATA_HOME:-$HOME/.local/share}/antigen/bundles/zsh-users"; do
|
||||
plugin="$basedir/$plugin_name/$plugin_name.zsh"
|
||||
[ -f "$plugin" ] && source "$plugin" && return 0
|
||||
done
|
||||
|
@ -171,7 +166,7 @@ unset -f _source_plugin
|
|||
|
||||
# POWERLEVEL
|
||||
if ! [[ $(tty) = /dev/tty* ]]; then
|
||||
if source "$HOME/.local/antigen/bundles/romkatv/powerlevel10k/powerlevel10k.zsh-theme" 2> /dev/null; then
|
||||
if source "${XDG_DATA_HOME:-$HOME/.local/share}/antigen/bundles/romkatv/powerlevel10k/powerlevel10k.zsh-theme" 2> /dev/null; then
|
||||
s=' ' # fix too wide icons
|
||||
POWERLEVEL9K_MODE=nerdfont-complete
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY=truncate_beginning
|
||||
|
@ -518,5 +513,7 @@ fi
|
|||
### zoxide
|
||||
if command -v zoxide > /dev/null; then
|
||||
zstyle ':autocomplete:recent-dirs' backend zoxide
|
||||
eval "$(zoxide init --cmd cd zsh)" > /dev/null
|
||||
eval "$(zoxide init --cmd z zsh)" > /dev/null
|
||||
else
|
||||
alias z='cd'
|
||||
fi
|
||||
|
|
46
software.yml
46
software.yml
|
@ -1137,7 +1137,8 @@ softwarePackages:
|
|||
_bin: openssl-osx-ca
|
||||
_github: https://github.com/raggi/openssl-osx-ca
|
||||
_name: OpenSSL macOS CA
|
||||
_service: openssl-osx-ca
|
||||
_service:brew:darwin: openssl-osx-ca
|
||||
_serviceEnabled: true
|
||||
brew:darwin: raggi/ale/openssl-osx-ca
|
||||
meta-package-manager:
|
||||
_bin: mpm
|
||||
|
@ -1164,7 +1165,7 @@ softwarePackages:
|
|||
brew-pkg:
|
||||
_github: https://github.com/timsutton/brew-pkg
|
||||
_name: Homebrew Pkg
|
||||
_when:darwin: '! brew pkg --help'
|
||||
_when:darwin: '! brew pkg --help > /dev/null'
|
||||
brew:darwin: timsutton/formulae/brew-pkg
|
||||
bash-completion:
|
||||
_bin: null
|
||||
|
@ -2137,6 +2138,7 @@ softwarePackages:
|
|||
_github: https://github.com/syncthing/syncthing
|
||||
_name: Syncthing
|
||||
_service: syncthing
|
||||
_serviceEnabled: true
|
||||
brew: syncthing
|
||||
choco: syncthing
|
||||
port: syncthing
|
||||
|
@ -2766,6 +2768,7 @@ softwarePackages:
|
|||
_home: null
|
||||
_name: etcd
|
||||
_service: etcd
|
||||
_serviceEnabled: true
|
||||
apt: etcd
|
||||
brew: etcd
|
||||
choco: etcd
|
||||
|
@ -3737,6 +3740,7 @@ softwarePackages:
|
|||
_home: https://gitlab.com/gitlab-org/gitlab-runner
|
||||
_name: Gitlab Runner
|
||||
_service: gitlab-runner
|
||||
_serviceEnabled: true
|
||||
ansible: professormanhattan.gitlabrunner
|
||||
brew: gitlab-runner
|
||||
choco: gitlab-runner
|
||||
|
@ -4974,6 +4978,7 @@ softwarePackages:
|
|||
_home: https://www.linux-kvm.org/page/Main_Page
|
||||
_name: KVM
|
||||
_service: libvirt
|
||||
_serviceEnabled: true
|
||||
ansible: professormanhattan.kvm
|
||||
apt:
|
||||
- bridge-utils
|
||||
|
@ -6025,6 +6030,7 @@ softwarePackages:
|
|||
_home: https://www.netdata.cloud/
|
||||
_name: Netdata
|
||||
_service: netdata
|
||||
_serviceEnabled: true
|
||||
_deps:
|
||||
- debsecan
|
||||
- speedtest-cli
|
||||
|
@ -6088,6 +6094,7 @@ softwarePackages:
|
|||
- port: 443
|
||||
proto: tcp
|
||||
_service: nginx
|
||||
_serviceEnabled: true
|
||||
ansible: professormanhattan.nginx
|
||||
apt: nginx
|
||||
brew: nginx
|
||||
|
@ -8044,7 +8051,9 @@ softwarePackages:
|
|||
_github: https://github.com/drakkan/sftpgo
|
||||
_home: null
|
||||
_name: sftpgo
|
||||
_post: cp -f "$HOME/.local/etc/sftpgo.json" /usr/local/etc/sftpgo/sftpgo.json && sudo sftpgo initprovider
|
||||
_service: sftpgo
|
||||
_serviceEnabled: true
|
||||
brew: sftpgo
|
||||
choco: sftpgo
|
||||
github: github.com/drakkan/sftpgo
|
||||
|
@ -9161,6 +9170,7 @@ softwarePackages:
|
|||
_home: https://www.privoxy.org/
|
||||
_name: Privoxy
|
||||
_service: privoxy
|
||||
_serviceEnabled: true
|
||||
apt: privoxy
|
||||
brew: privoxy
|
||||
dnf: privoxy
|
||||
|
@ -9174,6 +9184,7 @@ softwarePackages:
|
|||
_home: https://www.torproject.org/
|
||||
_name: TOR
|
||||
_service: tor
|
||||
_serviceEnabled: true
|
||||
ansible:linux: professormanhattan.tor
|
||||
apt: tor
|
||||
brew: tor
|
||||
|
@ -9881,6 +9892,7 @@ softwarePackages:
|
|||
fail2ban:
|
||||
_bin: fail2ban-client
|
||||
_service: fail2ban
|
||||
_serviceEnabled: true
|
||||
# fail2ban cannot be installed on Qubes Fedora 36 without messing with the qubes-firewall since firewalld is required
|
||||
_when:linux: echo '! command -v qubes-firewall > /dev/null && test -f /proc/version && ! grep Microsoft /proc/version > /dev/null' | bash
|
||||
apt: fail2ban
|
||||
|
@ -9888,6 +9900,33 @@ softwarePackages:
|
|||
dnf: fail2ban
|
||||
pacman: fail2ban
|
||||
port: fail2ban
|
||||
timewarrior:
|
||||
_bin: timewarrior
|
||||
_github: https://github.com/GothenburgBitFactory/timewarrior
|
||||
_name: Time Warrior
|
||||
apt: timewarrior
|
||||
brew: timewarrior
|
||||
dnf: timew
|
||||
emerge: app-misc/timew
|
||||
nix-env: timewarrior
|
||||
pacman: timew
|
||||
taskwarrior:
|
||||
_bin: taskwarrior
|
||||
_github: https://github.com/GothenburgBitFactory/taskwarrior
|
||||
_name: Task Warrior
|
||||
apt: taskwarrior
|
||||
dnf: task
|
||||
brew:
|
||||
- task
|
||||
- taskd
|
||||
- tasksh
|
||||
nix-env: taskwarrior
|
||||
sbopkg: task
|
||||
port: task
|
||||
emerge: task
|
||||
pacman: task
|
||||
xbps-install: task
|
||||
zypper: taskwarrior
|
||||
boringtun:
|
||||
_bin: boringtun-cli
|
||||
_desc: BoringTun is an implementation of the WireGuard® protocol designed for portability and speed.
|
||||
|
@ -10406,7 +10445,7 @@ softwarePlugins:
|
|||
- dotnet-format
|
||||
- git-credential-manager
|
||||
gcloud:
|
||||
cmd: bash -c 'if ! gcloud components list | grep "Installed.*{PLUGIN}" > /dev/null; then gcloud components install --quiet "{PLUGIN}"; fi'
|
||||
cmd: bash -c 'if ! gcloud components list | grep "Installed.*{PLUGIN}" > /dev/null; then echo "Installing.." && gcloud components install --quiet "{PLUGIN}"; fi'
|
||||
plugins:
|
||||
- app-engine-go
|
||||
- cloud-datastore-emulator
|
||||
|
@ -10524,6 +10563,7 @@ softwarePlugins:
|
|||
- theapsgroup/keycloak
|
||||
- theapsgroup/vault
|
||||
- twitter
|
||||
update: steampipe plugin update --all
|
||||
teams:
|
||||
cmd:
|
||||
plugins:
|
||||
|
|
Loading…
Reference in a new issue