diff --git a/software.yml b/software.yml index 57f47f70..cbefc2a7 100644 --- a/software.yml +++ b/software.yml @@ -3586,7 +3586,7 @@ softwarePackages: _name: Fig _post: | #!/usr/bin/env bash - source ~/.config/shell/private.sh && fig login --token "$FIG_TOKEN" + source ~/.config/shell/private.sh && fig login --token "$FIG_TOKEN" || logg info 'Fig login failed - User might already be logged in' _short: "Fig Autocomplete is a tool that enhances shell autocompletion on MacOS and Linux systems, providing a more interactive and user-friendly experience for navigating and completing commands in the \nterminal. " cask: fig figlet: @@ -13740,2116 +13740,3 @@ softwarePackages: _name: Vagrant VMWare Utility _post:cask: > #!/usr/bin/env bash - if [ ! -f /usr/local/bin/vagrant-vmware-utility ] && [ -f /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility ]; then - sudo ln -s /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility /usr/local/bin/vagrant-vmware-utility - fi - - _short: "vagrant-vmware-desktop is a plugin for Vagrant that allows users to manage VMware Desktop virtual machines. " - _when:cask: "! test -f /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility" - ansible: professormanhattan.vmware - cask: vagrant-vmware-utility - choco: vagrant-vmware-utility - script: rm -rf /tmp/vagrant-vmware-utility_1.0.21_linux_amd64.zip && curl https://releases.hashicorp.com/vagrant-vmware-utility/1.0.21/vagrant-vmware-utility_1.0.21_linux_amd64.zip -o /tmp/vagrant-vmware-utility_1.0.21_linux_amd64.zip && unzip /tmp/vagrant-vmware-utility_1.0.21_linux_amd64.zip && sudo mv -f /tmp/vagrant-vmware-utility /usr/local/bin/vagrant-vmware-utility && sudo chmod +x /usr/local/bin/vagrant-vmware-utility - vale: - _bin: vale - _desc: "Vale is a tool for checking and maintaining consistent writing style in your documents. It uses a customizable style guide to analyze text files for errors, inconsistencies, and style issues. It \nsupports various file formats like Markdown, HTML, and LaTeX. Vale can be integrated into your workflow through the command line or as part of a continuous integration process. It helps ensure that your\nwriting follows specific guidelines and standards, making it useful for technical writers, developers, and anyone who values clear and consistent writing. " - _github: https://github.com/errata-ai/vale - _name: Vale - _short: "Vale is a syntax-aware linter for prose. " - brew: vale - choco: vale - go: github.com/errata-ai/vale@latest - vault: - _bin: vault - _desc: "[HashiCorp Vault](https://www.vaultproject.io/) secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. Basically, it is a tool for managing any data that you want to tightly control access to. It also has some advanced integrations with systems like AWS." - _docs: https://developer.hashicorp.com/vault/docs - _github: https://github.com/hashicorp/vault - _home: https://vaultproject.io/ - _name: HashiCorp Vault - _service: vault - _service:brew: hashicorp/tap/vault - _short: "Vault is a tool for securely accessing secrets. " - ansible: professormanhattan.vault - brew: hashicorp/tap/vault - yay: vault-cli - vdirsyncer: - _bin: vdirsyncer - _desc: "vdirsyncer is a command-line tool for synchronizing calendars and address books between various servers. It supports syncing between CalDAV/CardDAV servers and local files, making it useful for keeping \nyour calendars and contacts up to date across different platforms. It uses a configuration file to define the sync pairs and can be automated with cron jobs. vdirsyncer is written in Python and is \nactively maintained on GitHub. It's a handy tool for managing your personal information across different devices and services. " - _github: https://github.com/pimutils/vdirsyncer - _name: vdirsyncer - _short: "vdirsyncer is a command-line tool for synchronizing calendars and address books. " - _todo: echo "TODO - Implement the following command after automating the process of setting up contact groups / calendars to sync" && echo "vdirsyncer discover contacts" && echo "vdirsyncer sync contacts" && echo "TODO - Add to cron" && echo "*/30 * * * * /usr/local/bin/vdirsyncer sync > /dev/null" && echo "This should be in _post instead of _pre - it is here for testing purposes" - pipx: vdirsyncer - vector: - _bin: vector - _desc: Vector is a lightweight, ultra-fast tool for building observability pipelines that lets you collect, transform, and route all your logs and metrics with one simple tool. - _docs: https://vector.dev/docs - _github: https://github.com/vectordotdev/vector - _home: https://vector.dev/ - _name: Vector - _service: vector - _short: "Vector is an open-source observability data router. " - brew: vectordotdev/brew/vector - helm: https://helm.vector.dev - pacman: vector - script:darwin: curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash - script:linux: curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash - velero: - _bin: velero - _desc: "[Velero](https://velero.io/) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes" - _docs: https://velero.io/docs/ - _github: https://github.com/vmware-tanzu/velero - _home: https://velero.io/ - _name: velero - _short: "Velero is an open-source tool to back up, recover, and migrate Kubernetes cluster resources and persistent volumes. " - brew: velero - choco: velero - github: github.com/vmware-tanzu/velero - yay: velero-bin - vermin: - _bin: vermin - _desc: "Vermin is a tool available on GitHub at https://github.com/mhewedy/vermin designed for managing virtual machines on macOS using Hypervisor.framework. It allows users to create, start, stop, and manage \nvirtual machines directly from the command line. Vermin simplifies the process of working with virtual machines on macOS by providing a convenient interface for managing VMs without the need for \nthird-party virtualization software. It is a useful tool for developers and system administrators who need to work with virtual environments on macOS. " - _github: https://github.com/mhewedy/vermin - _name: Vermin - _short: "Vermin is a tool that helps manage and clean up unused Docker images and containers on your system, freeing up disk space efficiently. " - go: github.com/mhewedy/vermin@latest - vhs: - _bin: vhs - _desc: Your CLI home video recorder - _docs: https://github.com/charmbracelet/vhs - _github: https://github.com/charmbracelet/vhs - _home: https://charm.sh/ - _name: VHS - _short: "vhs is a terminal-based VHS tape player simulator for nostalgic fun on the command line. " - brew: vhs - go: github.com/charmbracelet/vhs@latest - nix-env: nixpkgs.vhs - pacman: vhs - port: vhs - scoop: vhs - xbps: vhs - vidmerger: - _bin: vidmerger - _deps: - - ffmpeg - _desc: Merge video & audio files via CLI - _docs: https://github.com/tgotwig/vidmerger - _github: https://github.com/tgotwig/vidmerger - _home: https://github.com/tgotwig/vidmerger - _name: VidMerger - _short: "vidmerger is a tool on GitHub created by tgotwig for merging video files. " - brew: tgotwig/vidmerger/vidmerger - choco: vidmerger - vim: - _bin: vim - _desc: "[Vim](https://www.vim.org/) is a greatly improved version of the good old UNIX editor Vi" - _docs: https://www.vim.org/docs.php - _github: https://github.com/vim/vim - _home: https://www.vim.org/ - _name: VIM - _post: > - #!/usr/bin/env bash - - logg info "Installing VIM plugins" && vim +'PlugInstall --sync' +qall - - # @description This script installs the extensions defined in `${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions/package.json` - - # which should correlate to the Coc extensions defined in `${XDG_CONFIG_HOME:-$HOME/.config}/vim/vimrc`. - - installCocExtensions() { - - if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions/package.json" ]; then - logg info "Running npm i --no-package-lock in ${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions" - cd "${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions" && npm i --no-package-lock - logg info "Running vim +CocUpdateSync +qall" && vim +CocUpdateSync +qall - else - logg info "Skipping Coc extension installation because ${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions/package.json is missing" - fi - } - - logg info "Updating VIM coc extensions" && installCocExtensions - - _short: "Vim is a highly configurable text editor built for efficiency and speed, with a focus on keyboard shortcuts for navigation and editing. " - ansible: professormanhattan.vim - apt: vim - brew: vim - choco: vim - dnf: vim - pacman: vim - port: vim - scoop: vim - virtualbox: - _app: VirtualBox.app - _bin: null - _desc: "[VirtualBox](https://www.virtualbox.org/) is a free and open-source hosted hypervisor for x86 virtualization, developed by Oracle Corporation. Created by Innotek, it was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010. VirtualBox may be installed on Windows, macOS, Linux, Solaris and OpenSolaris." - _docs: https://www.virtualbox.org/wiki/Documentation - _github: https://github.com/mirror/vbox - _home: https://www.virtualbox.org/ - _name: VirtualBox - _post: > - #!/usr/bin/env bash - - # @file VirtualBox Extension Pack - - # @brief Ensures the VirtualBox extension pack is installed. - - # @description - - # This script ensures the VirtualBox extension pack that corresponds with VirtualBox's version is properly installed. - - - ### Run logic if VirtualBox is installed - - if command -v VirtualBox > /dev/null; then - - ### Install VirtualBox extension pack if it is not installed already - if [ ! -d /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack ] && [ ! -d /Applications/VirtualBox.app/Contents/MacOS/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack ]; then - logg info 'Acquiring VirtualBox version information' - VBOX_VERSION="$(VirtualBox --help | head -n 1 | cut -f 6 -d' ')" - VBOX_VERSION="${VBOX_VERSION//v}" - - ### Set up folders - # Check for macOS installation before creating ExtensionPacks folder on Linux machines - if [ ! -d /Applications/VirtualBox.app ]; then - sudo mkdir -p /usr/lib/virtualbox/ExtensionPacks - fi - mkdir -p /tmp/vbox - cd /tmp/vbox - - ### Download extension pack - logg info 'Downloading VirtualBox extension pack' - curl -sSL https://download.virtualbox.org/virtualbox/$VBOX_VERSION/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack -o /tmp/vbox/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack || logg error 'Failed to download the VirtualBox extension pack so the extension pack installation will be skipped' - - ### Install extension pack - if [ -f /tmp/vbox/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack ]; then - logg info 'Installing VirtualBox extension pack' - echo 'y' | sudo VBoxManage extpack install --replace /tmp/vbox/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack - logg success 'Successfully installed VirtualBox extension pack' - fi - else - logg info 'VirtualBox Extension pack is already installed' - fi - else - - logg info 'VirtualBox is not installed so VirtualBox Extension pack will not be installed' - fi - - _post:choco: > - # TODO - - # TODO - - # TODO - - # TODO - - cd C:/Program Files/Oracle/VirtualBox/ - - # TODOFigure out how to get version without Ansible here and download / install the extpack - - wget https://download.virtualbox.org/virtualbox/' + vbox_version + '/Oracle_VM_VirtualBox_Extension_Pack-' + vbox_version + '.vbox-extpack' - - echo y | VBoxManage extpack install --replace ./Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack - - _pre:dnf: > - #!/usr/bin/env bash - - . /etc/os-release - - cat < - #!/usr/bin/env bash - - # @file VMWare Configuration - - # @brief Installs VMWare Workstation Pro on Linux devices, applies a "publicly-retrieved" license key (see disclaimer), and automatically accepts the terms and conditions - - # @description - - # This script ensures the user included `vmware` in their software installation list. It then checks for presence of the `vmware` utility. If it is not present, then the script: - - # - - # 1. Downloads the [VMWare Workstation Pro](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html) Linux installer - - # 2. Installs VMWare Workstation Pro - - # 3. Passes options to the installation script that automatically apply a publicly retrived license key and accept the Terms & Conditions - - # - - # This script first checks if `vagrant`, `vmware`, and `vagrant-vmware-utility` are available in the `PATH`. If they are present, then the script - - # configures the [`vagrant-vmware-utility`](https://developer.hashicorp.com/vagrant/docs/providers/vmware/vagrant-vmware-utility) by generating the required security certificates and enabling the service. - - # This system package enables the capability of controlling both VMWare Workstation and VMWare Fusion with Vagrant. - - # - - # Since this script runs only when `vagrant`, `vmware`, and `vagrant-vmware-utility` are in the `PATH`, this means that it will run - - # when you use an installation template that includes all three pieces of software in the software list defined in - - # `home/.chezmoidata.yaml`. - - # - - # **DISCLAIMER:** If you plan on using VMWare Workstation for anything but evaluation purposes, then we highly suggest purchasing a copy - - # of VMWare Workstation. The "publicly-retrived" license keys are scattered throughout GitHub and we are not exactly - - # sure why they work. You can pass in your own key by utilizing the `VMWARE_WORKSTATION_LICENSE_KEY` environment variable. More details on - - # using environment variables or repository-housed encrypted secrets can be found in our [Secrets documentation](https://install.doctor/docs/customization/secrets). - - # - - # ## VMWare on macOS - - # - - # This script only installs VMWare Workstation on Linux. The macOS-variant titled VMWare Fusion can be installed using a Homebrew - - # cask so a "work-around" script does not have to be used. - - # - - # ## VMWare vs. Parallels vs. VirtualBox vs. KVM vs. Hyper-V - - # - - # There are a handful of VM virtualization providers you can choose from. VMWare is a nice compromise between OS compatibility and performance. - - # Parallels, on the hand, might be better for macOS since it is designed specifically for macOS. Finally, VirtualBox is a truly free, - - # open-source option that does not come with the same optimizations that VMWare and Parallels provide. - - # - - # Other virtualization options include KVM (Linux / macOS) and Hyper-V (Windows). These options are better used for headless - - # systems. - - # - - # ## Links - - # - - # * [VMWare Workstation homepage](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html) - - # * [Vagrant VMWare Utility on GitHub](https://github.com/hashicorp/vagrant-vmware-desktop) - - # * [`home/.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoidata.yaml) - - # * [Default license key gist](https://gist.github.com/PurpleVibe32/30a802c3c8ec902e1487024cdea26251) - - - ### Run logic if VMware is installed - - if command -v vmware > /dev/null; then - - ### Build kernel modules if they are not present - if [ ! -f "/lib/modules/$(uname -r)/misc/vmmon.ko" ] || [ ! -f "/lib/modules/$(uname -r)/misc/vmnet.ko" ]; then - ### Build VMWare host modules - logg info 'Building VMware host modules' - if sudo vmware-modconfig --console --install-all; then - logg success 'Built VMWare host modules successfully with sudo vmware-modconfig --console --install-all' - else - logg info 'Acquiring VMware version from CLI' - VMW_VERSION="$(vmware --version | cut -f 3 -d' ')" - mkdir -p /tmp/vmw_patch - cd /tmp/vmw_patch - logg info 'Downloading VMware host module patches' && curl -sSL "https://github.com/mkubecek/vmware-host-modules/archive/workstation-$VMW_VERSION.tar.gz" -o /tmp/vmw_patch/workstation.tar.gz - tar -xzf /tmp/vmw_patch/workstation.tar.gz - cd vmware* - logg info 'Running sudo make and sudo make install' - sudo make - sudo make install - logg success 'Successfully configured VMware host module patches' - fi - - ### Sign VMware host modules if Secure Boot is enabled - if [ -f /sys/firmware/efi ]; then - logg info 'Signing host modules' - mkdir -p /tmp/vmware - cd /tmp/vmware - openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/" - "/usr/src/linux-headers-$(uname -r)/scripts/sign-file" sha256 ./MOK.priv ./MOK.der "$(modinfo -n vmmon)" - "/usr/src/linux-headers-$(uname -r)/scripts/sign-file" sha256 ./MOK.priv ./MOK.der "$(modinfo -n vmnet)" - echo '' | mokutil --import MOK.der - logg success 'Successfully signed VMware host modules. Reboot the host before powering on VMs' - fi - - ### Patch VMware with Unlocker - if [ ! -f /usr/lib/vmware/isoimages/darwin.iso ]; then - logg info 'Acquiring VMware Unlocker latest release version' - UNLOCKER_URL="$(curl -sSL 'https://api.github.com/repos/DrDonk/unlocker/releases/latest' | jq -r '.assets[0].browser_download_url')" - mkdir -p /tmp/vmware-unlocker - cd /tmp/vmware-unlocker - logg info 'Downloading unlocker.zip' - curl -sSL "$UNLOCKER_URL" -o unlocker.zip - unzip unlocker.zip - cd linux - logg info 'Running the unlocker' - echo "y" | sudo ./unlock - logg success 'Successfully unlocked VMware for macOS compatibility' - else - logg info '/usr/lib/vmware/isoimages/darwin.iso is already present on the system so VMware macOS unlocking will not be performed' - fi - - if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then - ### Start / enable VMWare service - logg info 'Ensuring vmware.service is enabled and running' - sudo systemctl enable vmware.service - sudo systemctl restart vmware.service - - ### Start / enable VMWare Workstation Server service - logg info 'Ensuring vmware-workstation-server.service is enabled and running' - sudo systemctl enable vmware-workstation-server.service - sudo systemctl restart vmware-workstation-server.service - - ### Start / enable VMWare USB Arbitrator service - if command -v vmware-usbarbitrator.service > /dev/null; then - logg info 'Ensuring vmware-usbarbitrator.service is enabled and running' - sudo systemctl enable vmware-usbarbitrator.service - sudo systemctl restart vmware-usbarbitrator.service - else - logg warn 'vmware-usbarbitrator does not exist in the PATH' - fi - fi - else - logg info 'VMware host modules are present' - fi - else - - logg warn 'VMware Workstation is not installed so the VMware Unlocker will not be installed' - fi - - - # @description Only run logic if both Vagrant and VMWare are installed - - if command -v vagrant > /dev/null && command -v vmware-id > /dev/null; then - - # @description Vagrant VMWare Utility configuration - if command -v vagrant-vmware-utility > /dev/null; then - if [ -f /usr/local/bin/certificates/vagrant-utility.key ]; then - logg info 'Assuming Vagrant VMWare Utility certificates have been properly generated since /usr/local/bin/certificates/vagrant-utility.key is present' - else - logg info 'Generating Vagrant VMWare Utility certificates' - sudo vagrant-vmware-utility certificate generate - logg success 'Generated Vagrant VMWare Utility certificates via vagrant-vmware-utility certificate generate' - fi - logg info 'Ensuring the Vagrant VMWare Utility service is enabled' - sudo vagrant-vmware-utility service install || EXIT_CODE=$? - if [ -n "$EXIT_CODE" ]; then - logg info 'The Vagrant VMWare Utility command vagrant-vmware-utility service install failed. It is probably already setup.' - fi - fi - else - - logg info 'Vagrant is not installed so the Vagrant plugins will not be installed' - logg info 'Vagrant or VMWare is not installed so the Vagrant VMWare utility will not be configured' - fi - - ansible: professormanhattan.vmware - cask: vmware-fusion - script:linux: > - if ! command -v vmware > /dev/null; then - - ### Download VMWare Workstation - VMWARE_WORKSTATION_URL=https://www.vmware.com/go/getworkstation-linux - VMWARE_WORKSTATION_DIR=/tmp/workstation-downloads - mkdir -p "$VMWARE_WORKSTATION_DIR" - logg info 'Downloading VMware Workstation Installer' && curl -sSLA "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20220101 Firefox/102.0" "$VMWARE_WORKSTATION_URL" -o "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" - ### Register product key / license - if [ -n "$VMWARE_WORKSTATION_LICENSE_KEY" ]; then - logg info 'Registering VMware Workstation Pro license with serial number' && sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required --set-setting vmware-workstation serialNumber "$VMWARE_WORKSTATION_LICENSE_KEY" - else - logg info 'Agreeing to VMWare Workstation Pro license (without serial number)' && sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required - fi - logg success 'VMware Workstation installed successfully' - else - - logg info 'VMware Workstation is already installed' - fi - - volta: - _bin: volta - _desc: "[Volta](https://volta.sh/) is a hassle-free Javascript Tool Manager. It is a fast, reliable and universal tool manager. It supports multiple package managers and provides extensibility hooks for site-specific customization." - _docs: https://docs.volta.sh/ - _github: https://github.com/volta-cli/volta - _home: https://volta.sh - _name: volta-vm - _post: | - #!/usr/bin/env bash - export VOLTA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/volta" - export PATH="$VOLTA_HOME/bin:$PATH" - volta setup - volta install node@latest - volta install yarn@latest - _short: "Volta is a tool for managing JavaScript command-line tools. " - ansible: professormanhattan.volta - brew: volta - scoop: volta - vpn: - _bin: null - _desc: You can populate a configuration to power this role. When configured properly, the system's built-in VPN client will be configured with your desired settings. - _github: false - _name: System VPN - ansible: professormanhattan.vpn - vscode: - _app: Visual Studio Code.app - _bin: code - _desc: "[Visual Studio Code](https://code.visualstudio.com/) is a freeware source-code editor made by Microsoft for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git." - _docs: https://code.visualstudio.com/api/references/vscode-api - _github: https://github.com/microsoft/vscode - _home: https://code.visualstudio.com/ - _name: Visual Studio Code - _post: > - #!/usr/bin/env bash - - # @file VSCode Extensions / Global NPM Modules Fallback - - # @brief Installs all of the Visual Studio Code extensions specified in the [`home/dot_config/Code/User/extensions.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/extensions.json) file and installs NPM packages to the system `/` directory as a catch-all for tools that recursively search upwards for shared NPM configurations. - - # @description - - # This script loops through all the extensions listed in the [`home/dot_config/Code/User/extensions.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/extensions.json) - - # file. It installs the extensions when either Visual Studio Code or VSCodium is installed. If both are installed, then both will - - # have the plugins automatically installed. - - # - - # The `extensions.json` file is used to house the plugin list so that if you decide to remove this auto-installer script then - - # VSCode will retain some functionality from the file. It will show a popover card that recommends installing any plugins in the - - # list that are not already installed. - - # - - # ## Plugin Settings - - # - - # Most of the plugin settings have been configured and optimized to work properly with the other default settings - - # included by Install Doctor. These settings can be found in the [`home/dot_config/Code/User/settings.json` file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/settings.json). - - # If you manage to come up with an improvement, please open a pull request so other users can benefit from your work. - - # - - # ## Default Extensions - - # - - # The default plugins in the `extensions.json` list are catered mostly towards full-stack web development. The technologies - - # that are catered to by the default extensions relate to TypeScript, JavaScript, Go, Python, Rust, and many more technologies. - - # Most of the plugins are not language-specific. - - # - - # ## Global NPM Modules Fallback - - # - - # This script makes fallback linter and code auto-fixer configurations globally available. Normally, configurations, like - - # the ones used for ESLint, are installed at the project level by specifying the NPM package configuration - - # in the `package.json` file (or via an `.eslintrc` file). However, whenever no configuration is present, IDEs like - - # Visual Studio Code will recursively search upwards in the directory tree, trying to find an ESLint configuration. - - # - - # This script addresses this issue by installing a set of shared NPM packages that enhance the functionality of tools like ESLint - - # by placing a `package.json` with all the necessary settings into the highest directory possible and then installing the package's - - # modules. This normally results in a `package.json` file and `node_modules/` folder at the root of the system. - - # - - # ## NPM Packages Included - - # - - # To reduce clutter, all the configurations are mapped out in the `package.json` file. Our default `package.json` file includes - - # the following configuration: - - # - - # ```json - - # - - # { - - # ... - - # // Notable dependencies listed below - - # "dependencies": { - - # "eslint-config-strictlint": "latest", - - # "jest-preset-ts": "latest", - - # "prettier-config-strictlint": "latest", - - # "remark-preset-strictlint": "latest", - - # "stylelint-config-strictlint": "latest" - - # }, - - # ... - - # } - - # - - # ``` - - # - - # ## Strict Lint - - # - - # More details on the shared configurations can be found at [StrictLint.com](https://strictlint.com). - - # Strict Lint is another brand maintained by Megabyte Labs that is home to many of the well-crafted - - # shared configurations that are included in our default NPM configuration fallback settings. - - # - - # ## Notes - - # - - # * If the system root directory is not writable (even with `sudo`), then the shared modules are installed to the provisioning user's `$HOME` directory - - # - - # ## Links - - # - - # * [`package.json` configuration file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/package.json) - - # * [StrictLint.com documentation](https://strictlint.com/docs) - - # * [Visual Studio Code settings folder](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User) - - # * [Visual Studio Code `extensions.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/extensions.json) - - - ### Hides useless error during extension installations - - # Error looks like: - - # (node:53151) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. - - # (Use `Electron --trace-deprecation ...` to show where the warning was created) - - export NODE_OPTIONS=--throw-deprecation - - - # @description Install Visual Studio Code extensions if they are not already installed (by checking the `code --list-extensions` output) - - if command -v code > /dev/null; then - - EXTENSIONS="$(code --list-extensions)" - jq -r '.recommendations[]' "${XDG_CONFIG_HOME:-$HOME/.config}/Code/User/extensions.json" | while read EXTENSION; do - if ! echo "$EXTENSIONS" | grep -iF "$EXTENSION" > /dev/null; then - logg info 'Installing Visual Studio Code extension '"$EXTENSION"'' && code --install-extension "$EXTENSION" - logg success 'Installed '"$EXTENSION"'' - else - logg info ''"$EXTENSION"' already installed' - fi - done - else - - logg info 'code executable not available - skipping plugin install process for it' - fi - - - if command -v code > /dev/null && command -v npm > /dev/null && [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/vscode/package.json" ]; then - - ### Install linter fallback node_modules / package.json to system or home directory - if sudo cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/vscode/package.json" /package.json; then - logg info 'Successfully copied linter fallback configurations package.json to /package.json' - logg info 'Installing system root directory node_modules' - cd / && sudo npm i --quiet --no-package-lock || EXIT_CODE=$? - else - logg warn 'Unable to successfully copy linter fallback configurations package.json to /package.json' - logg info 'Installing linter fallback configurations node_modules to home directory instead' - cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/vscode/package.json" "$HOME/package.json" - cd ~ && npm i --quiet --no-package-lock || EXIT_CODE=$? - fi - - ### Log message if install failed - if [ -n "$EXIT_CODE" ]; then - logg warn 'Possible error(s) were detected while installing linter fallback configurations to the home directory.' - logg info "Exit code: $EXIT_CODE" - else - logg info 'Installed linter fallback configuration node_modules' - fi - else - - logg info 'Skipping installation of fallback linter configurations because one or more of the dependencies is missing.' - fi - - _short: "Visual Studio Code is a free source-code editor made by Microsoft for Windows, Linux, and macOS. " - ansible: professormanhattan.vscode - cask: visual-studio-code - choco: vscode - flatpak: com.visualstudio.code - snap: code --classic - yay: visual-studio-code-bin - vscodium: - _app: VSCodium.app - _bin: codium - _desc: "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's Visual Studio Code. It is essentially Visual Studio Code without Microsoft branding, telemetry, and licensing. VSCodium\nprovides a more open-source alternative for developers who prefer a version of Visual Studio Code that is free from Microsoft's proprietary features. Users can find the source code, releases, and \ndocumentation on the GitHub repository at https://github.com/VSCodium/vscodium. " - _github: https://github.com/VSCodium/vscodium - _name: "VSCodium " - _post: > - #!/usr/bin/env bash - - # @brief See `_post` entry for `vscode` for a description - - export NODE_OPTIONS=--throw-deprecation - - # @description Check for the presence of the `codium` command in the `PATH` and install extensions for VSCodium if it is present - - if command -v codium > /dev/null; then - - EXTENSIONS="$(codium --list-extensions)" - jq -r '.recommendations[]' "${XDG_CONFIG_HOME:-$HOME/.config}/Code/User/extensions.json" | while read EXTENSION; do - if ! echo "$EXTENSIONS" | grep -iF "$EXTENSION" > /dev/null; then - logg info 'Installing VSCodium extension '"$EXTENSION"'' && codium --install-extension "$EXTENSION" && logg success 'Installed '"$EXTENSION"'' - else - logg info ''"$EXTENSION"' already installed' - fi - done - else - - logg info 'codium executable not available - skipping plugin install process for it' - fi - - _short: "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's Visual Studio Code. " - appimage: vscodium/vscodium - cask: vscodium - choco: vscodium - flatpak: com.vscodium.codium - nix: nixpkgs.vscodium - scoop: vscodium - snap: codium --classic - winget: vscodium - yay: vscodium-bin - vup: - _bin: vup - _desc: "vup is a tool available on GitHub at https://github.com/vup-app/vup. It is a version updater for Node.js projects that simplifies the process of updating dependencies in package.json files. This tool \nautomatically checks for available updates for dependencies and devDependencies in your project and provides a simple command-line interface to update them. It helps in keeping your Node.js projects \nup-to-date with the latest package versions, ensuring better security, performance, and compatibility. " - _github: https://github.com/vup-app/vup - _name: "vup " - _short: "vup is a tool for updating macOS applications from the command line. " - flatpak: app.vup.Vup - w3m: - _bin: w3m - _desc: w3m is a pager/text-based WWW browser. You can browse local documents and/or documents on the WWW using a terminal emulator. - _docs: https://w3m.sourceforge.net/MANUAL - _github: https://github.com/tats/w3m - _home: https://tracker.debian.org/pkg/w3m - _name: w3m - _short: "w3m is a text-based web browser for Unix-like systems. " - apt: w3m - brew: w3m - dnf: w3m - pacman: w3m - port: w3m - zypper: w3m - wails: - _bin: wails - _desc: "[Wails](https://github.com/wailsapp/wails) offers a different approach to providing web interfaces to Go programs: it provides the ability to wrap both Go code and a web frontend into a single binary." - _github: https://github.com/wailsapp/wails - _name: Wails - _short: "Wails is a framework for building desktop apps using Go and Web technologies. " - ansible: professormanhattan.wails - go: github.com/wailsapp/wails/cmd/wails@latest - wallpaper-cli: - _bin: wallpaper - _desc: "wallpaper-cli is a command-line interface tool created by Sindre Sorhus for setting the desktop wallpaper on macOS. It allows users to easily change their wallpaper from the terminal using various \noptions like setting a specific image, choosing a random image, or restoring the wallpaper to the default one. The tool supports both local and remote images, making it convenient for users to customize\ntheir desktop background quickly and efficiently. It's a handy utility for those who prefer managing their wallpaper through the command line interface. " - _github: https://github.com/sindresorhus/wallpaper-cli - _name: Wallpaper CLI - _short: "wallpaper-cli is a command-line interface for setting the desktop wallpaper on macOS. " - npm: wallpaper-cli - warp: - _app: Cloudflare WARP.app - _bin: warp-cli - _desc: "[Cloudflare WARP Client](https://cloudflarewarp.com/) is a free app that makes your Internet safer" - _github: false - _home: https://cloudflarewarp.com/ - _name: Cloudflare WARP Client - _post: > - #!/usr/bin/env bash - - # @file CloudFlare WARP - - # @brief Installs CloudFlare WARP, ensures proper security certificates are in place, and connects the device to CloudFlare WARP. - - # @description - - # This script is intended to connect the device to CloudFlare's Zero Trust network with nearly all of its features unlocked. - - # Homebrew is used to install the `warp-cli` on macOS. On Linux, it can install `warp-cli` on most Debian systems and some RedHat - - # systems. CloudFlare WARP's [download page](https://pkg.cloudflareclient.com/packages/cloudflare-warp) is somewhat barren. - - # - - # ## MDM Configuration - - # - - # If CloudFlare WARP successfully installs, it first applies MDM configurations (managed configurations). If you would like CloudFlare - - # WARP to connect completely headlessly (while losing some "user-posture" settings), then you can populate the following three secrets: - - # - - # 1. `CLOUDFLARE_TEAMS_CLIENT_ID` - The ID from a CloudFlare Teams service token. See [this article](https://developers.cloudflare.com/cloudflare-one/identity/service-tokens/). - - # 2. `CLOUDFLARE_TEAMS_CLIENT_SECRET` - The secret from a CloudFlare Teams service token. - - # 3. `CLOUDFLARE_TEAMS_ORG` - The ID of your Zero Trust organization. This variable must be passed in as an environment variable and is housed in the `home/.chezmoi.yaml.tmpl` file. If you do not want to pass an environment variable, you can change the default value in `home/.chezmoi.yaml.tmpl` on your own fork. - - # - - # The two variables above can be passed in using either of the methods described in the [Secrets documentation](https://install.doctor/docs/customization/secrets). - - # - - # ## Headless CloudFlare WARP Connection - - # - - # Even if you do not provide the two variables mentioned above, the script will still headlessly connect your device to the public CloudFlare WARP - - # network, where you will get some of the benefits of a VPN for free. Otherwise, if they were passed in, then the script - - # finishes by connecting to CloudFlare Teams. - - # - - # ## Application Certificates - - # - - # This script applies the techniques described on the [CloudFlare Zero Trust Install certificate manually page](https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert/) - - # to configure the following utilities that leverage seperate certificate authorities: - - # - - # * Python - - # * NPM - - # * Git - - # * Google Cloud SDK - - # * AWS CLI - - # * Google Drive for desktop - - # - - # Settings used to configure Firefox are housed inside of the Firefox configuration files stored as seperate configuration files - - # outside of this script. **Note: The scripts that enable CloudFlare certificates for all these programs are currently commented out - - # in this script.** - - # - - # ## Notes - - # - - # According to CloudFlare Teams [documentation on MDM deployment](https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/), - - # on macOS the `com.cloudflare.warp.plist` file gets erased on reboot. Also, according to the documentation, the only way around this is to leverage - - # an MDM SaaS provider like JumpCloud. - - # - - # ## Links - - # - - # * [Linux managed configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/warp/private_mdm.xml.tmpl) - - # * [macOS managed configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/Library/Managed%20Preferences/private_com.cloudflare.warp.plist.tmpl) - - - SSL_CERT_PATH="/etc/ssl/cert.pem" - - - ### Install CloudFlare WARP (on non-WSL *nix systems) - - if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then - - if [ -d /System ] && [ -d /Applications ]; then - ### Install on macOS - if [ ! -d "/Applications/Cloudflare WARP.app" ]; then - brew install --cask --no-quarantine --quiet cloudflare-warp - else - logg info 'Cloudflare WARP already installed' - fi - elif [ '{{ .host.distro.id }}' = 'debian' ]; then - ### Add CloudFlare WARP desktop app apt-get source - if [ ! -f /etc/apt/sources.list.d/cloudflare-client.list ]; then - logg info 'Adding CloudFlare WARP keyring' - curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg - logg info 'Adding apt source reference' - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list - fi - - ### Update apt-get and install the CloudFlare WARP CLI - sudo apt-get update && sudo apt-get install -y cloudflare-warp - elif [ '{{ .host.distro.id }}' = 'ubuntu' ]; then - ### Add CloudFlare WARP desktop app apt-get source - if [ ! -f /etc/apt/sources.list.d/cloudflare-client.list ]; then - logg info 'Adding CloudFlare WARP keyring' - curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg - logg info 'Adding apt source reference' - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list - fi - - ### Update apt-get and install the CloudFlare WARP CLI - sudo apt-get update && sudo apt-get install -y cloudflare-warp - elif command -v dnf > /dev/null && command -v rpm > /dev/null; then - ### This is made for CentOS 8 and works on Fedora 36 (hopefully 36+ as well) with `nss-tools` as a dependency - sudo dnf instal -y nss-tools || NSS_TOOL_EXIT=$? - if [ -n "$NSS_TOOL_EXIT" ]; then - logg warn 'Unable to install nss-tools which was a requirement on Fedora 36 and assumed to be one on other systems as well.' - fi - ### According to the download site, this is the only version available for RedHat-based systems - sudo rpm -ivh https://pkg.cloudflareclient.com/cloudflare-release-el8.rpm || RPM_EXIT_CODE=$? - if [ -n "$RPM_EXIT_CODE" ]; then - logg error 'Unable to install CloudFlare WARP using RedHat 8 RPM package' - fi - fi - fi - - - - ### Ensure certificate is installed - - # Source: https://developers.cloudflare.com/cloudflare-one/static/documentation/connections/Cloudflare_CA.crt - - # Source: https://developers.cloudflare.com/cloudflare-one/static/documentation/connections/Cloudflare_CA.pem - - if [ -d /System ] && [ -d /Applications ] && command -v warp-cli > /dev/null; then - - ### Ensure certificate installed on macOS - if [ -z "$SSH_CONNECTION" ]; then - # if [ -z "$HEADLESS_INSTALL" ]; then - # logg info '**macOS Manual Security Permission** Requesting security authorization for Cloudflare trusted certificate' - # sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.crt" - # fi - logg info 'Updating the OpenSSL CA Store to include the Cloudflare certificate' - echo | sudo tee -a "$SSL_CERT_PATH" < "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" > /dev/null - echo "" | sudo tee -a "$SSL_CERT_PATH" - else - logg warn 'Session is SSH so adding Cloudflare encryption key to trusted certificates via the security program is being bypassed since it requires Touch ID / Password verification.' - fi - if [ -f "/usr/local/opt/openssl@3/bin/c_rehash" ]; then - # Location on Intel macOS - logg info 'Ensuring /usr/local/etc/openssl@3/certs directory exists' && mkdir -p /usr/local/etc/openssl@3/certs - logg info 'Adding Cloudflare certificate to /usr/local/etc/openssl@3/certs/Cloudflare_CA.pem' - echo | sudo cat - "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" >> /usr/local/etc/openssl@3/certs/Cloudflare_CA.pem - logg info 'Running /usr/local/opt/openssl@3/bin/c_rehash' - /usr/local/opt/openssl@3/bin/c_rehash > /dev/null && logg info 'OpenSSL certificate rehash successful' - elif [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/opt/openssl@3/bin/c_rehash" ]; then - # Location on arm64 macOS and custom Homebrew locations - logg info "Ensuring ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs directory exists" && mkdir -p "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs" - logg info "Adding Cloudflare certificate to ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs/Cloudflare_CA.pem" - echo | sudo cat - "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" >> "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs/Cloudflare_CA.pem" - logg info "Running ${HOMEBREW_PREFIX:-/opt/homebrew}/opt/openssl@3/bin/c_rehash" - "${HOMEBREW_PREFIX:-/opt/homebrew}/opt/openssl@3/bin/c_rehash" > /dev/null && logg info 'OpenSSL certificate rehash successful' - else - logg warn 'Unable to add Cloudflare_CA.pem because /usr/local/etc/openssl@3/certs and /opt/homebrew/etc/openssl@3/certs do not exist!' - fi - elif command -v warp-cli > /dev/null; then - - # System is Linux - if command -v dpkg-reconfigure > /dev/null; then - if [ -d /usr/local/share/ca-certificates ]; then - logg info 'Copying CloudFlare Teams PEM file to /usr/local/share/ca-certificates/Cloudflare_CA.crt' - sudo cp -f "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" /usr/local/share/ca-certificates/Cloudflare_CA.crt - logg info 'dpkg-reconfigure executable detected so using Debian/Ubuntu method of updating system trusted certificates to include CloudFlare Teams certificate' - sudo dpkg-reconfigure ca-certificates -p high - SSL_CERT_PATH="/etc/ssl/certs/ca-certificates.crt" - else - logg warn 'No /usr/local/share/ca-certificates folder present' - fi - elif command -v update-ca-trust > /dev/null; then - if [ -d /etc/pki/ca-trust/source/anchors ]; then - logg info 'Copying CloudFlare Teams certificates to /etc/pki/ca-trust/source/anchors' - sudo cp -f "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.crt" "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" /etc/pki/ca-trust/source/anchors - logg info 'update-ca-trust executable detected so using CentOS/Fedora method of updating system trusted certificates to include CloudFlare Teams certificate' - sudo update-ca-trust - SSL_CERT_PATH="/etc/pki/tls/certs/ca-bundle.crt" - else - logg warn '/etc/pki/ca-trust/source/anchors does not exist so skipping the system certificate update process' - fi - fi - fi - - - if command -v warp-cli > /dev/null; then - - ### Application certificate configuration - # Application-specific certificate authority modification is currently commented out because - # it is merely for traffic inspection and `npm install` fails when configured to use the CloudFlare - # certificate and the WARP client is not running. - ### Git - if command -v git > /dev/null; then - logg info "Configuring git to use $SSL_CERT_PATH" - git config --global http.sslcainfo "$SSL_CERT_PATH" - fi - - ### NPM - if command -v npm > /dev/null; then - logg info "Configuring npm to use $SSL_CERT_PATH" - npm config set cafile "$SSL_CERT_PATH" - fi - - ### Python - if command -v python3 > /dev/null; then - ### Ensure Certifi package is available globally - if ! pip3 list | grep certifi > /dev/null; then - if command -v brew > /dev/null; then - logg info 'Ensuring Python certifi is installed via Homebrew' - brew install --quiet python-certifi - else - logg info 'Ensuring certifi is installed globally for Python 3' - pip3 install certifibrew link --overwrite python-certifi - fi - fi - - ### Copy CloudFlare PEM file to Python 3 location - logg info "Configuring python3 / python to use "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem"" - echo | cat - "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" >> $(python3 -m certifi) - fi - - ### Google Cloud SDK - if command -v gcloud > /dev/null; then - logg info "Configuring gcloud to use "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" and "$HOME/.local/etc/ssl/gcloud/ca.pem"" - mkdir -p "$HOME/.local/etc/ssl/gcloud" - cat "$HOME/.local/etc/ssl/curl/cacert.pem" "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" > "$HOME/.local/etc/ssl/gcloud/ca.pem" - gcloud config set core/custom_ca_certs_file "$HOME/.local/etc/ssl/gcloud/ca.pem" - fi - - ### Google Drive for desktop (macOS) - if [ -d "/Applications/Google Drive.app" ]; then - if [ -d "/Applications/Google Drive.app/Contents/Resources" ]; then - logg info "Combining Google Drive roots.pem with CloudFlare certificate" - mkdir -p "$HOME/.local/etc/ssl/google-drive" - cat "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" "/Applications/Google Drive.app/Contents/Resources/roots.pem" >> "$HOME/.local/etc/ssl/google-drive/roots.pem" - sudo defaults write /Library/Preferences/com.google.drivefs.settings TrustedRootsCertsFile -string "$HOME/.local/etc/ssl/google-drive/roots.pem" - else - logg warn 'Google Drive.app installed but roots.pem is not available yet' - fi - fi - - - ### Ensure MDM settings are applied (deletes after reboot on macOS) - ### TODO: Ensure `.plist` can be added to `~/Library/Managed Preferences` and not just `/Library/Managed Preferences` - # Source: https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/ - # Source for JumpCloud: https://developers.cloudflare.com/cloudflare-one/static/documentation/connections/CloudflareWARP.mobileconfig - if [ -d /System ] && [ -d /Applications ]; then - sudo cp -f "$HOME/Library/Managed Preferences/com.cloudflare.warp.plist" '/Library/Managed Preferences/com.cloudflare.warp.plist' - sudo plutil -convert binary1 '/Library/Managed Preferences/com.cloudflare.warp.plist' - - ### Enable CloudFlare WARP credentials auto-populate (since file is deleted when not managed with MDM) - if [ -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" ] && [ ! -f "/Library/LaunchDaemons/com.cloudflare.warp.plist" ]; then - sudo mkdir -p /Library/LaunchDaemons - sudo cp -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" '/Library/LaunchDaemons/com.cloudflare.warp.plist' - sudo launchctl load "/Library/LaunchDaemons/com.cloudflare.warp.plist" - fi - elif [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/warp/mdm.xml" ]; then - sudo mkdir -p /var/lib/cloudflare-warp - sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/warp/mdm.xml" /var/lib/cloudflare-warp/mdm.xml - fi - - ### Register CloudFlare WARP - if warp-cli --accept-tos status | grep 'Registration missing' > /dev/null; then - logg info 'Registering CloudFlare WARP' - warp-cli --accept-tos register - else - logg info 'Either there is a misconfiguration or the device is already registered with CloudFlare WARP' - fi - - ### Connect CloudFlare WARP - if warp-cli --accept-tos status | grep 'Disconnected' > /dev/null; then - logg info 'Connecting to CloudFlare WARP' - warp-cli --accept-tos connect > /dev/null && logg success 'Connected to CloudFlare WARP' - else - logg info 'Either there is a misconfiguration or the device is already connected with CloudFlare WARP' - fi - else - - logg warn 'warp-cli was not installed so CloudFlare WARP cannot be joined' - fi - - # 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 - cask: cloudflare-warp - choco: warp - warp-terminal: - _app: Warp.app - _bin: warp - _desc: Warp is a blazingly-fast modern Rust based GPU-accelerated terminal built to make you and your team more productive. - _docs: https://docs.warp.dev/getting-started/readme - _env: - WARP_TERMINAL_APPDATA: - cask: $HOME/Library/Application Support/dev.warp.Warp-Stable - _github: https://github.com/warpdotdev/Warp - _home: https://www.warp.dev/ - _name: Warp Terminal - _short: "Warp is a tool that simplifies the development workflow by providing a unified interface for managing multiple development environments. " - appimage: https://app.warp.dev/get_warp?linux=true&package=appimage - apt: https://app.warp.dev/get_warp?package=deb - cask: warp - dnf: https://app.warp.dev/get_warp?package=rpm - pacman: https://app.warp.dev/get_warp?linux=true&package=pacman - warp-transfer: - _bin: warp-transfer - _github: false - flatpak: app.drey.Warp - watchexec: - _bin: watchexec - _desc: Executes commands in response to file modifications. - _docs: https://watchexec.github.io/docs/glob-patterns.html - _github: https://github.com/watchexec/watchexec - _home: https://watchexec.github.io/ - _name: Watchexec - _short: "watchexec is a tool that watches files and runs a command when they change. " - apk: watchexec - baulk: watchexec - brew: watchexec - cargo: watchexec-cli - choco: watchexec - emerge: watchexec - nix: watchexec - pacman: watchexec - scoop: watchexec - xbps: watchexec - watchman: - _bin: watchman - _desc: "[Watchman](https://github.com/facebook/watchman), an open-source Facebook product, can be used to watch files and record when they change. It can also trigger actions when matching files change." - _github: https://github.com/facebook/watchman - _name: Watchman - _short: "Watchman is a tool by Facebook for watching changes in the filesystem. " - ansible: professormanhattan.watchman - brew: watchman - choco: watchman - port: watchman - scoop: watchman - waypoint: - _bin: waypoint - _desc: "[HashiCorp Waypoint](https://www.waypointproject.io/) allows developers to deploy, manage, and observe their applications through a consistent abstraction of underlying infrastructure. Waypoint works with Kubernetes, ECS and many other platforms." - _docs: https://developer.hashicorp.com/waypoint/docs - _github: https://github.com/hashicorp/waypoint - _home: https://www.waypointproject.io/ - _name: HashiCorp Waypoint - _short: "Waypoint is a tool by HashiCorp for building, deploying, and releasing applications across any platform. " - ansible: professormanhattan.waypoint - brew: hashicorp/tap/waypoint - scoop: waypoint - wazuh: - _bin: wazuh-agentd - _desc: "[Wazuh](https://wazuh.com/) is a free, open source and enterprise-ready security monitoring solution for threat detection, integrity monitoring, incident response and compliance." - _docs: https://documentation.wazuh.com/current/index.html - _github: https://github.com/wazuh/wazuh - _home: https://wazuh.com/ - _name: Wazuh - _service:linux: wazuh-agent - _service:windows: wazuh-agent - _short: "Wazuh is an open-source security monitoring platform that can be used for threat detection, integrity monitoring, and incident response. " - _when:darwin: "csrutil status | grep enabled > /dev/null && ! test -f /Library/Ossec/bin/agent-auth" - _when:linux: "! test -f /var/ossec/bin/agent-auth" - _when:windows: '! test -f "C:\Program Files (x86)\ossec-agent\agent-auth.exe"' - choco: wazuh-agent - script:darwin: if ! csrutil status | grep enabled > /dev/null; then cd /tmp && curl -sSL https://packages.wazuh.com/4.x/macos/wazuh-agent-4.4.4-1.pkg > wazuh-agent.pkg && sudo launchctl setenv WAZUH_MANAGER "$WAZUH_MANAGER" && sudo installer -pkg wazuh-agent.pkg -target / && sudo chmod 755 /Library/Ossec && sudo chmod 755 /Library/Ossec/bin && rm /tmp/wazuh-agent.pkg && sudo wazuh-control start; else echo "WARNING - Skipping Wazuh Agent installation because System Integrity Protection is enabled. Disabling it requires booting into recovery and running csrutil disable, installing Wazuh Agent normally, and then re-enabling it again in recovery mode."; fi - script:linux: if command -v apt-get > /dev/null; then curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && sudo chmod 644 /usr/share/keyrings/wazuh.gpg && echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee -a /etc/apt/sources.list.d/wazuh.list && sudo apt-get update && sudo apt-get install -y wazuh-agent; elif command -v dnf > /dev/null; then echo "[wazuh]" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "enabled=1" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "name=EL-\$releasever - Wazuh" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "baseurl=https://packages.wazuh.com/4.x/yum/" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "protect=1" | sudo tee -a /etc/yum.repos.d/wazuh.repo && sudo rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH && sudo dnf install -y wazuh-agent; elif command -v zypper > /dev/null; then echo "[wazuh]" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "gpgcheck=1" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "enabled=1" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "name=EL-$releasever - Wazuh" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "baseurl=https://packages.wazuh.com/4.x/yum/" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "protect=1" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && sudo rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH && sudo zypper install -y wazuh-agent; elif command -v apk > /dev/null; then sudo wget -O /etc/apk/keys/alpine-devel@wazuh.com-633d7457.rsa.pub https://packages.wazuh.com/key/alpine-devel%40wazuh.com-633d7457.rsa.pub && echo "https://packages.wazuh.com/4.x/alpine/v3.12/main" | sudo tee -a /etc/apk/repositories && sudo apk update && sudo apk add wazuh-agent; fi - web-ext: - _bin: web-ext - _desc: "web-ext is a command-line tool provided by Mozilla for developing, testing, and packaging WebExtensions for Firefox. It simplifies the process of creating and testing extensions by providing commands to\nrun, build, and package extensions. It supports features like hot reloading for quick testing, linting for code quality checks, and the ability to run tests in multiple Firefox versions. This tool is \nuseful for developers working on Firefox extensions as it streamlines the development workflow and helps ensure compatibility with different Firefox versions. " - _github: https://github.com/mozilla/web-ext - _name: Web Extension CLI by Mozilla - _short: "web-ext is a command-line tool for developing web extensions for Firefox. " - npm: web-ext - web-font-generator: - _bin: web-font-generator - _desc: "webfont-kit-generator is a tool available on GitHub created by Rafael Mardojai that allows users to easily generate web font kits. This tool simplifies the process of converting fonts into various web \nfont formats like WOFF, WOFF2, EOT, and TTF, making it convenient for web developers to integrate custom fonts into their projects. It provides a straightforward way to create font kits by uploading \nfont files and then downloading the generated web font kit containing all the necessary font formats for web usage. " - _github: https://github.com/rafaelmardojai/webfont-kit-generator - _name: "webfont-kit-generator " - _short: "webfont-kit-generator is a tool on GitHub by rafaelmardojai for generating web font kits. " - flatpak: com.rafaelmardojai.WebfontKitGenerator - webpquicklook: - _desc: "WebPQuickLook is a QuickLook plugin for macOS that enables previewing WebP image files in Finder. This plugin allows users to view WebP images without having to open them in a separate application, \nproviding a convenient way to quickly glance at the contents of WebP files. It enhances the user experience by seamlessly integrating WebP file previews into the macOS Finder interface. " - _github: https://github.com/emin/WebPQuickLook - _name: QLWebP - _short: "WebPQuickLook is a Quick Look plugin for macOS that enables previewing WebP image files in Finder. " - _when:cask: '! test -d "$HOME/Library/QuickLook/WebpQuickLook.qlgenerator"' - cask: webpquicklook - websocat: - _bin: websocat - _desc: CLI for interacting with web sockets - _github: https://github.com/vi/websocat - _name: websocat - _short: "websocat is a command-line tool that provides a bidirectional bridge between WebSockets and standard input/output in Unix-like systems. " - brew: websocat - cargo: websocat - github: github.com/vi/websocat - pkg: websocat - port: websocat - webtorrent: - _app: WebTorrent.app - _bin: webtorrent - _desc: Streaming torrent app for Mac, Windows, and Linux - _github: https://github.com/webtorrent/webtorrent-desktop - _home: webtorrent.io/desktop - _name: WebTorrent Desktop - _short: "webtorrent-desktop is a streaming torrent client for the web browser and the desktop. " - cask: webtorrent - choco: webtorrent-desktop - flatpak: io.webtorrent.WebTorrent - github: github.com/webtorrent/webtorrent-desktop - yay: webtorrent-desktop - wego: - _bin: wego - _desc: "wego is a weather client for the terminal. It provides current weather conditions and forecasts in a simple and visually appealing way. It supports various backends for weather data retrieval and can \ndisplay information like temperature, wind speed, humidity, and more. Users can customize the output to suit their preferences and even view weather maps. It's a lightweight and convenient tool for \nchecking the weather directly from the command line. " - _github: https://github.com/schachmat/wego - _name: WeGo - _short: "wego is a terminal weather app for the terminal. " - brew: wego - go: github.com/schachmat/wego@latest - wetty: - _bin: wetty - _desc: "Wetty is a web-based terminal emulator that allows users to access a terminal session through a web browser. It is particularly useful for remote administration tasks or providing terminal access to \nusers without needing to install additional software. Wetty is based on Node.js and uses WebSockets to communicate between the browser and the server. It provides a simple and lightweight way to access \na terminal interface over the web securely. " - _github: https://github.com/butlerx/wetty - _name: Wetty - _short: "Wetty is a web-based terminal emulator that allows users to access a terminal session through a web browser. " - npm: wetty - wget: - _bin: wget - _desc: The [wget](https://www.gnu.org/software/wget/) command is a command line utility for downloading files from the Internet. It supports downloading multiple files, downloading in the background, resuming downloads, limiting the bandwidth used for downloads and viewing headers. - _github: false - _home: https://www.gnu.org/software/wget/ - _name: wget - ansible: professormanhattan.wget - apk: wget - apt: wget - brew: wget - dnf: wget - whalebrew: - _bin: whalebrew - _desc: Homebrew, but with Docker images (see https://github.com/whalebrew/whalebrew-packages for available packages) - _docs: https://github.com/whalebrew/whalebrew#usage - _github: https://github.com/whalebrew/whalebrew - _home: https://github.com/whalebrew/whalebrew - _name: Whalebrew - _short: "Whalebrew is a tool that allows you to create and run Docker containers as if they were native commands. " - brew: whalebrew - script:darwin: curl -L "https://github.com/whalebrew/whalebrew/releases/download/0.4.0/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew - script:linux: curl -L "https://github.com/whalebrew/whalebrew/releases/download/0.4.0/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew - what-ip: - _bin: whatip - _github: false - _gitlab: https://gitlab.gnome.org/GabMus/whatip - flatpak: org.gabmus.whatip - whereami: - _bin: whereami - _desc: "whereami is a command-line tool for macOS that retrieves your current location using Apple's CoreLocation framework. It provides latitude, longitude, and a human-readable address. This tool can be \nuseful for scripting or automation tasks that require location-based information on a macOS system. It's a simple and lightweight utility that can be easily integrated into various workflows. " - _github: https://github.com/rafaelrinaldi/whereami - _name: Where Am I? - _short: "whereami is a command-line tool that displays your current location using Apple's CoreLocation framework. " - npm: "@rafaelrinaldi/whereami" - wifi-password: - _bin: wifi-password - _desc: Get the password of the wifi you're on - _github: https://github.com/rauchg/wifi-password - _name: wifi-password - _short: "wifi-password is a simple command-line tool for retrieving the current WiFi password on macOS. " - bpkg: rauchg/wifi-password - brew:darwin: wifi-password - npm: wifi-password-cli - windows-adk: - _bin: null - _desc: "[Windows ADK](https://www.microsoft.com/en-us/windows-server/windows-admin-center) was unveiled by Microsoft on September 14, 2017 as the necessary evolution of the Windows Server graphical user interface. Windows ADK offers a flexible, locally-deployed, browser-based management platform and tools. The idea behind this project is to help simplify the management of servers by placing a majority of the frequently referenced tools used by system administrators in one spot. You can run it on both Windows 10 and Windows Server." - _docs: https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install - _github: false - _home: https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install - _name: Windows ADK - ansible:windows: professormanhattan.windowsadk - choco: windows-adk - windows-admin-center: - _bin: null - _desc: "[Windows Admin Center](https://www.microsoft.com/en-us/windows-server/windows-admin-center) was unveiled by Microsoft on September 14, 2017 as the necessary evolution of the Windows Server graphical user interface. Windows Admin Center offers a flexible, locally-deployed, browser-based management platform and tools. The idea behind this project is to help simplify the management of servers by placing a majority of the frequently referenced tools used by system administrators in one spot. You can run it on both Windows 10 and Windows Server." - _docs: https://github.com/MicrosoftDocs/windowsserverdocs/blob/main/WindowsServerDocs/manage/windows-admin-center/overview.md - _github: false - _home: https://www.microsoft.com/en-us/windows-server/windows-admin-center - _name: Windows Admin Center - ansible:windows: professormanhattan.windowsadmincenter - choco: windows-admin-center - windows-power-toys: - _bin: null - _desc: "[Microsoft PowerToys](https://docs.microsoft.com/en-us/windows/powertoys/) is a set of utilities for Windows power-users to tune and streamline their Windows 10 experience for greater productivity. It includes tools like a Color Picker, File Explorer add-ons, Keyboard Manager, Shortcut Guide, and more." - _docs: https://learn.microsoft.com/en-us/windows/powertoys/ - _github: https://github.com/microsoft/PowerToys - _home: https://learn.microsoft.com/en-us/windows/powertoys/ - _name: Microsoft PowerToys - _short: "PowerToys is a set of utilities for power users to tune and streamline their Windows experience. " - ansible:windows: professormanhattan.windowspowertoys - choco: powertoys - scoop: powertoys - winrm-cli: - _bin: winrm-cli - _desc: Command-line tool to remotely execute commands on Windows machines through WinRM - _docs: https://github.com/masterzen/winrm-cli - _github: https://github.com/masterzen/winrm-cli - _home: https://github.com/masterzen/winrm-cli - _name: winrm-cli - _short: "winrm-cli is a command-line tool for interacting with Windows Remote Management (WinRM) services. " - go: github.com/masterzen/winrm-cli@latest - yay: winrm-cli-git - winui-gallery: - _desc: "WinUI-Gallery is a repository on GitHub maintained by Microsoft that showcases the capabilities of WinUI, a user interface framework for Windows apps. It contains sample code, demos, and examples to \nhelp developers understand and utilize WinUI features effectively. The gallery provides a visual representation of different UI components and controls available in WinUI, making it a valuable resource \nfor developers looking to create modern and responsive Windows applications. " - _github: https://github.com/microsoft/WinUI-Gallery - _name: WinUI Gallery - _short: "WinUI-Gallery is a showcase of Microsoft's Windows UI Library controls and features for building modern Windows apps. " - winapp: winui-3-gallery/9P3JFPWWDZRC - wipe-modules: - _bin: wipe-modules - _desc: "wipe-modules is a tool available on GitHub at https://github.com/bntzio/wipe-modules. It is designed to help clean up and remove node_modules directories from your projects. This can be useful for \nsaving disk space or starting fresh with dependencies. The tool provides options to selectively remove node_modules directories based on criteria like size, last accessed time, or a combination of both.\nIt's a handy utility for managing dependencies in Node.js projects efficiently. " - _github: https://github.com/bntzio/wipe-modules - _name: wipe-modules - _short: "wipe-modules is a tool that removes all node_modules directories from your project, helping to clean up unnecessary files and save disk space. " - npm: wipe-modules - wireguard-client: - _app: WireGuard.app - _bin: wireguard-client - _deps: - - wireguard-tools - _desc: "The repository https://github.com/WireGuard/wireguard-monolithic-historical contains the historical development of the WireGuard VPN protocol in a monolithic format. It includes the entire history of \nthe project in a single repository, making it easier to track changes and revisions over time. This repository is useful for developers and researchers who want to explore the evolution of WireGuard \nfrom its inception to its current state. " - _github: https://github.com/WireGuard/wireguard-monolithic-historical - _name: WireGuard Client - _short: "WireGuard is a fast, modern VPN that utilizes state-of-the-art cryptography. The repository wireguard-monolithic-historical contains historical snapshots of the WireGuard codebase. " - choco: wireguard - mas: 1451685025 - scoop: wireguard-np - wireguard-tools: - _bin: wg - _desc: "WireGuard Tools Repository \n\nThe WireGuard Tools repository is the official collection of tools for the WireGuard VPN protocol. It includes utilities for configuring and managing WireGuard tunnels on various platforms. The tools \nare designed to be lightweight, secure, and easy to use, making them popular for setting up secure VPN connections. The repository is actively maintained by the WireGuard development team and is open \nsource, allowing users to contribute, report issues, and stay up to date with the latest developments in the WireGuard ecosystem. " - _github: https://github.com/WireGuard/wireguard-tools - _name: WireGuard Tools - _post: > - #!/usr/bin/env bash - - # @file macOS WireGuard Profiles - - # @brief Installs WireGuard VPN profiles on macOS devices - - # @description - - # This script installs WireGuard VPN profiles on macOS. It scans `${XDG_CONFIG_HOME:-$HOME/.config}/vpn` for all the `*.conf` files - - # and then copies those profiles to `/etc/wireguard`. It also performs a couple preparation tasks like ensuring the target - - # WireGuard system configuration file directory exists and is assigned the proper permissions. - - # - - # ## Creating VPN Profiles - - # - - # More details on embedding your VPN profiles into your Install Doctor fork can be found by reading the [Secrets documentation](https://install.doctor/docs/customization/secrets#vpn-profiles). - - # - - # ## TODO - - # - - # * Populate Tunnelblick on macOS using the VPN profiles located in `${XDG_CONFIG_HOME:-$HOME/.config}/vpn` - - # * For the Tunnelblick integration, ensure the username / password is populated from the `OVPN_USERNAME` and `OVPN_PASSWORD` variables - - # - - # ## Links - - # - - # * [VPN profile folder](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/vpn) - - # * [VPN profile documentation](https://install.doctor/docs/customization/secrets#vpn-profiles) - - - # TODO - Populate Tunnelblick on macOS using the .ovpn profiles located in $HOME/.config/vpn (execpt in the `openvpn` entry of software.yml) - - # along with the secrets for the protonVPN OpenVPN (check vpn-linux.tmpl) - - - ### Backs up previous network settings to `/Library/Preferences/com.apple.networkextension.plist.old` before applying new VPN profiles - - if [ -f /Library/Preferences/com.apple.networkextension.plist ] && [ ! -f "/Library/Preferences/com.apple.networkextension.plist.old" ]; then - - logg info 'Backing up /Library/Preferences/com.apple.networkextension.plist to /Library/Preferences/com.apple.networkextension.plist.old' - sudo cp -f /Library/Preferences/com.apple.networkextension.plist /Library/Preferences/com.apple.networkextension.plist.old - else - - logg info 'The /Library/Preferences/com.apple.networkextension.plist does not exist or is already backed up to com.apple.networkextension.plist.old' - fi - - - ### Ensures the `/etc/wireguard` directory exists and has the lowest possible permission-level - - if [ ! -d /etc/wireguard ]; then - - logg info 'Creating /etc/wireguard since it does not exist yet' - sudo mkdir -p /etc/wireguard - sudo chmod 600 /etc/wireguard - fi - - - ### TODO - Should adding the .conf files to /etc/wireguard only be done on macOS or is this useful on Linux as well? - - ### Cycles through the `*.conf` files in `${XDG_CONFIG_HOME:-$HOME/.config}/vpn` and adds them to the `/etc/wireguard` folder - - find "${XDG_CONFIG_HOME:-$HOME/.config}/vpn" -mindepth 1 -maxdepth 1 -type f -name "*.conf" | while read WG_CONF; do - - WG_FILE="$(basename "$WG_CONF")" - logg info 'Adding '"$WG_FILE"' to /etc/wireguard' - sudo cp -f "$WG_CONF" "/etc/wireguard/$WG_FILE" - done - - _short: "WireGuard Tools is a set of utilities for configuring and managing the WireGuard VPN protocol. " - apk: wireguard-tools - apt: wireguard - brew: wireguard-tools - dnf: wireguard-tools - emerge: wireguard-tools - nix: nixpkgs.wireguard-tools - opkg: wireguard - pacman: wireguard-tools - port: wireguard-tools - slackpkg: wireguard-tools - zypper: wireguard-tools - wireshark: - _app: Wireshark.app - _bin: wireshark-gui - _desc: "[Wireshark](https://www.wireshark.org/) is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, the project was renamed Wireshark in May 2006 due to trademark issues." - _docs: https://www.wireshark.org/docs/ - _github: https://github.com/wireshark/wireshark - _home: https://www.wireshark.org/ - _name: Wireshark - _pre:cask: | - #!/usr/bin/env bash - if command -v idl2wrs > /dev/null; then brew uninstall wireshark; fi - _short: "Wireshark is a popular network protocol analyzer used for troubleshooting, analysis, development, and education in the networking field. " - apt: wireshark - cask: wireshark - choco: wireshark - dnf: - - wireshark - - wireshark-cli - flatpak: org.wireshark.Wireshark - pacman: - - wireshark-cli - - wireshark-qt - wishlist: - _bin: wishlist - _desc: TUI for listing definitions defined in the SSH directory - _docs: https://github.com/charmbracelet/wishlist - _github: https://github.com/charmbracelet/wishlist - _home: https://charm.sh - _name: Wishlist - _short: "wishlist is a command-line utility for managing wishlists in a simple and efficient manner. " - brew: charmbracelet/tap/wishlist - nix-env: nixpkgs.wishlist - scoop: wishlist - yay: wishlist-bin - wkhtmltopdf: - _bin: wkhtmltopdf - _desc: "[wkhtmltopdf](https://github.com/wkhtmltopdf/wkhtmltopdf) is a command line tool to render HTML into PDF and various image formats using the QT Webkit rendering engine." - _github: https://github.com/wkhtmltopdf/wkhtmltopdf - _name: wkhtmltopdf - _short: "wkhtmltopdf is a command line tool to convert HTML to PDF using WebKit rendering engine. " - apt: wkhtmltopdf - cask: wkhtmltopdf - choco: wkhtmltopdf - github: github.com/wkhtmltopdf/wkhtmltopdf - pacman: wkhtmltopdf - wordops: - _bin: wo - _desc: Install and manage a high performance WordPress stack with a few keystrokes - _docs: https://docs.wordops.net/ - _github: https://github.com/WordOps/WordOps - _home: https://wordops.net/ - _name: WordOps - _short: "WordOps is a high-performance server stack for WordPress sites, designed to simplify and automate server management tasks. " - script:debian: wget -qO wo wops.cc && sudo bash wo - wordpressify: - _bin: wordpressify - _desc: A build system designed to automate your WordPress development workflow - _docs: https://www.wordpressify.co/docs - _github: https://github.com/luangjokaj/wordpressify - _home: https://www.wordpressify.co/ - _name: wordpressify - _short: "wordpressify is a tool for quickly setting up WordPress development environments. " - npm: wordpressify - wp-cli: - _bin: wp - _desc: "[WP-CLI](https://wp-cli.org/) is the command-line interface for [WordPress](https://wordpress.org/). You can update plugins, configure multisite installations and much more. You can do all this without using a web browser." - _github: https://github.com/wp-cli/wp-cli - _home: https://wp-cli.org/ - _name: WP-CLI - _short: "WP-CLI is a command-line interface for WordPress, allowing users to manage WordPress installations from the terminal. " - ansible:darwin: professormanhattan.wpcli - ansible:linux: professormanhattan.wpcli - brew: wp-cli - wpfui: - _desc: "lepoco/wpfui is a GitHub repository that contains code for a WPF (Windows Presentation Foundation) UI library. It likely includes components, styles, and utilities for building user interfaces in WPF \napplications. The repository may provide pre-built UI elements or templates to help developers create visually appealing and functional interfaces for their WPF projects. It's a resource that can save \ntime and effort in designing and implementing UI elements in WPF applications. " - _github: https://github.com/lepoco/wpfui - _name: WPF UI - _short: "lepoco/wpfui is a repository containing WPF (Windows Presentation Foundation) UI controls for creating desktop applications in C#. " - winapp: wpf-ui/9N9LKV8R9VGM - winget: WPF UI - wrangler: - _bin: wrangler - _desc: wrangler is a CLI tool designed for folks who are interested in using Cloudflare Workers. Deploy serverless code instantly across the globe to give it exceptional performance, reliability, and scale. - _docs: https://developers.cloudflare.com/workers/ - _github: https://github.com/cloudflare/wrangler - _home: https://workers.cloudflare.com/ - _name: wrangler - _short: "Wrangler is a tool for building, deploying, and managing Cloudflare Workers, allowing developers to run their code on Cloudflare's global network. " - brew: cloudflare-wrangler2 - npm: wrangler - wrk: - _bin: wrk - _desc: "[wrk](https://github.com/reconquest/wrk) is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and kqueue" - _docs: https://github.com/blangel/wrk - _github: https://github.com/wg/wrk - _home: https://github.com/blangel/wrk - _name: wrk - _short: "wrk is a modern HTTP benchmarking tool designed for high performance. " - ansible: professormanhattan.wrk - apt: wrk - brew: wrk - pacman: wrk - port: wrk - xbps: wrk - wsl: - _bin: null - _desc: Sets up Windows Subsystem For Linux - _github: false - _name: wsl - ansible: professormanhattan.wsl - x64dbg: - _bin: x64dbg - _desc: An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis. - _docs: https://github.com/x64dbg/x64dbg/wiki - _github: https://github.com/x64dbg/x64dbg - _home: https://x64dbg.com/ - _name: x64dbg - _short: "x64dbg is an open-source debugger for Windows, supporting both x86 and x64 architectures. " - choco: x64dbg.portable - scoop: extras/x64dbg - xcode: - _app: Xcode.app - _bin: xcode - _deps:script:darwin: - - xcodeinstall - _desc: "[Xcode](https://developer.apple.com/xcode/) is Apple's integrated development environment for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS." - _docs: https://developer.apple.com/documentation/xcode - _github: false - _home: https://developer.apple.com/xcode/ - _name: XCode - _post: | - #!/usr/bin/env bash - sudo xcodebuild -license accept && sudo xcodebuild -runFirstLaunch - mas: 497799835 - xcodeinstall: - _bin: xcodeinstall - _desc: "xcodeinstall is a tool available on GitHub at https://github.com/sebsto/xcodeinstall that simplifies the installation and management of Xcode on macOS systems. It allows users to easily download and \ninstall different versions of Xcode from the command line, which can be useful for developers who need to switch between Xcode versions for compatibility testing or other purposes. The tool provides a \nconvenient way to automate the process of managing Xcode installations on macOS systems. " - _github: https://github.com/sebsto/xcodeinstall - _name: Xcode Install - _short: "xcodeinstall is a tool for installing Xcode command line tools and simulators without needing to install the full Xcode IDE. " - brew: sebsto/macos/xcodeinstall - xcodes: - _bin: xcodes - _desc: CLI utility to download, install, and switch to alternate versions of Xcode - _docs: https://github.com/XcodesOrg/xcodes - _github: https://github.com/XcodesOrg/xcodes - _home: https://github.com/XcodesOrg/xcodes - _name: Xcodes - _short: "Xcodes is a tool that simplifies the installation and management of Xcode versions on macOS systems. " - brew:darwin: xcodesorg/made/xcodes - xcodes-app: - _app: Xcodes.app - _bin: null - _desc: macOS desktop app that allows you to download, install, and switch to alternate versions of Xcode - _docs: https://github.com/XcodesOrg/XcodesApp - _github: https://github.com/XcodesOrg/XcodesApp - _home: https://github.com/XcodesOrg/XcodesApp - _name: Xcodes App - _short: "XcodesApp is a GitHub repository for XcodesOrg, likely related to Xcode development tools for MacOS/iOS. " - cask: xcodes - xcpretty: - _bin: xcpretty - _desc: "xcpretty is a fast and flexible tool for formatting Xcode build output. It processes the output of xcodebuild and makes it more readable by colorizing and formatting it. This tool helps developers to \neasily spot warnings, errors, and other important information during the build process. It can be integrated into Continuous Integration systems to improve the visibility of build logs. Additionally, \nxcpretty supports plugins for further customization. Overall, xcpretty enhances the developer experience by providing a cleaner and more organized build output. " - _github: https://github.com/xcpretty/xcpretty - _name: xcpretty - _short: "xcpretty is a fast and flexible tool for formatting Xcode build output. " - gem:darwin: xcpretty - xdotool: - _bin: xdotool - _desc: "xdotool is a command-line tool for simulating keyboard input and mouse activity. It allows you to automate tasks by sending keystrokes, mouse clicks, and window manipulation commands. This tool is \nuseful for scripting repetitive tasks, creating macros, or controlling GUI applications from the command line. It can be particularly handy for automating interactions with graphical user interfaces on \nLinux systems. You can find more information and usage examples on its GitHub page: xdotool on GitHub. " - _github: https://github.com/jordansissel/xdotool - _name: xdotool - _post:brew:darwin: | - #!/usr/bin/env bash - defaults write org.x.X11 enable_test_extensions -boolean true - _short: "xdotool is a command-line tool for simulating keyboard input and mouse activity. " - apt: xdotool - brew: xdotool - dnf: xdotool - pacman: xdotool - pkg-freebsd: xdotool - port: xdotool - zypper: xdotool - xh: - _bin: xh - _desc: "xh is a command-line HTTP client written in Rust. It aims to be a more user-friendly alternative to curl and HTTPie. It supports features like syntax highlighting, JSON/XML parsing, and interactive \nmode. It is designed to be fast, lightweight, and easy to use for making HTTP requests and inspecting responses. The project is hosted on GitHub at https://github.com/ducaale/xh for further exploration \nand contribution. " - _github: https://github.com/ducaale/xh - _name: XH - _short: "xh is a fast and friendly tool for sending HTTP requests from the command line. " - apk: xh - apt: xh - brew: xh - cargo: xh - choco: xh - nix-env: nixpkgs.xh - pacman: xh - pkg-android: xh - pkg-freebsd: xh - scoop: xh - xhyve: - _bin: xhyve - _desc: "xhyve is a lightweight virtualization solution for macOS based on the Hypervisor.framework. It allows you to run Linux and other operating systems on a macOS host without the need for a full-fledged \nvirtual machine software like VirtualBox or VMware. xhyve provides a simple command-line interface for managing virtual machines and supports features like networking, file sharing, and snapshots. It is\ncommonly used by developers and system administrators for testing and development purposes. " - _github: https://github.com/machyve/xhyve - _name: xhyve - _notes: Has not been modified for several years and has been disabled on Homebrew - _short: "xhyve is a lightweight virtualization solution for macOS, allowing users to run Linux and other operating systems on their Mac machines. " - brew:darwin: xhyve - port: xhyve - xpanes: - _bin: xpanes - _desc: "tmux-xpanes is a tool that allows you to open multiple panes in a tmux window and send the same input to all of them simultaneously. It's useful for tasks like running the same command across multiple \nservers or monitoring multiple log files at once. With tmux-xpanes, you can easily create and manage layouts of tmux panes, making it a handy tool for improving productivity when working in terminal \nenvironments. " - _github: https://github.com/greymd/tmux-xpanes - _name: xpanes - _short: "tmux-xpanes is a Tmux plugin that allows you to create multiple panes in Tmux easily. " - apt: https://github.com/greymd/tmux-xpanes/releases/download/v4.1.4/tmux-xpanes_v4.1.4.deb - brew: tmux-xpanes - dnf: xpanes - script: curl -sSL --compressed https://raw.githubusercontent.com/greymd/tmux-xpanes/v4.1.4/bin/xpanes > /tmp/xpanes && sudo mv /tmp/xpanes /usr/local/bin/xpanes - xpra: - _app: Xpra.app - _bin: xpra - _desc: "Xpra is an open-source tool for remote desktop access, allowing users to run applications on a remote machine and display them on their local machine. It provides features like seamless windows, session\nsuspension, and more. Xpra supports various platforms and protocols, making it versatile for different use cases. The project is actively maintained on GitHub at https://github.com/Xpra-org/xpra, where \nusers can find the source code, documentation, and community support. " - _github: https://github.com/Xpra-org/xpra - _name: xpra - _short: "xpra is a tool for screen sharing and remote desktop control. " - cask: xpra - choco: xpra - exe: https://xpra.org/dists/windows/Xpra-x86_64_Setup.exe - flatpak: org.xpra.xpra - msi: https://xpra.org/dists/windows/Xpra-x86_64.msi - xrdp: - _bin: xrdp - _desc: "xrdp is an open-source remote desktop protocol (RDP) server that allows users to connect to a Linux machine using a Windows Remote Desktop client. It provides a graphical interface for remote access, \nenabling users to interact with their Linux system as if they were physically present. xrdp is commonly used for remote administration, accessing graphical applications, and desktop sharing. It is \ncompatible with various Linux distributions and offers features like session management, encryption, and customizability. The project is actively maintained by neutrinolabs on GitHub. " - _github: https://github.com/neutrinolabs/xrdp - _home: http://www.xrdp.org/ - _name: xrdp - _note: Should work like professormanhattan.remotedesktop - _ports: - - port: 3389 - proto: tcp - _post: | - #!/usr/bin/env bash - sudo adduser xrdp ssl-cert - _service: xrdp - _service:yay: - - xrdp - - xrdp-sesman - _short: "xrdp is an open-source remote desktop protocol (RDP) server for Linux. " - apt: xrdp - dnf: xrdp - pacman: xrdp - yay: xrdp - zypper: xrdp - xsv: - _bin: xsv - _desc: "xsv is a fast CSV command line toolkit written in Rust by BurntSushi. It allows for indexing, slicing, analyzing, splitting, and joining CSV files. With xsv, you can perform various operations on CSV \ndata efficiently from the command line. It is designed to handle large CSV files quickly and is useful for tasks like data cleaning, transformation, and analysis. The tool provides a range of commands \nfor working with CSV data, making it a handy utility for anyone working with CSV files in their workflow. " - _github: https://github.com/BurntSushi/xsv - _name: xsv - _short: "xsv is a fast CSV command line toolkit written in Rust. " - brew: xsv - cargo: xsv - nix-env: xsv - port: xsv - xurls: - _bin: xurls - _desc: Extract urls from text - _github: https://github.com/mvdan/xurls - _name: xurls - _short: "xurls is a Go library for extracting URLs from text. " - brew: xurls - go: mvdan.cc/xurls/v2/cmd/xurls@latest - xxh: - _bin: xxh - _desc: "xxh is a tool that allows you to bring your favorite shell to any host. It enables you to use your shell configurations, plugins, and aliases on remote machines without any dependencies on the remote \nhost. With xxh, you can easily connect to a remote host, run your shell, and have all your familiar settings available. It supports various shells like zsh, bash, fish, and more. This tool simplifies \nthe process of working on different machines by providing a consistent shell environment across all your connections. " - _github: https://github.com/xxh/xxh - _name: xxh - _short: "xxh is a tool for shell users to bring their favorite shell with them to any host. " - brew: xxh - pipx: xxh-xxh - port: xxh - xz: - _bin: xz - _desc: "xz is a compression utility that provides high compression ratios and fast decompression. It supports various compression formats like LZMA and LZMA2, and it can compress single files or whole \ndirectories. The utility is commonly used to compress files for distribution or archival purposes. It is open-source and available on GitHub at https://github.com/xz-mirror/xz for users to download, \ncontribute, or report issues. " - _github: https://github.com/xz-mirror/xz - _name: xz - _short: "xz is a compression utility that provides high compression ratios and fast decompression. " - apk: xz - apt: xz - brew: xz - choco: xz - dnf: xz - pacman: xz - port: xz - scoop: xz - yamllint: - _bin: yamllint - _desc: A linter for YAML files. yamllint does not only check for syntax validity, but also for weirdnesses like key repetition and cosmetic problems such as lines length, trailing spaces, indentation, etc. - _github: https://github.com/adrienverge/yamllint - _name: yamllint - _service: null - _short: "yamllint is a tool for checking YAML files for syntax errors and adherence to best practices. " - brew: yamllint - pipx: yamllint - yank: - _bin: yank - _bin:apt: yank-cli - _desc: "[yank](https://github.com/mptre/yank) is a terminal agnostic solution which allows copying output from Termial easily, without the need to use Terminal multiplexers." - _github: https://github.com/mptre/yank - _name: yank - _short: "Yank is a tool that allows you to copy text from your terminal to your clipboard. " - ansible: professormanhattan.yank - apt: yank - brew: yank - choco: win32yank - dnf: yank - nix: yank - pacman: yank - pkg-freebsd: yank - pkg_add: yank - port: yank - scoop: win32yank - zypper: yank - yapf: - _bin: yapf - _desc: A formatter for Python files maintained by Google - _docs: false - _github: https://github.com/google/yapf - _home: false - _name: YAPF - _short: "YAPF is a Python formatter that automatically formats code to adhere to the PEP 8 style guide. " - pipx: yapf - yarn: - _bin: yarn - _desc: "[Yarn](https://yarnpkg.com/) is a relatively new and open source JavaScript package manager developed by Facebook. Yarn is fully compatible with the npm registry (i.e. [npmjs.com](https://www.npmjs.com/)) and can work alongside npm, but it's aim it to be a safer, more secure and more reliable alternative." - _docs: https://yarnpkg.com/getting-started - _github: https://github.com/yarnpkg/berry - _home: https://yarnpkg.com/ - _name: Yarn - _preload: true - _short: "Yarn Berry is a next-generation package manager for JavaScript that aims to improve performance and reliability. " - ansible: professormanhattan.yarn - brew: yarn - choco: yarn - npm: yarn - pacman: yarn - port: yarn - scoop: yarn - script: curl -o- -L https://yarnpkg.com/install.sh | bash - yarnhook: - _bin: yarnhook - _desc: yarnhook keeps your node_modules up-to-date when your yarn.lock, package-lock.json or shrinkwrap.yaml changes due to git operations like checkout, merge, rebase, pull etc. - _github: https://github.com/frontsideair/yarnhook - _name: Yarnhook - _short: "yarnhook is a GitHub repository that contains a tool for managing Yarn package dependencies in a project. " - npm: yarnhook - yj: - _bin: yj - _desc: CLI program that allows you to convert between YAML, TOML, JSON, and HCL. - _docker: docker run sclevine/yj - _docs: https://github.com/sclevine/yj - _github: https://github.com/sclevine/yj - _home: https://github.com/sclevine/yj - _name: YJ - _short: "yj is a command-line tool for parsing and manipulating YAML and JSON data easily. " - brew: yj - go: github.com/sclevine/yj/v5@v5.1.0 - you-get: - _bin: you-get - _desc: "You-Get is a command-line tool that allows users to download media content from various websites like YouTube, Vimeo, and others. It supports downloading videos, audio, and images by simply providing \nthe URL of the content. You-Get is written in Python and is open-source, making it easy to customize and extend its functionality. It is a handy tool for users who prefer downloading media content for \noffline viewing or archiving purposes. " - _github: https://github.com/soimort/you-get - _name: You-Get - _short: "you-get is a command-line tool that downloads media content from the web, supporting various websites like YouTube, Vimeo, and more. " - brew: you-get - pipx: you-get - pkg-freebsd: you-get - youtube-dl: - _bin: youtube-dl - _desc: "[youtube-dl](https://github.com/ytdl-org/youtube-dl) is an open-source download manager for video and audio from YouTube and over 1000 other video hosting websites. It is released under the Unlicense software license and is one of the most popular projects on GitHub." - _docs: https://github.com/ytdl-org/youtube-dl/blob/master/README.md#readme - _github: https://github.com/ytdl-org/youtube-dl - _home: https://youtube-dl.org/ - _name: youtube-dl - _short: "youtube-dl is a command-line tool for downloading videos from YouTube and other websites. " - ansible: professormanhattan.youtubedl - brew: youtube-dl - pipx: youtube-dl - port: youtube-dl - youtube-music: - _app: YouTube Music.app - _desc: YouTube Music desktop app bundled with custom plugins (and built-in ad blocker / downloader) - _github: https://github.com/th-ch/youtube-music - _home: https://th-ch.github.io/youtube-music/ - _name: "youtube-music " - _short: "youtube-music is a command-line tool for downloading music from YouTube. " - _todo: Might have to add _post cask xattr -cr /Applications/YouTube\ Music.app to fix permissions - 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 - exe: https://github.com/th-ch/youtube-music/releases/download/v1.19.0/YouTube-Music-Setup-1.19.0.exe - scoop: extras/youtube-music - script:darwin: > - DL_URL="https://github.com/th-ch/youtube-music/releases/download/v1.20.0/YouTube-Music-1.20.0.dmg" - - if [ $(arch) = 'arm64' ]; then - - DL_URL="https://github.com/th-ch/youtube-music/releases/download/v1.20.0/YouTube-Music-1.20.0-arm64.dmg" - fi - - echo "Downloading YouTube Music" && curl -sSL "$DL_URL" > /tmp/YouTube-Music.dmg - - echo "Attaching volume" && sudo hdiutil attach /tmp/YouTube-Music.dmg - - echo "Copying to /Applications" - - if [ -d "/Volumes/YouTube Music 1.20.0" ]; then - - sudo cp -R "/Volumes/YouTube Music 1.20.0/YouTube Music.app" /Applications - echo "Detaching" && sudo hdiutil detach "/Volumes/YouTube Music 1.20.0" - elif [ -d "/Volumes/YouTube Music 1.20.0-arm64" ]; then - - sudo cp -R "/Volumes/YouTube Music 1.20.0-arm64/YouTube Music.app" /Applications - echo "Detaching" && sudo hdiutil detach "/Volumes/YouTube Music 1.20.0-arm64" - fi - - echo "Removing /tmp/YouTube-Music.dmg" && rm -f /tmp/YouTube-Music.dmg - - winget: th-ch.YouTubeMusic - yay: youtube-music-bin - yq: - _bin: yq - _desc: "[yq](https://github.com/mikefarah/yq) is a free, open-source command-line YAML processor. It aims to be like [jq](https://gitlab.com/megabyte-labs/ansible-roles/jq) except for YAML files. It can read and write values to YAML files." - _docs: https://mikefarah.gitbook.io/yq/how-it-works - _github: https://github.com/mikefarah/yq - _home: https://mikefarah.gitbook.io/yq/ - _name: yq - _preload: true - _short: "yq is a lightweight and portable command-line YAML processor. " - ansible: professormanhattan.yq - apk: yq - brew: yq - choco: yq - github: github.com/stedolan/jq - go: github.com/mikefarah/yq/v4@latest - snap: yq - yt-dlp: - _bin: yt-dlp - _desc: "To install yt-dlp, a fork of youtube-dl, you can follow these steps: \n\n 1 Clone the Repository: Use git clone https://github.com/yt-dlp/yt-dlp.git to download the repository. \n 2 Navigate to the Directory: Move into the yt-dlp directory using cd yt-dlp. \n 3 Install yt-dlp: Run sudo python3 setup.py install to install yt-dlp system-wide. \n 4 Verify Installation: To confirm the installation, run yt-dlp --version. \n\nThese steps will help you install yt-dlp on your system. " - _github: https://github.com/yt-dlp/yt-dlp/wiki/Installation - _name: YouTube Download - _short: "To install yt-dlp, visit the GitHub page and follow the installation instructions provided in the wiki section. " - brew: yt-dlp - choco: yt-dlp - pacman: yt-dlp - pipx: yt-dlp - port: yt-dlp - scoop: yt-dlp - winget: yt-dlp - yubikey-agent: - _bin: yubikey-agent - _desc: "YubiKey Agent is a project on GitHub created by Filippo Valsorda. It is a seamless way to use a YubiKey for SSH authentication without the need for manually handling keys. The agent acts as a bridge \nbetween your YubiKey and SSH, providing a secure and convenient method for authentication. It supports multiple YubiKeys and can be integrated into your existing SSH setup easily. The project is \nactively maintained and is a popular choice for enhancing SSH security with YubiKeys. " - _docs: https://github.com/FiloSottile/yubikey-agent - _github: https://github.com/FiloSottile/yubikey-agent - _home: https://github.com/FiloSottile/yubikey-agent - _name: OpenSSL - _service: yubikey-agent - _short: "yubikey-agent is a minimalistic PIV/GPG agent for YubiKeys on macOS. " - _todo: Experiment with this to see if it is worthwhile adding to the stack - brew: yubikey-agent - yubikey-authenticator: - _app: Yubico Authenticator.app - _bin: yubioath - _desc: "Yubioath-flutter is a Flutter plugin developed by Yubico that allows developers to integrate Yubico's OATH functionality into their Flutter applications. This plugin enables two-factor authentication \nusing OATH TOTP and HOTP algorithms, making it easier to secure user accounts in Flutter apps. It provides features like adding, deleting, and generating OATH credentials, as well as verifying OATH \ncodes. Developers can leverage this plugin to enhance the security of their Flutter applications by incorporating Yubico's OATH functionality seamlessly. " - _docs: The Yubico Authenticator app works across Windows, macOS, Linux, iOS and Android. Get the same set of codes across all Yubico Authenticator apps for desktops as well as for all leading mobile platforms. Portable credentials across devices. - _github: https://github.com/Yubico/yubioath-flutter - _home: https://www.yubico.com/products/yubico-authenticator/ - _name: Yubico Authenticator - _short: "yubioath-flutter is a Flutter plugin for Yubico's OATH functionality, allowing integration of two-factor authentication into Flutter apps. " - cask: yubico-authenticator - choco: yubico-authenticator - flatpak: com.yubico.yubioath - mas: 1497506650 - 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" - yubikey-manager: - _bin: ykman - _desc: Use the YubiKey Manager to configure FIDO2, OTP and PIV functionality on your YubiKey on Windows, macOS, and Linux operating systems. - _github: https://github.com/Yubico/yubikey-manager - _home: https://www.yubico.com/support/download/yubikey-manager/ - _name: Yubikey Manager - _short: "YubiKey Manager is a tool for configuring and managing YubiKeys, which are hardware security keys used for two-factor authentication. " - brew: ykman - dnf:fedora: yubikey-manager - pacman: yubikey-manager - pipx: yubikey-manager - yubikey-manager-qt: - _app: YubiKey Manager.app - _bin: yubikey-manager-qt - _desc: Cross-platform application for configuring any YubiKey over all USB interfaces. - _github: https://github.com/Yubico/yubikey-manager-qt - _home: https://developers.yubico.com/yubikey-manager-qt/ - _name: YubiKey Manager - _short: "YubiKey Manager Qt is a graphical user interface for configuring YubiKeys, developed by Yubico. " - appimage: Yubico/yubikey-manager-qt - cask: yubico-yubikey-manager - choco: yubikey-manager - dnf:fedora: yubikey-manager-qt - pacman: yubikey-manager-qt - scoop: yubikey-manager-qt - zap: - _bin: zap - _desc: Delightful AppImage package manager - _docs: https://zap.srev.in/ - _github: https://github.com/srevinsaju/zap - _home: https://zap.srev.in/ - _name: Zap - _preload: true - _short: "Zap is a fast and lightweight cross-platform package manager for macOS. " - ansible:linux: professormanhattan.zap - binary:linux: https://github.com/srevinsaju/zap/releases/download/continuous/zap-amd64 - script:linux: curl https://raw.githubusercontent.com/srevinsaju/zap/main/install.sh | sudo bash -s - zaproxy: - _app: ZAP.app - _bin: zaproxy - _desc: The world’s most widely used web app scanner. Free and open source. Actively maintained by a dedicated international team of volunteers. A GitHub Top 1000 project. - _docs: https://www.zaproxy.org/docs/ - _github: https://github.com/zaproxy/zaproxy - _home: https://www.zaproxy.org/ - _name: OWASP ZAP - _short: "ZAP (Zed Attack Proxy) is an open-source web application security scanner used for finding vulnerabilities in web applications. " - cask: zap - choco: zap - flatpak: org.zaproxy.ZAP - pkg-freebsd: zaproxy - scoop: zaproxy - snap: zaproxy --classic - zenity: - _bin: zenity - _desc: "Zenity is a program that allows you to create simple graphical user interfaces (GUIs) for shell scripts using GTK. It provides a set of dialog boxes for various purposes like displaying information, \nasking for user input, or showing progress. Zenity is often used in shell scripts to enhance user interaction and make scripts more user-friendly. It is a handy tool for creating basic GUI elements \nwithout the need for a full-fledged GUI framework. You can find more information and examples on its GitHub page: Zenity GitHub Repository. " - _github: https://github.com/ncruces/zenity - _name: Zenity - _short: "Zenity is a program that allows you to create simple graphical user interfaces for shell scripts in Linux. " - brew: ncruces/tap/zenity - go: github.com/ncruces/zenity/cmd/zenity@latest - scoop: https://ncruces.github.io/scoop/zenity.json - zola: - _bin: zola - _desc: A static site generator built with Rust - _github: https://github.com/getzola/zola - _name: "Zola " - _short: "Zola is a fast static site generator written in Rust. " - apk: zola - brew: zola - choco: zola - flatpak: org.getzola.zola - pacman: zola - pkg-freebsd: zola - pkg_add: zola - pkgin: zola - port: zola - scoop: zola - snap: zola - xbps: zola - zoom: - _app: zoom.us.app - _bin: zoom - _desc: "[Zoom](https://zoom.us/) is a videotelephony software program developed by Zoom Video Communications. This role installs Zoom on nearly any platform. The Zoom free plan provides a video chatting service that allows up to 100 participants concurrently, with a 40-minute time restriction." - _docs: https://support.zoom.us/hc/en-us/categories/200101697-Getting-Started-with-Zoom - _github: Not open-source - _home: https://zoom.us/ - _name: Zoom - _short: "$'Not open-source' is a string enclosed in single quotes preceded by a dollar sign and is a way to represent special characters in zsh shell. " - ansible: professormanhattan.zoom - cask: zoom - choco: zoom - flatpak: us.zoom.Zoom - snap: zoom - yay: zoom - zoxide: - _bin: zoxide - _desc: "[zoxide](https://github.com/ajeetdsouza/zoxide) is a blazing fast replacement for your cd command, inspired by z and autojump" - _github: https://github.com/ajeetdsouza/zoxide - _name: zoxide - _preload: true - _short: "zoxide is a blazing fast replacement for cd, allowing you to navigate your filesystem with ease using fuzzy matching and tracking your most used directories. " - ansible: professormanhattan.zoxide - brew: zoxide - zsh: - _bin: zsh - _desc: "[Oh My Zsh](https://ohmyz.sh/) is a delightful, open source, community-driven framework for managing your Zsh configurations. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout oh my zsh! This role also installs some CLI tools that accompany Oh My Zsh! to make it even more amazing." - _github: https://github.com/zsh-users/zsh - _name: Zsh - _preload: true - _short: "zsh is a powerful shell for Unix-like operating systems, offering advanced features and customization options for command-line users. " - ansible:darwin: professormanhattan.zsh - ansible:linux: professormanhattan.zsh - apt: zsh - brew: zsh - dnf: zsh - pacman: zsh - port: zsh - zsh-completions: - _desc: "zsh-completions is a repository on GitHub maintained by the zsh-users organization. It provides a collection of completion scripts for various commands and utilities to enhance auto-completion \ncapabilities in the zsh shell. These completion scripts help users by suggesting and completing command options, arguments, and file paths as they type commands in the terminal. The repository is \nregularly updated to support new commands and improve existing completions, making it a valuable resource for zsh users looking to streamline their command-line experience. " - _github: https://github.com/zsh-users/zsh-completions - _name: ZSH Completions - _short: "zsh-completions is a repository that provides additional completion definitions for the Zsh shell, enhancing auto-completion capabilities for various commands and utilities. " - brew: zsh-completions - zx: - _bin: zx - _desc: Bash is great, but when it comes to writing more complex scripts, many people prefer a more convenient programming language. JavaScript is a perfect choice, but the Node.js standard library requires additional hassle before using. The zx package provides useful wrappers around child_process, escapes arguments and gives sensible defaults. - _github: https://github.com/google/zx - _name: zx - _preload: true - _short: "ZX is a tool for writing better scripts with JavaScript on macOS and Linux. " - brew: zx - npm: zx