diff --git a/docs/TODO.md b/docs/TODO.md index 43350563..86dd25d2 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -11,6 +11,17 @@ adobe-creative-cloud curl: (18) HTTP/2 stream 1 was reset * export PATH="$HOME/.jenv/bin:$PATH" * eval "$(jenv init -)" + + +# Create the $HOME/opt destination folder +mkdir -p ~/opt +# Download the AppImage inside it +wget -O ~/opt/Espanso.AppImage 'https://github.com/federico-terzi/espanso/releases/download/v2.1.8/Espanso-X11.AppImage' +# Make it executable +chmod u+x ~/opt/Espanso.AppImage +# Create the "espanso" command alias +sudo ~/opt/Espanso.AppImage env-path register + # TODOs This page outlines various projects and tasks that we are currently working on. Creating a GitHub issue for each of these items would be overkill. @@ -21,6 +32,7 @@ This page outlines various projects and tasks that we are currently working on. - Consider https://formulae.brew.sh/cask/parallels-client#default - https://github.com/tadamcz/updates.sh/blob/main/updates.sh (Homebrew download parallelism) - Add Mamba +- Come up with some sensible defaults for https://espanso.org/ - https://docs.pkgx.sh/using-pkgx/shell-integration - https://containertoolbx.org/install/ - https://github.com/todotxt/todo.txt-cli diff --git a/home/.chezmoiscripts/universal/run_before_01-system-homebrew.sh.tmpl b/home/.chezmoiscripts/universal/run_before_01-system-homebrew.sh.tmpl index ff178600..85aefcc9 100644 --- a/home/.chezmoiscripts/universal/run_before_01-system-homebrew.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_before_01-system-homebrew.sh.tmpl @@ -38,15 +38,9 @@ if [ -d /Applications ] && [ -d /Library ] && [ -z "$NO_RESTART" ]; then if [ ! -f "$HOME/.zshrc" ] || ! cat "$HOME/.zshrc" | grep '# TEMPORARY FOR INSTALL DOCTOR MACOS' > /dev/null; then echo 'bash <(curl -sSL https://install.doctor/start) # TEMPORARY FOR INSTALL DOCTOR MACOS' >> "$HOME/.zshrc" fi - if command -v gtimeout > /dev/null; then - logg info 'Ensuring system software is upgraded (timing out after 50 minutes if system upgrade fails)' - sudo gtimeout 3000 softwareupdate -i -a -R --agree-to-license || logg warn 'The system update command timed out after 50 minutes' - else - # If gtimeout is unavailable, then attempt system upgrade without a timeout (which usually works on fresh systems) - logg info 'Applying OS upgrades (if available)' - sudo softwareupdate -i -a -R --agree-to-license || logg error 'Failed to perform a system update via sudo softwareupdate -i -a -R' - fi - logg info 'If system updates were downloaded / installed, a reboot might be required.' + logg info 'Applying OS upgrades (if available)' + sudo softwareupdate -i -a --agree-to-license --background || logg error 'Failed to trigger a system update via sudo softwareupdate -i -a --agree-to-license --background' + logg info 'If system updates are downloaded / installed, a reboot might be required.' if command -v gsed > /dev/null; then sudo gsed -i '/# TEMPORARY FOR INSTALL DOCTOR MACOS/d' "$HOME/.zshrc" || logg warn "Failed to remove kickstart script from .zshrc" else diff --git a/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl index 38060d94..b2813f34 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl @@ -112,7 +112,7 @@ if command -v postfix > /dev/null; then ### Re-generate the /etc/aliases.db file if [ -f /etc/aliases ]; then logg info 'Ensuring proper permissions on the /etc/aliases file' && sudo chown $(stat -c "%U:%G" /etc/sudoers) /etc/aliases - logg info 'Generating Postfix aliases' && sudo postalias /etc/aliases + logg info 'Generating Postfix aliases' && sudo postalias /etc/aliases > /dev/null else logg warn '/etc/aliases is missing which is required for Postfix' fi @@ -133,10 +133,10 @@ if command -v postfix > /dev/null; then fi if ! sudo postfix status > /dev/null; then logg info 'Starting postfix' - sudo postfix start + sudo postfix start > /dev/null else logg info 'Reloading postfix' - sudo postfix reload + sudo postfix reload > /dev/null fi else ### Enable / restart postfix on Linux diff --git a/home/.chezmoiscripts/universal/run_onchange_after_09-login-docker-desktop.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_09-login-docker-desktop.sh.tmpl index f5656ba3..8af40ccc 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_09-login-docker-desktop.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_09-login-docker-desktop.sh.tmpl @@ -16,8 +16,7 @@ if command -v docker > /dev/null; then DOCKERHUB_TOKEN="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "DOCKERHUB_TOKEN")) }}{{- includeTemplate "secrets/DOCKERHUB_TOKEN" | decrypt | trim -}}{{ else }}{{- env "DOCKERHUB_TOKEN" -}}{{ end }}" DOCKERHUB_USER="{{ .user.docker.username }}" - logg info 'Headlessly authenticating with DockerHub registry' - echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin + logg info 'Headlessly authenticating with DockerHub registry' && echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin > /dev/null && logg success 'Successfully authenticated with DockerHub registry' fi {{- end }} diff --git a/home/.chezmoiscripts/universal/run_onchange_after_10-configure-macos.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_10-configure-macos.sh.tmpl index b9923759..7e84af53 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_10-configure-macos.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_10-configure-macos.sh.tmpl @@ -1,4 +1,4 @@ -{{- if (ne .host.distro.family "darwin") -}} +{{- if (eq .host.distro.family "darwin") -}} #!/usr/bin/env bash # @file macOS System Settings # @brief Applies an optimized set of macOS system configurations intended to provide more sensible system defaults @@ -216,6 +216,8 @@ sudo pmset -b sleep 5 sudo pmset -a standbydelay 86400 # Never go into computer sleep mode +sudo systemsetup -setdisplaysleep 30 > /dev/null +sudo systemsetup -setharddisksleep Off > /dev/null sudo systemsetup -setcomputersleep Off > /dev/null # Hibernation mode diff --git a/home/.chezmoiscripts/universal/run_onchange_after_11-install-asdf-packages.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_11-install-asdf-packages.sh.tmpl index bced6cc9..26bbd6be 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_11-install-asdf-packages.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_11-install-asdf-packages.sh.tmpl @@ -20,8 +20,7 @@ if [ -f "$ASDF_DIR/asdf.sh" ] && [ -f ~/.tool-versions ]; then logg info 'Sourcing asdf.sh' . ${ASDF_DIR}/asdf.sh cat .tool-versions | while read TOOL; do - logg info 'Installing ASDF plugin '"$(echo "$TOOL" | sed 's/ .*//')"'' - asdf plugin add "$(echo "$TOOL" | sed 's/ .*//')" + logg info 'Installing ASDF plugin '"$(echo "$TOOL" | sed 's/ .*//')"'' && asdf plugin add "$(echo "$TOOL" | sed 's/ .*//')" > /dev/null && logg success "Successfully added $(echo "$TOOL" | sed 's/ .*//') via ASDF" done # Only proceed with installation if either DEBUG_MODE is enabled or ~/.cache/megabyte-labs/asdf-install is missing # Added to save time between tests because PHP takes awhile to install diff --git a/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-ansible-roles.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-ansible-roles.sh.tmpl index 2e5b6063..d0587f38 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-ansible-roles.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-ansible-roles.sh.tmpl @@ -70,7 +70,7 @@ if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/gas-station/requirements.yml" ]; t if command -v ansible-galaxy > /dev/null; then logg info 'Ensuring Ansible Galaxy collections are installed' export ANSIBLE_CONFIG="${XDG_DATA_HOME:-$HOME/.local/share}/ansible/ansible.cfg" - ansible-galaxy install -r "${XDG_DATA_HOME:-$HOME/.local/share}/ansible/requirements.yml" || EXIT_CODE=$? + ansible-galaxy install -r "${XDG_DATA_HOME:-$HOME/.local/share}/ansible/requirements.yml" > /dev/null || EXIT_CODE=$? if [ -n "$EXIT_CODE" ]; then logg error 'Failed to install Ansible requirements from Ansible Galaxy' if [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/gas-station/collections" ]; then diff --git a/home/.chezmoiscripts/universal/run_onchange_after_98-cleanup.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_98-cleanup.sh.tmpl index 420a5273..277d8c22 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_98-cleanup.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_98-cleanup.sh.tmpl @@ -36,4 +36,8 @@ if [ -d /Applications ] && [ -d /System ]; then if command -v m > /dev/null; then logg info 'Emptying trash' && m trash clean fi -fi \ No newline at end of file + logg info 'Checking if there is a pending update' + defaults read /Library/Updates/index.plist InstallAtLogout +elif [ -f /var/run/reboot-required ]; then + logg info '/var/run/reboot-required is present so a reboot is required' +fi diff --git a/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.sh.tmpl index ec9d0587..1789cd13 100644 --- a/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.sh.tmpl @@ -20,10 +20,6 @@ if [ -n "$KEYID" ] && command -v gpg > /dev/null; then chown -Rf "$(whoami)" "$HOME/.gnupg/" find "$HOME/.gnupg" -type f -exec chmod 600 {} \; find "$HOME/.gnupg" -type d -exec chmod 700 {} \; - if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/private_dot_gnupg/public/${KEYID}.asc" ]; then - logg info "Importing GPG key stored in ${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/private_dot_gnupg/public/${KEYID}.asc since its name matches the GPG key ID in .chezmoi.yaml.tmpl" - gpg --import "${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/private_dot_gnupg/public/${KEYID}.asc" && logg success 'Successfully imported master GPG key' - fi if [ ! -f "$HOME/.gnupg/gpg.conf" ]; then logg 'Downloading hardened gpg.conf file to ~/.gpnupg/gpg.conf' curl -sSL "{{ .config.gpg }}" > "$HOME/.gnupg/gpg.conf" @@ -31,12 +27,12 @@ if [ -n "$KEYID" ] && command -v gpg > /dev/null; then fi KEYID_TRIMMED="$(echo "$KEYID" | sed 's/^0x//')" if ! gpg --list-secret-keys --keyid-format=long | grep "$KEYID_TRIMMED" > /dev/null; then - logg info 'Killing dirmngr instance and reloading daemon with standard-resolver' - sudo pkill dirmngr - dirmngr --daemon --standard-resolver - if [ -f "$HOME/.gnupg/public/$KEYID.sig" ]; then - gpg --import "$HOME/.gnupg/public/$KEYID.sig" + if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/private_dot_gnupg/public/${KEYID}.asc" ]; then + logg info "Importing GPG key stored in ${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/private_dot_gnupg/public/${KEYID}.asc since its name matches the GPG key ID in .chezmoi.yaml.tmpl" + gpg --import "${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/private_dot_gnupg/public/${KEYID}.asc" && logg success 'Successfully imported master GPG key' else + logg info 'Killing dirmngr instance and reloading daemon with standard-resolver' && sudo pkill dirmngr + dirmngr --daemon --standard-resolver logg info 'Attempting to download the specified public GPG key ({{ .user.gpg.id }}) from public keyservers' gpg --keyserver https://pgp.mit.edu --recv "$KEYID" || EXIT_CODE=$? if [ -n "$EXIT_CODE" ]; then @@ -48,9 +44,9 @@ if [ -n "$KEYID" ] && command -v gpg > /dev/null; then logg success 'Successfully imported configured public user GPG key' fi fi + logg info 'Stopping dirmngr' + gpgconf --kill dirmngr && logg info 'Stopped dirmngr' || info warn 'Failed to stop dirmngr' fi - logg info 'Stopping dirmngr' - gpgconf --kill dirmngr && logg info 'Stopped dirmngr' || info warn 'Failed to stop dirmngr' else logg info 'Key is already in keyring' fi diff --git a/home/dot_config/espanso/config/default.yml b/home/dot_config/espanso/config/default.yml new file mode 100644 index 00000000..e69de29b diff --git a/home/dot_config/espanso/config/vscode.yml b/home/dot_config/espanso/config/vscode.yml new file mode 100644 index 00000000..ccedeb0f --- /dev/null +++ b/home/dot_config/espanso/config/vscode.yml @@ -0,0 +1,4 @@ +filter_title: "Visual Studio Code" + +extra_includes: + - "../match/_code_snippets.yml" \ No newline at end of file diff --git a/home/dot_config/espanso/match/base.yml b/home/dot_config/espanso/match/base.yml new file mode 100644 index 00000000..e69de29b diff --git a/home/dot_local/bin/executable_install-program b/home/dot_local/bin/executable_install-program index f4e31787..daf207a3 100644 --- a/home/dot_local/bin/executable_install-program +++ b/home/dot_local/bin/executable_install-program @@ -342,6 +342,15 @@ async function generateInstallOrders(pkgsToInstall) { } } + // Handle the _app definition + const appName = softwarePackages[packageKey]['_app'] + if (appName) { + if(fileExists(`/Applications/${appName}`) || fileExists(`${process.env.HOME}/Applications/${appName}`)) { + processPluginOrders(pkg) + continue pkgFor + } + } + // Handle the _deps attribute currentSelector = 'deps' doubleScoped = @@ -582,9 +591,9 @@ async function afterInstall(packageManager) { log('info', logStage, `Ensuring temporary passwordless sudo privileges used by Ansible are removed`) const gsed = which.sync('gsed', { nothrow: true }) if (gsed) { - await $`sudo gsed -i '/# TEMPORARY FOR ANSIBLE INSTALL DOCTOR/d' /etc/sudoers` + await $`sudo gsed -i '/# TEMPORARY FOR INSTALL DOCTOR ANSIBLE/d' /etc/sudoers` } else { - await $`sudo sed -i '/# TEMPORARY FOR ANSIBLE INSTALL DOCTOR/d' /etc/sudoers` + await $`sudo sed -i '/# TEMPORARY FOR INSTALL DOCTOR ANSIBLE/d' /etc/sudoers` } } else if (packageManager === 'apk') { } else if (packageManager === 'apt') { @@ -1837,10 +1846,9 @@ async function linkBin(installOrdersBinLink) { } catch (e) { log('warn', 'Bin', `Expected flatpak directory not available - ${flatpakDir}/app/${pkg}`) } - } else if (binLink.preference === 'cask') { + } else if (softwarePackages[binLink.package]['_app']) { try { - const caskWhen = softwarePackages[binLink.package]['_when:cask'].replace(/blue/g, "red") - const appName = caskWhen.replace(/ && ! test -d .*/, '').replace(/! test -d "\/Applications\//, '').replace(/! test -d \/Applications\//, '').replace('"', '') + const appName = softwarePackages[binLink.package]['_app'] log('info', 'Bin', `Checking for existence of ${appName} application in /Applications and ~/Applications`) if (fileExists(`/Applications/${appName}`)) { runCommand( diff --git a/scripts/partials/reboot b/scripts/partials/reboot new file mode 100644 index 00000000..85276ff3 --- /dev/null +++ b/scripts/partials/reboot @@ -0,0 +1,27 @@ +# @description This function determines whether or not a reboot is required on the target system. +# On Linux, it will check for the presence of the `/var/run/reboot-required` file to determine +# whether or not a reboot is required. On macOS, it will reboot `/Library/Updates/index.plist` +# to determine whether or not a reboot is required. +# +# After determining whether or not a reboot is required, the script will attempt to automatically +# reboot the machine. +handleRequiredReboot() { + if [ -d /Applications ] && [ -d /System ]; then + ### macOS + logg info 'Checking if there is a pending update' && defaults read /Library/Updates/index.plist InstallAtLogout + # TODO - Uncomment this when we can determine conditions for reboot + # sudo shutdown -r now + elif [ -f /var/run/reboot-required ]; then + ### Linux + logg info '/var/run/reboot-required is present so a reboot is required' + if command -v systemctl > /dev/null; then + logg info 'systemctl present so rebooting with sudo systemctl start reboot.target' && sudo systemctl start reboot.target + elif command -v reboot > /dev/null; then + logg info 'reboot available as command so rebooting with sudo reboot' && sudo reboot + elif command -v shutdown > /dev/null; then + logg info 'shutdown command available so rebooting with sudo shutdown -r now' && sudo shutdown -r now + else + logg warn 'Reboot required but unable to determine appropriate restart command' + fi + fi +} \ No newline at end of file diff --git a/scripts/src/provision.sh.tmpl b/scripts/src/provision.sh.tmpl index ce5634e5..dc112568 100644 --- a/scripts/src/provision.sh.tmpl +++ b/scripts/src/provision.sh.tmpl @@ -79,6 +79,7 @@ setEnvironmentVariables() { {{ include "partials" "basic-deps" }} {{ include "partials" "homebrew" }} +{{ include "partials" "reboot" }} # @description Load default settings if it is in a CI setting setCIEnvironmentVariables() { if [ -n "$CI" ]; then @@ -385,5 +386,6 @@ provisionLogic() { logg info "Running the Chezmoi provisioning" && runChezmoi logg info "Ensuring temporary passwordless sudo is removed" && removePasswordlessSudo logg info "Handling post-provision logic" && postProvision + logg info "Determing whether or not reboot" && handleRequiredReboot } provisionLogic diff --git a/software.yml b/software.yml index 2f797e9f..c1c6fc33 100644 --- a/software.yml +++ b/software.yml @@ -382,7 +382,7 @@ softwarePackages: _bin: graphql-playground _github: https://github.com/graphql/graphql-playground _name: GraphQL Playground - _when:cask: '! test -d "/Applications/GraphQL Playground.app" && ! test -d "$HOME/Applications/GraphQL Playground.app"' + _app: GraphQL Playground.app appimage: graphql/graphql-playground cask: graphql-playground exe: https://github.com/graphql/graphql-playground/releases/download/v1.8.10/graphql-playground-electron-setup-1.8.10.exe @@ -390,12 +390,12 @@ softwarePackages: _bin: kdenlive _github: https://github.com/KDE/kdenlive _name: Kdenlive - _when:cask: '! test -d /Applications/kdenlive.app && ! test -d $HOME/Applications/kdenlive.app' + _app: kdenlive.app cask: kdenlive choco: kdenlive flatpak: org.kde.kdenlive genymotion: - _when:cask: '! test -d /Applications/Genymotion.app && ! test -d $HOME/Applications/Genymotion.app' + _app: Genymotion.app cask: genymotion choco: genymotion # TODO: Figure out how to install on Android @@ -406,7 +406,7 @@ softwarePackages: _github: false _home: https://pieces.app/ _name: Pieces - _when:cask: '! test -d /Applications/Pieces.app && ! test -d $HOME/Applications/Pieces.app' + _app: Pieces.app appinstaller: https://builds.pieces.app/stages/production/appinstaller/pieces_for_x.appinstaller cask: pieces exe: https://builds.pieces.app/stages/production/pieces_for_x/windows-exe/download @@ -418,7 +418,7 @@ softwarePackages: _home: https://pieces.app/ _name: Pieces OS _post:snap: sudo snap connect pieces-os:dotnet-runtime-aspnetcore - _when:cask: '! test -d /Applications/Pieces.app && ! test -d $HOME/Applications/Pieces.app' + _app: Pieces.app appinstaller: https://builds.pieces.app/stages/production/appinstaller/os_server.appinstaller cask: pieces-os exe: https://builds.pieces.app/stages/production/os_server/windows-exe/download @@ -495,7 +495,7 @@ softwarePackages: _github: https://github.com/altair-graphql/altair _home: https://altairgraphql.dev/ _name: Altair GraphQL Client - _when:cask: '! test -d "/Applications/Altair GraphQL Client.app" && ! test -d "$HOME/Applications/Altair GraphQL Client.app"' + _app: Altair GraphQL Client.app cask: altair-graphql-client choco: altair-graphql snap: altair @@ -565,7 +565,7 @@ softwarePackages: _github: null _home: https://developer.android.com/studio _name: Android Studio - _when:cask: '! test -d "/Applications/Android Studio.app" && ! test -d "$HOME/Applications/Android Studio.app"' + _app: Android Studio.app cask: android-studio choco: androidstudio flatpak: com.google.AndroidStudio @@ -728,7 +728,7 @@ softwarePackages: _bin: appium-desktop _github: https://github.com/appium/appium-desktop _name: Appium Desktop - _when:cask: '! test -d "/Applications/Appium Server GUI.app" && ! test -d "$HOME/Applications/Appium Server GUI.app"' + _app: Appium Server GUI.app appimage: appium/appium-desktop cask: appium choco: appium-desktop @@ -736,7 +736,7 @@ softwarePackages: _bin: appium-inspector _github: https://github.com/appium/appium-inspector _name: Appium Inspector - _when:cask: '! test -d "/Applications/Appium Inspector.app" && ! test -d "$HOME/Applications/Appium Inspector.app"' + _app: Appium Inspector.app appimage: appium/appium-inspector cask: appium-inspector choco: appium-desktop @@ -779,7 +779,7 @@ softwarePackages: http-toolkit: _github: https://github.com/httptoolkit/httptoolkit _name: HTTP Toolkit - _when:cask: '! test -d "/Applications/HTTP Toolkit.app" && ! test -d "$HOME/Applications/HTTP Toolkit.app"' + _app: HTTP Toolkit.app cask: http-toolkit winget: HTTPToolKit.HTTPToolKit tart: @@ -835,7 +835,7 @@ softwarePackages: catlight: _github: https://github.com/catlightio/CatLight _name: Catlight - _when: '! test -d /Applications/Catlight.app && ! test -d "$HOME/Applications/Catlight.app"' + _app: Catlight.app cask: catlight deb: https://catlight.io/downloads/linux/beta d2vm: @@ -935,7 +935,7 @@ softwarePackages: port: aria2 scoop: aria2 ariang: - _when:cask: '! test -d "/Applications/AriaNg Native.app" && ! test -d "$HOME/Applications/AriaNg Native.app"' + _app: AriaNg Native.app cask: ariang iina: _bin: null @@ -944,7 +944,7 @@ softwarePackages: _github: https://github.com/iina/iina _home: https://iina.io/ _name: iina macOS Video Player - _when:cask: '! test -d /Applications/iina.app && ! test -d $HOME/Applications/iina.app' + _app: iina.app cask: iina asciinema: _bin: asciinema @@ -1021,7 +1021,7 @@ softwarePackages: devtoys: _bin: devtoys _github: https://github.com/ObuchiYuki/DevToysMac - _when:cask: '! test -d /Applications/DevToys.app && ! test -d $HOME/Applications/DevToys.app' + _app: DevToys.app cask: devtoys devtoys-windows: _bin: devtoys @@ -1039,13 +1039,13 @@ softwarePackages: _bin: codeedit _github: https://github.com/CodeEditApp/CodeEdit _name: CodeEdit - _when:cask: '! test -d "/Applications/CodeEdit.app" && ! test -d "$HOME/Applications/CodeEdit.app"' + _app: CodeEdit.app cask: codeedit barrier: _bin: barrier _github: https://github.com/debauchee/barrier _name: Barrier - _when:cask: '! test -d /Applications/Barrier.app && ! test -d $HOME/Applications/Barrier.app' + _app: Barrier.app cask: barrier choco: barrier flatpak: com.github.debauchee.barrier @@ -1056,7 +1056,7 @@ softwarePackages: _github: https://github.com/zenangst/Syncalicious _home: https://github.com/zenangst/Syncalicious _name: Syncalicious - _when:cask: '! test -d /Applications/Syncalicious.app && ! test -d $HOME/Applications/Syncalicious.app' + _app: Syncalicious.app cask: syncalicious auto-install: _bin: auto-install @@ -1153,7 +1153,7 @@ softwarePackages: _github: https://github.com/signalapp/Signal-Desktop _home: https://signal.org _name: Signal Desktop - _when:cask: '! test -d "/Applications/Signal.app" && ! test -d "$HOME/Applications/Signal.app"' + _app: Signal.app cask: signal choco: signal flatpak: org.signal.Signal @@ -1200,7 +1200,7 @@ softwarePackages: _bin: logi-options-plus _github: false _name: Logi Options+ - _when:cask: '! test -d "/Applications/logioptionsplus.app" && ! test -d "$HOME/Applications/logioptionsplus.app"' + _app: logioptionsplus.app choco: logioptionsplus cask: logi-options-plus exe: https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe @@ -1219,7 +1219,7 @@ softwarePackages: _github: https://github.com/balena-io/etcher _home: https://www.balena.io/etcher/ _name: balenaEtcher - _when:cask: '! test -d /Applications/balenaEtcher.app && ! test -d $HOME/Applications/balenaEtcher.app' + _app: balenaEtcher.app ansible:linux: professormanhattan.etcher # Waiting for zap to allow headless automation of AppImage Catalog images # Currently, it fails because there are multiple versions to select @@ -1292,7 +1292,6 @@ softwarePackages: brew-pkg: _github: https://github.com/timsutton/brew-pkg _name: Homebrew Pkg - _when:darwin: '! brew pkg --help > /dev/null' brew:darwin: timsutton/formulae/brew-pkg xpanes: _bin: xpanes @@ -1309,7 +1308,6 @@ softwarePackages: _github: null _home: null _name: Bash Completion Formula - _when: '! brew list bash-completion | grep bash-completion > /dev/null' apt: bash-completion brew: bash-completion@2 dnf: bash-completion @@ -1381,7 +1379,7 @@ softwarePackages: _github: https://github.com/kdzwinel/betwixt _home: https://github.com/kdzwinel/betwixt _name: Betwixt - _when:cask: '! test -d /Applications/Betwixt.app && ! test -d $HOME/Applications/Betwixt.app' + _app: Betwixt.app cask: betwixt bin: _bin: bin @@ -1407,7 +1405,7 @@ softwarePackages: _github: https://github.com/Jintin/Swimat _home: https://jintin.github.io/Swimat/ _name: Swimat - _when:cask: '! test -d /Applications/Swimat.app && ! test -d $HOME/Applications/Swimat.app' + _app: Swimat.app cask: swimat textql: _bin: textql @@ -1426,7 +1424,7 @@ softwarePackages: _github: https://github.com/brunophilipe/Cakebrew _home: http://www.cakebrew.com/ _name: Cakebrew - _when:cask: '! test -d /Applications/Cakebrew.app && ! test -d $HOME/Applications/Cakebrew.app' + _app: Cakebrew.app cask: cakebrew bitwarden: _bin: bitwarden @@ -1435,7 +1433,7 @@ softwarePackages: _github: https://github.com/bitwarden/desktop _home: null _name: BitWarden - _when:cask: '! test -d /Applications/Bitwarden.app && ! test -d $HOME/Applications/Bitwarden.app' + _app: Bitwarden.app cask: bitwarden choco: bitwarden flatpak: com.bitwarden.desktop @@ -1546,25 +1544,25 @@ softwarePackages: _bin: utm _github: https://github.com/utmapp/UTM _name: UTM - _when:cask: '! test -d /Applications/UTM.app && ! test -d $HOME/Applications/UTM.app' + _app: UTM.app cask: utm amethyst: _bin: amethyst _github: https://github.com/ianyh/Amethyst _name: Amethyst - _when:cask: '! test -d /Applications/Amethyst.app && ! test -d $HOME/Applications/Amethyst.app' + _app: Amethyst.app cask: amethyst alt-tab: _bin: alt-tab _github: https://github.com/lwouis/alt-tab-macos _name: Alt+Tab for macOS that works like alt+tab on Windows - _when:cask: '! test -d "/Applications/AltTab.app" && ! test -d "$HOME/Applications/AltTab.app"' + _app: AltTab.app cask: alt-tab fiscript: _bin: fiscript _github: https://github.com/Mortennn/FiScript _name: FiScript - _when:cask: '! test -d /Applications/FiScript.app && ! test -d $HOME/Applications/FiScript.app' + _app: FiScript.app cask: fiscript opencommit: _bin: opencommit @@ -1607,7 +1605,7 @@ softwarePackages: _github: https://github.com/Barre/privaxy _home: false _name: Privaxy - _when:script:darwin: '! test -d /Applications/Privaxy.app && ! test -d $HOME/Applications/Privaxy.app' + _app: Privaxy.app appimage: barre/privaxy apt: https://github.com/Barre/privaxy/releases/download/v0.5.2/privaxy_0.5.2_amd64.deb script:darwin: curl -sSL https://github.com/Barre/privaxy/releases/download/v0.5.2/Privaxy_0.5.2_universal.dmg > /tmp/Privaxy.dmg && sudo hdiutil attach /tmp/Privaxy.dmg && sudo cp -R /Volumes/Privaxy/Privaxy.app /Applications && sudo hdiutil detach /Volumes/Privaxy && rm -f /tmp/Privaxy.dmg @@ -1618,7 +1616,7 @@ softwarePackages: _github: https://github.com/brave/brave-browser _home: https://brave.com/ _name: Brave Browser - _when:cask: '! test -d "/Applications/Brave Browser.app" && ! test -d "$HOME/Applications/Brave Browser.app"' + _app: Brave Browser.app ansible: professormanhattan.bravebrowser cask: brave-browser choco: brave @@ -1703,7 +1701,7 @@ softwarePackages: _bin: lightproxy _github: https://github.com/alibaba/lightproxy _name: LightProxy - _when:cask: '! test -d /Applications/LightProxy.app && ! test -d $HOME/Applications/LightProxy.app' + _app: LightProxy.app cask: lightproxy carbon-now: _bin: carbon-now @@ -1735,7 +1733,7 @@ softwarePackages: _desc: Image compressor that utilizes other applications like ImageOptim under the hood _github: https://github.com/ImageOptim/ImageOptim _home: https://imageoptim.com/mac - _when:cask: '! test -d /Applications/ImageOptim.app && ! test -d $HOME/Applications/ImageOptim.app' + _app: ImageOptim.app cask: imageoptim imageoptim-cli: _deps: @@ -1754,7 +1752,7 @@ softwarePackages: _github: https://github.com/cerebroapp/cerebro _home: null _name: Cerebro - _when:cask: '! test -d /Applications/Cerebro.app && ! test -d $HOME/Applications/Cerebro.app' + _app: Cerebro.app cask: cerebro choco: cerebro github: github.com/cerebroapp/cerebro @@ -1843,7 +1841,7 @@ softwarePackages: _github: Not open-source _home: https://www.google.com/chrome/ _name: Google Chrome - _when:cask: '! test -d "/Applications/Google Chrome.app" && ! test -d "$HOME/Applications/Google Chrome.app"' + _app: Google Chrome.app ansible: professormanhattan.chrome cask: google-chrome choco: googlechrome @@ -1856,7 +1854,7 @@ softwarePackages: _github: false _home: https://www.google.com/drive/download/ _name: Google Drive - _when:cask: '! test -d "/Applications/Google Drive.app" && ! test -d "$HOME/Applications/Google Drive.app"' + _app: Google Drive.app cask: google-drive choco: googledrive tor-browser: @@ -1867,7 +1865,7 @@ softwarePackages: _home: https://www.torproject.org/ _name: Tor Browser _restricted: true - _when:cask: '! test -d "/Applications/Tor Browser.app" && ! test -d "$HOME/Applications/Tor Browser.app"' + _app: Tor Browser.app cask: tor-browser choco: tor-browser flatpak: com.github.micahflee.torbrowser-launcher @@ -1897,11 +1895,9 @@ softwarePackages: _github: https://gitlab.gnome.org/GNOME/gnome-browser-extension _home: ttps://wiki.gnome.org/Projects/GnomeShellIntegration _name: null - _when: echo '! test -f /usr/bin/gnome-session' | bash apt: chrome-gnome-shell dnf: chrome-gnome-shell pacman: chrome-gnome-shell - _ type: menubar clair: _bin: clair _desc: Vulnerability Static Analysis for Containers @@ -1998,7 +1994,7 @@ softwarePackages: pacman: clang scoop: llvm clocker: - _when:cask: '! test -d /Applications/Clocker.app && ! test -d $HOME/Applications/Clocker.app' + _app: Clocker.app _bin: null _desc: Clocker is designed to help you keep track of your friends and colleagues in different time zones. _docs: null @@ -2246,7 +2242,7 @@ softwarePackages: github: github.com/bcicen/ctop yay: ctop-bin cumulus: - _when:cask: '! test -d /Applications/Cumulus.app && ! test -d $HOME/Applications/Cumulus.app' + _app: Cumulus.app _bin: null _desc: A SoundCloud player that lives in the menubar _docs: null @@ -2359,7 +2355,7 @@ softwarePackages: github: github.com/dat-ecosystem-archive/dat npm: dat@next dat-desktop: - _when:cask: '! test -d "/Applications/Dat Desktop.app" && ! test -d "$HOME/Applications/Dat Desktop.app"' + _app: Dat Desktop.app _bin: null _desc: Peer to peer data syncronization _docs: null @@ -2548,9 +2544,9 @@ softwarePackages: _github: https://github.com/espanso/espanso _name: Espanso _snapClassic: true - _when:appimage: sudo espanso service register && sudo espanso start - _when:cask: '! test -d /Applications/Espanso.app && ! test -d $HOME/Applications/Espanso.app' - _when:snap: sudo espanso service register && sudo espanso start + _app: Espanso.app + _post:snap: espanso service register && espanso start + _post:appimage: espanso service register && espanso start appimage: federico-terzi/espanso cask: espanso choco: espanso @@ -2568,7 +2564,7 @@ softwarePackages: _github: https://github.com/docker/compose _home: https://www.docker.com/ _name: Docker Desktop - _when:cask: '! test -d /Applications/Docker.app && ! test -d $HOME/Applications/Docker.app' + _app: Docker.app apt: https://desktop.docker.com/linux/main/amd64/docker-desktop-4.16.2-amd64.deb cask: docker choco: docker-desktop @@ -2767,7 +2763,7 @@ softwarePackages: _github: https://github.com/wfxr/forgit _name: forgit brew: forgit - ntfy: + nfty: _bin: nfty _github: https://github.com/dschep/ntfy _name: nfty @@ -2805,13 +2801,13 @@ softwarePackages: _bin: prezi-video _github: null _name: Prezi Video - _when:cask: '! test -d "/Applications/Prezi Video.app" && ! test -d "$HOME/Applications/Prezi Video.app"' + _app: Prezi Video.app cask: prezi-video orbstack: _bin: orb _github: _name: OrbStack - _when:cask: '! test -d /Applications/OrbStack.app && ! test -d $HOME/Applications/OrbStack.app' + _app: OrbStack.app cask: orbstack gpt-engineer: _bin: gpt-engineer @@ -2822,7 +2818,7 @@ softwarePackages: _bin: medis _github: https://github.com/luin/medis _name: Medis - _when:cask: '! test -d /Applications/Medis.app && ! test -d $HOME/Applications/Medis.app' + _app: Medis.app cask: medis ndb: _bin: ndb @@ -2842,7 +2838,7 @@ softwarePackages: _home: https://www.electronjs.org/ _name: Electron npm: electron - _when:cask: '! test -d /Applications/Electron.app && ! test -d $HOME/Applications/Electron.app' + _app: Electron.app cask: electron choco: electron emma: @@ -3013,7 +3009,7 @@ softwarePackages: _bin: mongodb-compass _github: https://github.com/mongodb-js/compass _name: MongoDB Compass - _when:cask: '! test -d "/Applications/MongoDB Compass.app" && ! test -d "$HOME/Applications/MongoDB Compass.app"' + _app: MongoDB Compass.app cask: mongodb-compass choco: mongodb-compass dnf: https://downloads.mongodb.com/compass/mongodb-compass-1.38.0.x86_64.rpm @@ -3236,7 +3232,7 @@ softwarePackages: _home: https://fig.io/ _name: Fig _post: source ~/.config/shell/private.sh && fig login --token "$FIG_TOKEN" - _when:cask: '! test -d "/Applications/Fig.app" && ! test -d "$HOME/Applications/Fig.app"' + _app: Fig.app cask: fig steampipe: _bin: steampipe @@ -3262,7 +3258,7 @@ softwarePackages: github: github.com/filebrowser/filebrowser arduino-ide: _bin: arduino - _when:cask: '! test -d "/Applications/Arduino.app" && ! test -d "$HOME/Applications/Arduino.app"' + _app: Arduino.app cask: arduino choco: arduino flatpak: cc.arduino.IDE2 @@ -3293,7 +3289,7 @@ softwarePackages: _github: https://svn.filezilla-project.org/filezilla/ _home: https://filezilla-project.org/ _name: FileZilla - _when:ansible:darwin: test -d /Applications/FileZilla.app + _app: FileZilla.app ansible:darwin: professormanhattan.filezilla apt: filezilla choco: filezilla @@ -3336,7 +3332,7 @@ softwarePackages: _github: null _home: https://www.mozilla.org/en-US/firefox/new/ _name: Mozilla Firefox - _when:cask: '! test -d "/Applications/Firefox.app" && ! test -d "$HOME/Applications/Firefox.app"' + _app: Firefox.app ansible: professormanhattan.firefox apt: firefox apt:debian: firefox-esr @@ -3372,7 +3368,7 @@ softwarePackages: _github: https://github.com/objective-see/LuLu _home: https://objective-see.org/products/lulu.html _name: LuLu - _when:cask: '! test -d /Applications/LuLu.app && ! test -d $HOME/Applications/LuLu.app' + _app: LuLu.app cask: lulu keycastr: _bin: null @@ -3381,7 +3377,7 @@ softwarePackages: _github: https://github.com/keycastr/keycastr _home: https://github.com/keycastr/keycastr _name: Keycastr - _when:cask: '! test -d /Applications/KeyCastr.app && ! test -d $HOME/Applications/KeyCastr.app' + _app: KeyCastr.app cask: keycastr hiddenbar: _bin: null @@ -3390,7 +3386,7 @@ softwarePackages: _github: https://github.com/dwarvesf/hidden _home: https://dwarves.foundation/opensource/ _name: Hidden Bar - _when:cask: '! test -d "/Applications/Hidden Bar.app" && ! test -d "$HOME/Applications/Hidden Bar.app"' + _app: Hidden Bar.app cask: hiddenbar mas: 1452453066 flameshot: @@ -3401,7 +3397,7 @@ softwarePackages: _home: https://flameshot.org/ _name: Flameshot _scoopExtras: true - _when:cask: '! test -d "/Applications/flameshot.app" && ! test -d "$HOME/Applications/flameshot.app"' + _app: flameshot.app apt: flameshot cask: flameshot choco: flameshot @@ -3423,7 +3419,7 @@ softwarePackages: _github: https://github.com/jgraph/drawio-desktop _home: https://www.diagrams.net/ _name: DrawIO Desktop - _when:cask: '! test -d /Applications/draw.io.app && ! test -d $HOME/Applications/draw.io.app' + _app: draw.io.app appimage: draw.io cask: drawio choco: drawio @@ -3446,14 +3442,14 @@ softwarePackages: _github: https://github.com/pock/pock _home: https://pock.app/ _name: Pock - _when:cask: '! test -d /Applications/Pock.app && ! test -d $HOME/Applications/Pock.app' + _app: Pock.app cask: pock ksnip: _bin: ksnip _github: https://github.com/ksnip/ksnip _name: kSnip _post:snap: sudo snap connect ksnip:network-observe && sudo snap connect ksnip:network-manager-observe && sudo snap connect ksnip:removable-media - _when:cask: '! test -d "/Applications/ksnip.app" && ! test -d "$HOME/Applications/ksnip.app"' + _app: ksnip.app cask: ksnip flatpak: org.ksnip.ksnip choco: ksnip @@ -3462,7 +3458,7 @@ softwarePackages: _bin: xpra _github: https://github.com/Xpra-org/xpra _name: xpra - _when:cask: '! test -d "/Applications/Xpra.app" && ! test -d "$HOME/Applications/Xpra.app"' + _app: Xpra.app cask: xpra choco: xpra exe: https://xpra.org/dists/windows/Xpra-x86_64_Setup.exe @@ -3484,7 +3480,7 @@ softwarePackages: swiftbar: _github: https://github.com/swiftbar/SwiftBar _name: SwiftBar - _when:cask: '! test -d /Applications/SwiftBar.app && ! test -d $HOME/Applications/SwiftBar.app' + _app: SwiftBar.app cask: swiftbar crunch: _bin: crunch @@ -3493,7 +3489,7 @@ softwarePackages: _github: https://github.com/chrissimpkins/Crunch _home: https://github.com/chrissimpkins/Crunch _name: Crunch - _when:cask: '! test -d /Applications/Crunch.app && ! test -d $HOME/Applications/Crunch.app' + _app: Crunch.app cask: crunch script: cd /tmp && rm -rf Crunch && git clone https://github.com/chrissimpkins/Crunch.git && make build-dependencies && make install-executable && cd /tmp && rm -rf Crunch && rm -rf ~/zopfli && rm -rf ~/pngquant && echo "TODO WARNING - The ~/zopfli and ~/pngquant directories were deleted and may be required (but were removed due to HOME directory pollution)" eul: @@ -3503,7 +3499,7 @@ softwarePackages: _github: https://github.com/gao-sun/eul _home: https://github.com/gao-sun/eul _name: Eul - _when:cask: '! test -d /Applications/eul.app && ! test -d $HOME/Applications/eul.app' + _app: eul.app cask: eul mas: 1537133867 linkliar: @@ -3513,7 +3509,7 @@ softwarePackages: _home: https://halo.github.io/LinkLiar/ _github: https://github.com/halo/LinkLiar _name: Link Liar - _when:cask: '! test -d /Applications/LinkLiar.app && ! test -d $HOME/Applications/LinkLiar.app' + _app: LinkLiar.app cask: linkliar monitorcontrol: _bin: null @@ -3522,8 +3518,8 @@ softwarePackages: _github: https://github.com/MonitorControl/MonitorControl _home: https://github.com/MonitorControl/MonitorControl _name: Monitor Control - _when:brew: test -d /Applications/MonitorControl.app - brew:darwin: monitorcontrol + _app: MonitorControl.app + cask: monitorcontrol meetingbar: _bin: null _desc: Meeting menu bar application that shows calendar event details on macOS @@ -3531,7 +3527,7 @@ softwarePackages: _github: https://github.com/leits/MeetingBar _home: https://apps.apple.com/app/id1532419400 _name: Meeting Bar - _when:cask: test -d /Applications/MeetingBar.app + _app: MeetingBar.app cask: meetingbar mas: 1532419400 crunch-app: @@ -3541,7 +3537,7 @@ softwarePackages: _github: https://github.com/chrissimpkins/Crunch _home: https://github.com/chrissimpkins/Crunch _name: Crunch macOS App - _when:cask: '! test -d /Applications/Crunch.app && ! test -d $HOME/Applications/Crunch.app' + _app: Crunch.app cask: crunch xcodes-app: _bin: null @@ -3550,7 +3546,7 @@ softwarePackages: _github: https://github.com/XcodesOrg/XcodesApp _home: https://github.com/XcodesOrg/XcodesApp _name: Xcodes App - _when:cask: '! test -d /Applications/Xcodes.app && ! test -d $HOME/Applications/Xcodes.app' + _app: Xcodes.app cask: xcodes nitroshare: _bin: nitroshare @@ -3559,7 +3555,7 @@ softwarePackages: _github: https://github.com/nitroshare/nitroshare-desktop _home: https://nitroshare.net/ _name: NitroShare - _when:cask: '! test -d "/Applications/nitroshare.app" && ! test -d "$HOME/Applications/nitroshare.app"' + _app: nitroshare.app apt: nitroshare cask: nitroshare choco: nitroshare @@ -3595,17 +3591,26 @@ softwarePackages: github: github.com/mistakenelf/fm go: github.com/mistakenelf/fm@latest fonts: - _bin: null - _desc: null - _docs: null + _deps: + - font-sfmono-nerd-font + - font-hack-nerd-font + - font-meslo-nerd-font + _bin: false + font-sfmono-nerd-font: + _bin: false _github: null - _home: null - _name: null - _when:cask: '! ((brew list font-sf-mono-nerd-font | grep SFMono > /dev/null) && (brew list font-hack-nerd-font | grep Hack > /dev/null) && (brew list font-meslo-lg-nerd-font | grep Meslo > /dev/null))' - cask: - - epk/epk/font-sf-mono-nerd-font - - homebrew/cask-fonts/font-hack-nerd-font - - homebrew/cask-fonts/font-meslo-lg-nerd-font + _name: Nerd Font + cask: epk/epk/font-sf-mono-nerd-font + font-hack-nerd-font: + _bin: false + _github: null + _name: Hack Nerd Font + cask: font-hack-nerd-font + font-meslo-nerd-font: + _bin: false + _github: null + _name: Meslo Nerd Font + cask: font-meslo-lg-nerd-font metasploit: _github: https://github.com/rapid7/metasploit-framework _name: Metasploit Framework @@ -3762,7 +3767,7 @@ softwarePackages: _github: https://github.com/standardnotes/app _home: https://standardnotes.com/ _name: Standard Notes - _when:cask: '! test -d "/Applications/Standard Notes.app" && ! test -d "$HOME/Applications/Standard Notes.app"' + _app: Standard Notes.app cask: standard-notes flatpak: org.standardnotes.standardnotes deja-dup: @@ -3771,14 +3776,14 @@ softwarePackages: discord: _bin: discord _name: Discord - _when:cask: '! test -d "/Applications/Discord.app" && ! test -d "$HOME/Applications/Discord.app"' + _app: Discord.app cask: discord choco: discord flatpak: com.discordapp.Discord telegram: _bin: telegram _name: Telegram - _when:cask: '! test -d "/Applications/Telegram.app" && ! test -d "$HOME/Applications/Telegram.app"' + _app: Telegram.app cask: telegram choco: telegram flatpak: org.telegram.desktop @@ -3790,7 +3795,7 @@ softwarePackages: _github: https://github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client _home: null _name: Google Assistant for Desktop - _when:cask: '! test -d "/Applications/Google Assistant.app" && ! test -d "$HOME/Applications/Google Assistant.app"' + _app: Google Assistant.app ansible:windows: professormanhattan.googleassistant cask: google-assistant github: github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client @@ -3804,7 +3809,6 @@ softwarePackages: _home: null _name: Google Cloud SDK _snapClassic: true - _when:cask: '! test -f /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.bash.inc' ansible: professormanhattan.googlecloudsdk cask: google-cloud-sdk choco: gcloudsdk @@ -3889,7 +3893,7 @@ softwarePackages: _github: https://github.com/GNOME/gimp _home: https://www.gimp.org/ _name: GIMP - _when:cask: '! test -d /Applications/GIMP.app && ! test -d $HOME/Applications/GIMP.app' + _app: GIMP.app ansible: professormanhattan.gimp apt: gimp cask: gimp @@ -3999,13 +4003,13 @@ softwarePackages: _bin: element _github: https://github.com/vector-im/element-web _name: Element - _when:cask: '! test -d "/Applications/Element.app" && ! test -d "$HOME/Applications/Element.app"' + _app: Element.app cask: element choco: element-desktop flatpak: im.riot.Riot github-desktop: _bin: github - _when:cask: '! test -d "/Applications/GitHub Desktop.app" && ! test -d "$HOME/Applications/GitHub Desktop.app"' + _app: GitHub Desktop.app cask: github choco: github-desktop flatpak: io.github.shiftey.Desktop @@ -4019,7 +4023,7 @@ softwarePackages: _github: https://gitlab.com/mvanremmerden/gitdock _home: https://gitlab.com/mvanremmerden/gitdock _name: GitDock - _when:cask: '! test -d /Applications/GitDock.app && ! test -d $HOME/Applications/GitDock.app' + _app: GitDock.app ansible:darwin: professormanhattan.gitdock cask: gitdock zola: @@ -4075,7 +4079,7 @@ softwarePackages: _github: https://github.com/manosim/gitify _home: https://github.com/manosim/gitify _name: Gitify - _when:cask: '! test -d /Applications/Gitify.app && ! test -d $HOME/Applications/Gitify.app' + _app: Gitify.app cask: gitify github: github.com/manosim/gitify yay: gitify-bin @@ -4087,7 +4091,7 @@ softwarePackages: _home: https://www.gitkraken.com/ _name: GitKraken _snapClassic: true - _when:cask: '! test -d /Applications/GitKraken.app && ! test -d $HOME/Applications/GitKraken.app' + _app: GitKraken.app ansible: professormanhattan.gitkraken cask: gitkraken choco: gitkraken @@ -4139,7 +4143,7 @@ softwarePackages: _github: https://github.com/Mudlet/Mudlet _home: https://www.mudlet.org/ _name: Mudlet - _when:cask: '! test -d /Applications/mudlet.app && ! test -d $HOME/Applications/mudlet.app' + _app: mudlet.app cask: mudlet choco: mudlet snap: mudlet-linux @@ -4469,7 +4473,7 @@ softwarePackages: ansible: professormanhattan.guacamole seafile-client: _bin: seafile-client - _when:cask: '! test -d "/Applications/Seafile Client.app" && ! test -d "$HOME/Applications/Seafile Client.app"' + _app: Seafile Client.app cask: seafile-client choco: seafile-client flatpak: com.seafile.Client @@ -4593,7 +4597,7 @@ softwarePackages: _github: https://github.com/lencx/nofwl _home: https://app.nofwl.com/ _name: ChatGPT Desktop (NoFWL Version) - _when:cask: '! test -d /Applications/NoFWL.app && ! test -d $HOME/Applications/NoFWL.app' + _app: NoFWL.app appimage: lencx/nofwl apt: https://github.com/lencx/nofwl/releases/download/v0.1.0/NoFWL_0.1.0_linux_x86_64.deb cask: lencx/nofwl/nofwl --no-quarantine @@ -4619,7 +4623,7 @@ softwarePackages: _github: https://github.com/rustdesk/rustdesk _home: https://rustdesk.com/ _name: RustDesk - _when:cask: '! test -d /Applications/RustDesk.app && ! test -d $HOME/Applications/RustDesk.app' + _app: RustDesk.app apt: https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9.deb cask: rustdesk choco: rustdesk @@ -4840,7 +4844,7 @@ softwarePackages: _github: https://github.com/inkscape/inkscape _home: https://inkscape.org _name: Inkscape - _when:cask: '! test -d "/Applications/Inkscape.app" && ! test -d "$HOME/Applications/Inkscape.app"' + _app: Inkscape.app ansible: professormanhattan.inkscape apt: inkscape cask: inkscape @@ -4858,7 +4862,7 @@ softwarePackages: _home: https://www.jetbrains.com/idea/ _name: IntelliJ IDEA (CE) _snapClassic: true - _when:cask: '! test -d "/Applications/IntelliJ IDEA CE.app" && ! test -d "$HOME/Applications/IntelliJ IDEA CE.app"' + _app: IntelliJ IDEA CE.app ansible: professormanhattan.intellij cask: intellij-idea-ce choco: intellijidea-community @@ -4914,7 +4918,7 @@ softwarePackages: _github: https://github.com/ipfs/ipfs-desktop _home: https://ipfs.tech/ _name: IPFS Desktop - _when:cask: '! test -d "/Applications/IPFS Desktop.app" && ! test -d "$HOME/Applications/IPFS Desktop.app"' + _app: IPFS Desktop.app appimage: https://github.com/ipfs-shipyard/ipfs-desktop/releases/download/v0.28.0/ipfs-desktop-0.28.0-linux-x86_64.AppImage cask: ipfs choco: ipfs-desktop @@ -4943,7 +4947,7 @@ softwarePackages: _github: https://github.com/gnachman/iTerm2 _home: https://iterm2.com/ _name: iTerm2 - _when:cask: '! test -d /Applications/iTerm.app && ! test -d $HOME/Applications/iTerm.app' + _app: iTerm.app ansible:darwin: professormanhattan.iterm2 cask: iterm2 nativescript: @@ -5052,7 +5056,7 @@ softwarePackages: _github: https://github.com/jitsi/jitsi-meet-electron _home: null _name: Jitsi Meet Electron - _when:cask: '! test -d "/Applications/Jitsi Meet.app" && ! test -d "$HOME/Applications/Jitsi Meet.app"' + _app: Jitsi Meet.app cask: jitsi-meet choco: jitsi-meet-electron flatpak: org.jitsi.jitsi-meet @@ -5138,7 +5142,7 @@ softwarePackages: _name: Keybase _post:cask: if [ ! -f /usr/local/bin/keybase ] && [ -f /Applications/Keybase.app/Contents/SharedSupport/bin/keybase ]; then echo "Fixing missing keybase executable symlink permission issue" && sudo ln -s /Applications/Keybase.app/Contents/SharedSupport/bin/keybase /usr/local/bin/keybase; fi _when:ansible: '! test -f /opt/keybase/Keybase' - _when:cask: '! test -d /Applications/Keybase.app && ! test -d $HOME/Applications/Keybase.app' + _app: Keybase.app ansible: professormanhattan.keybase cask: keybase choco: keybase @@ -5190,7 +5194,7 @@ softwarePackages: go: github.com/weaveworks/footloose@master beekeeper-studio: _bin: beekeeper-studio - _when:cask: '! test -d "/Applications/Beekeeper Studio.app" && ! test -d "$HOME/Applications/Beekeeper Studio.app"' + _app: Beekeeper Studio.app cask: beekeeper-studio choco: beekeeper-studio flatpak: io.beekeeperstudio.Studio @@ -5201,7 +5205,7 @@ softwarePackages: _github: https://github.com/xbmc/xbmc _home: https://kodi.tv/ _name: Kodi - _when:cask: '! test -d /Applications/Kodi.app && ! test -d $HOME/Applications/Kodi.app' + _app: Kodi.app ansible: professormanhattan.kodi apt: kodi cask: kodi @@ -5236,7 +5240,7 @@ softwarePackages: _github: https://github.com/kubenav/kubenav _home: https://kubenav.io/ _name: kubenav - _when:cask: '! test -d /Applications/kubenav.app && ! test -d $HOME/Applications/kubenav.app' + _app: kubenav.app cask: kubenav github: github.com/kubenav/kubenav yay: kubenav-bin @@ -5316,7 +5320,7 @@ softwarePackages: _github: https://github.com/GitSquared/edex-ui _home: https://github.com/GitSquared/edex-ui _name: EDEX UI - _when:cask: '! test -d /Applications/eDEX-UI.app && ! test -d $HOME/Applications/eDEX-UI.app' + _app: eDEX-UI.app appimage: edex-ui cask: edex-ui port: edex-ui @@ -5418,7 +5422,7 @@ softwarePackages: _github: null _home: https://www.ledger.com/ledger-live _name: Ledger Live - _when:cask: '! test -d "/Applications/Ledger Live.app" && ! test -d "$HOME/Applications/Ledger Live.app"' + _app: Ledger Live.app ansible: professormanhattan.ledgerlive appimage: ledger-live-desktop cask: ledger-live @@ -5432,7 +5436,7 @@ softwarePackages: _home: https://k8slens.dev/ _name: Lens _snapClassic: true - _when:cask: '! test -d /Applications/Lens.app && ! test -d $HOME/Applications/Lens.app' + _app: Lens.app ansible: professormanhattan.lens cask: lens choco: lens @@ -5446,7 +5450,7 @@ softwarePackages: _github: https://github.com/hackjutsu/Lepton _home: https://hackjutsu.com/Lepton/ _name: lepton - _when:cask: '! test -d /Applications/Lepton.app && ! test -d $HOME/Applications/Lepton.app' + _app: Lepton.app cask: lepton snap: lepton lexicon: @@ -5465,7 +5469,6 @@ softwarePackages: _github: https://github.com/libimobiledevice/libimobiledevice _home: https://libimobiledevice.org/ _name: null - _when: '! test -d /usr/local/Cellar/libimobiledevice && ! test -d ~/usr/local/Cellar/libimobiledevice' brew:darwin: libimobiledevice kdeplasma-addons: apt: kdeplasma-addons @@ -5480,7 +5483,7 @@ softwarePackages: pacman: kde-plasma-desktop krita: _bin: krita - _when:cask: '! test -d "/Applications/krita.app" && ! test -d "$HOME/Applications/krita.app"' + _app: krita.app cask: krita choco: krita flatpak: org.kde.krita @@ -5491,7 +5494,7 @@ softwarePackages: _github: null _home: https://www.libreoffice.org/ _name: LibreOffice - _when:cask: '! test -d /Applications/LibreOffice.app && ! test -d $HOME/Applications/LibreOffice.app' + _app: LibreOffice.app apt: libreoffice cask: libreoffice choco: libreoffice-fresh @@ -5676,7 +5679,7 @@ softwarePackages: _github: null _home: https://www.malwarebytes.com/ _name: Malwarebytes - _when:cask: '! test -d /Applications/Malwarebytes.app && ! test -d $HOME/Applications/Malwarebytes.app' + _app: Malwarebytes.app cask: malwarebytes choco: malwarebytes dialect: @@ -5684,13 +5687,13 @@ softwarePackages: flatpak: app.drey.Dialect meld: _bin: meld - _when:cask: '! test -d "/Applications/Meld.app" && ! test -d "$HOME/Applications/Meld.app"' + _app: Meld.app cask: meld choco: meld flatpak: org.gnome.meld cryptomator: _bin: cryptomator - _when:cask: '! test -d "/Applications/Cryptomator.app" && ! test -d "$HOME/Applications/Cryptomator.app"' + _app: Cryptomator.app cask: cryptomator choco: cryptomator flatpak: org.cryptomator.Cryptomator @@ -5699,13 +5702,13 @@ softwarePackages: flatpak: org.gnome.Connections ferdium: _bin: ferdium - _when:cask: '! test -d "/Applications/Ferdium.app" && ! test -d "$HOME/Applications/Ferdium.app"' + _app: Ferdium.app cask: ferdium choco: ferdium flatpak: org.ferdium.Ferdium thunderbird: _bin: thunderbird - _when:cask: '! test -d "/Applications/Thunderbird.app" && ! test -d "$HOME/Applications/Thunderbird.app"' + _app: Thunderbird.app cask: thunderbird choco: thunderbird flatpak: org.mozilla.Thunderbird @@ -5734,7 +5737,7 @@ softwarePackages: _github: https://github.com/Foundry376/Mailspring _home: https://getmailspring.com/ _name: Mailspring - _when:cask: '! test -d /Applications/Mailspring.app && ! test -d $HOME/Applications/Mailspring.app' + _app: Mailspring.app ansible: professormanhattan.mailspring cask: mailspring choco: mailspring @@ -5748,7 +5751,7 @@ softwarePackages: _github: https://github.com/hql287/Manta _home: null _name: Manta - _when:cask: '! test -d /Applications/Manta.app && ! test -d $HOME/Applications/Manta.app' + _app: Manta.app appimage: https://github.com/hql287/Manta/releases/download/v1.1.4/Manta-1.1.4-x86_64.AppImage cask: manta exe: https://github.com/hql287/Manta/releases/download/v1.1.4/Manta.Setup.1.1.4.exe @@ -5761,7 +5764,7 @@ softwarePackages: _home: null _name: MarkText _post:cask: if [ -d /Applications/MarkText.app ]; then xattr -cr /Applications/MarkText.app; elif [ -d "$HOME/Applications/MarkText.app" ]; then xattr -cr "$HOME/Applications/MarkText.app"; fi - _when:cask: '! test -d /Applications/MarkText.app && ! test -d $HOME/Applications/MarkText.app' + _app: MarkText.app cask: mark-text choco: marktext github: github.com/marktext/marktext @@ -5793,7 +5796,7 @@ softwarePackages: _github: https://github.com/antonreshetov/massCode _home: null _name: MassCode - _when:cask: '! test -d /Applications/massCode.app && ! test -d $HOME/Applications/massCode.app' + _app: massCode.app cask: masscode github: github.com/antonreshetov/massCode mc: @@ -5831,7 +5834,7 @@ softwarePackages: _github: false _home: https://www.microsoft.com/en-us/edge _name: Microsoft Edge - _when:cask: '! test -d "/Applications/Microsoft Edge.app" && ! test -d "$HOME/Applications/Microsoft Edge.app"' + _app: Microsoft Edge.app ansible: professormanhattan.microsoftedge cask: microsoft-edge choco: microsoft-edge @@ -5861,7 +5864,7 @@ softwarePackages: _bin: swifty _github: https://github.com/swiftyapp/swifty _name: Swifty - _when:cask: '! test -d /Applications/Swifty.app && ! test -d $HOME/Applications/Swifty.app' + _app: Swifty.app appimage: swiftyapp/swifty cask: swifty exe: https://github.com/swiftyapp/swifty/releases/download/v0.6.13/Swifty-Setup-0.6.13.exe @@ -5872,7 +5875,7 @@ softwarePackages: _github: null _home: https://www.office.com/ _name: Office - _when:cask: '! test -d "/Applications/Microsoft Word.app" && ! test -d "$HOME/Applications/Microsoft Word.app"' + _app: Microsoft Word.app cask: microsoft-office choco: office365business microsoft-todo: @@ -5882,7 +5885,7 @@ softwarePackages: _github: false _home: https://todo.microsoft.com/tasks/ _name: Microsoft To-Do - _when:cask: '! test -d /Applications/Ao.app && ! test -d $HOME/Applications/Ao.app' + _app: Ao.app ansible: professormanhattan.microsofttodo cask: ao snap: microsoft-todo-unofficial @@ -5929,7 +5932,7 @@ softwarePackages: _github: https://github.com/mjmlio/mjml-app _home: https://mjmlio.github.io/mjml-app/ _name: MJML App - _when:cask: '! test -d /Applications/MJML.app && ! test -d $HOME/Applications/MJML.app' + _app: MJML.app cask: mjml github: github.com/mjmlio/mjml-app npm: mjml @@ -5952,7 +5955,7 @@ softwarePackages: _github: https://github.com/mockoon/mockoon _home: null _name: Mockoon - _when:cask: '! test -d /Applications/Mockoon.app && ! test -d $HOME/Applications/Mockoon.app' + _app: Mockoon.app cask: mockoon choco: mockoon github: github.com/mockoon/mockoon @@ -6019,7 +6022,7 @@ softwarePackages: _name: Monero _restricted: true _service: monero - _when:cask: '! test -d /Applications/monero-wallet-gui.app && ! test -d $HOME/Applications/monero-wallet-gui.app' + _app: monero-wallet-gui.app ansible: professormanhattan.monero cask: monero-wallet choco: monero @@ -6036,7 +6039,6 @@ softwarePackages: _docs: https://www.getmonero.org/resources/user-guides/ _home: https://www.getmonero.org/ _restricted: true - _when:darwin: '! test -f /Applications/monero-wallet-gui.app/Contents/MacOS/monerod' brew: monero scoop: monero mymonero: @@ -6045,7 +6047,7 @@ softwarePackages: _github: https://github.com/mymonero/mymonero-app-js _docs: https://github.com/mymonero/mymonero-app-js _home: https://mymonero.com/ - _when:cask: '! test -d /Applications/MyMonero.app && ! test -d $HOME/Applications/MyMonero.app' + _app: MyMonero.app cask: mymonero choco: mymonero motrix: @@ -6055,7 +6057,7 @@ softwarePackages: _github: https://github.com/agalwood/Motrix _home: https://motrix.app/ _name: Motrix - _when:cask: '! test -d /Applications/Motrix.app && ! test -d $HOME/Applications/Motrix.app' + _app: Motrix.app ansible: professormanhattan.motrix cask: motrix choco: motrix @@ -6084,7 +6086,7 @@ softwarePackages: _github: https://github.com/emqx/MQTTX _home: null _name: MQTT X - _when:cask: '! test -d /Applications/MQTTX.app && ! test -d $HOME/Applications/MQTTX.app' + _app: MQTTX.app cask: mqttx flatpak: com.emqx.MQTTX github: github.com/emqx/MQTTX @@ -6147,7 +6149,7 @@ softwarePackages: _github: https://github.com/ProfileCreator/ProfileCreator _home: https://github.com/ProfileCreator/ProfileCreator _name: Profile Creator - _when:cask: '! test -d /Applications/ProfileCreator.app && ! test -d $HOME/Applications/ProfileCreator.app' + _app: ProfileCreator.app cask: profilecreator mas: 2141249187 vagrant-manager: @@ -6157,7 +6159,7 @@ softwarePackages: _github: https://github.com/lanayotech/vagrant-manager _home: https://www.vagrantmanager.com/ _name: Vagrant Manager - _when:cask: '! test -d "/Applications/Vagrant Manager.app" && ! test -d "$HOME/Applications/Vagrant Manager.app"' + _app: Vagrant Manager.app cask: vagrant-manager choco: vagrant-manager openinterminal: @@ -6167,16 +6169,16 @@ softwarePackages: _github: https://github.com/Ji4n1ng/OpenInTerminal _home: https://github.com/Ji4n1ng/OpenInTerminal _name: OpenInTerminal - _when:cask: '! test -d /Applications/OpenInTerminal.app && ! test -d $HOME/Applications/OpenInTerminal.app' + _app: OpenInTerminal.app cask: openinterminal youtube-music: _desc: YouTube Music desktop app bundled with custom plugins (and built-in ad blocker / downloader) _docs: null _github: https://github.com/th-ch/youtube-music _home: https://th-ch.github.io/youtube-music/ - _when:script:darwin: '! test -d "/Applications/YouTube Music.app" && ! test -d "$HOME/Applications/YouTube Music.app"' + _app: YouTube Music.app _todo: Might have to add _post cask xattr -cr /Applications/YouTube\ Music.app to fix permissions - _when:cask: '! test -d "/Applications/YouTube Music.app" && ! test -d "$HOME/Applications/YouTube Music.app"' + _app: YouTube Music.app appimage: th-ch/youtube-music apt: https://github.com/th-ch/youtube-music/releases/download/v1.19.0/youtube-music_1.19.0_amd64.deb cask: https://raw.githubusercontent.com/th-ch/youtube-music/master/youtube-music.rb @@ -6192,7 +6194,7 @@ softwarePackages: _github: https://github.com/meowtec/Imagine _home: https://github.com/meowtec/Imagine _name: Imagine - _when:script:darwin: '! test -d /Applications/Imagine.app && ! test -d $HOME/Applications/Imagine.app' + _app: Imagine.app appimage: meowtec/Imagine exe: https://github.com/meowtec/Imagine/releases/download/v0.7.4/Imagine-Setup-0.7.4.exe script:darwin: curl -sSL https://github.com/meowtec/Imagine/releases/download/v0.7.4/Imagine-0.7.4.dmg > /tmp/Imagine.dmg && sudo hdiutil attach /tmp/Imagine.dmg && sudo cp -R "/Volumes/Imagine 0.7.4/Imagine.app" /Applications && sudo hdiutil detach "/Volumes/Imagine 0.7.4" && rm -f /tmp/Imagine.dmg @@ -6203,7 +6205,7 @@ softwarePackages: _github: https://github.com/mullvad/mullvadvpn-app _home: null _name: Mullvad VPN - _when:cask: '! test -d "/Applications/Mullvad VPN.app" && ! test -d "$HOME/Applications/Mullvad VPN.app"' + _app: Mullvad VPN.app apt: https://github.com/mullvad/mullvadvpn-app/releases/download/2022.5/MullvadVPN-2022.5_amd64.deb cask: mullvadvpn exe: https://github.com/mullvad/mullvadvpn-app/releases/download/2022.5/MullvadVPN-2022.5.exe @@ -6219,7 +6221,7 @@ softwarePackages: _name: Multipass _post:cask: multipass set local.driver=virtualbox _post:choco: multipass set local.driver=virtualbox - _when:cask: '! test -d /Applications/Multipass.app && ! test -d $HOME/Applications/Multipass.app' + _app: Multipass.app ansible: professormanhattan.multipass cask: multipass choco: multipass @@ -6497,7 +6499,7 @@ softwarePackages: _github: https://github.com/nextcloud/desktop _home: https://nextcloud.com _name: Nextcloud Client - _when:cask: '! test -d /Applications/Nextcloud.app && ! test -d $HOME/Applications/Nextcloud.app' + _app: Nextcloud.app cask: nextcloud choco: nextcloud-client flatpak: com.nextcloud.desktopclient.nextcloud @@ -6628,7 +6630,7 @@ softwarePackages: _home: https://www.notion.so/ _name: Notion AI _note: Waiting on Linux install alternative. - _when:cask: '! test -d /Applications/Notion.app && ! test -d $HOME/Applications/Notion.app' + _app: Notion.app cask: notion choco: notion mas: 1559269364 @@ -6640,7 +6642,7 @@ softwarePackages: _home: https://www.zaproxy.org/ _name: OWASP ZAP _snapClassic: true - _when:cask: '! test -d "/Applications/ZAP.app" && ! test -d "$HOME/Applications/ZAP.app"' + _app: ZAP.app cask: zap choco: zap flatpak: org.zaproxy.ZAP @@ -6654,7 +6656,7 @@ softwarePackages: _github: https://github.com/superhighfives/pika _home: https://superhighfives.com/pika _name: Pika - _when:cask: '! test -d /Applications/Pika.app && ! test -d $HOME/Applications/Pika.app' + _app: Pika.app cask: pika obsidian: _bin: null @@ -6663,7 +6665,7 @@ softwarePackages: _github: false _home: https://obsidian.md/ _name: Obsidian - _when:cask: '! test -d /Applications/Obsidian.app && ! test -d $HOME/Applications/Obsidian.app' + _app: Obsidian.app appimage: Obsidian cask: obsidian choco: obsidian @@ -6677,7 +6679,7 @@ softwarePackages: _github: https://github.com/raycast/extensions _home: https://www.raycast.com/ _name: Raycast - _when:cask: '! test -d /Applications/Raycast.app && ! test -d $HOME/Applications/Raycast.app' + _app: Raycast.app cask: raycast mage-ai: _bin: mage @@ -6694,7 +6696,7 @@ softwarePackages: _github: https://github.com/warpdotdev/Warp _home: https://www.warp.dev/ _name: Warp Terminal - _when:cask: '! test -d /Applications/Warp.app && ! test -d $HOME/Applications/Warp.app' + _app: Warp.app cask: warp figma: _bin: null @@ -6703,7 +6705,7 @@ softwarePackages: _github: false _home: https://www.figma.com/ _name: Figma - _when:cask: '! test -d /Applications/Figma.app && ! test -d $HOME/Applications/Figma.app' + _app: Figma.app appimage: Figma-Linux/figma-linux cask: figma choco: figma @@ -6716,7 +6718,7 @@ softwarePackages: _github: https://github.com/teaxyz/gui _home: https://tea.xyz/ _name: Tea GUI - _when:cask: '! test -d /Applications/tea.app && ! test -d $HOME/Applications/tea.app' + _app: tea.app cask: tea node-prune: _bin: node-prune @@ -6804,7 +6806,7 @@ softwarePackages: _github: https://github.com/nukeop/nuclear _home: https://nuclear.js.org/ _name: Nuclear - _when:cask: '! test -d /Applications/nuclear.app && ! test -d $HOME/Applications/nuclear.app' + _app: nuclear.app cask: nuclear choco: nuclear flatpak: org.js.nuclear.Nuclear @@ -6858,7 +6860,7 @@ softwarePackages: sudo chmod 644 /etc/udev/rules.d/49-onlykey.rules sudo udevadm control --reload-rules sudo udevadm trigger - _when:script:darwin: '! test -d "/Applications/OnlyKey App.app" && ! test -d "$HOME/Applications/OnlyKey App.app"' + _app: OnlyKey App.app ansible:darwin: professormanhattan.onlykey script:darwin: cd /tmp && curl -sSL https://github.com/trustcrypto/OnlyKey-App/releases/download/v5.3.6/OnlyKey.App.5.3.6.dmg > OnlyKey.dmg && hdiutil attach "/tmp/OnlyKey.dmg" && sudo cp -R "/Volumes/OnlyKey App/OnlyKey App.app" /Applications && sudo hdiutil detach "/Volumes/OnlyKey App" && rm -f "/tmp/OnlyKey.dmg" choco: onlykey @@ -7053,7 +7055,7 @@ softwarePackages: _github: https://github.com/neovide/neovide _home: https://neovide.dev/ _name: Neovide - _when:cask: '! test -d /Applications/Neovide.app && ! test -d $HOME/Applications/Neovide.app' + _app: Neovide.app cask: neovide pacman: neovide scoop: neovide @@ -7118,7 +7120,7 @@ softwarePackages: _home: https://www.parallels.com/ _name: Parallels _notes: On macOS, full disk access is required for Terminal. For Homebrew Cask, this requires the terminal to have full disk access - _when: '! test -d "/Applications/Parallels Desktop.app" && ! test -d "$HOME/Applications/Parallels Desktop.app"' + _app: Parallels Desktop.app ansible:darwin: professormanhattan.parallels cask: parallels mas: 1085114709 @@ -7362,7 +7364,7 @@ softwarePackages: _github: false _home: https://www.plex.tv/ _name: Plex - _when:cask: '! test -d /Applications/Plex.app && ! test -d $HOME/Applications/Plex.app' + _app: Plex.app ansible: professormanhattan.plex cask: plex choco: plex @@ -7398,7 +7400,7 @@ softwarePackages: _bin: plex-media-server _github: false _name: Plex Media Server - _when:cask: '! test -d "/Applications/Plex Media Server.app" && ! test -d "$HOME/Applications/Plex Media Server.app"' + _app: Plex Media Server.app _ports: - port: 32400 proto: tcp @@ -7423,7 +7425,7 @@ softwarePackages: _github: false _home: https://www.plex.tv/ _name: Plex HTPC - _when:cask: '! test -d "/Applications/Plex HTPC.app" && ! test -d "$HOME/Applications/Plex HTPC.app"' + _app: Plex HTPC.app cask: plex-htpc choco: plex-home-theater flatpak: tv.plex.PlexHTPC @@ -7537,7 +7539,7 @@ softwarePackages: _github: null _home: https://www.postman.com/ _name: Postman - _when:cask: '! test -d /Applications/Postman.app && ! test -d $HOME/Applications/Postman.app' + _app: Postman.app ansible: professormanhattan.postman cask: postman choco: postman @@ -7553,7 +7555,7 @@ softwarePackages: _name: Powershell _snapClassic: true _post:cask: brew install mono-libgdiplus - _when:cask: '! test -d /Applications/PowerShell.app && ! test -d $HOME/Applications/PowerShell.app' + _app: PowerShell.app ansible: professormanhattan.powershell cask: powershell snap: powershell @@ -7620,7 +7622,7 @@ softwarePackages: _home: https://github.com/amiechen/pretzel _name: Pretzel _todo: Waiting for SHASUM error on Homebrew cask to resolve - _when:cask: '! test -d /Applications/Pretzel.app && ! test -d $HOME/Applications/Pretzel.app' + _app: Pretzel.app # cask: pretzel procs: _bin: procs @@ -7656,7 +7658,7 @@ softwarePackages: _post:yay: sudo pacman -Syu libappindicator-gtk3 gnome-shell-extension-appindicator _pre:apt: sudo apt-get install -y https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.3_all.deb && sudo apt-get update _pre:dnf: sudo dnf install -y https://repo.protonvpn.com/fedora-36-stable/release-packages/protonvpn-stable-release-1.0.1-1.noarch.rpm && sudo dnf update - _when:cask: '! test -d /Applications/ProtonVPN.app && ! test -d $HOME/Applications/ProtonVPN.app' + _app: ProtonVPN.app # ansible: professormanhattan.proton apt: - gir1.2-appindicator3-0.1 @@ -7686,14 +7688,14 @@ softwarePackages: script:darwin: brew install openvpn dialog python3 || true && sudo rm -rf /usr/local/src/protonvpn-cli && sudo git clone https://github.com/phx/protonvpn-cli-macos /usr/local/src/protonvpn-cli && cd /usr/local/src/protonvpn-cli && pip3 install -r requirements.txt && sudo python3 setup.py install protonmail-bridge: _bin: protonmail-bridge - _when:cask: '! test -d "/Applications/Proton Mail Bridge.app" && ! test -d "$HOME/Applications/Proton Mail Bridge.app"' + _app: Proton Mail Bridge.app cask: protonmail-bridge choco: protonmailbridge flatpak: ch.protonmail.protonmail-bridge yay: protonmail-bridge protonmail-import-export: _bin: protonmail-import-export - _when:cask: '! test -d "/Applications/ProtonMail Import-Export app.app" && ! test -d "$HOME/Applications/ProtonMail Import-Export app.app"' + _app: ProtonMail Import-Export app.app cask: protonmail-import-export flatpak: ch.protonmail.protonmail-import-export-app bottles: @@ -7772,7 +7774,7 @@ softwarePackages: _github: https://github.com/qbittorrent/qBittorrent _home: https://www.qbittorrent.org/ _name: qBittorrent - _when:cask: '! test -d /Applications/qBittorrent.app && ! test -d $HOME/Applications/qBittorrent.app' + _app: qBittorrent.app ansible: professormanhattan.qbittorrent apt: qbittorrent cask: qbittorrent @@ -7875,7 +7877,7 @@ softwarePackages: _github: https://github.com/raspberrypi/rpi-imager _home: https://www.raspberrypi.com/software/ _name: Raspberry Pi Imager - _when:cask: '! test -d "/Applications/Raspberry Pi Imager.app" && ! test -d "$HOME/Applications/Raspberry Pi Imager.app"' + _app: Raspberry Pi Imager.app ansible: professormanhattan.raspberryimager cask: raspberry-pi-imager choco: rpi-imager @@ -7918,7 +7920,7 @@ softwarePackages: _bin: redis-insight _github: https://github.com/RedisInsight/RedisInsight _name: Redis Insight - _when:cask: '! test -d /Applications/RedisInsight.app && ! test -d $HOME/Applications/RedisInsight.app' + _app: RedisInsight.app cask: redisinsight flatpak: com.redis.RedisInsight mas: 2142946629 @@ -7999,7 +8001,7 @@ softwarePackages: _github: null _home: null _name: Microsoft Remote Desktop - _when:cask: '! test -d "/Applications/Microsoft Remote Desktop.app" && ! test -d "$HOME/Applications/Microsoft Remote Desktop.app"' + _app: Microsoft Remote Desktop.app cask: microsoft-remote-desktop mas: 1295203466 aiac: @@ -8085,7 +8087,7 @@ softwarePackages: _github: https://github.com/responsively-org/responsively-app _home: null _name: Responsively - _when:cask: '! test -d /Applications/ResponsivelyApp.app && ! test -d $HOME/Applications/ResponsivelyApp.app' + _app: ResponsivelyApp.app cask: responsively choco: responsively github: github.com/responsively-org/responsively-app @@ -8218,7 +8220,7 @@ softwarePackages: _github: https://github.com/lukehaas/RunJS _home: null _name: RunJS - _when:cask: '! test -d /Applications/RunJS.app && ! test -d $HOME/Applications/RunJS.app' + _app: RunJS.app cask: runjs choco: runjs github: github.com/lukehaas/RunJS @@ -8328,7 +8330,7 @@ softwarePackages: _home: null _name: Sanoid # Only install Sanoid when there are ZFS shares listed in the command `zfs list` - _when:linux: echo 'command -v zfs > /dev/null && ! zfs list' | bash + _when:linux: command -v zfs > /dev/null && ! zfs list ansible:linux: professormanhattan.sanoid apt: - libcapture-tiny-perl @@ -8359,7 +8361,7 @@ softwarePackages: _home: https://www.blender.org/ _name: Blender _snapClassic: true - _when:cask: '! test -d /Applications/Blender.app && ! test -d $HOME/Applications/Blender.app' + _app: Blender.app apt: blender cask: blender choco: blender @@ -8393,7 +8395,7 @@ softwarePackages: _github: https://github.com/audacity/audacity _home: https://www.audacityteam.org/ _name: Audacity - _when:cask: '! test -d /Applications/Audacity.app && ! test -d $HOME/Applications/Audacity.app' + _app: Audacity.app appimage: Audacity apt: audacity cask: audacity @@ -8479,7 +8481,7 @@ softwarePackages: _github: https://github.com/maxgoedjen/secretive _home: null _name: null - _when:cask: '! test -d /Applications/Secretive.app && ! test -d $HOME/Applications/Secretive.app' + _app: Secretive.app cask: secretive security: _bin: null @@ -8647,7 +8649,7 @@ softwarePackages: _home: https://shotcut.org/ _name: Shotcut _snapClassic: true - _when:cask: '! test -d /Applications/Shotcut.app && ! test -d $HOME/Applications/Shotcut.app' + _app: Shotcut.app ansible: professormanhattan.shotcut apt: shotcut cask: shotcut @@ -8705,7 +8707,7 @@ softwarePackages: _github: Not open-source _home: https://www.skype.com/en/ _name: Skype - _when:cask: '! test -d /Applications/Skype.app && ! test -d $HOME/Applications/Skype.app' + _app: Skype.app ansible: professormanhattan.skype cask: skype choco: skype @@ -8719,7 +8721,7 @@ softwarePackages: _github: https://github.com/slackhq/SlackTextViewController _home: https://slack.com/ _name: Slack - _when:cask: '! test -d /Applications/Slack.app && ! test -d $HOME/Applications/Slack.app' + _app: Slack.app ansible: professormanhattan.slack cask: slack choco: slack @@ -8730,13 +8732,13 @@ softwarePackages: _bin: pppc-utility _github: https://github.com/jamf/PPPC-Utility _name: Privacy Preferences Policy Control (PPPC) Utility - _when:cask: '! test -d "/Applications/PPPC Utility.app" && ! test -d "$HOME/Applications/PPPC Utility.app"' + _app: PPPC Utility.app cask: pppc-utility privileges: _bin: privileges _github: https://github.com/SAP/macOS-enterprise-privileges _name: Privileges - _when:cask: '! test -d /Applications/Privileges.app && ! test -d $HOME/Applications/Privileges.app' + _app: Privileges.app cask: privileges slack-term: _bin: slack-term @@ -8754,7 +8756,7 @@ softwarePackages: _github: https://github.com/sveinbjornt/Sloth _home: https://sveinbjorn.org/sloth _name: Sloth - _when:cask: '! test -d /Applications/Sloth.app && ! test -d $HOME/Applications/Sloth.app' + _app: Sloth.app cask: sloth snapcraft: _deps: @@ -8785,7 +8787,7 @@ softwarePackages: _github: https://github.com/evilsocket/opensnitch _home: https://www.obdev.at/products/littlesnitch/index.html _name: OpenSnitch/Little Snitch - _when:cask: '! test -d "/Applications/Little Snitch.app" && ! test -d "$HOME/Applications/Little Snitch.app"' + _app: Little Snitch.app # Not loading on Ubuntu 22.04 # ansible: professormanhattan.snitch cask: little-snitch @@ -8863,13 +8865,13 @@ softwarePackages: _github: https://github.com/sqlectron/sqlectron-gui _home: null _name: SQLectron - _when:cask: '! test -d /Applications/sqlectron.app && ! test -d $HOME/Applications/sqlectron.app' + _app: sqlectron.app cask: sqlectron github: github.com/sqlectron/sqlectron-gui yay: sqlectron-gui handbrake: _bin: handbrake - _when:cask: '! test -d "/Applications/HandBrake.app" && ! test -d "$HOME/Applications/HandBrake.app"' + _app: HandBrake.app cask: handbrake choco: handbrake flatpak: fr.handbrake.ghb @@ -8921,7 +8923,7 @@ softwarePackages: _github: https://github.com/Tunnelblick/Tunnelblick _home: https://tunnelblick.net/ _name: Tunnelblick - _when: '! test -d "/Applications/Tunnelblick.app" && ! test -d "$HOME/Applications/Tunnelblick.app"' + _app: Tunnelblick.app cask: tunnelblick endlessh: _bin: endlessh @@ -8940,7 +8942,7 @@ softwarePackages: _bin: kap _github: https://github.com/wulkano/Kap _name: Kap - _when:cask: '! test -d /Applications/Kap.app && ! test -d $HOME/Applications/Kap.app' + _app: Kap.app cask: kap autodoc: _bin: doc @@ -9038,7 +9040,7 @@ softwarePackages: _github: https://github.com/exelban/stats _home: null _name: stats - _when:cask: '! test -d /Applications/Stats.app && ! test -d $HOME/Applications/Stats.app' + _app: Stats.app cask: stats _service: null stegcloak: @@ -9091,7 +9093,7 @@ softwarePackages: _github: https://github.com/oldj/SwitchHosts _home: https://swh.app/ _name: SwitchHosts - _when:cask: '! test -d "/Applications/SwitchHosts.app" && ! test -d "$HOME/Applications/SwitchHosts.app"' + _app: SwitchHosts.app ansible: professormanhattan.switchhosts appimage: oldj/SwitchHosts cask: switchhosts @@ -9125,7 +9127,7 @@ softwarePackages: _github: https://github.com/lapce/lapce _home: https://lapce.dev/ _name: Lapce - _when:cask: '! test -d /Applications/Lapce.app && ! test -d $HOME/Applications/Lapce.app' + _app: Lapce.app brew: lapce emerge: app-editors/lapce flatpak: dev.lapce.lapce @@ -9179,7 +9181,7 @@ softwarePackages: _bin: koodo-reader _github: https://github.com/koodo-reader/koodo-reader _name: Koodo Reader - _when:cask: '! test -d "/Applications/Koodo Reader.app" && ! test -d "$HOME/Applications/Koodo Reader.app"' + _app: Koodo Reader.app cask: koodo-reader scoop: extras/koodo-reader winget: AppbyTroye.KoodoReader @@ -9356,7 +9358,7 @@ softwarePackages: _name: Tabby _snapClassic: true _notes: TODO Update the direct links periodically and keep eye out for Snap / Flatpak - _when:cask: '! test -d /Applications/Tabby.app && ! test -d $HOME/Applications/Tabby.app' + _app: Tabby.app ansible:linux: professormanhattan.tabby apt: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.deb cask: tabby @@ -9378,7 +9380,7 @@ softwarePackages: _name: Tailscale _service:brew: tailscale _service:pacman: tailscaled - _when:cask: '! test -d "/Applications/Tailscale.app" && ! test -d "$HOME/Applications/Tailscale.app"' + _app: Tailscale.app ansible: professormanhattan.tailscale brew: tailscale cask: tailscale @@ -9427,7 +9429,7 @@ softwarePackages: soduto: _github: _name: Soduto - _when:cask: '! test -d /Applications/Soduto.app && ! test -d $HOME/Applications/Soduto.app' + _app: Soduto.app cask: soduto envio: _bin: envio @@ -9480,7 +9482,7 @@ softwarePackages: _bin: sparkleshare _github: https://github.com/hbons/SparkleShare _name: Sparkle Share - _when:cask: '! test -d /Applications/SparkleShare.app && ! test -d $HOME/Applications/SparkleShare.app' + _app: SparkleShare.app cask: sparkleshare choco: sparkleshare flatpak: org.sparkleshare.SparkleShare @@ -9505,7 +9507,9 @@ softwarePackages: _github: null _home: null _name: Microsoft Teams - _when:cask: '! test -d "/Applications/Microsoft Teams.app" && ! test -d "$HOME/Applications/Microsoft Teams.app" && ! test -d "/Applications/Microsoft Teams (work or school).app" && ! test -d "$HOME/Applications/Microsoft Teams (work or school).app"' + _app: + - Microsoft Teams.app + - Microsoft Teams (work or school).app ansible: professormanhattan.teams cask: microsoft-teams choco: microsoft-teams @@ -9524,7 +9528,7 @@ softwarePackages: _github: Not open-source _home: https://www.teamviewer.com/en-us/ _name: TeamViewer - _when:cask: '! test -d /Applications/TeamViewer.app && ! test -d $HOME/Applications/TeamViewer.app' + _app: TeamViewer.app ansible:linux: professormanhattan.teamviewer apt: https://download.teamviewer.com/download/linux/teamviewer_amd64.deb cask: teamviewer @@ -9955,14 +9959,14 @@ softwarePackages: scoop: upx cutter: _bin: cutter - _when:cask: '! test -d "/Applications/Cutter.app" && ! test -d "$HOME/Applications/Cutter.app"' + _app: Cutter.app cask: cutter choco: cutter flatpak: re.rizin.cutter librewolf: _bin: librewolf _scoopExtras: true - _when:cask: '! test -d "/Applications/LibreWolf.app" && ! test -d "$HOME/Applications/LibreWolf.app"' + _app: LibreWolf.app cask: librewolf choco: librewolf flatpak: io.gitlab.librewolf-community @@ -10016,7 +10020,7 @@ softwarePackages: _github: https://github.com/vincelwt/chatgpt-mac _home: https://github.com/vincelwt/chatgpt-mac _name: ChatGPT Menubar for macOS - _when:cask: '! test -d /Applications/Chatgpt.app && ! test -d $HOME/Applications/Chatgpt.app' + _app: Chatgpt.app cask: vincelwt-chatgpt vector: _bin: vector @@ -10045,7 +10049,7 @@ softwarePackages: yay: velero-bin macvim: _todo: Integrate this into macOS setup - _when:cask: '! test -d /Applications/MacVim.app && ! test -d $HOME/Applications/MacVim.app' + _app: MacVim.app cask: macvim vim: _bin: vim @@ -10084,7 +10088,7 @@ softwarePackages: _bin: chef-workstation _github: https://github.com/chef/chef _name: Chef Workstation - _when:cask: '! test -d "/Applications/Chef Workstation App.app" && test -d "$HOME/Applications/Chef Workstation App.app"' + _app: Chef Workstation App.app apt: https://packages.chef.io/files/stable/chef-workstation/21.10.640/ubuntu/20.04/chef-workstation_21.10.640-1_amd64.deb cask: chef-workstation choco: chef-workstation @@ -10138,7 +10142,7 @@ softwarePackages: EOF sudo dnf -y install @development-tools sudo dnf -y install kernel-headers kernel-devel dkms elfutils-libelf-devel qt5-qtx11extras - _when:cask: '! test -d /Applications/VirtualBox.app && ! test -d $HOME/Applications/VirtualBox.app' + _app: VirtualBox.app ansible: professormanhattan.virtualbox apt: virtualbox cask: virtualbox @@ -10163,7 +10167,7 @@ softwarePackages: _name: Visual Studio # TODO - Figure out why we included this _post script # _post:cask: 'APP_LINK="$(find "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/visual-studio" -mindepth 2 -maxdepth 2 -name "*.app*" | head -n1)" && open "$APP_LINK"' - _when:cask: '! test -d "/Applications/Visual Studio.app" && ! test -d "$HOME/Applications/Visual Studio.app"' + _app: Visual Studio.app ansible:windows: professormanhattan.visualstudio cask: visual-studio choco: visualstudio2022community @@ -10187,7 +10191,7 @@ softwarePackages: vscodium: _bin: codium _snapClassic: true - _when:cask: '! test -d "/Applications/VSCodium.app" && ! test -d "$HOME/Applications/VSCodium.app"' + _app: VSCodium.app appimage: vscodium/vscodium cask: vscodium choco: vscodium @@ -10204,7 +10208,7 @@ softwarePackages: _github: https://github.com/videolan/vlc _home: https://www.videolan.org/vlc/ _name: VLC Media Player - _when:cask: '! test -d /Applications/VLC.app && ! test -d $HOME/Applications/VLC.app' + _app: VLC.app ansible: professormanhattan.vlc apt: vlc cask: vlc @@ -10219,7 +10223,7 @@ softwarePackages: _github: null _home: https://www.vmware.com/ _name: VMWare - _when:darwin: '! test -d "/Applications/VMware Fusion.app" && ! test -d "$HOME/Applications/VMware Fusion.app"' + _when:darwin: VMware Fusion.app ansible: professormanhattan.vmware cask: vmware-fusion what-ip: @@ -10256,7 +10260,7 @@ softwarePackages: _home: https://code.visualstudio.com/ _name: Visual Studio Code _snapClassic: true - _when:cask: '! test -d "/Applications/Visual Studio Code.app" && ! test -d "$HOME/Applications/Visual Studio Code.app"' + _app: Visual Studio Code.app ansible: professormanhattan.vscode cask: visual-studio-code choco: vscode @@ -10297,7 +10301,7 @@ softwarePackages: _github: null _home: https://cloudflarewarp.com/ _name: Cloudflare WARP Client - _when:darwin: test -d "/Applications/Cloudflare WARP.app" + _app: Cloudflare WARP.app # Needs tuning - possibly unrelated, but internet wasn't working on Ubuntu after installing this and removed it during debugging # ansible: professormanhattan.warp apt: cloudflare-warp @@ -10396,7 +10400,7 @@ softwarePackages: _github: https://github.com/webtorrent/webtorrent-desktop _home: webtorrent.io/desktop _name: WebTorrent Desktop - _when:cask: '! test -d /Applications/WebTorrent.app && ! test -d $HOME/Applications/WebTorrent.app' + _app: WebTorrent.app cask: webtorrent choco: webtorrent-desktop flatpak: io.webtorrent.WebTorrent @@ -10499,7 +10503,7 @@ softwarePackages: _github: https://github.com/will-stone/browserosaurus _home: https://browserosaurus.com/ _name: Browserosaurus - _when:cask: '! test -d /Applications/Browserosaurus.app && ! test -d $HOME/Applications/Browserosaurus.app' + _app: Browserosaurus.app cask: browserosaurus docker: _bin: docker @@ -10531,7 +10535,7 @@ softwarePackages: - docker-compose-plugin openssh-server: _service: sshd - _when: echo 'test -f /proc/version && ! grep Microsoft /proc/version > /dev/null && ! test -d /Applications' | bash + _when: test -f /proc/version && ! grep Microsoft /proc/version > /dev/null && ! test -d /Applications' apt: openssh-server dnf: openssh-server pacman: openssh @@ -10551,7 +10555,7 @@ softwarePackages: sudo: true _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 + _when:linux: '! command -v qubes-firewall > /dev/null && test -f /proc/version && ! grep Microsoft /proc/version > /dev/null' apt: fail2ban brew: fail2ban dnf: fail2ban @@ -10601,7 +10605,7 @@ softwarePackages: _github: null _home: null _name: WireGuard Client - _when:mas: test -d /Applications/WireGuard.app + _app: WireGuard.app choco: wireguard mas: 1451685025 scoop: wireguard-np @@ -10646,7 +10650,7 @@ softwarePackages: _home: https://www.wireshark.org/ _name: Wireshark _pre:cask: if command -v idl2wrs > /dev/null; then brew uninstall wireshark; fi - _when:cask: '! test -d /Applications/Wireshark.app && ! test -d $HOME/Applications/Wireshark.app' + _app: Wireshark.app apt: wireshark cask: wireshark choco: wireshark @@ -10660,7 +10664,6 @@ softwarePackages: _github: https://github.com/wkhtmltopdf/wkhtmltopdf _home: null _name: wkhtmltopdf - _when:cask: '! test -d /usr/local/Caskroom/wkhtmltopdf && ! test -d ~/usr/local/Caskroom/wkhtmltopdf' # CentOS Stream 9 does not have a supported GitHub release available # ansible: professormanhattan.wkhtmltopdf apt: wkhtmltopdf @@ -10689,7 +10692,7 @@ softwarePackages: adobe-creative-cloud: _bin: adobe-creative-cloud _name: Adobe Creative Cloud - _when:cask: '! test -d /Applications/Adobe Creative Cloud' + _when:cask: '! test -d "/Applications/Adobe Creative Cloud" && ! test -d "$HOME/Applications/Adobe Creative Cloud"' cask: adobe-creative-cloud wrangler: _bin: wrangler @@ -10730,7 +10733,7 @@ softwarePackages: _bin: airtame _github: false _name: Airtame - _when:cask: '! test -d /Applications/Airtame.app && ! test -d "$HOME/Applications/Airtame.app"' + _app: Airtame.app cask: airtame choco: airtame flatpak: com.airtame.Client @@ -10752,37 +10755,41 @@ softwarePackages: _home: https://developer.apple.com/xcode/ _name: XCode _post: sudo xcodebuild -license accept && sudo xcodebuild -runFirstLaunch - _when:script:darwin: '! test -d /Applications/Xcode.app' + _app: Xcode.app mas: 497799835 script:darwin: | ### Load AWS secrets source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/private.sh" ### Setup passwordless sudo - if ! sudo cat /etc/sudoers | grep '# TEMPORARY FOR XCODEINSTALL' > /dev/null; then + if ! sudo cat /etc/sudoers | grep '# TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL' > /dev/null; then if [ -n "$SUDO_PASSWORD" ]; then - printf '%s\n' "$SUDO_PASSWORD" | sudo -p "" -S echo "$(whoami) ALL=(ALL:ALL) NOPASSWD: ALL # TEMPORARY FOR XCODEINSTALL" | sudo tee -a /etc/sudoers + printf '%s\n' "$SUDO_PASSWORD" | sudo -p "" -S echo "$(whoami) ALL=(ALL:ALL) NOPASSWD: ALL # TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL" | sudo tee -a /etc/sudoers else - echo "$(whoami) ALL=(ALL:ALL) NOPASSWD: ALL # TEMPORARY FOR XCODEINSTALL" | sudo tee -a /etc/sudoers + echo "$(whoami) ALL=(ALL:ALL) NOPASSWD: ALL # TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL" | sudo tee -a /etc/sudoers fi fi ### Remove old files + echo "Removing old ~/.xcodeinstall folder" rm -rf ~/.xcodeinstall ### Authenticate + echo "Authenticating" xcodeinstall authenticate -s "$AWS_DEFAULT_REGION" ### Download files while read XCODE_DOWNLOAD_ITEM; do if [[ "$XCODE_DOWNLOAD_ITEM" != *"Command Line Tools"* ]]; then DOWNLOAD_ID="$(echo "$XCODE_DOWNLOAD_ITEM" | sed 's/^\[\(.*\)\] .*/\1/')" - echo "$DOWNLOAD_ID" | xcodeinstall download -s "$AWS_DEFAULT_REGION" & + echo "Downloading $XCODE_DOWNLOAD_ITEM" + echo "$DOWNLOAD_ID" | xcodeinstall download -s "$AWS_DEFAULT_REGION" fi done < <(xcodeinstall list -s "$AWS_DEFAULT_REGION" | grep --invert-match 'Release Candidate' | grep --invert-match ' beta ' | grep ' Xcode \d\d ') - wait ### Install Xcode + echo "Installing Xcode" xcodeinstall install --name "$(basename "$(find ~/.xcodeinstall/download -maxdepth 1 -name "*.xip")")" ### Install Command Line Tools # Commentted out because it is already installed by xcode-select in the provision.sh script # xcodeinstall install --name "$(basename "$(find ~/.xcodeinstall/download -maxdepth 1 -name "*Command Line Tools*")")" ### Install Additional Tools + echo "Installing Additional Tools" while read ADDITIONAL_TOOLS; do hdiutil attach "$ADDITIONAL_TOOLS" rm -rf "/Applications/Additional Tools" @@ -10790,6 +10797,7 @@ softwarePackages: hdiutil detach "$(find /Volumes -name "Additional Tools")" done < <(find ~/.xcodeinstall/download -name "Additional Tools*") ### Install Font Tools + echo "Installing Font Tools" while read FONT_TOOLS; do hdiutil attach "$FONT_TOOLS" cd "$(find /Volumes -maxdepth 1 -name "*Font Tools*")" @@ -10802,7 +10810,7 @@ softwarePackages: if ! command -v gsed > /dev/null; then brew install gnu-sed fi - sudo gsed -i '/# TEMPORARY FOR XCODEINSTALL/d' /etc/sudoers + sudo gsed -i '/# TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL/d' /etc/sudoers xurls: _bin: xurls _desc: Extract urls from text @@ -10969,7 +10977,7 @@ softwarePackages: _github: null _home: https://www.yubico.com/products/yubico-authenticator/ _name: Yubico Authenticator - _when:script:darwin: '! test -d "/Applications/Yubico Authenticator.app" && ! test -d "$HOME/Applications/Yubico Authenticator.app"' + _app: Yubico Authenticator.app choco: yubico-authenticator flatpak: com.yubico.yubioath script:darwin: curl -sSL https://developers.yubico.com/yubioath-flutter/Releases/yubico-authenticator-latest-mac.dmg > "/tmp/Yubico Authenticator.dmg" && hdiutil attach "/tmp/Yubico Authenticator.dmg" && sudo cp -R "/Volumes/Yubico Authenticator/Yubico Authenticator.app" /Applications && sudo hdiutil detach "/Volumes/Yubico Authenticator" && rm -f "/tmp/Yubico Authenticator.dmg" @@ -10998,7 +11006,7 @@ softwarePackages: _github: https://github.com/Yubico/yubikey-manager-qt _home: https://developers.yubico.com/yubikey-manager-qt/ _name: YubiKey Manager - _when:cask: '! test -d "/Applications/YubiKey Manager.app" && ! test -d "$HOME/Applications/YubiKey Manager.app"' + _app: YubiKey Manager.app appimage: Yubico/yubikey-manager-qt cask: yubico-yubikey-manager choco: yubikey-manager @@ -11019,7 +11027,7 @@ softwarePackages: _bin: obs-studio _github: https://github.com/obsproject/obs-studio _name: OBS Studio - _when:cask: '! test -d /Applications/OBS.app && ! test -d $HOME/Applications/OBS.app' + _app: OBS.app cask: obs choco: obs-studio flatpak: com.obsproject.Studio @@ -11043,7 +11051,7 @@ softwarePackages: _bin: proxyman-cli _github: https://github.com/ProxymanApp/Proxyman _name: Proxyman - _when:cask: '! test -d /Applications/Proxyman.app && ! test -d $HOME/Applications/Proxyman.app' + _app: Proxyman.app cask: proxyman squid: _bin: squid @@ -11071,7 +11079,7 @@ softwarePackages: _github: Not open-source _home: https://zoom.us/ _name: Zoom - _when:cask: '! test -d /Applications/zoom.us.app && ! test -d $HOME/Applications/zoom.us.app' + _app: zoom.us.app ansible: professormanhattan.zoom cask: zoom choco: zoom