--- # eslint-disable eslint-comments/disable-enable-pair, max-len, max-lines, no-warning-comments # # `softwarePackages` is a map of possible package managers to use while installing a program. The installer will # look at the `installerPreference` variable and find the first package manager that is in the package's possible # installation method and then use that. It is also sensitive to the type of operating system so a package with # only `apt` defined will not install on macOS. # # Everything should be fairly straight forward. Take a look at the `installerPreference` for a list of package managers. If a package # has dependencies, the dependencies are defined under the `_deps` key. All of the `_deps` should also be defined in the # `softwarePackages` map. The installer will check for the presence of the package's key in the PATH. If the package's key # does not match the executable's name, then the `_bin` key can be defined so that the installer will look at that instead. # # Full example of a softwarePackage: # altair: # _appimageName: SwitchHosts.AppImage # Name of file that the appimage: field downloads to # _bin: ng # Instead of checking if the object key (altair) is in the PATH, check if "ng" is in the PATH and only proceed if it is not available # _deps: # Any piece of data can be a string or array. _deps will take each dep and run that through the installer first. If you need to just install dependencies with apt (for instance), you can also set the _deps equals to [altair:deps] and then define the apt dependencies like that instead of creating a new entry for each apt dependency. # - angular-cli # _docker: docker run --rm bannmann/docker-cheat # Command that the _bin value should alias to (similar to Whalebrew) # _groups: # Groups that should be created / user added to # - docker # _when: | # Run the script defined with _when and only proceed if it exits with a 0 # test -f /usr # _pre: | # echo "_pre allows you to define a script that runs before the installation" # _post:brew:debian: | # echo "_post allows you to define a script that runs after the installation" # _service: smbd # System service to enable, restart, and/or start (can also be an array). # _restricted: true # True if it should be skipped on a restricted machine (i.e. a work machine). # _epel: true # True if https://docs.fedoraproject.org/en-US/epel/ should be enabled # ansible: professormanhattan.docker # apk: altair # appimage: https://developers.yubico.com/yubikey-manager-qt/Releases/yubikey-manager-qt-1.2.4b-linux.AppImage # appinstaller: https://example.com/package.appinstaller # TODO - https://pieces.app has example of this type of file # basher: xwmx/nb # binary:darwin: https://dl.min.io/client/mc/release/darwin/mc # Any piece of data can have the OS type (darwin, linux, windows) or release ID (arch, debian, ubuntu, centos, fedora) added to the end. The script will try to execute it first before trying to run other items. # binary:linux: https://dl.min.io/client/mc/release/linux-amd64/mc # binary:windows: https://dl.min.io/client/mc/release/windows-amd64/mc.exe # bpkg: xwmx/nb # brew: altair # cargo: tree-sitter-cli # cask: altair-graphql-client # crew: altair # choco: altair-graphql # _rpmFusion: true # Enable the RPM Fusion Free repository if true # dnf: altair # flatpak: com.yubico.yubioath # gem: altair # go: github.com/ProfessorManhattan/blockinfile@latest # krew: # - ctx # - ns # nix: emplace # npm: altair # pacman: altair # pipx: altair # pkg-darwin: https://google.com/macos-pkgfile.pkg # pkg-freebsd: altair # pkg-termux: altair # port: altair # scoop: altair # script >- # curl -sS https://getcomposer.org/installer | php # sudo mv composer.phar /usr/local/bin/composer # sudo chmod +x /usr/local/bin/composer # _snapClassic: true # Install the snap in classic mode # snap: altair # whalebrew: # winget: Neovim.Neovim # xbps: altair # yay: altair # zypper: altair # angular-cli: # _bin: ng # Only install if "ng" is not available in the PATH # _name: Gitify # Pretty name of the package # _home: https://angular.io/ # Homepage if there is one # _desc: GitHub notifications on the menu bar # Short description of the package # _docs: https://docs.angular.io/ # Link to documentation (if available) # _github: https://github.com/manosim/gitify # GitHub link to the package # _type: menubar # Type of package (either application, cli, webapp, or menubar) # npm: # - '@angular/cli' # - gulp installerPreference: apt: - flatpak - snap - whalebrew - apt - brew - go - cargo - npm - pipx - pip - gem - appimage - script - ansible - binary darwin: - whalebrew - cask - brew # Removed because port installation from default list because encountered this error: Creating user "macports" make: *** [install] Killed: 9 --- might be due to remote managed macOS settings. # - port - go - cargo - npm - pipx - pip - gem - pkg-darwin - script - ansible - binary dnf: - flatpak - snap - whalebrew - dnf - brew - go - cargo - npm - pipx - pip - gem - appimage - script - ansible - binary freebsd: - pkg - go - cargo - npm - gem - script pacman: - flatpak - snap - whalebrew - pacman - brew - yay - go - cargo - npm - pipx - pip - gem - appimage - script - ansible - binary ubuntu: - snap - flatpak - whalebrew - apt - brew - go - cargo - npm - pipx - pip - gem - appimage - script - ansible - binary windows: - choco - scoop - winget - go - cargo - npm - pipx - gem - script - ansible - binary zypper: - flatpak - snap - whalebrew - zypper - brew - go - cargo - npm - pipx - gem - appimage - script - ansible - binary softwarePackages: _envchain:deps: _github: false apt: - gnome-keyring - gcc - gnome-keyring - libsecret-1-dev - make - libreadline-dev dnf: - gcc - gnome-keyring - libsecret-devel - make - readline-devel pacman: - gcc - gnome-keyring - libsecret - make - readline _kde: _github: false _deps: - kde-plasma-desktop _misc-flatpaks: _github: false _deps: - bottles - cockpit-client - connections - dconf-editor - deja-dup - dialect - drawing - flatseal - forklift - gnome-calendar - gnome-document-viewer - gnome-extension-manager - gnome-eyedropper - gnome-file-roller - gnome-image-viewer - gnome-network-displays - gnome-passwords-keys - gnome-photos - gnome-sound-recorder # OSes usually have a text editor preinstalled # - gnome-text-editor - gnome-video-player - gnome-weather - junction - kooha - newsflash - pinapp - vup - warp-transfer - web-font-generator - what-ip - live-captions - libre-menu-editor - iso-image-writer - trayscale _nautilus-extensions: _github: false _deps: - nautilus-brasero - nautilus-gtkhash - nautilus-gsconnect - nautilus-image-converter - nautilus-python - nautilus-seahorse - nautilus-search-tool - nautilus-share - nautilus-wipe ack: _bin: ack _github: https://github.com/beyondgrep/ack3 _name: Ack apt: ack brew: ack choco: ack dnf: ack pacman: ack port: perl/p5-app-ack act: _bin: act _desc: '[Act](https://github.com/nektos/act) Run GitHub actions locally' _docs: https://github.com/nektos/act#example-commands _github: https://github.com/nektos/act _home: https://github.com/nektos/act _name: Act brew: act choco: act-cli go: github.com/nektos/act@ nix: nixpkgs.act port: act scoop: act yay: act adobe-creative-cloud: _bin: adobe-creative-cloud _name: Adobe Creative Cloud _github: false _when:cask: '! test -d "/Applications/Adobe Creative Cloud" && ! test -d "$HOME/Applications/Adobe Creative Cloud"' cask: adobe-creative-cloud ai-shell: _bin: ai _github: https://github.com/BuilderIO/ai-shell _name: AI Shell npm: '@builder.io/ai-shell' aiac: _bin: aiac _github: https://github.com/gofireflyio/aiac _name: AIAC brew: gofireflyio/aiac/aiac go: github.com/gofireflyio/aiac/v3@latest aicommits: _bin: aicommits _github: https://github.com/Nutlope/aicommits _name: AI Commits brew: aicommits npm: aicommits aider: _bin: aider _github: https://github.com/paul-gauthier/aider _name: Aider AI Chat pipx: aider-chat aifiles: _bin: aifiles _deps: - pandoc - exiftool - poppler - csvkit _github: https://github.com/jjuliano/aifiles _name: AI Files _todo: Implement this when XDG spec is supported so we can store configs in ~/.config npm: aifiles airdrop-cli: _bin: airdrop _github: https://github.com/vldmrkl/airdrop-cli _name: Airdrop CLI brew:darwin: vldmrkl/formulae/airdrop-cli airtame: _app: Airtame.app _bin: airtame _github: false _name: Airtame cask: airtame choco: airtame flatpak: com.airtame.Client snap: airtame-application alda: _bin: alda _github: https://github.com/alda-lang/alda _name: Alda brew: alda allure: _bin: allure _desc: '[Allure Report](https://docs.qameta.io/allure-testops/) is a flexible, lightweight multi-language test reporting tool. It provides clear graphical reports and allows everyone involved in the development process to extract the maximum of information from the everyday testing process.' _docs: https://docs.qameta.io/allure-report/ _github: https://github.com/allure-framework/allure2 _home: https://docs.qameta.io/allure-testops/ _name: Allure _post:binary:darwin: | #!/usr/bin/env bash echo "TODO" _post:binary:linux: | #!/usr/bin/env bash # TODO How to pass the path of the file downloaded in `binary` step? That can replace the `wget` command below mkdir -p /usr/local/share/allure cd /usr/local/share/allure wget https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.20.1/allure-commandline-2.20.1.zip -O /usr/local/share/allure/allure.zip unzip -o allure.zip ln -s /usr/local/share/allure/allure/bin/allure _post:binary:windows: | # TODO binary: https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.20.1/allure-commandline-2.20.1.zip # TODO: Find latest version from https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/maven-metadata.xml and use it in the _binary_ URL brew: allure scoop: allure yay: allure alt-tab: _app: AltTab.app _bin: alt-tab _github: https://github.com/lwouis/alt-tab-macos _name: Alt+Tab for macOS that works like alt+tab on Windows cask: alt-tab altair: _app: Altair GraphQL Client.app _bin:snap: altair _desc: '[Altair GraphQL Client](https://altairgraphql.dev/) A beautiful feature-rich GraphQL Client for all platforms.' _docs: https://altairgraphql.dev/docs/ _env: ALTAIR_APPDATA: cask: "$HOME/Library/Application Support/Altair GraphQL Client" choco: "TODO" snap: "$HOME/snap/altair/current/.config/Altair GraphQL Client" _github: https://github.com/altair-graphql/altair _home: https://altairgraphql.dev/ _name: Altair GraphQL Client cask: altair-graphql-client choco: altair-graphql snap: altair yay: altair amethyst: _app: Amethyst.app _bin: amethyst _github: https://github.com/ianyh/Amethyst _name: Amethyst cask: amethyst android-commandlinetools: _bin: false _deps: - java _github: false _name: Android Studio Command Line Tools _when:cask: '! test -d "${HOMEBREW_PREFIX:-/opt/homebrew}/share/android-commandlinetools"' cask: android-commandlinetools android-platform-tools: _bin: adb _github: false _name: Android Platform Tools cask: android-platform-tools android-studio: _app: Android Studio.app _github: false _bin: android-studio _deps: - android-commandlinetools - java _desc: >- [Android Studio](https://developer.android.com/studio) is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. This role installs Android Studio on nearly any operating system and also ensures a configurable list of command-line tools and SDKs are installed and seamlessly integrated with the system (i.e. the role adds the appropriate items to the `PATH` environment variable). _docs: https://developer.android.com/docs _env: ANDROID_STUDIO_APPDATA: cask: "TODO" choco: "TODO" flatpak: "TODO" snap: "TODO" _home: https://developer.android.com/studio _name: Android Studio cask: android-studio choco: androidstudio flatpak: com.google.AndroidStudio snap: android-studio yay: android-studio angular-cli: _bin: ng _desc: '[Angular](https://angular.io) The web development framework for building the future' _docs: https://angular.io/docs _github: https://github.com/angular/angular _home: https://angular.io _name: Angular brew: angular-cli npm: '@angular/cli' ansible: _bin: ansible _desc: '[Ansible](https://www.ansible.com/) Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain' _docs: https://docs.ansible.com/ _github: https://github.com/ansible/ansible _home: https://www.ansible.com/ _name: Ansible _post:pipx: | #!/usr/bin/env bash pipx inject ansible PyObjC PyObjC-core docker lxml netaddr pexpect python-vagrant pywinrm requests-credssp watchdog # brew: ansible # dnf: ansible pipx: ansible ansible-lint: _bin: ansible-lint _desc: '[Ansible Lint](https://github.com/ansible/ansible-lint/) is a command-line tool for linting playbooks, roles and collections aimed toward any Ansible users' _docs: https://ansible-lint.readthedocs.io/ _github: https://github.com/ansible/ansible-lint/ _home: https://github.com/ansible/ansible-lint/ _name: Ansible Lint pipx: ansible-lint ansibleconnect: _bin: ansibleconnect _deps: - sshpass - tmux _desc: '[ansibleconnect](https://github.com/psykulsk/ansibleconnect) allows you to connect to all hosts from the inventory with one command' _docs: https://github.com/psykulsk/ansibleconnect _github: https://github.com/psykulsk/ansibleconnect _home: https://github.com/psykulsk/ansibleconnect _name: Ansibleconnect pipx: ansibleconnect ansibler: _bin: ansibler _desc: Megabyte Labs Python project used to extract test information from Molecule and save it as JSON that can be rendered into charts _docs: https://pypi.org/project/ansibler/ _github: https://github.com/megabyte-labs/ansibler _home: https://pypi.org/project/ansibler/ _name: Ansibler pipx: ansibler ansifilter: _bin: ansifilter _name: Ansifilter _github: false brew: ansifilter choco: ansifilter port: ansifilter apktool: _bin: apktool _github: https://github.com/iBotPeaches/Apktool _name: APKTool brew: apktool choco: apktool appium: _bin: appium _desc: '[Appium](https://appium.io/) is an open source automation tool for running scripts and testing native applications, mobile-web applications and hybrid applications on Android or iOS using a webdriver.' _docs: https://appium.io/docs/en/about-appium/intro/ _github: https://github.com/appium/appium _home: https://appium.io/ _name: Appium _service: appium brew: appium npm: appium appium-desktop: _app: Appium Server GUI.app _bin: appium-desktop _github: https://github.com/appium/appium-desktop _name: Appium Desktop appimage: appium/appium-desktop cask: appium choco: appium-desktop appium-inspector: _app: Appium Inspector.app _bin: appium-inspector _github: https://github.com/appium/appium-inspector _name: Appium Inspector appimage: appium/appium-inspector cask: appium-inspector choco: appium-desktop appnest-readme: _bin: readme _desc: '[Readme](https://github.com/andreasbm/readme/) automatically generate a beautiful best-practice README file based on the contents of your repository' _docs: https://github.com/andreasbm/readme/ _github: https://github.com/andreasbm/readme/ _home: https://github.com/andreasbm/readme/ _name: Readme npm: '@appnest/readme' apprise: _bin: apprise _deps: - pywin32 - terminal-notifier _github: https://github.com/caronc/apprise _name: Apprise dnf: apprise pipx: apprise apt-cacher-ng: _bin: null _desc: '[Apt-Cacher-NG](https://wiki.debian.org/AptCacherNg) is a caching proxy server (or apt proxy) for Debian based distributions like Ubuntu, Kubuntu, Xubuntu, Edubuntu, Linux Mint, etc, which is used to cache the downloaded packages locally on your server.' _docs: https://www.unix-ag.uni-kl.de/~bloch/acng/html/index.html _github: https://salsa.debian.org/blade/apt-cacher-ng _home: https://wiki.debian.org/AptCacherNg _name: AptCacherNG _systemd: apt-cacher-ng ansible: professormanhattan.aptcacherng aqua: _bin: aqua _desc: '[aqua](https://aquaproj.github.io/) is a Declarative CLI Version manager written in Go. It supports Lazy Install, Registry, and continuous update with Renovate.' _docs: https://aquaproj.github.io _github: https://github.com/aquaproj/aqua _home: https://aquaproj.github.io _name: aqua _post: | #!/usr/bin/env bash # @file Aqua Initialization # @brief Updates and installs any Aqua dependencies that are defined in Aqua's configuration file. # @description # This script updates Aqua and then installs any Aqua dependencies that are defined. if command -v aqua > /dev/null; then logg info 'Updating Aqua' aqua update-aqua logg info 'Installing Aqua dependencies (if any are defined)' aqua install -a else logg info 'Skipping aqua install script because aqua was not installed' fi binary:linux: https://github.com/aquaproj/aqua/releases/download/v2.0.0-0/aqua_linux_amd64.tar.gz binary:windows: https://github.com/aquaproj/aqua/releases/download/v2.0.0-0/aqua_windows_amd64.tar.gz brew: aquaproj/aqua/aqua go: github.com/aquaproj/aqua/v2/cmd/aqua@latest arduino-ide: _app: Arduino.app _bin: arduino _github: https://github.com/arduino/arduino-ide cask: arduino choco: arduino flatpak: cc.arduino.IDE2 argc: _bin: argc _github: https://github.com/sigoden/argc _name: Argc cargo: argc argo-cli: _bin: argocd _desc: ArgoCD is a declarative GitOps continuous delivery platform. _docs: https://argoproj.github.io/argo-workflows/walk-through/argo-cli/ _github: https://github.com/argoproj/argo-cd _home: https://argo-cd.readthedocs.io/en/stable/ _name: argo brew: argocd choco: argocd-cli github: https://github.com/argoproj/argo-workflows pacman: - argocd - argocd-cli aria2: _bin: aria2c _desc: '[aria2](https://aria2.github.io/) is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. [AriaNg](http://ariang.mayswind.net/) is a modern web frontend that makes working with aria2 easier.' _docs: https://aria2.github.io/manual/en/html/ _github: https://github.com/aria2/aria2 _name: Aria2/AriaNg ansible: professormanhattan.aria apt: aria2 brew: aria2 choco: aria2 dnf:fedora: aria2 pacman: aria2 port: aria2 scoop: aria2 ariang: _app: AriaNg Native.app _github: https://github.com/mayswind/AriaNg cask: ariang arping: _bin: arping _github: https://github.com/ThomasHabets/arping _name: ARPing apt: arping brew: arping choco: arping dnf: arping pacman: arping asciinema: _bin: asciinema _desc: '[Asciinema](https://asciinema.org) allows you to record and share your terminal sessions, the simple way' _docs: https://asciinema.org/docs/ _github: https://github.com/asciinema/asciinema _home: https://asciinema.org/ _name: asciinema apk: asciinema apt: asciinema brew: asciinema dnf: asciinema pacman: asciinema pipx: asciinema asdf: _bin: asdf _desc: '[asdf](https://asdf-vm.com/#/) is a CLI tool that can manage multiple language runtime versions on a per-project basis or globally. It is like gvm, nvm, rbenv, and pyenv all in one. This role installs asdf on Linux or macOS.' _docs: https://asdf-vm.com/guide/introduction.html _github: https://github.com/asdf-vm/asdf _home: https://asdf-vm.com/ _name: asdf-vm ansible: professormanhattan.asdf assh: _bin: assh _desc: '[assh](https://manfred.life/assh) makes your ssh client smarter' _docs: https://github.com/moul/assh _github: https://github.com/moul/assh _home: https://manfred.life/assh _name: assh brew: assh go: moul.io/assh/v2 yay: assh astronvim: _deps: - bottom - lazygit - neovim - node - python - ripgrep - tree-sitter _desc: '[AstroNvim](https://astronvim.github.io/) is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins' _docs: https://astronvim.github.io/ _github: https://github.com/AstroNvim/AstroNvim _home: https://astronvim.github.io/ _name: AstroNvim # TODO: Add timeouts to all commands in install-program _post: | #!/usr/bin/env bash echo "Waiting on command that installs nvim plugins" # bash -ci "nvim --headless -c 'quitall'" atuin: _bin: atuin _github: https://github.com/ellie/atuin _name: Atuin _post: | #!/usr/bin/env bash source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/private.sh" atuin register -u "$ATUIN_USERNAME" -e "$ATUIN_EMAIL" -p "$ATUIN_PASSWORD" atuin import auto atuin sync brew: atuin cargo: atuin pacman: atuin pkg-termux: atuin port: atuin audacity: _app: Audacity.app _bin: audacity _desc: An open-source audio editor _docs: https://support.audacityteam.org/ _github: https://github.com/audacity/audacity _home: https://www.audacityteam.org/ _name: Audacity appimage: Audacity apt: audacity cask: audacity choco: audacity dnf: audacity flatpak: org.audacityteam.Audacity scoop: extras/audacity snap: audacity auto-install: _bin: auto-install _desc: '[auto-install](https://github.com/siddharthkp/auto-install) installs dependencies as you code' _docs: https://github.com/siddharthkp/auto-install _github: https://github.com/siddharthkp/auto-install _home: https://github.com/siddharthkp/auto-install _name: auto-install npm: auto-install autodoc: _bin: doc _github: https://github.com/context-labs/autodoc _name: Autodoc npm: '@context-labs/autodoc' autokey: _bin: null _desc: '[AutoKey](https://github.com/autokey/autokey) is a free, open-source scripting application for Linux. AutoKey allows the user to define hotkeys and trigger phrases which expand to predefined text, automating frequent or repetitive tasks such as correcting typographical errors or common spelling mistakes and inserting boiler plate sections of text. [AutoHotKey](https://www.autohotkey.com/) is a similar piece of software that is only available on the Windows platform.' _docs: https://autokey.github.io/ _github: https://github.com/autokey/autokey _home: https://code.google.com/archive/p/autokey/ _name: Autokey ansible:linux: professormanhattan.autokey ansible:windows: professormanhattan.autokey apt: autokey choco: autohotkey dnf: autokey yay: autokey-gtk automake: _bin: automake _github: false _desc: '[GNU Automake](https://www.gnu.org/software/automake/) is a tool for automatically generating Makefile.in files compliant with the GNU Coding Standards' _docs: https://www.gnu.org/software/automake/manual/automake.html _home: https://www.gnu.org/software/automake/ _name: GNU Automake apk: automake apt: automake brew: automake dnf: automake pacman: automake pkg: automake autorestic: _bin: autorestic _desc: '[Autorestic](https://autorestic.vercel.app/) is a wrapper around [Restic](https://restic.net/). The Restic CLI can be a bit overwhelming and difficult to manage if you have many different location that you want to backup to multiple locations. Autorestic makes managing all your S3 backups easier by making it config / cron driven.' _docs: https://autorestic.vercel.app/quick _github: https://github.com/cupcakearmy/autorestic/ _home: https://autorestic.vercel.app/ _name: Autorestic ansible: professormanhattan.autorestic brew: autorestic aws-shell: _bin: aws-shell _desc: An integrated shell for working with the AWS CLI. _docs: https://github.com/awslabs/aws-shell _github: https://github.com/awslabs/aws-shell _home: https://pypi.org/project/aws-shell/ _name: AWS Shell brew: aws-shell pipx: aws-shell awscli: _bin: aws _desc: 'The [AWS CLI](https://aws.amazon.com/cli/) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.' _docs: https://docs.aws.amazon.com/cli/index.html _github: https://github.com/aws/aws-cli _home: https://aws.amazon.com/ _name: AWS CLI ansible: professormanhattan.awscli binary:darwin: https://awscli.amazonaws.com/AWSCLIV2.pkg binary:linux: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip binary:windows: https://awscli.amazonaws.com/AWSCLIV2.msi brew: awscli@2 choco: awscli awxcli: _bin: awx _desc: '[ansible-tower-cli](https://docs.ansible.com/ansible-tower/latest/html/towercli/index.html) is a CLI program that interacts with Ansible Tower or AWX. It is the official command-line client for both Ansible Tower and AWX. It uses naming and structure consistent with the AWX HTTP API, provides consistent output formats with optional machine-parsable formats, and auto-detects API versions, available endpoints, and feature support.' _docs: https://docs.ansible.com/ansible-tower/latest/html/towercli/index.html _github: https://github.com/ansible/awx _home: https://docs.ansible.com/automation.html _name: AWX CLI ansible: professormanhattan.awxcli pipx: https://releases.ansible.com/ansible-tower/cli/ansible-tower-cli-latest.tar.gz axel: _bin: axel _github: https://github.com/axel-download-accelerator/axel _name: Axel apt: axel brew: axel choco: axel dnf:fedora: axel pacman: axel port: axel azure-cli: _bin: az _desc: 'The [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/) is a set of commands used to create and manage Azure resources. The Azure CLI is available across Azure services and is designed to get you working quickly with Azure, with an emphasis on automation. It is the official CLI, released by Microsoft.' _docs: https://docs.microsoft.com/en-us/cli/azure/ _github: https://github.com/Azure/azure-cli _home: https://azure.microsoft.com/ _name: Azure CLI ansible: professormanhattan.azurecli brew: azure-cli choco: azure-cli winget: Microsoft.AzureCLI yay: azure-cli azure-functions: _bin: func _desc: '[azure-functions-core-tools](https://github.com/Azure/azure-functions-core-tools) A local development experience for creating, developing, testing, running, and debugging Azure Functions' _github: https://github.com/Azure/azure-functions-core-tools _name: azure-functions-core-tools brew: azure/functions/azure-functions-core-tools@4 choco: azure-functions-core-tools github: github.com/Azure/azure-functions-core-tools npm: azure-functions-core-tools@4 backup: _bin: backup _github: https://github.com/backup/backup _name: Backup gem: backup -v5.0.0.beta.1 balenaetcher: _app: balenaEtcher.app _appImageName: balenaEtcher.AppImage _bin: null _desc: '[balenaEtcher](https://www.balena.io/etcher/) is a powerful OS image flasher built with web technologies to ensure flashing an SDCard or USB drive is a pleasant and safe experience. It protects from accidentally writing to hard-drives, ensures every byte of data was written correctly, and much more. It can also directly flash Raspberry Pi devices that support USB device boot mode. It will run on any platform officially supported by Electron.' _docs: https://www.balena.io/docs/learn/welcome/introduction/ _github: https://github.com/balena-io/etcher _home: https://www.balena.io/etcher/ _name: balenaEtcher ansible:linux: professormanhattan.etcher # Waiting for zap to allow headless automation of AppImage Catalog images # Currently, it fails because there are multiple versions to select # appimage: etcher appimage: etcher cask: balenaetcher choco: etcher yay: balena-etcher bandwhich: _bin: bandwhich _desc: '[Bandwhich](https://github.com/imsnif/bandwhich) is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname.' _github: https://github.com/imsnif/bandwhich _name: Bandwhich ansible: professormanhattan.bandwhich brew: bandwhich github: github.com/imsnif/bandwhich pacman: bandwhich pkg: bandwhich bane: _bin: bane _desc: '[bane](https://github.com/genuinetools/bane) Custom & better AppArmor profile generator for Docker containers' _github: https://github.com/genuinetools/bane _name: bane github: github.com/genuinetools/bane go: github.com/genuinetools/bane@latest barrier: _app: Barrier.app _bin: barrier _github: https://github.com/debauchee/barrier _name: Barrier _todo: TODO cask: barrier choco: barrier flatpak: com.github.debauchee.barrier bash-completion: _bin: null _docs: https://docs.brew.sh/Shell-Completion _name: Bash Completion Formula _github: https://github.com/scop/bash-completion apt: bash-completion brew: bash-completion@2 dnf: bash-completion pacman: bash-completion bashly: _bin: bashly _github: https://github.com/DannyBen/bashly _name: Bashly gem: bashly basictex: _github: false _name: Basictex _when: '! test -d /Library/TeX' cask: basictex bat: _bin: bat _desc: '[bat](https://github.com/sharkdp/bat) is a cat(1) clone with syntax highlighting and Git integration.' _github: https://github.com/sharkdp/bat _name: bat ansible: professormanhattan.bat apk: bat apt: bat brew: bat cargo: bat choco: bat pacman: bat pkg: bat port: bat scoop: bat zypper: bat bat-extras: _bin: batman _github: https://github.com/eth-p/bat-extras _name: Bat Extras brew: bat-extras emerge: sys-apps/bat-extras pacman: bat-extras bats: _bin: bats _github: https://github.com/bats-core/bats-core _name: Bats Bash Testing brew: bats-core npm: bats bazelisk: _bin: bazelisk _desc: A user-friendly launcher for Bazel. _docs: https://bazel.build/docs _github: https://github.com/bazelbuild/bazelisk _home: https://bazel.build/ _name: Bazel brew: bazelisk choco: bazelisk go: github.com/bazelbuild/bazelisk@latest npm: '@bazel/bazelisk' scoop: main/bazel beekeeper-studio: _app: Beekeeper Studio.app _github: https://github.com/beekeeper-studio/beekeeper-studio _name: Beekeeper Studio _bin: beekeeper-studio cask: beekeeper-studio choco: beekeeper-studio flatpak: io.beekeeperstudio.Studio beets: _bin: beet _desc: 'The purpose of [Beets](https://beets.io/) is to get your music collection right once and for all. It catalogs your collection, automatically improving its metadata as it goes using the MusicBrainz database. Then it provides a bouquet of tools for manipulating and accessing your music.' _docs: https://beets.readthedocs.io/en/stable/ _github: https://github.com/beetbox/beets _home: https://beets.io/ _name: Beets ansible: professormanhattan.beets pipx: beets betwixt: _app: Betwixt.app _bin: null _desc: Web Debugging Proxy based on Chrome DevTools Network panel _docs: https://github.com/kdzwinel/betwixt _github: https://github.com/kdzwinel/betwixt _home: https://github.com/kdzwinel/betwixt _name: Betwixt cask: betwixt bfg: _bin: bfg _docs: https://rtyley.github.io/bfg-repo-cleaner/ _github: https://github.com/rtyley/bfg-repo-cleaner _home: https://rtyley.github.io/bfg-repo-cleaner/ _name: BFG Repo Cleaner brew: bfg choco: bfg-repo-cleaner port: bfg bin: _bin: bin _desc: Effortless binary manager _github: https://github.com/marcosnils/bin _name: bin github: github.com/marcosnils/bin go: github.com/marcosnils/bin@latest binwalk: _bin: binwalk _github: https://github.com/ReFirmLabs/binwalk _name: Binwalk apt: binwalk brew: binwalk choco: binwalk dnf: binwalk pacman: binwalk bismuth: _bin: bismuth _github: https://github.com/Bismuth-Forge/bismuth _name: Bismuth apt: kwin-bismuth dnf: bismuth pacman: kwin-bismuth bitly: _bin: bitly _desc: Shorten links with Bitly in your terminal! _github: https://github.com/xxczaki/bitly-cli-client _name: bitly npm: bitly-cli-client bitwarden: _app: Bitwarden.app _bin: bitwarden _desc: The desktop vault (Windows, macOS, & Linux) _github: https://github.com/bitwarden/desktop _name: BitWarden cask: bitwarden choco: bitwarden flatpak: com.bitwarden.desktop github: github.com/bitwarden/desktop mas: 1352778147 snap: bitwarden yay: bitwarden-git bitwarden-cli: _bin: bw _desc: '[Bitwarden CLI](https://github.com/bitwarden/cli) (i.e. bw) is a free and open-source official CLI for the [Bitwarden](https://bitwarden.com/) password manager. bw is available on Linux, macOS, and Microsoft Windows.' _docs: https://bitwarden.com/help/ _github: https://github.com/bitwarden/clients _home: https://bitwarden.com/ _name: Bitwarden CLI ansible: professormanhattan.bw brew: bitwarden-cli choco: bitwarden-cli npm: '@bitwarden/cli' scoop: bitwarden-cli snap: bw bivac: _bin: null _desc: '[Bivac](https://bivac.io/) - Backup Interface for Volumes Attached to Containers - allows to backup Container volumes using Restic' _github: https://github.com/camptocamp/bivac _home: https://bivac.io/ _name: bivac github: github.com/camptocamp/bivac blackhole: _bin: false _desc: Audio loopback device for macOS (supports sound passthrough to screen recording software on macOS) _docs: https://github.com/ExistentialAudio/BlackHole#user-guides _github: https://github.com/ExistentialAudio/BlackHole _home: https://github.com/ExistentialAudio/BlackHole _name: BlackHole _when:cask: '! test -d /Library/Audio/Plug-Ins/HAL/BlackHole16ch.driver && ! test -d ~/Library/Audio/Plug-Ins/HAL/BlackHole16ch.driver' cask: blackhole-16ch blender: _app: Blender.app _bin: blender _desc: Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing. _docs: https://docs.blender.org/manual/en/latest/ _github: https://github.com/blender/blender _home: https://www.blender.org/ _name: Blender apt: blender cask: blender choco: blender dnf: blender flatpak: org.blender.Blender scoop: extras/blender snap: blender --classic blocky: _bin: blocky _github: https://github.com/0xERR0R/blocky _name: Blocky _post:brew: | #!/usr/bin/env bash cp -f "$HOME/.local/etc/blocky/config.yaml" "$(brew --prefix)/etc/blocky/config.yaml" _post:linux: | #!/usr/bin/env bash sudo mkdir -p /usr/local/etc/blocky if [ -d /usr/lib/systemd/system ]; then sudo cp -f "$HOME/.local/etc/blocky/config.yaml" /usr/local/etc/blocky/config.yaml sudo cp -f "$HOME/.local/etc/blocky/blocky.service" /usr/lib/systemd/system/blocky.service else echo "/usr/lib/systemd/system is missing from the file system" fi _service: blocky _service:brew: - name: blocky sudo: true _serviceEnabled: true brew: blocky go: github.com/0xERR0R/blocky@mastergithub.com/0xERR0R/blocky@master blueutil: _bin: blueutil _github: https://github.com/toy/blueutil _name: BlueUtil brew:darwin: blueutil boilr: _bin: null _desc: boilerplate template manager that generates files or directories from template repositories _github: https://github.com/tmrts/boilr _name: boilr github: github.com/tmrts/boilr go: github.com/tmrts/boilr@latest boringtun: _bin: boringtun-cli _desc: BoringTun is an implementation of the WireGuard® protocol designed for portability and speed. _github: https://github.com/cloudflare/boringtun _name: BoringTun _todo: Add sudo boringtun-cli utun brew: boringtun cargo:darwin: boringtun-cli cargo:linux: boringtun-cli bottles: _bin: bottles _github: https://github.com/bottlesdevs/Bottles flatpak: com.usebottles.bottles bottom: _bin: bottom _bin:brew: btm _desc: '[bottom](https://clementtsang.github.io/bottom/) is yet another cross-platform graphical process/system monitor. It is a customizable cross-platform graphical process/system monitor for the terminal that supports Linux, macOS, and Windows' _docs: https://clementtsang.github.io/bottom/nightly/ _github: https://github.com/ClementTsang/bottom _home: https://clementtsang.github.io/ _name: bottom brew: bottom pacman: bottom scoop: bottom snap: bottom brasero: _bin: brasero _name: Brasero _github: https://github.com/GNOME/brasero apt: brasero dnf: brasero pacman: brasero brave-browser: _app: Brave Browser.app _bin: brave _desc: '[Brave Browser](https://brave.com/) is a free and open-source web browser developed by Brave Software, Inc. based on the Chromium web browser. It includes the ability to access Tor websites and has a built-in plugin that replaces ads and pays you to surf the web. It is a privacy-focused browser, which automatically blocks online advertisements and website trackers in its default settings. It also supports Chrome extensions.' _docs: https://support.brave.com/hc/en-us/articles/360035410812-Quickstart-guide-New-to-Brave-Start-here- _env: BRAVE_BROWSER_APPDATA: cask: "$HOME/Library/Application Support/BraveSoftware/Brave-Browser/Default" choco: "%APPDATA%/Local/BraveSoftware/Brave-Browser/User Data" flatpak: "$HOME/.var/app/com.brave.Browser/config/BraveSoftware/Brave-Browser/Default" snap: "$HOME/snap/brave/current/.config/BraveSoftware/Brave-Browser/Default" _github: https://github.com/brave/brave-browser _home: https://brave.com/ _name: Brave Browser _post: | #!/usr/bin/env bash # @brief See `google-chrome` `_post` script for more details function chromeSetUp() { ### Ensure Chrome policies directory is present logg info 'Processing policy directories for Chromium based browsers' for POLICY_DIR in "/etc/brave/policies"; do if [ -d "$(dirname "$POLICY_DIR")" ]; then ### Managed policies if [ ! -f "$POLICY_DIR/managed/policies.json" ]; then logg info "Ensuring directory $POLICY_DIR/managed exists" sudo mkdir -p "$POLICY_DIR/managed" logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json to $POLICY_DIR/managed/policies.json" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json" "$POLICY_DIR/managed/policies.json" fi ### Recommended policies if [ ! -f "$POLICY_DIR/recommended/policies.json" ]; then logg info "Ensuring directory $POLICY_DIR/recommended exists" && sudo mkdir -p "$POLICY_DIR/recommended" logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json to $POLICY_DIR/recommended/policies.json" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json" "$POLICY_DIR/recommended/policies.json" fi else logg info "Skipping extension injection into $POLICY_DIR - create these folders prior to running to create managed configs" fi done ### Add Chrome extension JSON logg info 'Populating Chrome extension JSON' for EXTENSION_DIR in "/etc/brave/extensions" "$HOME/Library/Application Support/BraveSoftware/Brave-Browser/External Extensions"; do ### Ensure program-type is installed if [ -d "$(dirname "$EXTENSION_DIR")" ]; then ### Ensure extension directory exists if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && sudo mkdir -p "$EXTENSION_DIR" fi else if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && mkdir -p "$EXTENSION_DIR" fi fi ### Add extension JSON logg info "Adding Chrome extensions to $EXTENSION_DIR" for EXTENSION in {{ list (.chromeExtensions | toString | replace "[" "" | replace "]" "") | uniq | join " " }}; do logg info "Adding Chrome extension manifest ($EXTENSION)" if ! echo "$EXTENSION" | grep 'https://chrome.google.com/webstore/detail/' > /dev/null; then EXTENSION="https://chrome.google.com/webstore/detail/$EXTENSION" fi EXTENSION_ID="$(echo "$EXTENSION" | sed 's/^.*\/\([^\/]*\)$/\1/')" if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" else cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" fi done else logg info "$EXTENSION_DIR does not exist" fi done } chromeSetUp cask: brave-browser choco: brave flatpak: com.brave.Browser snap: brave brew-gem: _bin: brew-gem _github: https://github.com/sportngin/brew-gem _name: Homebrew RubyGems brew: brew-gem brew-pkg: _github: https://github.com/timsutton/brew-pkg _name: Homebrew Pkg _when:brew:darwin: '! brew list brew-pkg' brew:darwin: timsutton/formulae/brew-pkg broot: _bin: broot _desc: '[broot](https://dystroy.org/broot/) offers a new way to see and navigate directory trees.' _docs: https://dystroy.org/broot/documentation/usage/ _github: https://github.com/Canop/broot _home: https://dystroy.org/broot/ _name: Broot ansible: professormanhattan.broot apk: broot brew: broot cargo: broot emerge: broot pkgin: broot port: broot browser-sync: _bin: browser-sync _desc: '[Browsersync](https://browsersync.io/) allows you to keep multiple browsers & devices in sync when building websites' _docs: https://browsersync.io/docs _github: https://github.com/BrowserSync/browser-sync _home: https://browsersync.io/ _name: Browsersync npm: browser-sync browserosaurus: _app: Browserosaurus.app _bin: null _desc: The browser prompter for macOS _docs: https://github.com/will-stone/browserosaurus _github: https://github.com/will-stone/browserosaurus _home: https://browserosaurus.com/ _name: Browserosaurus cask: browserosaurus budibase-cli: _bin: budi _desc: '[Budibase](https://budibase.com) The Budibase CLI is how you initialise, manage and update your Budibase installation' _docs: https://docs.budibase.com/docs/budibase-cli-reference _github: https://github.com/Budibase/budibase _home: https://budibase.com _name: budibase-cli github: github.com/Budibase/budibase npm: '@budibase/cli' buildkite-agent: _bin: buildkite-agent _github: https://github.com/buildkite/agent _name: BuildKite Agent brew: buildkite/buildkite/buildkite-agent bun: _bin: bun _github: https://github.com/oven-sh/bun _name: Bun brew: oven-sh/bun/bun npm: bun proto: bun bundler: _bin: bundler _desc: '[Bundler](https://bundler.io/) provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed' _docs: https://bundler.io/docs.html _github: https://github.com/rubygems/rubygems/tree/master/bundler _home: https://bundler.io/ _name: Bundler gem: bundler caddy: _bin: caddy _github: https://github.com/caddyserver/caddy _name: Caddy _service: caddy brew: caddy choco: caddy scoop: caddy cakebrew: _app: Cakebrew.app _bin: null _desc: Manage your Homebrew formulas with style using Cakebrew. _docs: https://www.cakebrew.com/ _github: https://github.com/brunophilipe/Cakebrew _home: http://www.cakebrew.com/ _name: Cakebrew cask: cakebrew caniuse: _bin: caniuse _desc: caniuse-cmd is a caniuse command line tool, providing all the power of caniuse.com with none of the nice UI or interactivity _github: https://github.com/sgentle/caniuse-cmd npm: caniuse-cmd capacitor: _bin: cap _github: https://github.com/ionic-team/capacitor _name: Capacitor npm: '@capacitor/cli' captain: _bin: captain _desc: Helps manage docker-compose.yml files from anywhere in the file system _github: https://github.com/jenssegers/captain _name: captain go: github.com/jenssegers/captain@latest carapace: _bin: carapace _github: https://github.com/rsteube/carapace-bin _name: Carapace brew: rsteube/tap/carapace nix-shell: carapace pacman: carapace-bin scoop: extras/carapace-bin winget: rsteube.Carapace carbon-now: _bin: carbon-now _desc: '[Carbon](https://carbon.now.sh/) lets you create and share beautiful images of your source code' _github: https://github.com/carbon-app/carbon _home: https://carbon.now.sh/ _name: Carbon npm: carbon-now-cli carthage: _bin: carthage _desc: A simple, decentralized dependency manager for Cocoa _github: https://github.com/Carthage/Carthage _name: Carthage brew:darwin: carthage catfs: _bin: catfs _deps: - fuse _desc: Cache anything filesystem written in Rust _docs: https://github.com/kahing/catfs#usage _github: https://github.com/kahing/catfs _home: https://github.com/kahing/catfs _name: Catfs ansible:linux: professormanhattan.s3filesystem cargo:linux: catfs catlight: _app: Catlight.app _github: https://github.com/catlightio/CatLight _name: Catlight cask: catlight deb: https://catlight.io/downloads/linux/beta ccat: _bin: ccat _github: https://github.com/owenthereal/ccat _name: ccat brew: ccat go: github.com/owenthereal/ccat@latest pacman: ccat ceph: _bin: ceph-client _deps: - dokany _github: https://github.com/ceph/ceph _name: CephFS apt: cephadm brew: megabyte-labs/tap/ceph-client dnf: cephadm zypper: cephadm cerebro: _app: Cerebro.app _bin: null _desc: Open-source productivity booster with a brain _github: https://github.com/cerebroapp/cerebro _name: Cerebro cask: cerebro choco: cerebro github: github.com/cerebroapp/cerebro yay: cerebro certbot: _bin: certbot _desc: >- [Certbot](https://certbot.eff.org/) is part of EFF’s effort to encrypt the entire Internet. Secure communication over the Web relies on HTTPS, which requires the use of a digital certificate that lets browsers verify the identity of web servers (e.g., is that really google.com?). Web servers obtain their certificates from trusted third parties called certificate authorities (CAs). Certbot is an easy-to-use client that fetches a certificate from [Let’s Encrypt](https://letsencrypt.org/)—an open certificate authority launched by the EFF, Mozilla, and others—and deploys it to a web server. _docs: https://eff-certbot.readthedocs.io/en/stable/ _github: https://github.com/certbot/certbot _home: https://certbot.eff.org/ _name: CertBot _post: | #!/usr/bin/env bash pipx inject certbot certbot-dns-cloudflare _post:windows: | #!/usr/bin/env bash echo "Add method for Windows" pipx: certbot cf-terraforming: _bin: cf-terraforming _github: https://github.com/cloudflare/cf-terraforming _name: CloudFlare Terraforming cask: cloudflare/cloudflare/cf-terraforming cfssl: _bin: cfssl _desc: "[CFSSL](https://cfssl.org/) is CloudFlare's PKI/TLS swiss army knife. It is both a command line tool and an HTTP API server for signing, verifying, and bundling TLS certificates" _github: https://github.com/cloudflare/cfssl _home: https://cfssl.org/ _name: CFSSL brew: cfssl pacman: cfssl charm: _bin: charm _desc: The Charm Tool and Library _docs: https://github.com/charmbracelet/charm _github: https://github.com/charmbracelet/charm _home: https://charm.sh _name: Charm brew: charmbracelet/tap/charm go: github.com/charmbracelet/charm@main nix-env: nixpkgs.charm pacman: charm chatgpt-menubar: _app: Chatgpt.app _bin: null _desc: ChatGPT for Mac, living in your menubar. _docs: https://github.com/vincelwt/chatgpt-mac _github: https://github.com/vincelwt/chatgpt-mac _home: https://github.com/vincelwt/chatgpt-mac _name: ChatGPT Menubar for macOS cask: vincelwt-chatgpt chatgpt-nofwl: _app: NoFWL.app _bin: null _desc: ChatGPT desktop application (Mac, Windows and Linux) _docs: https://app.nofwl.com/docs/chatgpt/config _github: https://github.com/lencx/nofwl _home: https://app.nofwl.com/ _name: ChatGPT Desktop (NoFWL Version) appimage: lencx/nofwl apt: https://github.com/lencx/nofwl/releases/download/v0.1.0/NoFWL_0.1.0_linux_x86_64.deb cask: lencx/nofwl/nofwl --no-quarantine msi: https://github.com/lencx/nofwl/releases/download/v0.1.0/NoFWL_0.1.0_windows_x86_64.msi cheat: _bin: cheat _desc: Cheat allows you to create and view interactive cheatsheets on the command-line. It was designed to help remind *nix system administrators of options for commands that they use frequently, but not frequently enough to remember. _docker: docker run --rm bannmann/docker-cheat _docs: https://github.com/cheat/cheat _github: https://github.com/cheat/cheat _home: https://github.com/cheat/cheat _name: Cheat brew: cheat go: github.com/cheat/cheat/cmd/cheat@latest nix: nixos.cheat snap: cheat yay: cheat chef-workstation: _app: Chef Workstation App.app _bin: chef-workstation _github: https://github.com/chef/chef _name: Chef Workstation apt: https://packages.chef.io/files/stable/chef-workstation/21.10.640/ubuntu/20.04/chef-workstation_21.10.640-1_amd64.deb cask: chef-workstation choco: chef-workstation dnf: https://packages.chef.io/files/stable/chef-workstation/21.10.640/el/8/chef-workstation-21.10.640-1.el8.x86_64.rpm chezmoi: _bin: chezmoi _desc: Manage your dotfiles across multiple diverse machines, securely. _docs: https://www.chezmoi.io/user-guide/command-overview/ _github: https://github.com/twpayne/chezmoi _home: https://www.chezmoi.io/ _name: Chezmoi apk: chezmoi brew: chezmoi choco: chezmoi nix: chezmoi pacman: chezmoi pkg: chezmoi snap: chezmoi --classic xbps: chezmoi zypper: chezmoi chrome-cli: _bin: chrome-cli _desc: chrome-cli is a command line utility for controlling Google Chrome compatible browsers on OS X. It is a native binary that uses the Scripting Bridge to communicate with Chrome _github: https://github.com/prasmussen/chrome-cli brew:darwin: chrome-cli chrome-gnome-shell: _bin: null _desc: Browser extension for Google Chrome/Chromium, Firefox, Vivaldi (and other Browser Extension, Chrome Extension or WebExtensions capable browsers) and native host messaging connector that provides integration with GNOME Shell and the corresponding extensions repository _github: https://gitlab.gnome.org/GNOME/gnome-browser-extension _home: ttps://wiki.gnome.org/Projects/GnomeShellIntegration apt: chrome-gnome-shell dnf: chrome-gnome-shell pacman: chrome-gnome-shell chromium: _bin: chromium _github: https://github.com/chromium/chromium _deps: - chrome-gnome-shell _post: | #!/usr/bin/env bash function chromeSetUp() { ### Ensure Chrome policies directory is present logg info 'Processing policy directories for Chromium based browsers' for POLICY_DIR in "/etc/chromium/policies"; do if [ -d "$(dirname "$POLICY_DIR")" ]; then ### Managed policies if [ ! -f "$POLICY_DIR/managed/policies.json" ]; then logg info "Ensuring directory $POLICY_DIR/managed exists" sudo mkdir -p "$POLICY_DIR/managed" logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json to $POLICY_DIR/managed/policies.json" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json" "$POLICY_DIR/managed/policies.json" fi ### Recommended policies if [ ! -f "$POLICY_DIR/recommended/policies.json" ]; then logg info "Ensuring directory $POLICY_DIR/recommended exists" && sudo mkdir -p "$POLICY_DIR/recommended" logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json to $POLICY_DIR/recommended/policies.json" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json" "$POLICY_DIR/recommended/policies.json" fi else logg info "Skipping extension injection into $POLICY_DIR - create these folders prior to running to create managed configs" fi done ### Add Chrome extension JSON logg info 'Populating Chrome extension JSON' ### TODO - Find `EXTENSION_DIR` for macOS in Application Support folder like `$HOME/Library/Application Support/Google/Chrome/External Extensions` for Google Chrome for EXTENSION_DIR in "/etc/chromium/extensions"; do ### Ensure program-type is installed if [ -d "$(dirname "$EXTENSION_DIR")" ]; then ### Ensure extension directory exists if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && sudo mkdir -p "$EXTENSION_DIR" fi else if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && mkdir -p "$EXTENSION_DIR" fi fi ### Add extension JSON logg info "Adding Chrome extensions to $EXTENSION_DIR" for EXTENSION in {{ list (.chromeExtensions | toString | replace "[" "" | replace "]" "") | uniq | join " " }}; do logg info "Adding Chrome extension manifest ($EXTENSION)" if ! echo "$EXTENSION" | grep 'https://chrome.google.com/webstore/detail/' > /dev/null; then EXTENSION="https://chrome.google.com/webstore/detail/$EXTENSION" fi EXTENSION_ID="$(echo "$EXTENSION" | sed 's/^.*\/\([^\/]*\)$/\1/')" if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" else cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" fi done else logg info "$EXTENSION_DIR does not exist" fi done } chromeSetUp apt: chromium dnf: chromium flatpak: org.chromium.Chromium snap: chromium clair: _bin: clair _desc: Vulnerability Static Analysis for Containers _docs: https://quay.github.io/clair/ _github: https://github.com/quay/clair _name: clair brew: clair github: github.com/quay/clair clamav: _bin: clamav-config _desc: '[ClamAV](https://www.clamav.net/) is an open-source antivirus engine for detecting trojans, viruses, malware & other malicious threats.' _docs: https://docs.clamav.net/ _github: https://github.com/Cisco-Talos/clamav _home: https://www.clamav.net/ _name: ClamAV _post: | #!/usr/bin/env bash ### Add freshclam.conf if [ -f "$HOME/.local/etc/clamav/freshclam.conf" ]; then sudo mkdir -p /usr/local/etc/clamav sudo cp -f "$HOME/.local/etc/clamav/freshclam.conf" /usr/local/etc/clamav/freshclam.conf if [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav" ] && [ ! -f "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/freshclam.conf" ]; then ln -s /usr/local/etc/clamav/freshclam.conf "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/freshclam.conf" fi fi ### Add clamd.conf if [ -f "$HOME/.local/etc/clamav/clamd.conf" ]; then sudo mkdir -p /usr/local/etc/clamav sudo cp -f "$HOME/.local/etc/clamav/clamd.conf" /usr/local/etc/clamav/clamd.conf if [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav" ] && [ ! -f "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/clamd.conf" ]; then ln -s /usr/local/etc/clamav/clamd.conf "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/clamd.conf" fi fi ### Update database freshclam ### Setting up launchd services on macOS if [ -d /Applications ] && [ -d /System ]; then sudo mkdir -p /var/log/clamav # sudo chown $USER /var/log/clamav sudo cp -f "$HOME/.local/etc/clamav/clamdscan.plist.tmpl" /Library/LaunchDaemons/clamdscan.plist sudo cp -f "$HOME/.local/etc/clamav/freshclam.plist.tmpl" /Library/LaunchDaemons/freshclam.plist sudo launchctl load -w /Library/LaunchDaemons/clamdscan.plist sudo launchctl load -w /Library/LaunchDaemons/freshclam.plist fi _service:apt: clamav-freshclam _service:brew: - name: clamav sudo: true _service:dnf: clamd-freshclam _service:pacman: clamav-freshclam _serviceEnabled: true apt: - clamav - clamdscan brew: clamav dnf: - clamav - clamav-update pacman: clamav clangd: _bin: clangd _desc: '[clangd](https://clangd.llvm.org/) is an language server that understands your C++ code and adds smart features to your editor' _docs: https://clangd.llvm.org/guides/ _github: https://github.com/llvm/llvm-project/tree/main/clang-tools-extra/clangd _home: https://clangd.llvm.org/ _name: clangd apt: clangd brew: llvm choco: llvm dnf: clang-tools-extra pacman: clang scoop: llvm clipboard: _bin: cb _github: https://github.com/Slackadays/Clipboard.git _name: Clipboard apk: clipboard brew: clipboard emerge: app-misc/clipboard flatpak: app.getclipboard.Clipboard nix-env: nixpkgs.clipboard-jh scoop: clipboard snap: clipboard xbps: clipboard yay: clipboard cloc: _bin: cloc _github: https://github.com/AlDanial/cloc _name: Cloc apk: cloc apt: cloc brew: cloc choco: cloc dnf: cloc emerge: dev-util/cloc npm: cloc pacman: cloc pkg-freebsd: cloc pkg_add: cloc port: cloc scoop: cloc clocker: _app: Clocker.app _bin: null _desc: Clocker is designed to help you keep track of your friends and colleagues in different time zones. _github: https://github.com/n0shake/clocker cask: clocker cloudflare-cli: _bin: cfcli _github: https://github.com/danielpigott/cloudflare-cli _name: CloudFlare CLI npm: cloudflare-cli cloudflared: _bin: cloudflared _desc: '[CloudFlare Argo Tunnel Client](https://developers.cloudflare.com/argo-tunnel/) contains the command-line client for CloudFlare Argo Tunnel, a tunneling daemon that proxies any local webserver through the Cloudflare network.' _github: https://github.com/cloudflare/cloudflared _name: CloudFlared _post: | #!/usr/bin/env bash {{- $registrationToken := "" }} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "cloudflared" .host.hostname)) -}} {{- $registrationToken = (includeTemplate (print "cloudflared/" .host.hostname) | decrypt) -}} {{- end }} ### Set up CloudFlare tunnels if command -v cloudflared > /dev/null && [ -d "$HOME/.local/etc/cloudflared" ]; then # Show warning message about ~/.cloudflared already existing if [ -d "$HOME/.cloudflared" ]; then logg warn '~/.cloudflared is already in the home directory - to ensure proper deployment, remove previous tunnel configuration folders' fi ### Ensure /usr/local/etc/cloudflared exists if [ -d /usr/local/etc/cloudflared ]; then logg info 'Creating folder /usr/local/etc/cloudflared' sudo mkdir -p /usr/local/etc/cloudflared fi # Copy over configuration files logg info 'Ensuring /usr/local/etc/cloudflared exists' && sudo mkdir -p /usr/local/etc/cloudflared logg info 'Copying over configuration files from ~/.local/etc/cloudflared to /usr/local/etc/cloudflared' sudo cp -f "$HOME/.local/etc/cloudflared/cert.pem" /usr/local/etc/cloudflared/cert.pem sudo cp -f "$HOME/.local/etc/cloudflared/config.yml" /usr/local/etc/cloudflared/config.yml # Register tunnel (if not already registered) if sudo cloudflared tunnel list | grep "host-{{ .host.hostname }}" > /dev/null; then logg info 'CloudFlare tunnel is already registered' else logg info 'Creating a CloudFlare tunnel to this host' sudo cloudflared tunnel create "host-{{ .host.hostname }}" fi TUNNEL_ID="$(sudo cloudflared tunnel list | grep 'host-{{ .host.hostname }}' | sed 's/ .*//')" logg info "Tunnel ID: $TUNNEL_ID" if [ -f "/usr/local/etc/cloudflared/${TUNNEL_ID}.json" ]; then logg info 'Symlinking tunnel configuration to /usr/local/etc/cloudflared/credentials.json' rm -f /usr/local/etc/cloudflared/credentials.json sudo ln -s "/usr/local/etc/cloudflared/${TUNNEL_ID}.json" /usr/local/etc/cloudflared/credentials.json else logg info 'Handling case where the tunnel registration is not present in /usr/local/etc/cloudflared' {{ if eq $registrationToken "" -}} logg warn 'Registration token is unavailable - you might have to delete the pre-existing tunnel or set up secrets properly' {{- else -}} logg info 'Registration token retrieved from encrypted blob stored at home/.chezmoitemplates/cloudflared/{{ .host.hostname }}' {{ if eq (substr 0 1 $registrationToken) "{" -}} logg info 'Registration token stored in credential file form' echo -n '{{ $registrationToken }}' | sudo tee /usr/local/etc/cloudflared/credentials.json > /dev/null {{ else }} logg info 'Registration token is in token form - it will be used in conjunction with sudo cloudflared service install' {{- end }} {{- end }} fi # Set up service if [ -d /Applications ] && [ -d /System ]; then # System is macOS if [ -f /Library/LaunchDaemons/com.cloudflare.cloudflared.plist ]; then logg info 'cloudflared service is already installed' else logg info 'Running sudo cloudflared service install' sudo cloudflared service install{{ if and (ne $registrationToken "") (eq (substr 0 1 $registrationToken) "{") -}} {{ $registrationToken }}{{ end }} fi logg info 'Ensuring cloudflared service is installed' sudo launchctl start com.cloudflare.cloudflared elif [ -f /etc/os-release ]; then # System is Linux if systemctl --all --type service | grep -q "cloudflared" > /dev/null; then logg info 'cloudflared service is already available as a service' else logg info 'Running sudo cloudflared service install' sudo cloudflared service install{{ if and (ne $registrationToken "") (eq (substr 0 1 $registrationToken) "{") -}} {{ $registrationToken }}{{ end }} fi logg info 'Ensuring cloudflared service is started' sudo systemctl start cloudflared logg info 'Enabling cloudflared as a boot systemctl service' sudo systemctl enable cloudflared else # System is Windows cloudflared service install mkdir C:\Windows\System32\config\systemprofile\.cloudflared # Copy same cert.pem as being used above # copy C:\Users\%USERNAME%\.cloudflared\cert.pem C:\Windows\System32\config\systemprofile\.cloudflared\cert.pem # https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/as-a-service/windows/ fi else logg info 'cloudflared was not installed so CloudFlare Tunnels cannot be enabled. (Or the ~/.local/etc/cloudflared folder is not present)' fi ansible: professormanhattan.cloudflared binary:linux: https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 brew:darwin: cloudflare/cloudflare/cloudflared github: github.com/cloudflare/cloudflared cmake: _bin: cmake _desc: CMake is an open-source, cross-platform family of tools designed to build, test and package software. _docs: https://cmake.org/documentation/ _github: https://github.com/Kitware/CMake _home: https://cmake.org/ _name: Chezmoi brew: cmake choco: cmake snap: cmake --classic cmctl: _bin: cmctl _desc: A CLI tool that can help you to manage cert-manager resources inside your cluster _docs: https://cert-manager.io/docs/ _github: https://github.com/cert-manager/cert-manager _home: https://cert-manager.io/docs/usage/cmctl/ _name: cmctl brew: cmctl cockpit: _bin: cockpit _desc: '[Cockpit](https://cockpit-project.org/) allows you to view many aspects of system performance and make configuration changes, though the task list may depend on the particular flavor of Linux that you are using.' _docs: https://cockpit-project.org/documentation.html _github: https://github.com/cockpit-project/cockpit _home: https://cockpit-project.org/ _name: Cockpit _post: | #!/usr/bin/env bash sudo usermod -a -G libvirtdbus libvirt _service:pacman: cockpit.socket _systemd: cockpit _systemd:pacman: cockpit.socket ansible:linux: professormanhattan.cockpit apt: - 389-ds-base - cockpit - cockpit-389-ds - cockpit-machines - cockpit-networkmanager - cockpit-packagekit - cockpit-podman - cockpit-storaged - libvirt-dbus dnf:centos: - 389-ds-base - cockpit - cockpit-machines - cockpit-networkmanager - cockpit-packagekit - cockpit-podman - cockpit-storaged - libvirt-dbus dnf:fedora: - 389-ds-base - cockpit - cockpit-389-ds - cockpit-machines - cockpit-networkmanager - cockpit-packagekit - cockpit-podman - cockpit-storaged - libvirt-dbus pacman: - 389-ds-base - cockpit - cockpit-389-ds - cockpit-machines - cockpit-networkmanager - cockpit-packagekit - cockpit-podman - cockpit-storaged - libvirt-dbus cockpit-client: _bin: cockpit-client _github: https://github.com/cockpit-project/cockpit _home: https://cockpit-project.org/ _name: Cockpit Desktop Client flatpak: org.cockpit_project.CockpitClient cocoapods: _bin: null _desc: '[CocoaPods](https://cocoapods.org/) is an application level dependency manager for Objective-C, Swift and any other languages that run on the Objective-C runtime, such as RubyMotion, that provides a standard format for managing external libraries.' _docs: https://guides.cocoapods.org/using/getting-started.html _github: https://github.com/CocoaPods/CocoaPods _home: https://cocoapods.org/ _name: cocoapods ansible:darwin: professormanhattan.cocoapods brew:darwin: cocoapods gem:darwin: cocoapods cod: _bin: cod _desc: Cod is a completion daemon for bash/fish/zsh that automatically adds auto-completions when --help is used _docs: https://github.com/dim-an/cod _github: https://github.com/dim-an/cod _home: https://github.com/dim-an/cod _name: Cod _todo: Check for brew install later on (5/14/2023) go: github.com/dim-an/cod@master codeclimate: _bin: codeclimate _github: https://github.com/codeclimate/codeclimate _name: CodeClimate _todo: Add check to ensure Docker is loaded / running _usesDocker: true brew: codeclimate/formulae/codeclimate brew:darwin: codeclimate/formulae/codeclimate script:linux: cd /tmp && curl -L https://github.com/codeclimate/codeclimate/archive/master.tar.gz | tar xvz && cd codeclimate-* && sudo make install codeedit: _app: CodeEdit.app _bin: codeedit _github: https://github.com/CodeEditApp/CodeEdit _name: CodeEdit _todo: TODO once this is out of alpha cask: codeedit coder: _bin: coder _desc: A tool that provisions remote development environments via Terraform _docs: https://coder.com/docs/v1/latest _github: https://github.com/coder/coder _home: https://coder.com/ _name: Coder brew: coder cointop: _bin: cointop _desc: '[Cointop](https://github.com/miguelmota/cointop) is a fast and lightweight interactive terminal based UI application for tracking and monitoring cryptocurrency coin stats in real-time.' _docs: https://docs.cointop.sh/ _github: https://github.com/cointop-sh/cointop _home: https://cointop.sh/ _name: Cointop ansible:darwin: professormanhattan.cointop ansible:linux: professormanhattan.cointop brew: cointop port: cointop commitizen: _bin: cz _desc: Commitizen is a tool designed for teams. Its main purpose is to define a standard way of committing rules and communicating it _docs: https://commitizen-tools.github.io/commitizen/ _github: https://github.com/commitizen/cz-cli _home: https://commitizen-tools.github.io/commitizen/ _name: commitizen npm: commitizen commitlint: _bin: commitlint _desc: Lint commit messages _docs: https://commitlint.js.org/#/?id=documentation _github: https://github.com/conventional-changelog/commitlint _home: https://commitlint.js.org _name: commitlint npm: '@commitlint/cli' common: _bin: null _github: false _desc: 'For example, this role sets the timezone, sets the hostname, sets up the swap space, ensures auto-login is either disabled or enabled, and customizes GRUB (on Linux). It also ensures that specified groups are present on the system. On Windows, the role ensures all the available updates are installed, ensures [Scoop](https://scoop.sh/) is installed, and ensures common dependencies like [Bandizip](https://en.bandisoft.com/bandizip/) (a compressed-file manager) are installed.' _name: Common ansible: professormanhattan.common composer: _bin: composer _desc: '[Composer](https://getcomposer.org/) is an application-level package manager for the PHP programming language that provides a standard format for managing dependencies of PHP software and required libraries. It was developed by Nils Adermann and Jordi Boggiano, who continue to manage the project.' _docs: https://getcomposer.org/doc/ _github: https://github.com/composer/composer _home: https://getcomposer.org/ _name: Composer ansible: professormanhattan.composer brew: composer choco: composer pacman: composer scoop: composer script:darwin: cd ~ && curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer && sudo chmod +x /usr/local/bin/composer script:linux: cd ~ && curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer && sudo chmod +x /usr/local/bin/composer confd: _bin: confd _desc: Manage local application configuration files using templates and data from etcd or consul _github: https://github.com/kelseyhightower/confd _name: confd brew: confd choco: confd github: github.com/kelseyhightower/confd yay: confd connections: _bin: connections _github: false _gitlab: https://gitlab.gnome.org/GNOME/connections flatpak: org.gnome.Connections consul-cli: _bin: consul _desc: '[Consul](https://www.consul.io/) uses service identities and traditional networking practices to help organizations securely connect applications running in any environment' _docs: https://developer.hashicorp.com/consul/docs _github: https://www.github.com/hashicorp/consul _home: https://www.consul.io/ _name: Consul _service: consul apt: consul brew: consul pkg: consul yay: consul-bin consul-template: _bin: consul-template _desc: '[Consul-Template](https://github.com/hashicorp/consul-template) provides a convenient way to populate values from [Consul](https://www.consul.io/) into the file system using the consul-template daemon. It was created by [HashiCorp](https://www.hashicorp.com/) (the creators of Consul).' _docs: https://learn.hashicorp.com/tutorials/consul/consul-template _github: https://github.com/hashicorp/consul-template _home: https://www.hashicorp.com/ _name: Consul Template ansible: professormanhattan.consultemplate brew: consul-template choco: consul-template scoop: main/consul container-structure-test: _github: https://github.com/GoogleContainerTools/container-structure-test _bin: container-structure-test _desc: The Container Structure Tests provide a powerful framework to validate the structure of a container image. These tests can be used to check the output of commands in an image, as well as verify metadata and contents of the filesystem _name: Container Structure Tests _post:binary:linux: | #!/usr/bin/env bash echo "TODO" binary:linux: https://storage.googleapis.com/container-structure-test/latest/container-structure-test-linux-amd64 brew: container-structure-test yay: container-structure-test cookiecutter: _bin: cookiecutter _desc: A cross-platform command-line utility that creates projects from cookiecutters (project templates) _docs: https://cookiecutter.readthedocs.io/ _github: https://github.com/cookiecutter/cookiecutter _name: cookiecutter brew: cookiecutter pipx: cookiecutter cordova: _bin: cordova _desc: >- [Apache Cordova](https://cordova.apache.org/) is a tool to create cross-platform apps from standard web technologies (HTML, CSS, and JavaScript). Its primary purpose is to provide a bridge for native device API access and to bundle for distribution _docs: https://cordova.apache.org/docs/en/latest/ _github: https://github.com/apache/cordova _home: https://cordova.apache.org/ _name: Apache Cordova npm: cordova coreutils: _bin: - cat - ls - rm _bin:darwin: gchown _github: false apt: coreutils brew: coreutils dnf: coreutils pacman: coreutils croc: _bin: croc _desc: Easily and securely send things from one computer to another _github: https://github.com/schollz/croc _name: croc brew: croc choco: croc github: github.com/schollz/croc go: github.com/schollz/croc/v9@latest pacman: croc pkg: croc scoop: croc crunch: _app: Crunch.app _bin: crunch _desc: The crunch command line executable is a *nix executable that supports parallel PNG image optimization with local (off of the system PATH) installs of the pngquant and zopflipng project dependencies. _docs: https://github.com/chrissimpkins/Crunch _github: https://github.com/chrissimpkins/Crunch _home: https://github.com/chrissimpkins/Crunch _name: Crunch cask: crunch script: cd /tmp && rm -rf Crunch && git clone https://github.com/chrissimpkins/Crunch.git && make build-dependencies && make install-executable && cd /tmp && rm -rf Crunch && rm -rf ~/zopfli && rm -rf ~/pngquant && echo "TODO WARNING - The ~/zopfli and ~/pngquant directories were deleted and may be required (but were removed due to HOME directory pollution)" crunch-app: _app: Crunch.app _bin: null _desc: The macOS companion app for the crunch CLI tool that compresses PNG images. _docs: https://github.com/chrissimpkins/Crunch/blob/master/docs/MACOSGUI.md _github: https://github.com/chrissimpkins/Crunch _home: https://github.com/chrissimpkins/Crunch _name: Crunch macOS App cask: crunch cryptomator: _app: Cryptomator.app _github: https://github.com/cryptomator/cryptomator _bin: cryptomator cask: cryptomator choco: cryptomator flatpak: org.cryptomator.Cryptomator csvkit: _bin: csvcut _github: https://github.com/wireservice/csvkit brew: csvkit ctop: _bin: ctop _desc: Top-like interface for container metrics _github: https://github.com/bcicen/ctop _name: ctop brew: ctop github: github.com/bcicen/ctop yay: ctop-bin cumulus: _app: Cumulus.app _bin: null _desc: A SoundCloud player that lives in the menubar _github: https://github.com/gillesdemey/Cumulus _name: Cumulus cask: cumulus github: github.com/gillesdemey/Cumulus cups: _bin: cupsctl _desc: '[CUPS](https://www.cups.org/) is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.' _github: https://github.com/apple/cups _name: CUPS _ports: - port: 631 proto: tcp _systemd: smbd ansible: professormanhattan.cups apt: - avahi-daemon - cups brew: cups dnf: cups pacman: - avahi-daemon - cups curator: _bin: curator _desc: Elasticsearch Curator helps you curate, or manage, your Elasticsearch indices and snapshots _docs: https://www.elastic.co/guide/en/elasticsearch/client/curator _github: https://github.com/elastic/curator _home: https://www.elastic.co/guide/en/elasticsearch/client/curator _name: curator pipx: elasticsearch-curator curl: _bin: curl _desc: cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various network protocols. _docs: https://curl.se/docs/ _github: https://github.com/curl/curl _home: https://curl.se/ _name: cURL apk: curl apt: curl brew: curl choco: curl dnf: curl pacman: curl pkg: curl scoop: curl xbps: curl zypper: curl curlie: _bin: curlie _desc: Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance. _docs: https://curlie.io/ _github: https://github.com/rs/curlie _home: https://curlie.io/ _name: Curlie brew: curlie go: github.com/rs/curlie@latest pkg: curlie port: curlie scoop: curlie cutter: _app: Cutter.app _github: https://github.com/rizinorg/cutter _bin: cutter cask: cutter choco: cutter flatpak: re.rizin.cutter d2vm: _bin: d2vm _github: https://github.com/linka-cloud/d2vm _name: Docker 2 VM brew: linka-cloud/tap/d2vm dagu: _bin: dagu _github: https://github.com/dagu-dev/dagu _name: Dagu _post: | #!/usr/bin/env bash sudo mkdir -p /var/log/dagu brew: yohamta/tap/dagu dasel: _bin: dasel _desc: Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool _github: https://github.com/TomWright/dasel _name: dasel brew: dasel github: github.com/TomWright/dasel go: github.com/tomwright/dasel/cmd/dasel@master dat: _bin: dat _desc: Peer-to-peer sharing & live syncronization of files via command line _github: https://github.com/datproject/dat _name: dat github: github.com/dat-ecosystem-archive/dat npm: dat@next dat-desktop: _app: Dat Desktop.app _bin: null _desc: Peer to peer data syncronization _github: https://github.com/datproject/dat-desktop _name: Dat Desktop appimage: dat-ecosystem-archive/dat-desktop cask: dat exe: https://github.com/dat-ecosystem-archive/dat-desktop/releases/download/v3.0.1/Dat-Desktop-Setup-3.0.1.exe dconf-editor: _bin: dconf-editor _github: https://github.com/GNOME/dconf-editor/tree/master _gitlab: https://gitlab.gnome.org/GNOME/dconf-editor flatpak: ca.desrt.dconf-editor debloat: _bin: null _github: false _desc: This repository is the home of an Ansible role that Debloats Windows _name: Debloat Windows ansible: professormanhattan.debloat debsecan: _bin: debsecan-by-type _github: false _desc: debsecan analyzes the list of installed packages on the current host and reports vulnerabilities found on the system. _gitlab: https://gitlab.com/fweimer/debsecan _home: https://wiki.debian.org/DebianSecurity/debsecan _name: Debian Security Analyzer apt: debsecan defaultbrowser: _bin: null _github: false _desc: This role performs the necessary logic to set the default browser on nearly any platform. _name: Default Browser Setter ansible: professormanhattan.defaultbrowser deja-dup: _bin: dejadup _home: https://apps.gnome.org/DejaDup/ _gitlab: https://gitlab.gnome.org/World/deja-dup _github: false flatpak: org.gnome.DejaDup delta: _bin: delta _desc: '[delta](https://github.com/dandavison/delta) is a viewer for git and diff output' _docs: https://dandavison.github.io/delta/ _github: https://github.com/dandavison/delta _home: https://github.com/dandavison/delta _name: Delta ansible: professormanhattan.delta brew: git-delta cargo: git-delta choco: delta dnf:fedora: git-delta pacman: git-delta pkg: git-delta scoop: delta delve: _bin: dlv _desc: Delve is a debugger for the Go programming language. _docs: https://github.com/go-delve/delve/tree/master/Documentation _github: https://github.com/go-delve/delve _home: https://github.com/go-delve/delve _name: Delve brew: delve go: github.com/go-delve/delve/cmd/dlv@latest deno: _bin: deno _desc: '[Deno](https://deno.land/) is a modern runtime for JavaScript and TypeScript. It is advertised as a simple runtime that uses V8 and Rust. It is boasted as secure-by-default because there is no file, network, or environment access unless explicitly enabled. Deno compiles apps into single executables. An app made with Deno generally specifies its dependencies as URLs mainly hosted in the [Deno standard module repository](https://deno.land/std).' _docs: https://deno.land/manual _github: https://github.com/denoland/deno _home: https://deno.land/ _name: Deno ansible: professormanhattan.deno brew: deno cargo: deno choco: deno nix: deno scoop: deno desed: _bin: desed _desc: Debugger for sed used to demystify and debug the sed scripts, from comfort of terminal _docs: https://github.com/SoptikHa2/desed#controls _github: https://github.com/SoptikHa2/desed _home: https://github.com/SoptikHa2/desed _name: desed cargo: desed dnf:fedora: desed github: github.com/SoptikHa2/desed pkg: desed xbps-freebsd: desed desk: _bin: desk _github: https://github.com/jamesob/desk _name: Desk brew: desk desktop: _bin: null _github: false _desc: This role is essentially the place where all desktop-specific tasks that are substantial enough for their own role are placed. _name: Desktop ansible: professormanhattan.desktop deta: _bin: deta _desc: Command line interface for managing Deta micros and deployments _docs: https://docs.deta.sh/docs/cli/install _github: https://github.com/deta/deta-cli _home: https://www.deta.sh/ _name: deta github: github.com/deta/deta-cli script:darwin: curl -fsSL https://get.deta.dev/cli.sh | sh script:linux: curl -fsSL https://get.deta.dev/cli.sh | sh script:windows: iwr https://get.deta.dev/cli.ps1 -useb | iex devbox: _bin: devbox _github: https://github.com/jetpack-io/devbox _todo: Revisit because install via script would require expect since piping y to the installer is not working # nix-env: nixpkgs.devbox # script: curl -fsSL https://get.jetpack.io/devbox | bash devpod: _bin: devpod _github: https://github.com/loft-sh/devpod _name: DevPod cask: devpod devspace: _bin: devspace _github: https://github.com/devspace-sh/devspace _name: DevSpace brew: devspace npm: devspace scoop: devspace devtoys: _app: DevToys.app _bin: devtoys _github: https://github.com/ObuchiYuki/DevToysMac cask: devtoys devtoys-windows: _bin: devtoys _github: https://github.com/veler/DevToys _name: Windows DevToys choco: devtoys winget: devtoys dframe: _bin: dframe _desc: Put device frames around your mobile/web/progressive app screenshots _github: https://github.com/c0bra/deviceframe npm: deviceframe dialect: _bin: dialect _github: https://github.com/dialect-app/dialect/ apt: dialect dnf: dialect flatpak: app.drey.Dialect dialog: _bin: dialog _github: false _home: https://invisible-island.net/dialog/ _name: Dialog apt: dialog brew: dialog choco: dialog dnf: dialog pacman: dialog difftastic: _bin: difft _desc: Difftastic is a structural diff tool that understands syntax. _docs: https://difftastic.wilfred.me.uk/git.html _github: https://github.com/Wilfred/difftastic _home: https://difftastic.wilfred.me.uk/ _name: Difftastic brew: difftastic cargo: difftastic direnv: _bin: direnv _desc: '[direnv](https://direnv.net/) is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.' _docs: https://direnv.net/ _github: https://github.com/direnv/direnv _home: https://direnv.net/ _name: direnv ansible: professormanhattan.direnv apt: direnv brew: direnv github: github.com/direnv/direnv discord: _github: false _app: Discord.app _bin: discord _name: Discord cask: discord choco: discord flatpak: com.discordapp.Discord distrobox: _bin: distrobox _github: https://github.com/89luca89/distrobox _name: Distrobox apk: distrobox apt: distrobox dnf: distrobox pacman: distrobox dive: _bin: dive _desc: '[dive](https://github.com/wagoodman/dive) is a tool for exploring a docker image, layer contents, and discovering ways to shrink the size of the Docker/OCI image.' _description: A tool for exploring each layer in a docker image _github: https://github.com/wagoodman/dive _home: https://github.com/wagoodman/dive _name: dive ansible: professormanhattan.dive brew: dive github: github.com/wagoodman/dive go: github.com/wagoodman/dive@latest yay: dive dns: _bin: null _github: false _desc: This role ensures that DNS requests are encrypted if you supply it the appropriate configuration. It uses systemd on Linux. On macOS/Windows, it installs and configures [Stubby](https://github.com/getdnsapi/stubby). _name: DNS ansible: professormanhattan.dns dnsmasq: _bin: dnsmasq _desc: '[Dnsmasq](https://wiki.debian.org/dnsmasq) is free software providing Domain Name System caching, a Dynamic Host Configuration Protocol server, router advertisement and network boot features, intended for small computer networks.' _docs: https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html _github: https://github.com/imp/dnsmasq _name: dnsmasq _service: dnsmasq ansible: professormanhattan.dnsmasq apt: dnsmasq brew: dnsmasq dnf: dnsmasq pacman: dnsmasq port: dnsmasq docker: _github: https://github.com/microsoft/docker _bin: docker _deps: - docker-images _name: Docker CLI apt: - containerd.io - docker-ce - docker-ce-cli - docker-compose-plugin dnf: - containerd.io - docker-ce - docker-ce-cli - docker-compose-plugin pacman: - containerd.io - docker-ce - docker-ce-cli - docker-compose-plugin script:darwin: echo "Docker CLI installed by Docker Desktop on macOS" zypper: - containerd.io - docker-ce - docker-ce-cli - docker-compose-plugin docker-credential-helper: _bin:darwin: docker-credential-osxkeychain _bin:linux: docker-credential-secretservice _bin:windows: docker-credential-wincred _desc: Programs to keep Docker login credentials safe by storing in platform keystores _docs: https://github.com/docker/docker-credential-helpers _github: https://github.com/docker/docker-credential-helpers _home: https://github.com/docker/docker-credential-helpers _name: Docker Credential Helper _preload: true brew: docker-credential-helper docker-desktop: _app: Docker.app _desc: '[Docker](https://www.docker.com/) is a set of platform-as-a-service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. [Docker Desktop](https://www.docker.com/products/docker-desktop/) adds a sleek UI for Docker and makes it easier to manage Docker on macOS and Windows.' _docs: https://docs.docker.com/ _github: https://github.com/docker/compose _home: https://www.docker.com/ _name: Docker Desktop _post: "#!/usr/bin/env bash\n# @file DockerHub Login\n# @brief Logs into DockerHub for Docker Desktop\n# @description\n# This script logs into DockerHub so that Docker Desktop is pre-authenticated. This\n# functionality requires that the `DOCKERHUB_USER` be passed in as an environment variable (or \n# directly editted in the `~/.config/chezmoi/chezmoi.yaml` file) and that the `DOCKERHUB_TOKEN`\n# be passed in as a secret (either via the encrypted secret method or passed in as an environment\n# variable).\n\n### Login to DockerHub\nif command -v docker > /dev/null; then\n DOCKERHUB_TOKEN=\"{{ if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"DOCKERHUB_TOKEN\")) }}{{- includeTemplate \"secrets/DOCKERHUB_TOKEN\" | decrypt | trim -}}{{ else }}{{- env \"DOCKERHUB_TOKEN\" -}}{{ end }}\"\n DOCKERHUB_USER=\"{{ .user.docker.username }}\"\n if [ -d \"/Applications/Docker.app\" ] || [ -d \"$HOME/Applications/Docker.app\" ]; then\n logg info 'Ensuring Docker.app is open' && open --background -a Docker --args --accept-license --unattended\n fi\n logg info 'Headlessly authenticating with DockerHub registry' && echo \"$DOCKERHUB_TOKEN\" | docker login -u \"$DOCKERHUB_USER\" --password-stdin > /dev/null && logg success 'Successfully authenticated with DockerHub registry'\nfi\n\n### Symlink on macOS\nif [ -f \"$HOME/Library/Containers/com.docker.docker/Data/docker.raw.sock\" ]; then\n logg info 'Symlinking /var/run/docker.sock to macOS Library location' && sudo ln -s \"$HOME/Library/Containers/com.docker.docker/Data/docker.raw.sock\" /var/run/docker.sock\nfi\n" apt: https://desktop.docker.com/linux/main/amd64/docker-desktop-4.16.2-amd64.deb cask: docker choco: docker-desktop dnf: https://desktop.docker.com/linux/main/amd64/docker-desktop-4.16.2-x86_64.rpm pacman: https://desktop.docker.com/linux/main/amd64/docker-desktop-4.16.2-x86_64.pkg.tar.zst docker-images: _github: false _desc: This entry is used to trigger a post-installation docker image pre-load. See the `docker-images` entry in `.chezmoidata.yaml`. script: echo "Enabling docker-images pre-load" docker-langserver: _bin: docker-langserver _desc: A Docker language server _docs: https://github.com/rcjsuen/dockerfile-language-server-nodejs _github: https://github.com/rcjsuen/dockerfile-language-server-nodejs _home: https://github.com/rcjsuen/dockerfile-language-server-nodejs _name: Docker Language Server npm: dockerfile-language-server-nodejs docker-plugins: _github: false _desc: This entry is used to trigger a post-installation Docker plugin installation. See `docker-plugins` entry in `.chezmoidata.yaml`. docker-pushrm: _bin: docker-pushrm _github: https://github.com/christian-korneck/docker-pushrm _name: Docker PushRM script: | if [ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/docker/cli-plugins/docker-pushrm" ]; then logg info 'Acquiring release information for Docker push-rm' RELEASE_TAG="$(curl -sSL https://api.github.com/repos/christian-korneck/docker-pushrm/releases/latest | jq -r '.tag_name')" mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/docker/cli-plugins" logg info 'Downloading Docker push-rm' && curl https://github.com/christian-korneck/docker-pushrm/releases/download/$RELEASE_TAG/docker-pushrm_darwin_amd64 -o "${XDG_CONFIG_HOME:-$HOME/.config}/docker/cli-plugins/docker-pushrm" chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/docker/cli-plugins/docker-pushrm" logg success 'Added Docker push-rm' else logg info 'Docker push-rm already added' fi docker-slim: _bin: slim _desc: "[DockerSlim](https://dockersl.im/) will optimize and secure your containers by understanding your application and what it needs using various analysis techniques. It will throw away what you don't need, reducing the attack surface of your container. What if you need some of those extra things to debug your container? You can use dedicated debugging side-car containers for that." _docs: https://github.com/docker-slim/docker-slim#basic-usage-info _github: https://github.com/docker-slim/docker-slim _home: https://dockersl.im/ _name: Docker Slim brew: docker-slim dnf:fedora: golang-github-docker-slim github: github.com/docker-slim/docker-slim yay: docker-slim dockfmt: _bin: dockfmt _github: https://github.com/jessfraz/dockfmt _name: dockfmt go: github.com/jessfraz/dockfmt@latest dockle: _bin: dockle _desc: Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start _github: https://github.com/goodwithtech/dockle _name: dockle brew: goodwithtech/r/dockle github: github.com/goodwithtech/dockle yay: dockle-bin dockly: _bin: dockly _github: https://github.com/lirantal/dockly _name: Dockly npm: dockly dockutil: _bin: dockutil _github: https://github.com/kcrawford/dockutil _name: DockUtil brew:darwin: dockutil doctl: _bin: doctl _desc: The official command line interface for the DigitalOcean API _github: https://github.com/digitalocean/doctl _name: doctl brew: doctl github: github.com/digitalocean/doctl pacman: doctl pkg: doctl snap: doctl dog: _bin: dog _desc: A command-line DNS client _github: https://github.com/ogham/dog _name: dog brew: dog github: github.com/ogham/dog pacman: dog pkg: dog doitlive: _bin: doitlive _github: https://github.com/sloria/doitlive _name: Do It Live! brew: doitlive pipx: doitlive dokany: _bin: dokany _github: https://github.com/dokan-dev/dokany _name: Dokany _note: Required for CephFS on Windows choco: dokany dotenv-linter: _bin: dotenv-linter _desc: '[Dotenv Linter](https://dotenv-linter.github.io) is a lightning-fast linter for .env files. Written in Rust' _github: https://github.com/dotenv-linter/dotenv-linter _home: https://dotenv-linter.github.io/ _name: Dotenv Linter brew: dotenv-linter cargo: dotenv-linter scoop: dotenv-linter yay: dotenv-linter dotenv-vault: _bin: dotenv-vault _name: Dotenv Vault _github: https://github.com/dotenv-org/dotenv-vault brew: dotenv-org/brew/dotenv-vault npm: dotenv-vault dotnet: _bin: dotnet _desc: "[.Net](https://dotnet.microsoft.com/) lets you create beautiful apps and scalable cloud services, faster and easier with the free, open-source platform that's loved by developers and trusted by organizations" _docs: https://learn.microsoft.com/en-us/dotnet/ _github: https://github.com/dotnet _home: https://dotnet.microsoft.com/ _name: .Net brew: dotnet choco: dotnet yay: dotnet-sdk-bin dprint: _bin: dprint _desc: '[dprint](https://dprint.dev/) is a pluggable and configurable code formatting platform written in Rust.' _docs: https://dprint.dev/ _github: https://github.com/dprint _home: https://dprint.dev/ _name: DPrint brew: dprint cargo: dprint npm: dprint scoop: dprint script:darwin: curl -fsSL https://dprint.dev/install.sh | sh script:linux: curl -fsSL https://dprint.dev/install.sh | sh script:windows: iwr https://dprint.dev/install.ps1 -useb | iex drawing: _bin: drawing _github: https://github.com/maoschanz/drawing flatpak: com.github.maoschanz.drawing drawio: _app: draw.io.app _bin: null _desc: Desktop version of the popular diagrams.net diagramming software _docs: https://www.drawio.com/doc/ _github: https://github.com/jgraph/drawio-desktop _home: https://www.diagrams.net/ _name: DrawIO Desktop appimage: draw.io cask: drawio choco: drawio drone-cli: _bin: drone _desc: The Drone command line tools are used to interact with the Drone from the command line, and provide important utilities for managing users and repository settings _docs: https://docs.drone.io/cli/install/ _github: https://github.com/harness/drone-cli _home: https://www.drone.io/ _name: Drone CLI brew: drone/drone/drone github: github.com/harness/drone-cli scoop: drone dua: _bin: dua _github: https://github.com/Byron/dua-cli brew: dua-cli cargo: dua-cli dnf:fedora: dua-cli pacman: dua-cli pkgin: dua-cli port: dua-cli scoop: dua xbps: dua-cli duf: _bin: duf _desc: "[duf](https://github.com/muesli/duf) is a Disk Usage/Free Utility - a better 'df' alternative. It displays a chart within your terminal that gives you an overview of hard-drive usage statistics." _docs: https://github.com/muesli/duf#usage _github: https://github.com/muesli/duf _home: https://github.com/muesli/duf _name: duf ansible: professormanhattan.duf brew: duf choco: duf github: github.com/muesli/duf pacman: duf pkg: duf scoop: duf dust: _bin: dust _desc: A more intuitive version of du in rust _docs: https://github.com/bootandy/dust#usage _github: https://github.com/bootandy/dust _home: https://github.com/bootandy/dust _name: dust apk: dust brew:darwin: dust brew:linux: tgotwig/linux-dust/dust cargo: du-dust github: github.com/bootandy/dust pacman: dust duti: _bin: duti _github: https://github.com/moretension/duti _name: Duti brew:darwin: duti eartrumpet: _bin: null _desc: Advanced, sleek volume controls for Windows _docs: https://github.com/File-New-Project/EarTrumpet _github: https://github.com/File-New-Project/EarTrumpet _home: https://eartrumpet.app/ _name: EarTrumpet choco: eartrumpet winget: File-New-Project.EarTrumpet easyengine: _bin: ee _desc: "[EasyEngine](https://easyengine.io/) is a command-line control panel for Nginx to manage WordPress sites running on Nginx, PHP, MySQL, and Let's Encrypt." _docs: https://easyengine.io/handbook/ _github: https://github.com/EasyEngine/easyengine _home: https://easyengine.io/ _name: EasyEngine _post: | #!/usr/bin/env bash if [ -n "$CLOUDFLARE_EMAIL" ] && [ -n "$CLOUDFLARE_API_KEY" ]; then ee config set le-mail "$CLOUDFLARE_EMAIL" ee config set cloudflare-api-key "$CLOUDFLARE_API_KEY" fi brew: easyengine script:linux: wget -qO ee rt.cx/ee4 && sudo bash ee edex-ui: _app: eDEX-UI.app _bin: edex-ui _desc: A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support. _docs: https://github.com/GitSquared/edex-ui _github: https://github.com/GitSquared/edex-ui _home: https://github.com/GitSquared/edex-ui _name: EDEX UI appimage: edex-ui cask: edex-ui port: edex-ui editly: _bin: editly _desc: Editly is a tool and framework for declarative NLE (non-linear video editing) using Node.js and ffmpeg. Editly allows you to easily and programmatically create a video from a set of clips, images, audio and titles, with smooth transitions and music overlaid. _docs: https://github.com/mifi/editly#usage-command-line-video-editor _github: https://github.com/mifi/editly _home: https://github.com/mifi/editly _name: Editly npm: editly eget: _bin: eget _github: https://github.com/zyedidia/eget _name: eget brew: eget choco: eget go: github.com/zyedidia/eget@latest ejs: _bin: ejs _github: https://github.com/mde/ejs _name: EJS npm: ejs electron: _app: Electron.app _bin: electron _desc: '[Electron](https://www.electronjs.org/) allows you to build cross-platform desktop apps with JavaScript, HTML, and CSS' _docs: https://www.electronjs.org/docs/latest/ _github: https://github.com/electron/electron _home: https://www.electronjs.org/ _name: Electron cask: electron choco: electron npm: electron element: _app: Element.app _bin: element _github: https://github.com/vector-im/element-web _name: Element cask: element choco: element-desktop flatpak: im.riot.Riot emma: _bin: emma _desc: Advanced package search for NPM _docs: https://www.npmjs.com/package/emma-cli#example _github: https://github.com/maticzav/emma-cli _home: https://www.npmjs.com/package/emma-cli _name: Emma npm: emma-cli emoj: _bin: emoj _desc: Find relevant emoji from text on the command-line _github: https://github.com/sindresorhus/emoj _name: emoj npm: emoj emplace: _bin: emplace _desc: Emplace objects and arrays - pointer to pointer style _docs: https://github.com/tversteeg/emplace _github: https://github.com/tversteeg/emplace _home: https://github.com/tversteeg/emplace _name: Emplace cargo: emplace --locked nix: emplace scoop: emplace empty-trash: _bin: empty-trash _desc: CLI to empty trash on macOS, Windows, and Linux _docs: https://github.com/sindresorhus/empty-trash-cli _github: https://github.com/sindresorhus/empty-trash-cli _home: https://github.com/sindresorhus/empty-trash-cli _name: Empty Trash CLI npm: empty-trash-cli endlessh: _bin: endlessh _desc: '[Endlessh](https://github.com/skeeto/endlessh) is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server.' _docs: https://github.com/skeeto/endlessh _github: https://github.com/skeeto/endlessh _home: https://github.com/skeeto/endlessh _name: Endlessh _post: | #!/usr/bin/env bash # @file Endlessh Configuration # @brief Applies the Endlessh configuration and starts the service on Linux systems # @description # Endlessh is a endless SSH tarpit that slowly shows an infinitely long SSH welcome banner on the default # SSH port. It is intended to break unsophisticated malware that targets SSH. # # If the `endlessh` program is installed, this script applies the configuration stored in `home/private_dot_ssh/endlessh/config.tmpl` # (that unpacks with Chezmoi to `~/.ssh/endlessh/config`) to the system location and then starts the service. # # **Note:** _This script runs under the assumption that the actual SSH port which is defined in `home/.chezmoidata.yaml` # is assigned to a non-standard port like 2214. This allows the default port to be used for `endlessh`._ # # ## Links # # * [Endlessh GitHub repository](https://github.com/skeeto/endlessh) # * [Endlessh configuration](https://github.com/megabyte-labs/install.doctor/blob/master/home/private_dot_ssh/endlessh/config.tmpl) ### Configures endlessh service function configureEndlessh() { ### Update the service configuration file logg info 'Updating endlessh service configuration file' sudo sed -i 's/^.*#AmbientCapabilities=CAP_NET_BIND_SERVICE/AmbientCapabilities=CAP_NET_BIND_SERVICE/' /usr/lib/systemd/system/endlessh.service sudo sed -i 's/^.*PrivateUsers=true/#PrivateUsers=true/' /usr/lib/systemd/system/endlessh.service logg info 'Reloading systemd' && sudo systemctl daemon-reload ### Update capabilities of `endlessh` logg info 'Updating capabilities of endlessh' && sudo setcap 'cap_net_bind_service=+ep' /usr/bin/endlessh ### Restart / enable Endlessh logg info 'Enabling the endlessh service' && sudo systemctl enable endlessh logg info 'Restarting the endlessh service' && sudo systemctl restart endlessh } ### Update /etc/endlessh/config if environment is not WSL if [[ ! "$(test -d proc && grep Microsoft /proc/version > /dev/null)" ]]; then if command -v endlessh > /dev/null; then if [ -d /etc/endlessh ]; then logg info 'Copying ~/.ssh/endlessh/config to /etc/endlessh/config' && sudo cp -f "$HOME/.ssh/endlessh/config" /etc/endlessh/config configureEndlessh || CONFIGURE_EXIT_CODE=$? if [ -n "$CONFIGURE_EXIT_CODE" ]; then logg error 'Configuring endlessh service failed' && exit 1 else logg success 'Successfully configured endlessh service' fi elif [ -f /etc/endlessh.conf ]; then logg info 'Copying ~/.ssh/endlessh/config to /etc/endlessh.conf' && sudo cp -f "$HOME/.ssh/endlessh/config" /etc/endlessh.conf configureEndlessh || CONFIGURE_EXIT_CODE=$? if [ -n "$CONFIGURE_EXIT_CODE" ]; then logg error 'Configuring endlessh service failed' && exit 1 else logg success 'Successfully configured endlessh service' fi else logg warn 'Neither the /etc/endlessh folder nor the /etc/endlessh.conf file exist' fi else logg info 'Skipping Endlessh configuration because the endlessh executable is not available in the PATH' fi else logg info 'Skipping Endlessh configuration since environment is WSL' fi _service: endlessh # CentOS 9 not in EPEL # ansible:linux: professormanhattan.sshtarpit apt: endlessh dnf:fedora: endlessh yay: endlessh-git enola: _bin: enola _desc: Hunt down social media accounts by username across social networks (Sherlock Go clone) _docs: https://github.com/TheYahya/enola _github: https://github.com/TheYahya/enola _home: https://github.com/TheYahya/enola _name: Enola go: github.com/theyahya/enola/cmd/enola@latest envchain: _bin: envchain _deps: - _envchain:deps _desc: Environment variables meet macOS Keychain and gnome-keyring _docs: https://github.com/sorah/envchain#usage _github: https://github.com/sorah/envchain _home: https://github.com/sorah/envchain _name: envchain _post: | #!/usr/bin/env bash # @file Store Secrets in Keyring # @brief Stores secret environment variables into the System keyring # @description # This script imports secret environment variables into the System keyring if `envchain` is installed. # Secrets stored in the folder 'home/.chezmoitemplates/secrets' following the Install Doctor method are # imported into the System keyring by this script. There is only one namespace called `default` where the # secrets are stored. Executing `envchain default env` displays all the environment variables and their values. # # ## Secrets # # For more information about storing secrets like SSH keys and API keys, refer to our [Secrets documentation](https://install.doctor/docs/customization/secrets). ### Import environment variables into `envchain` if command -v envchain > /dev/null; then {{- if (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) }} logg info 'Importing environment variables into the System keyring' for file in {{ joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "*" }}; do cat "$file" | chezmoi decrypt | envchain -s default "$(basename $file)" > /dev/null || logg info 'Importing "$(basename $file)" failed' done {{- else }} logg warn 'Unable to import any variables into envchain because ~/.config/age/chezmoi.txt was not created by the secrets encryption process yet' {{- end }} else logg info 'envchain is not installed or it is not available in the PATH' fi brew: envchain github: github.com/sorah/envchain envconsul: _bin: envconsul _desc: Launch a subprocess with environment variables using data from @hashicorp Consul and Vault _github: https://github.com/hashicorp/envconsul _name: envconsul ansible: professormanhattan.envconsul brew: envconsul github: github.com/hashicorp/envconsul envio: _bin: envio _github: https://github.com/humblepenguinn/envio _name: Envio cargo: envio environment: _bin: null _github: false ansible: professormanhattan.environment envpane: _bin: null _desc: An OS X preference pane for environment variables _docs: https://github.com/hschmidt/EnvPane _github: https://github.com/hschmidt/EnvPane _home: https://github.com/hschmidt/EnvPane _name: EnvPane _when:script: '! test -d "$HOME/Library/PreferencePanes/EnvPane.prefPane"' script:darwin: '(cd ~/Library/PreferencePanes && rm -rf EnvPane.prefPane && curl -sL https://github.com/hschmidt/EnvPane/releases/download/releases%2F0.8/EnvPane-0.8.tar.bz2 | tar -xjf -)' eslint: _bin: eslint _desc: '[ESLint](https://eslint.org/) allows you to find and fix problems in your JavaScript code' _docs: https://eslint.org/docs _github: https://github.com/eslint/eslint _home: https://eslint.org/ _name: ESLint brew: eslint npm: eslint eslint-dashboard: _bin: eslint-dashboard _github: https://github.com/fengzilong/eslint-dashboard _name: ESLint Dashboard npm: eslint-dashboard eslint-interactive: _bin: eslint-interactive _github: https://github.com/mizdra/eslint-interactive _name: ESLint Interactive npm: eslint-interactive eslintd: _bin: eslint_d _docs: https://github.com/mantoni/eslint_d.js _github: https://github.com/mantoni/eslint_d.js _home: https://github.com/mantoni/eslint_d.js _name: ESLint_d npm: eslint_d espanso: _app: Espanso.app _bin: espanso _github: https://github.com/espanso/espanso _name: Espanso _post:appimage: | #!/usr/bin/env bash espanso service register && espanso start _post:snap: | #!/usr/bin/env bash espanso service register && espanso start appimage: federico-terzi/espanso cask: espanso choco: espanso snap: espanso --channel=latest/edge --classic esprint: _bin: esprint _github: https://github.com/pinterest/esprint _name: ESPrint npm: esprint etcd: _bin: etcd _desc: Distributed reliable key-value store for the most critical data of a distributed system _github: https://github.com/etcd-io/etcd _name: etcd _service: etcd _serviceEnabled: true apt: etcd brew: etcd choco: etcd dnf:fedora: etcd github: github.com/etcd-io/etcd yay: etcd ettercap: _bin: ettercap _github: https://github.com/Ettercap/ettercap _name: Ettercap apt: ettercap brew: ettercap choco: ettercap dnf: ettercap pacman: ettercap eul: _app: eul.app _bin: null _desc: Menu bar application that shows system stats like CPU, RAM, and disk usage on macOS _docs: https://github.com/gao-sun/eul _github: https://github.com/gao-sun/eul _home: https://github.com/gao-sun/eul _name: Eul cask: eul mas: 1537133867 exa: _bin: exa _desc: A modern replacement for ls. _docs: https://the.exa.website/introduction _github: https://github.com/ogham/exa _home: https://the.exa.website/ _name: Exa apt: exa brew: exa cargo: exa dnf: exa emerge: sys-apps/exa nix: exa pacman: exa zypper: exa exiftool: _bin: exiftool _desc: '[exiftool](https://exiftool.org/) is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files' _docs: https://exiftool.org/exiftool_pod.html _github: https://github.com/exiftool/exiftool _home: https://exiftool.org/ _name: exiftool ansible: professormanhattan.exiftool apt: libimage-exiftool-perl brew: exiftool choco: exiftool dnf: perl-Image-ExifTool.noarch pacman: perl-image-exiftool port: exiftool scoop: exiftool expect: _bin: expect _name: Expect _github: false apt: expect brew: expect dnf: expect pacman: expect port: expect extensions: _bin: null _github: false _desc: This role acts as a catch-all for extensions for various system software. _name: Extensions ansible: professormanhattan.extensions fabric: _bin: fab _github: https://github.com/fabric/fabric _name: Fabric brew: fabric pipx: fabric fail2ban: _bin: fail2ban-client _github: https://github.com/fail2ban/fail2ban _notes: | fail2ban cannot be installed on Qubes Fedora 36 without messing with the qubes-firewall since firewalld is required. _post: | #!/usr/bin/env bash # @file Fail2ban Configuration # @brief Applies the system `fail2ban` jail configuration and then restarts the service # @description # Fail2ban is an SSH security program that temporarily bans IP addresses that could possibly be # attempting to gain unauthorized system access. This script applies the "jail" configuration # located at `home/private_dot_ssh/fail2ban/` to the system location. It then enables and restarts # the `fail2ban` configuration. # # ## Links # # * [`fail2ban` configuration folder](https://github.com/megabyte-labs/install.doctor/tree/master/home/private_dot_ssh/fail2ban) ### Notify of script start logg info 'Configuring fail2ban' ### Restart fail2ban function restartFailToBan() { if [ -d /Applications ] && [ -d /System ]; then ### macOS logg info 'Enabling the fail2ban Homebrew service' brew services restart fail2ban else # Linux logg info 'Enabling the fail2ban service' sudo systemctl enable fail2ban logg info 'Restarting the fail2ban service' sudo systemctl restart fail2ban fi } ### Update the jail.local file if environment is not WSL logg info 'Checking if script is being run in WSL environment' if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then if [ -d /etc/fail2ban ]; then logg info 'Copying ~/.ssh/fail2ban/jail.local to /etc/fail2ban/jail.local' sudo cp -f "$HOME/.ssh/fail2ban/jail.local" /etc/fail2ban/jail.local restartFailToBan elif [ -d /usr/local/etc/fail2ban ]; then logg info 'Copying ~/.ssh/fail2ban/jail.local to /usr/local/etc/fail2ban/jail.local' sudo cp -f "$HOME/.ssh/fail2ban/jail.local" /usr/local/etc/fail2ban/jail.local restartFailToBan elif [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/fail2ban" ]; then logg info "Copying ~/.ssh/fail2ban/jail.local to ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/fail2ban/jail.local" sudo cp -f "$HOME/.ssh/fail2ban/jail.local" "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/fail2ban/jail.local" restartFailToBan else logg warn 'The /etc/fail2ban (Linux), the /usr/local/etc/fail2ban, and the ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/fail2ban (macOS) folder do not exist' fi else logg info 'Skipping sshd_config application since environment is WSL' fi _service: fail2ban _service:brew: - name: fail2ban sudo: true _serviceEnabled: true _when:linux: '! command -v qubes-firewall > /dev/null && test -f /proc/version && ! grep Microsoft /proc/version > /dev/null' apt: fail2ban brew: fail2ban dnf: fail2ban pacman: fail2ban port: fail2ban fastify: _bin: fastify _desc: Run a Fastify application with one command _github: https://github.com/fastify/fastify-cli _home: https://www.fastify.io/ _name: fastify npm: fastify-cli fastlane: _bin: fastlane _github: https://github.com/fastlane/fastlane _home: https://fastlane.tools/ _name: Fastlane brew: fastlane gem: fastlane fcp: _bin: fcp _desc: A significantly faster alternative to the classic Unix cp(1) command, copying large files and directories in a fraction of the time. _docs: https://github.com/Svetlitski/fcp#usage _github: https://github.com/Svetlitski/fcp _home: https://github.com/Svetlitski/fcp _name: fcp brew: fcp cargo: fcp nix: unstable.fcp fd: _bin: fd _bin:apt: fdfind _desc: "[fd](https://github.com/sharkdp/fd) is a program that can search for files on your filesystem. It is a simple, fast, and user-friendly alternative to find. While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases." _github: https://github.com/sharkdp/fd _name: fd ansible: professormanhattan.fd apk: fd apt: fd-find brew: fd cargo: fd-find choco: fd github: github.com/sharkdp/fd pacman: fd pkg: fd scoop: fd fdupes: _bin: fdupes _github: https://github.com/adrianlopezroche/fdupes _name: fdupes apt: fdupes brew: fdupes dnf: fdupes pacman: fdupes feathers: _bin: feathers _desc: The command line interface for scaffolding Feathers applications _github: https://github.com/feathersjs-ecosystem/cli npm: '@feathersjs/cli' ferdium: _app: Ferdium.app _github: https://github.com/ferdium/ferdium-app _bin: ferdium _env: FERDIUM_APPDATA: cask: "$HOME/Library/Application Support/Ferdium" choco: TODO flatpak: "$HOME/.var/app/org.ferdium.Ferdium/config/Ferdium" snap: "$HOME/snap/ferdium/current/.config/Ferdium" cask: ferdium choco: ferdium flatpak: org.ferdium.Ferdium snap: ferdium ffmpeg: _bin: ffmpeg _desc: '[FFmpeg](https://www.ffmpeg.org/) is the leading multimedia framework. It is able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge.' _github: https://github.com/FFmpeg/FFmpeg _name: FFmpeg ansible: professormanhattan.ffmpeg apk: ffmpeg apt: ffmpeg brew: ffmpeg choco: ffmpeg dnf: ffmpeg pacman: ffmpeg scoop: ffmpeg ffsend: _bin: ffsend _desc: '[ffsend](https://github.com/timvisee/ffsend) (formerly [Firefox Send](https://support.mozilla.org/en-US/kb/what-happened-firefox-send)) allows you to easily and securely share files and directories from the command line through a safe, private and encrypted link using a single simple command. Files are shared using the [Send](https://send.vis.ee/) service and may be up to 1GB. Others are able to download these files with this tool, or through their web browser.' _github: https://github.com/timvisee/ffsend _name: ffsend ansible: professormanhattan.ffsend apk: ffsend brew: ffsend github: github.com/timvisee/ffsend pkg: ffsend scoop: ffsend snap: ffsend yay: ffsend fiddler: _bin: fiddler _desc: The community-trusted free Windows-only tool that logs HTTP(s) network traffic. _docs: https://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler _github: false _home: https://www.telerik.com/fiddler _name: Fiddler _todo: Add headless installation method for Linux choco: fiddler scoop: extras/fiddler fig: _app: Fig.app _bin: fig _desc: '[Fig](https://fig.io/) adds autocomplete to your terminal. As you type, Fig pops up subcommands, options, and contextually relevant arguments in your existing terminal.' _docs: https://fig.io/user-manual _github: https://github.com/withfig/autocomplete _home: https://fig.io/ _name: Fig _post: | #!/usr/bin/env bash source ~/.config/shell/private.sh && fig login --token "$FIG_TOKEN" cask: fig figlet: _bin: figlet _github: https://github.com/cmatsuoka/figlet _name: Figlet apt: figlet brew: figlet choco: figlet dnf: figlet pacman: figlet zypper: figlet figma: _app: Figma.app _bin: null _desc: Collaborative team software _docs: https://help.figma.com/hc/en-us _github: false _home: https://www.figma.com/ _name: Figma appimage: Figma-Linux/figma-linux cask: figma choco: figma flatpak: io.github.Figma_Linux.figma_linux snap: figma-linux filebrowser: _bin: filebrowser _desc: '[File Browser](https://filebrowser.org/) is a tool that lets you browse and edit files on any mounting point in the operating system.' _docs: https://filebrowser.org/installation _github: https://github.com/filebrowser/filebrowser _home: https://filebrowser.org/ _name: File Browser ansible: professormanhattan.filebrowser brew: filebrowser/tap/filebrowser github: github.com/filebrowser/filebrowser filezilla: _app: FileZilla.app _bin: filezilla _desc: '[FileZilla](https://filezilla-project.org/) is a free software, cross-platform FTP application, consisting of FileZilla Client and FileZilla Server. Client binaries are available for Windows, Linux, and macOS, server binaries are available for Windows only.' _docs: https://wiki.filezilla-project.org/Documentation _github: https://svn.filezilla-project.org/filezilla/ _home: https://filezilla-project.org/ _name: FileZilla ansible:darwin: professormanhattan.filezilla apt: filezilla choco: filezilla dnf: filezilla flatpak: org.filezillaproject.Filezilla pacman: filezilla findutils: _bin: gfind _github: false brew: findutils finish: _bin: null _github: false _desc: This role should be the last role in the playbook. _name: Finish ansible: professormanhattan.finish firebase: _github: https://github.com/firebase/firebase-tools _bin: firebase _desc: The Firebase Command Line Interface (CLI) Tools can be used to test, manage, and deploy your Firebase project from the command line npm: firebase-tools firefox: _app: Firefox.app _bin: firefox _github: false _deps: - htmlq _desc: '[Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/), or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards.' _docs: https://developer.mozilla.org/en-US/ _env: FIREFOX_APPDATA: apt: "$HOME/.mozilla/firefox" cask: "$HOME/Library/Application Support/Firefox/Profiles" choco: "TODO" dnf: "$HOME/.mozilla/firefox" flatpak: "$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox" pacman: "$HOME/.mozilla/firefox" snap: "$HOME/snap/firefox/common/.mozilla/firefox" _home: https://www.mozilla.org/en-US/firefox/new/ _name: Mozilla Firefox _post: | #!/usr/bin/env bash # @file Firefox Settings / Add-Ons / Profiles # @brief This script configures system-wide settings, sets up Firefox Profile Switcher, creates various profiles from different sources, and installs a configurable list of Firefox Add-Ons. # @description # The Firefox setup script performs a handful of tasks that automate the setup of Firefox as well as # useful utilities that will benefit Firefox power-users. The script also performs the same logic on # [LibreWolf](https://librewolf.net/) installations. # # ## Features # # * Installs and sets up [Firefox Profile Switcher](https://github.com/null-dev/firefox-profile-switcher) # * Sets up system-wide enterprise settings (with configurations found in `~/.local/share/firefox`) # * Sets up a handful of default profiles to use with the Firefox Profile Switcher # * Automatically installs the plugins defined in the firefoxAddOns key of [`home/.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoidata.yaml) to the Standard and Private profiles # * Configures the default profile to clone its settings from the profile stored in firefoxPublicProfile of `home/.chezmoidata.yaml` # * Optionally, if the Chezmoi encryption key is present, then the default profile will be set to the contents of an encrypted `.tar.gz` that must be stored in the cloud somewhere (with the firefoxPrivateProfile key in `home/.chezmoidata.yaml` defining the URL of the encrypted `.tar.gz`) # # ## Profiles # # The script sets up numerous profiles for user flexibility. They can be switched by using the Firefox Profile Switcher # that this script sets up. The map of the profiles is generated by using the template file stored in `~/.local/share/firefox/profiles.ini`. # The following details the features of each profile: # # | Name | Description | # |------------------|---------------------------------------------------------------------------------------------| # | Factory | Default browser settings (system-wide configurations still apply) | # | default-release | Same as Factory (unmodified and generated by headlessly opening Firefox / LibreWolf) | # | Git (Public) | Pre-configured profile with address stored in `firefoxPublicProfile` | # | Standard | Cloned from the profile above with `firefoxAddOns` also installed | # | Miscellaneous | Cloned from the Factory profile (with the user.js found in `~/.config/firefox` applied) | # | Development | Same as Miscellaneous | # | Automation | Same as Miscellaneous | # | Private | Populated from an encrypted profile stored in the cloud (also installs `firefoxAddOns`) | # # ## Notes # # * The Firefox Profile Switcher is only compatible with Firefox and not LibreWolf # * This script is only designed to properly provision profiles on a fresh installation (so it does not mess around with pre-existing / already configured profiles) # * Additional profiles for LibreWolf are not added because the Firefox Profile Switcher is not compatible with LibreWolf # # ## Links # # * [System-wide configurations](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_local/share/firefox) as well as the location of the `profile.ini` and some other configurations # * [User-specific configurations](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/firefox/user.js) added to all profiles except Factory function installFirefoxProfileConnector() { logg info 'Installing the Firefox Profile Connector' if command -v apt-get > /dev/null; then sudo apt-get install -y https://github.com/null-dev/firefox-profile-switcher-connector/releases/latest/download/linux-x64.deb elif command -v dnf > /dev/null; then sudo dnf install -y https://github.com/null-dev/firefox-profile-switcher-connector/releases/latest/download/linux-x64.rpm elif command -v yay > /dev/null; then yay -Ss firefox-profile-switcher-connector else logg warn 'apt-get, dnf, and yay were all unavailable so the Firefox Profile Connector helper executable could not be installed' fi } function firefoxSetup() { ### Installs the Firefox Profile Connector on Linux systems (Snap / Flatpak installs are not included in this function, but instead inline below) ### Add Firefox enterprise profile # TODO - figure out how to do this for other installations like Flatpak and macOS and Librewolf for FIREFOX_DIR in '/usr/lib/firefox' '/usr/lib/firefox-esr' '/etc/firefox' '/etc/firefox-esr' '/Applications/Firefox.app/Contents/Resources'; do if [ -d "$FIREFOX_DIR" ] && [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/firefox" ] && command -v rsync > /dev/null; then logg info "Syncing enterprise profiles from ${XDG_DATA_HOME:-$HOME/.local/share}/firefox to $FIREFOX_DIR" sudo rsync -artvu "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/" "$FIREFOX_DIR" > /dev/null fi done ### Loop through various Firefox profile locations for SETTINGS_DIR in "$HOME/snap/firefox/common/.mozilla/firefox" "$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox" "$HOME/Library/Application Support/Firefox/Profiles" "$HOME/.mozilla/firefox"; do ### Determine executable to use logg info "Processing Firefox profile location $SETTINGS_DIR" unset FIREFOX_EXE if [ "$SETTINGS_DIR" == "$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox" ]; then if ! command -v org.mozilla.firefox > /dev/null || [ ! -d "$HOME/.var/app/org.mozilla.firefox" ]; then continue else FIREFOX_EXE="$(which org.mozilla.firefox)" ### Firefox Profile Switcher BASE_DIR="$HOME/.var/app/org.mozilla.firefox" BIN_INSTALL_DIR="$BASE_DIR/data/firefoxprofileswitcher-install" MANIFEST_INSTALL_DIR="$BASE_DIR/.mozilla/native-messaging-hosts" DOWNLOAD_URL="https://github.com/null-dev/firefox-profile-switcher-connector/releases/latest/download/linux-x64.deb" ### Ensure Firefox Profile Switcher is not already installed if [ ! -f "$BIN_INSTALL_DIR/usr/bin/ff-pswitch-connector" ] || [ ! -f "$MANIFEST_INSTALL_DIR/ax.nd.profile_switcher_ff.json" ]; then ### Download profile switcher mkdir -p "$BIN_INSTALL_DIR" TMP_FILE="$(mktemp)" logg info 'Downloading Firefox Profile Switch connector' curl -sSL "$DOWNLOAD_URL" -o "$TMP_FILE" ar p "$TMP_FILE" data.tar.xz | tar xfJ - --strip-components=2 -C "$BIN_INSTALL_DIR" usr/bin/ff-pswitch-connector rm -f "$TMP_FILE" ### Create manifest logg info 'Copying profile switcher configuration to manifest directory' mkdir -p "$MANIFEST_INSTALL_DIR" cat "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/profile-switcher.json" | sed 's=PATH_PLACEHOLDER='"$BIN_INSTALL_DIR"'=' > "$MANIFEST_INSTALL_DIR/ax.nd.profile_switcher_ff.json" fi fi elif [ "$SETTINGS_DIR" == "$HOME/.var/app/io.gitlab.librewolf-community/.librewolf" ]; then if ! command -v io.gitlab.librewolf-community > /dev/null || [ ! -d "$HOME/.var/app/io.gitlab.librewolf-community" ]; then continue else continue # FIREFOX_EXE="$(which io.gitlab.librewolf-community)" fi elif [ "$SETTINGS_DIR" == "$HOME/Library/Application Support/Firefox/Profiles" ]; then FIREFOX_EXE="/Applications/Firefox.app/Contents/MacOS/firefox" if [ ! -f "$FIREFOX_EXE" ] || [ ! -d /Applications ]; then continue else ### Download Firefox Profile Switcher if [ ! -d /usr/local/Cellar/firefox-profile-switcher-connector ]; then logg info 'Ensuring Firefox Profile Switcher is installed' brew install --quiet null-dev/firefox-profile-switcher/firefox-profile-switcher-connector fi ### Ensure Firefox Profile Switcher configuration is symlinked if [ ! -d "/Library/Application Support/Mozilla/NativeMessagingHosts/ax.nd.profile_switcher_ff.json" ]; then logg info 'Ensuring Firefox Profile Switcher is configured' sudo mkdir -p "/Library/Applcation Support/Mozilla/NativeMessagingHosts" sudo ln -sf "$(brew ls -l firefox-profile-switcher-connector | grep -i ax.nd.profile_switcher_ff.json | head -n1)" "/Library/Application Support/Mozilla/NativeMessagingHosts/ax.nd.profile_switcher_ff.json" fi fi elif [ "$SETTINGS_DIR" == "$HOME/Library/Application Support/LibreWolf/Profiles" ]; then continue # FIREFOX_EXE="/Applications/LibreWolf.app/Contents/MacOS/librewolf" # if [ ! -f "$FIREFOX_EXE" ] || [ ! -d /Applications ]; then # logg info "$FIREFOX_EXE is not a file" # continue # fi elif [ "$SETTINGS_DIR" == "$HOME/snap/firefox/common/.mozilla/firefox" ]; then FIREFOX_EXE="/snap/bin/firefox" if [ ! -f "$FIREFOX_EXE" ] || [ ! -d "$HOME/snap/firefox" ]; then continue else ### Firefox Profile Switcher BASE_DIR="$HOME/snap/firefox/common" BIN_INSTALL_DIR="$BASE_DIR/firefoxprofileswitcher-install" MANIFEST_INSTALL_DIR="$BASE_DIR/.mozilla/native-messaging-hosts" DOWNLOAD_URL="https://github.com/null-dev/firefox-profile-switcher-connector/releases/latest/download/linux-x64.deb" ### Ensure Firefox Profile Switcher is not already installed if [ ! -f "$BIN_INSTALL_DIR/usr/bin/ff-pswitch-connector" ] || [ ! -f "$MANIFEST_INSTALL_DIR/ax.nd.profile_switcher_ff.json" ]; then ### Download profile switcher mkdir -p "$BIN_INSTALL_DIR" TMP_FILE="$(mktemp)" logg info 'Downloading Firefox Profile Switch connector' curl -sSL "$DOWNLOAD_URL" -o "$TMP_FILE" ar p "$TMP_FILE" data.tar.xz | tar xfJ - --strip-components=2 -C "$BIN_INSTALL_DIR" usr/bin/ff-pswitch-connector rm -f "$TMP_FILE" ### Create manifest logg info 'Copying profile switcher configuration to manifest directory' mkdir -p "$MANIFEST_INSTALL_DIR" cat "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/profile-switcher.json" | sed 's/PATH_PLACEHOLDER/'"$BIN_INSTALL_DIR"'/' > "$MANIFEST_INSTALL_DIR/ax.nd.profile_switcher_ff.json" fi fi elif [ "$SETTINGS_DIR" == "$HOME/.mozilla/firefox" ]; then if command -v firefox-esr > /dev/null; then FIREFOX_EXE="$(which firefox-esr)" installFirefoxProfileConnector elif command -v firefox > /dev/null && [ "$(which firefox)" != *'snap'* ] && [ "$(which firefox)" != *'flatpak'* ] && [ ! -d /Applications ] && [ ! -d /System ]; then # Conditional check ensures Snap / Flatpak / macOS Firefox versions do not try to install to the wrong folder FIREFOX_EXE="$(which firefox)" installFirefoxProfileConnector else if [ -d /Applications ] && [ -d /System ]; then # Continue on macOS without logging because profiles are not stored here on macOS continue else logg warn 'Unable to register Firefox executable' logg info "Settings directory: $SETTINGS_DIR" continue fi fi fi ### Initiatize Firefox default profiles logg info "Processing executable located at $FIREFOX_EXE" if command -v "$FIREFOX_EXE" > /dev/null; then ### Create default profile by launching Firefox headlessly logg info "Firefox executable set to $FIREFOX_EXE" if [ ! -d "$SETTINGS_DIR" ]; then logg info 'Running Firefox (or its derivative) headlessly to generate default profiles' timeout 14 "$FIREFOX_EXE" --headless logg info 'Finished running Firefox headlessly' elif [ -d /Applications ] && [ -d /System ] && [ ! -f "$SETTINGS_DIR/../installs.ini" ]; then logg info 'Running Firefox (or its derivative) headlessly to generate default profiles because install.ini is not at the macOS default location.' timeout 14 "$FIREFOX_EXE" --headless logg info 'Finished running Firefox headlessly (while fixing the missing macOS installs.ini issue)' fi ### Ensure settings directory exists (since the application was brought up temporarily headlessly) if [ ! -d "$SETTINGS_DIR" ]; then logg warn "The settings directory located at $SETTINGS_DIR failed to be populated by running the browser headlessly" continue fi ### Add the populated profiles.ini logg info "Copying "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/profiles.ini" to profile directory" logg info "The settings directory is $SETTINGS_DIR" if [ -d /Applications ] && [ -d /System ]; then # macOS logg info "Copying ~/.local/share/firefox/profiles.ini to $SETTINGS_DIR/../profiles.ini" cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/profiles.ini" "$SETTINGS_DIR/../profiles.ini" SETTINGS_INI="$SETTINGS_DIR/../installs.ini" else # Linux logg info "Copying ~/.local/share/firefox/profiles.ini to $SETTINGS_DIR/profiles.ini" cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/profiles.ini" "$SETTINGS_DIR/profiles.ini" SETTINGS_INI="$SETTINGS_DIR/installs.ini" fi ### Default profile (created by launching Firefox headlessly) DEFAULT_RELEASE_PROFILE="$(find "$SETTINGS_DIR" -mindepth 1 -maxdepth 1 -name "*.default" -not -name "profile.default")" if [ -n "$DEFAULT_RELEASE_PROFILE" ]; then logg info "Syncing $DEFAULT_RELEASE_PROFILE to $SETTINGS_DIR/profile.default" rsync -a "$DEFAULT_RELEASE_PROFILE/" "$SETTINGS_DIR/profile.default" else logg warn 'Unable to sync default Mozilla Firefox profile' fi ### Ensure original installs.ini is removed if [ -f "$SETTINGS_INI" ]; then # DEFAULT_PROFILE_PROFILE="$SETTINGS_DIR/$(cat "$SETTINGS_INI" | grep 'Default=' | sed 's/.*Profiles\///')" logg info 'Removing previous installs.ini file' rm -f "$SETTINGS_INI" else logg info 'installs.ini was not present in the Mozilla Firefox settings folder' fi ### Miscellaneous default profiles for NEW_PROFILE in "automation" "development" "miscellaneous"; do if [ ! -d "$SETTINGS_DIR/profile.${NEW_PROFILE}" ] && [ -d "$SETTINGS_DIR/profile.default" ]; then logg info "Cloning $NEW_PROFILE from profile.default" rsync -a "$SETTINGS_DIR/profile.default/" "$SETTINGS_DIR/profile.${NEW_PROFILE}" rsync -a "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/" "$SETTINGS_DIR/profile.${NEW_PROFILE}" cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/user.js" "$SETTINGS_DIR/profile.${NEW_PROFILE}" fi done ### Public git profile if [ -d "$SETTINGS_DIR/profile.git" ]; then logg info 'Resetting the Firefox git profile' cd "$SETTINGS_DIR/profile.git" git reset --hard HEAD git clean -fxd logg info 'Pulling latest updates to the Firefox git profile' git pull origin master else logg info 'Cloning the public Firefox git profile' cd "$SETTINGS_DIR" && git clone "$FIREFOX_PUBLIC_PROFILE" profile.git fi ### Copy user.js to profile.git profile cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/user.js" "$SETTINGS_DIR/profile.git" ### Git profile w/ plugins installed (installation happens below) if [ ! -d "$SETTINGS_DIR/profile.plugins" ]; then logg info "Syncing $SETTINGS_DIR/profile.git to $SETTINGS_DIR/profile.plugins" rsync -a "$SETTINGS_DIR/profile.git/" "$SETTINGS_DIR/profile.plugins" rsync -a "${XDG_DATA_HOME:-$HOME/.local/share}/firefox/" "$SETTINGS_DIR/profile.plugins" cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/user.js" "$SETTINGS_DIR/profile.plugins" fi ### Private hosted profile # Deprecated in favor of using the Restic profile tasks saved in `~/.config/task/Taskfile.yml` # if [ ! -d "$SETTINGS_DIR/profile.private" ]; then # logg info 'Downloading the encrypted Firefox private profile' # cd "$SETTINGS_DIR" # curl -sSL '{ { .firefoxPrivateProfile } }' -o profile.private.tar.gz.age # logg info 'Decrypting the Firefox private profile' # chezmoi decrypt profile.private.tar.gz.age > profile.private.tar.gz || EXIT_DECRYPT_CODE=$? # if [ -z "$EXIT_DECRYPT_CODE" ]; then # rm -f profile.private.tar.gz.age # logg info 'Decompressing the Firefox private profile' # tar -xzf profile.private.tar.gz # logg success 'The Firefox private profile was successfully installed' # cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/user.js" "$SETTINGS_DIR/profile.private" # logg info 'Copied ~/.config/firefox/user.js to profile.private profile' # else # logg error 'Failed to decrypt the private Firefox profile' # fi # fi ### Install Firefox addons (using list declared in .chezmoidata.yaml) for SETTINGS_PROFILE in "profile.plugins" "profile.private"; do if [ -d "$SETTINGS_DIR/$SETTINGS_PROFILE" ]; then for FIREFOX_PLUGIN in {{ list (.firefoxAddOns | toString | replace "[" "" | replace "]" "") | uniq | join " " }}; do logg info "Processing the $FIREFOX_PLUGIN Firefox add-on" PLUGIN_HTML="$(mktemp)" curl --silent "https://addons.mozilla.org/en-US/firefox/addon/$FIREFOX_PLUGIN/" > "$PLUGIN_HTML" PLUGIN_TMP="$(mktemp)" if ! command -v htmlq > /dev/null && command -v brew > /dev/null; then logg info 'Installing htmlq using Homebrew since it is a dependency for populating Firefox add-ons' && brew install htmlq fi cat "$PLUGIN_HTML" | htmlq '#redux-store-state' | sed 's/^//' | sed 's/<\/script>$//' > "$PLUGIN_TMP" PLUGIN_ID="$(jq '.addons.bySlug["'"$FIREFOX_PLUGIN"'"]' "$PLUGIN_TMP")" if [ "$PLUGIN_ID" != 'null' ]; then PLUGIN_FILE_ID="$(jq -r '.addons.byID["'"$PLUGIN_ID"'"].guid' "$PLUGIN_TMP")" if [ "$PLUGIN_FILE_ID" != 'null' ]; then PLUGIN_URL="$(cat "$PLUGIN_HTML" | htmlq '.InstallButtonWrapper-download-link' --attribute href)" PLUGIN_FILENAME="${PLUGIN_FILE_ID}.xpi" PLUGIN_FOLDER="$(echo "$PLUGIN_FILENAME" | sed 's/.xpi$//')" if [ ! -d "$SETTINGS_DIR/$SETTINGS_PROFILE/extensions/$PLUGIN_FOLDER" ]; then logg info 'Downloading add-on XPI file for '"$PLUGIN_FILENAME"' ('"$FIREFOX_PLUGIN"')' if [ ! -d "$SETTINGS_DIR/$SETTINGS_PROFILE/extensions" ]; then mkdir -p "$SETTINGS_DIR/$SETTINGS_PROFILE/extensions" fi curl -sSL "$PLUGIN_URL" -o "$SETTINGS_DIR/$SETTINGS_PROFILE/extensions/$PLUGIN_FILENAME" # Unzipping like this causes Firefox to complain about unsigned plugins # TODO - figure out how to headlessly enable the extensions in such a way that is compatible with Flatpak / Snap # using the /usr/lib/firefox/distribution/policies.json works but this is not compatible with Flatpak / Snap out of the box # it seems since they do not have access to the file system by default. Also, using the policies.json approach forces # all Firefox profiles to use the same extensions. Ideally, we should find a way to enable the extensions scoped # to the user profile. # logg info 'Unzipping '"$PLUGIN_FILENAME"' ('"$FIREFOX_PLUGIN"')' # unzip "$SETTINGS_DIR/$SETTINGS_PROFILE/extensions/$PLUGIN_FILENAME" -d "$SETTINGS_DIR/$SETTINGS_PROFILE/extensions/$PLUGIN_FOLDER" logg success 'Installed '"$FIREFOX_PLUGIN"'' fi else logg warn 'A null Firefox add-on filename was detected for '"$FIREFOX_PLUGIN"'' fi else logg warn 'A null Firefox add-on ID was detected for '"$FIREFOX_PLUGIN"'' fi done fi done fi done } firefoxSetup apt: firefox apt:debian: firefox-esr cask: firefox choco: firefox dnf: firefox flatpak: org.mozilla.firefox pacman: firefox firefox-profile: _bin: firefox-profile _github: https://github.com/saadtazi/firefox-profile-js _name: Firefox Profile CLI npm: firefox-profile firewall-applet: _bin: firewall-applet _github: false apt: firewall-applet dnf: firewall-applet pacman: firewall-applet firewall-config: _bin: firewall-config _github: false apt: firewall-config dnf: firewall-config pacman: firewall-config firewalld: _bin: firewall-cmd _github: https://github.com/firewalld/firewalld _name: FirewallD _notes: https://computingforgeeks.com/install-and-use-firewalld-on-ubuntu/ _pre: | #!/usr/bin/env bash if command -v ufw > /dev/null; then sudo ufw disable; fi _service: firewalld apt: firewalld dnf: firewalld emerge: net-firewall/firewalld pacman: firewalld zypper: firewalld fiscript: _app: FiScript.app _bin: fiscript _github: https://github.com/Mortennn/FiScript _name: FiScript cask: fiscript fission: _bin: fission _desc: Fast and Simple Serverless Functions for Kubernetes _docs: https://fission.io/docs/ _github: https://github.com/fission/fission _home: https://fission.io/ _name: Fission exe: https://github.com/fission/fission/releases/download/v1.19.0/fission-v1.19.0-windows-amd64.exe github: github.com/fission/fission nix-env: nixos.fission script:darwin: cd /tmp && curl -sSLo fission https://github.com/fission/fission/releases/download/v1.19.0/fission-v1.19.0-darwin-amd64 && chmod +x fission && sudo mv fission /usr/local/bin/ script:linux: cd /tmp && curl -sSLo fission https://github.com/fission/fission/releases/download/v1.19.0/fission-v1.19.0-linux-amd64 && chmod +x fission && sudo mv fission /usr/local/bin/ fkill: _bin: fkill _desc: Fabulously kill processes. Cross-platform _github: https://github.com/sindresorhus/fkill _name: fkill npm: fkill-cli flake8: _bin: flake8 _desc: Flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code. _docs: https://flake8.pycqa.org/en/latest/ _github: https://github.com/PyCQA/flake8 _home: https://flake8.pycqa.org/en/latest/ _name: Flake8 brew: flake8 pipx: flake8 flameshot: _app: flameshot.app _bin: flameshot _desc: Powerful yet simple to use screenshot software _docs: https://flameshot.org/docs/overview/overview/ _github: https://github.com/flameshot-org/flameshot _home: https://flameshot.org/ _name: Flameshot _scoopExtras: true apt: flameshot cask: flameshot choco: flameshot dnf: flameshot eopkg: flameshot flatpak: org.flameshot.Flameshot nix: nixos.flameshot pacman: flameshot port: flameshot scoop: flameshot snap: flameshot winget: flameshot xbps: flameshot zypper: flameshot flatseal: _bin: flatseal _github: https://github.com/tchx84/Flatseal flatpak: com.github.tchx84.Flatseal fleetctl: _bin: fleetctl _desc: Open-source platform for IT and security teams with thousands of computers. (Linux, macOS, Windows, ChromeOS, AWS, Google Cloud, Azure, data center, containers, IoT) _docs: https://fleetdm.com/docs _github: https://github.com/fleetdm/fleet _home: https://fleetdm.com/ _name: Fleet CLI npm: fleetctl flow-launcher: _bin: null _desc: Quick file search & app launcher for Windows with community-made plugins _docs: https://www.flowlauncher.com/docs/ _github: https://github.com/Flow-Launcher/Flow.Launcher _home: https://flowlauncher.com/ _name: Flow Launcher choco: Flow-Launcher scoop: Flow-Launcher winget: Flow Launcher flutter: _bin: flutter _desc: '[Flutter](https://flutter.dev/) transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase' _docs: https://docs.flutter.dev/ _github: https://github.com/flutter/flutter _home: https://flutter.dev/ _name: Flutter cask: flutter choco: flutter snap: flutter --classic yay: flutter fly: _bin: fly _desc: CLI to manage Concourse CI installation _home: https://concourse-ci.org/ _github: https://github.com/concourse/concourse _name: fly cask: fly github: https://github.com/concourse/concourse yay: fly-cli fm: _bin: fm _desc: Terminal file manager _github: https://github.com/mistakenelf/fm _name: fm github: github.com/mistakenelf/fm go: github.com/mistakenelf/fm@latest footloose: _bin: footloose _desc: Container Machines - Containers that look like Virtual Machines _docs: https://github.com/weaveworks/footloose _github: https://github.com/weaveworks/footloose _home: https://github.com/weaveworks/footloose _name: Footloose brew: weaveworks/tap/footloose go: github.com/weaveworks/footloose@master forever: _bin: forever _github: https://github.com/foreversd/forever _name: Forever npm: forever forklift: _bin: forklift _github: https://github.com/Johnn3y/Forklift flatpak: com.github.Johnn3y.Forklift fpm: _bin: fpm _deps: - fpm:deps _desc: '[fpm](https://github.com/jordansissel/fpm) (short for Effing package management) allows you to build packages for multiple platforms with great ease. The source of your package can be a gem, Python module, pear, directory, .tar.gz, rpm, deb, Node.js package, or pacman package. The target packages it supports are deb, rpm, solaris, freebsd, tar, directory, Mac OS X .pkg file, or pacman package.' _github: https://github.com/jordansissel/fpm _name: fpm ansible: professormanhattan.fpm gem: fpm fpm:deps: _github: false apt: - build-essential - ruby-dev - rubygems brew: - gnu-tar dnf: - gcc - libffi-devel - make - rpm-build - ruby-devel - rubygems pacman: - base-devel - gcc fq: _bin: fq _desc: jq for binary formats _github: https://github.com/wader/fq _name: fq apk: fq brew: wader/tap/fq github: github.com/wader/fq go: github.com/wader/fq@latest pacman: fq scoop: fq fritzing: _bin: fritzing _desc: Fritzing is an open-source hardware initiative that makes electronics accessible as a creative material for anyone. We offer a software tool, a community website and services in the spirit of Processing and Arduino, fostering a creative ecosystem that allows users to document their prototypes, share them with others, teach electronics in a classroom, and layout and manufacture professional PCBs. _docs: https://fritzing.org/learning/get-started _github: https://github.com/fritzing/fritzing-app _home: https://fritzing.org/ _name: Fritzing _todo: Add installation source for macOS choco: fritzing flatpak: org.fritzing.Fritzing frpc: _bin: frpc _desc: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. _docs: https://github.com/fatedier/frp _github: https://github.com/fatedier/frp _home: https://github.com/fatedier/frp _name: frpc (client) brew: frpc frps: _bin: frps _desc: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. _docs: https://github.com/fatedier/frp _github: https://github.com/fatedier/frp _home: https://github.com/fatedier/frp _name: frps (server) brew: frps fselect: _bin: fselect _desc: Extension to find files with SQL-like queries _github: https://github.com/jhspetersson/fselect _name: fselect brew: fselect cargo: fselect choco: fselect github: github.com/jhspetersson/fselect yay: fselect fuego: _bin: fuego _desc: Fuego is a command line client for the Firestore database _docs: https://github.com/sgarciac/fuego _github: https://github.com/sgarciac/fuego _home: https://github.com/sgarciac/fuego _name: Fuego brew: fuego-firestore go: github.com/sgarciac/fuego@latest snap: fuego fury: _bin: fury _github: https://github.com/gemfury/gemfury _name: Fury brew: gemfury/tap/gemfury fuse: _github: https://github.com/libfuse/libfuse _bin: null _desc: '[macFUSE](https://osxfuse.github.io/) allows you to extend macOS via third party file systems.' _name: Fuse _when:cask: '! test -d /usr/local/Caskroom/macfuse && ! test -d "$HOMEBREW_PREFIX/Caskroom/macfuse"' ansible:darwin: professormanhattan.fuse apt: - fuse - libfuse-dev cask: macfuse fx: _bin: fx _desc: A terminal JSON viewer. _docs: https://github.com/antonmedv/fx/blob/master/doc/doc.md _github: https://github.com/antonmedv/fx _home: https://github.com/antonmedv/fx _name: FX brew: fx go: github.com/antonmedv/fx@latest pacman: fx pkg: fx scoop: fx snap: fx fzf: _bin: fzf _desc: "[fzf](https://github.com/junegunn/fzf) is a general-purpose command-line fuzzy finder. It's an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc." _docs: https://github.com/junegunn/fzf#usage _github: https://github.com/junegunn/fzf _home: https://github.com/junegunn/fzf _name: fzf ansible: professormanhattan.fzf apk: fzf apt: fzf brew: fzf dnf:fedora: fzf nix: nixpkgs.fzf pacman: fzf pkg-freebsd: fzf pkg_add: fzf pkgin: fzf port: fzf xbps: fzf zypper: fzf gawk: _bin: gawk _desc: An implementation of the AWK programming language _docs: https://www.gnu.org/software/gawk/manual/ _github: false _home: https://www.gnu.org/software/gawk/ _name: gawk apt: gawk brew: gawk choco: gawk dnf: gawk pacman: gawk port: gawk scoop: gawk gcc: _bin: gcc _name: GCC _github: https://github.com/gcc-mirror/gcc apt: gcc brew: gcc dnf: gcc pacman: gcc port: gcc11 gcloud: _bin: gcloud _github: false _desc: '[Google Cloud SDK](https://cloud.google.com/sdk) includes tools and libraries for interacting with Google Cloud products and services. With it, you can orchestrate virtual machine instances directly from your command line, manage Compute Engine networks/firewalls/disks, simulate Pub/Sub locally, and much more.' _name: Google Cloud SDK ansible: professormanhattan.googlecloudsdk cask: google-cloud-sdk choco: gcloudsdk snap: google-cloud-sdk --classic yay: google-cloud-sdk gcsf: _bin: gcsf _github: https://github.com/harababurel/gcsf _name: GCSF cargo: gcsf gdbgui: _bin: gdbgui _github: https://github.com/cs01/gdbgui pipx: gdbgui gdown: _bin: gdown _desc: Download a large file from Google Drive _github: https://github.com/wkentaro/gdown pipx: gdown gdrive: _bin: gdrive _desc: Google Drive CLI Client _docs: https://github.com/prasmussen/gdrive#usage _github: https://github.com/prasmussen/gdrive _home: https://github.com/prasmussen/gdrive _name: gdrive brew: gdrive choco: gdrive github: github.com/prasmussen/gdrive go: github.com/prasmussen/gdrive@latest port: gdrive scoop: gdrive yay: gdrive gdu: _bin: gdu _github: https://github.com/dundee/gdu _post:brew: | #!/usr/bin/env bash brew link --overwrite gdu _post:snap: | #!/usr/bin/env bash sudo snap connect gdu-disk-usage-analyzer:mount-observe :mount-observe sudo snap connect gdu-disk-usage-analyzer:system-backup :system-backup sudo snap alias gdu-disk-usage-analyzer.gdu gdu apt:debian: gdu brew: gdu go: github.com/dundee/gdu/v5/cmd/gdu@latest pacman: gdu snap: gdu-disk-usage-analyzer generator-ngx-rocket: _bin: ngx _github: https://github.com/ngx-rocket/generator-ngx-rocket _name: Angular npm: generator-ngx-rocket genymotion: _app: Genymotion.app _github: false cask: genymotion choco: genymotion # TODO: Figure out how to install on Android gfi: _bin: gfi _desc: Google Font Installer is a NodeJS module/CLI that lets you Search, Download and Install fonts offered by Google Web Fonts _github: https://github.com/lordgiotto/google-font-installer npm: google-font-installer gh: _bin: gh _desc: '[gh](https://cli.github.com/) is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with git and your code.' _docs: https://cli.github.com/manual/ _github: https://github.com/cli/cli _home: https://cli.github.com/ _name: Github CLI ansible: professormanhattan.gh brew: gh choco: gh port: gh scoop: gh winget: GitHub.cli ghcup: _bin: ghcup _github: https://github.com/haskell/ghcup-hs _name: GHCup brew: ghcup ghorg: _bin: ghorg _desc: "[ghorg](https://github.com/gabrie30/ghorg) allows you to quickly clone all of an org's, or user's repositories into a single directory." _github: https://github.com/gabrie30/ghorg _name: ghorg _post: | #!/usr/bin/env bash ghorg reclone ansible: professormanhattan.ghorg brew: gabrie30/utils/ghorg github: github.com/gabrie30/ghorg go: github.com/gabrie30/ghorg@latest yay: ghorg gifsicle: _bin: gifsicle _github: https://github.com/kohler/gifsicle _name: Gifsicle apt: gifsicle brew: gifsicle choco: gifsicle dnf: gifsicle pacman: gifsicle port: gifsicle scoop: gifsicle gimp: _app: GIMP.app _bin: gimp _desc: '[GIMP](https://www.gimp.org/) is a free and open-source raster graphics editor used for image manipulation and image editing, free-form drawing, transcoding between different image file formats, and more specialized tasks. GIMP is released under GPLv3+ license and is available for Linux, macOS, and Microsoft Windows.' _docs: https://www.gimp.org/docs/ _github: https://github.com/GNOME/gimp _home: https://www.gimp.org/ _name: GIMP ansible: professormanhattan.gimp apt: gimp cask: gimp choco: gimp dnf: gimp flatpak: org.gimp.GIMP pacman: gimp snap: gimp gist: _bin: gist _github: https://github.com/defunkt/gist _desc: '[gist](https://github.com/defunkt/gist) provides a command that you can use from your terminal to upload content to https://gist.github.com/. This role will optionally set up a dotfile that handles authentication if you pass the appropriate configuration.' _name: gist ansible: professormanhattan.gist gem: gist git: _bin: git _github: https://github.com/git/git apk: git apt: git brew: git dnf: git git-branchless: _bin: git-branchless _github: https://github.com/arxanas/git-branchless _name: Git Branchless _todo: | echo "TODO: Consider implementing:" echo "echo >> ~/.bashrc "alias git='git-branchless wrap --'"" apk: git-branchless brew: git-branchless cargo: --locked git-branchless pacman: git-branchless port: git-branchless scoop: git-branchless git-bug: _bin: git-bug _github: https://github.com/MichaelMure/git-bug _name: Git Bug brew: git-bug pkg-freebsd: git-bug scoop: git-bug git-extras: _bin: git-extras _desc: '[Git Extras](https://github.com/tj/git-extras) includes extra git utilities that include repo summary, repl, changelog population, author commit percentages, and more.' _name: git-extras _github: https://github.com/tj/git-extras ansible:windows: professormanhattan.gitextras apt: git-extras brew: git-extras dnf: git-extras pacman: git-extras git-filter-repo: _bin: git-filter-repo _github: https://github.com/newren/git-filter-repo _desc: '[gitfilterrepo](https://github.com/newren/git-filter-repo) is a versatile tool for rewriting history' ansible: professormanhattan.gitfilterrepo brew: git-filter-repo pipx: git-filter-repo git-jump: _bin: git-jump _github: https://github.com/mykolaharmash/git-jump _name: Git Jump brew: mykolaharmash/git-jump/git-jump npm: git-jump git-lfs: _bin: git-lfs _github: https://github.com/git-lfs/git-lfs _deps: - git _desc: Git LFS (Large File Storage) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise. _name: Git LFS _post: | #!/usr/bin/env bash sudo git lfs install --system git lfs install ansible: professormanhattan.gitlfs brew: git-lfs scoop: git-lfs git-notify: _bin: git-notify _desc: Communicate important updates to your team via git commit messages _github: https://github.com/jevakallio/git-notify _name: Git Notify npm: git-notify git-open: _bin: git-open _desc: Open the repo website (GitHub, GitLab, Bitbucket) in your browser _github: https://github.com/paulirish/git-open npm: git-open git-secret: _bin: git-secret _desc: '[git-secret](https://git-secret.io/) is a bash tool to store your private data inside a git repo. How’s that? Basically, it just encrypts, using GPG, the tracked files with the public keys of all the users that you trust. So everyone of them can decrypt these files using only their personal secret key.' _docs: https://git-secret.io/#commands _epel: true _github: https://github.com/sobolevn/git-secret _home: https://git-secret.io/ _name: Git Secret ansible:darwin: professormanhattan.gitsecret ansible:linux: professormanhattan.gitsecret apt: git-secret brew: git-secret dnf:fedora: git-secret git-stats: _bin: git-stats _desc: '[gitstats](https://github.com/IonicaBizau/git-stats) can track and display local git statistics. It includes the capability of displaying a GitHub-like contributions calendar in the terminal.' _github: https://github.com/IonicaBizau/git-stats _name: git-stats ansible: professormanhattan.gitstats npm: git-stats git-subrepo: _bin: git-subrepo _github: https://github.com/ingydotnet/git-subrepo _name: Git Sub Repo brew: git-subrepo git-town: _bin: git-town _github: https://github.com/git-town/git-town _name: Git Town _post: | #!/usr/bin/env bash git town aliases add brew: git-town go: github.com/git-town/git-town@latest gitdock: _app: GitDock.app _bin: null _desc: '[GitDock](https://gitlab.com/mvanremmerden/gitdock) is an app that displays all your GitLab activities in one place. Instead of the GitLab typical project- or group-centric approach, it collects all your information from a user-centric perspective.' _docs: https://gitlab.com/mvanremmerden/gitdock#how-to-use-gitdock-%EF%B8%8F _github: https://gitlab.com/mvanremmerden/gitdock _home: https://gitlab.com/mvanremmerden/gitdock _name: GitDock ansible:darwin: professormanhattan.gitdock cask: gitdock github-classroom-assistant: _app: Classroom Assistant.app _bin: github-classroom-assistant _github: https://github.com/education/classroom-assistant _name: GitHub Classroom Assistant apt: https://github.com/education/classroom-assistant/releases/download/v2.0.4/classroom-assistant_2.0.4_amd64.deb cask: classroom-assistant dnf: https://github.com/education/classroom-assistant/releases/download/v2.0.4/classroom-assistant-2.0.4-1.x86_64.rpm exe: https://github.com/education/classroom-assistant/releases/download/v2.0.4/Classroom.Assistant-2.0.4.Setup.exe github-desktop: _app: GitHub Desktop.app _bin: github _github: https://github.com/desktop/desktop cask: github choco: github-desktop flatpak: io.github.shiftey.Desktop github-runner: _bin: false _desc: '[GitHub Runner](https://docs.github.com/en/actions/hosting-your-own-runners) is a system that you deploy and manage to execute jobs from GitHub Actions on GitHub.com.' _docs: https://docs.github.com/en/actions/hosting-your-own-runners _github: https://github.com/actions/runner _home: https://docs.github.com/en/actions/hosting-your-own-runners _name: GitHub Runner _post: | #!/usr/bin/env bash # @file GitHub Runner Registration # @brief Registers a GitHub action runner with GitHub # @description # This script registers the host as a self-hosted GitHub runner with scope set # in the `.user.github.runnerOrg` input in the `.chezmoi.yaml.tmpl` file. If your organization is `megabyte-labs`, then # the value of `.user.github.runnerOrg` should be `megabyte-labs`. A self-hosted runner is an application # that that allows you to run tasks from GitHub CI. # # This script adds 3 labels to the runner: self-hosted, _hostname_, and _operating-system family_. # # The script automatically acquires the GitHub Action runner token (as long as you specify your `.user.github.runnerOrg` value in `.chezmoi.yaml.tmpl`). # In order to authenticate with GitHub, you should have the `GITHUB_TOKEN` environment variable in place with the appropriate permissions # specified when you generate the token. # # ## Links # # * [Secrets / Environment variables documentation](https://install.doctor/docs/customization/secrets) ### Check if GitHub runner is installed if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/github-runnerconfig.sh" ]; then if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner/.runner" ]; then logg info "GitHub Actions runner is already configured (${XDG_DATA_HOME:-$HOME/.local/share}/github-runner/.runner file is present)" else logg info 'Creating runner configuration' ### Configure labels LABELS="self-hosted,{{ .chezmoi.hostname }},{{ .host.distro.family }}" if [ '{{ .host.distro.family }}' != '{{ .host.distro.id }}' ]; then LABELS="${LABELS},{{ .host.distro.id }}" fi if command -v VirtualBox > /dev/null; then LABELS="${LABELS},virtualbox" fi if command -v docker > /dev/null; then LABELS="${LABELS},docker" fi if [ -n "$GITHUB_TOKEN" ]; then if command -v jq > /dev/null; then ### Acquire token logg info 'Acquiring runner token' RUNNER_TOKEN="$(curl -sSL -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer $GITHUB_TOKEN" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/orgs/{{ .user.github.runnerOrg }}/actions/runners/registration-token | jq -r '.token')" ### Generate the configuration logg info 'Joining GitHub runner to https://github.com/{{ .user.github.runnerOrg }}' "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner/config.sh" --unattended --url https://github.com/{{ .user.github.runnerOrg }} --token "$RUNNER_TOKEN" --labels "$LABELS" || EXIT_CODE=$? if [ -n "$EXIT_CODE" ]; then logg error 'GitHub runner configuration failed' && exit 1 fi ### Install / start the service logg info 'Configuring runner service' "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner/svc.sh" install && logg success 'Successfully installed the GitHub Actions runner service' logg info 'Starting runner service' "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner/svc.sh" start && logg success 'Started the GitHub Actions runner service' else logg warn 'jq is required by the GitHub runner configuration script' fi else logg warn 'The GITHUB_TOKEN environment variable is not present' fi fi else logg info "The GitHub Actions runner installation is not present at ${XDG_DATA_HOME:-$HOME/.local/share}/github-runner" fi _when: '! test -d "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner"' script: | #!/usr/bin/env bash if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/private.sh" ]; then source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/private.sh" fi if [ -n "$GITHUB_TOKEN" ]; then RELEASES="$(curl -sSL --compressed --header "Authorization: Bearer $GITHUB_TOKEN" "https://api.github.com/repos/actions/runner/releases/latest")" else RELEASES="$(curl -sSL --compressed "https://api.github.com/repos/actions/runner/releases/latest")" fi LATEST_VERSION="$(echo "$RELEASES" | grep -o '"tag_name": "[^"]*' | grep -o '[^"]*$')" ARCHITECTURE="$(uname -m | sed 's/86_//' | sed 's/v7l//')" OS_FAMILY="$(test -d /Applications && echo osx || echo linux)" curl -sSL "https://github.com/actions/runner/releases/download/$LATEST_VERSION/actions-runner-${OS_FAMILY}-${ARCHITECTURE}-${LATEST_VERSION:1}.tar.gz" > "/tmp/actions-runner-${OS_FAMILY}-${ARCHITECTURE}-${LATEST_VERSION:1}.tar.gz" mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner" tar xzf "/tmp/actions-runner-${OS_FAMILY}-${ARCHITECTURE}-${LATEST_VERSION:1}.tar.gz" -C "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner" chown -Rf "$USER" "${XDG_DATA_HOME:-$HOME/.local/share}/github-runner" rm -f "/tmp/actions-runner-${OS_FAMILY}-${ARCHITECTURE}-${LATEST_VERSION:1}.tar.gz" gitify: _app: Gitify.app _bin: null _description: GitHub notifications on the menu bar _github: https://github.com/manosim/gitify _home: https://github.com/manosim/gitify _name: Gitify cask: gitify github: github.com/manosim/gitify yay: gitify-bin gitkraken: _app: GitKraken.app _bin: gitkraken _desc: '[GitKraken](https://www.gitkraken.com/) is a software product for developers and dev teams. The Git Client is a leading software tool helping developers maximize their productivity with a beautiful, intuitive GUI.' _docs: https://support.gitkraken.com/ _github: Not open-source _home: https://www.gitkraken.com/ _name: GitKraken ansible: professormanhattan.gitkraken cask: gitkraken choco: gitkraken flatpak: com.axosoft.GitKraken snap: gitkraken --classic gitlab-runner: _bin: gitlab-runner _desc: '[GitLab Runner](https://docs.gitlab.com/runner/) is an application that works with GitLab CI/CD to run jobs in a pipeline.' _docs: https://docs.gitlab.com/runner/ _github: https://github.com/gitlabhq/gitlab-runner _home: https://gitlab.com/gitlab-org/gitlab-runner _name: Gitlab Runner _post: "#!/usr/bin/env bash\n# @file GitLab Runner Configuration\n# @brief Registers GitLab Runner(s) with the given GitLab instance\n# @description\n# This script registers the runner(s) with the given GitLab instance. SaaS GitLab can also be provided as the GitLab instance to register\n# the runners with. The script configures the runners to use either Docker or VirtualBox Executor. Refer to\n# [this page](https://docs.gitlab.com/runner/executors/docker.html) and [this page](https://docs.gitlab.com/runner/executors/virtualbox.html)\n# for details about the available configuration settings.\n#\n# Runners are always tagged with these 2 values: `hostname` and `docker`/`virtualbox` depending on the type of executor. If a list of tags is provided,\n# the runner is tagged with these values in addition to the above mentioned values. If the list of tags is empty, no additonal tags are added and the\n# runner is configured to pickup `untagged` jobs.\n#\n# Configuring other type of executors is not supported by this script.\n#\n# ## Secrets\n#\n# The following chart details the secret(s) that are needed to configure the runner:\n#\n# | Secret | Description |\n# |------------------------|------------------------------------------------------------|\n# | `GITLAB_RUNNER_TOKEN` | The token generated when the runner was created in GitLab |\n#\n# For more information about storing secrets like SSH keys and API keys, refer to our Secrets documentation provided below\n#\n# ## Configuration Variables\n#\n# The following chart details the input variable(s) that are used to determine the configuration of the runner:\n#\n# | Variable | Description |\n# |---------------------|----------------------------------------------------------------------------------------------------------|\n# | `glurl` | The URL of the Gitlab instance to associate the Runner with |\n# | `runnerImage` | Docker image to use to configure the runner. Needed only when configuring `Docker` executor |\n# | `runnerDescription` | Description of this runner |\n# | `runnerTags` | Comma separated list of tags for this runner. See details in the description for more info |\n# | `baseVM` | Name of the VirtualBox VM to use for creating runner. Needed only when configuring `VirtualBox` executor |\n#\n# ## Links\n#\n# * [Secrets / Environment variables documentation](https://install.doctor/docs/customization/secrets)\n\n### Check if Docker is installed and operational so Docker executor(s) can be registered\nif command -v docker > /dev/null && docker run --rm hello-world > /dev/null; then\n HAS_DOCKER=1\nelse\n HAS_DOCKER=0\n logg warn 'Docker is not installed or it is not operational'\nfi\n\n### Check if VirtualBox is installed and operational so VirtualBox executor(s) can be registered\nif command -v VirtualBox > /dev/null; then\n HAS_VIRTUALBOX=1\nelse\n HAS_VIRTUALBOX=0\n logg warn 'VirtualBox is not installed'\nfi\n\n### Configure runners if Docker or VirtualBox is installed\nif [ $HAS_DOCKER -eq 0 ] && [ $HAS_VIRTUALBOX -eq 0 ]; then\n logg warn 'Docker and VirtualBox are not installed. Not registering runner(s).'\nelse\n ### Run logic if gitlab-runner is installed\n if command -v gitlab-runner > /dev/null; then\n ### Populate appropriate token\n case \"$OSTYPE\" in\n solaris*) echo \"TODO\" ;;\n darwin*) GITLAB_RUNNER_TOKEN=\"{{ if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"GITLAB_RUNNER_TOKEN_DARWIN\")) }}{{ includeTemplate \"secrets/GITLAB_RUNNER_TOKEN_DARWIN\" | decrypt | trim }}{{ else }}{{ env \"GITLAB_RUNNER_TOKEN_DARWIN\" }}{{ end }}\" ;; \n linux*) GITLAB_RUNNER_TOKEN=\"{{ if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"GITLAB_RUNNER_TOKEN_LINUX\")) }}{{ includeTemplate \"secrets/GITLAB_RUNNER_TOKEN_LINUX\" | decrypt | trim }}{{ else }}{{ env \"GITLAB_RUNNER_TOKEN_LINUX\" }}{{ end }}\" ;;\n bsd*) echo \"TODO\" ;;\n msys*) GITLAB_RUNNER_TOKEN=\"{{ if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"GITLAB_RUNNER_TOKEN_WINDOWS\")) }}{{ includeTemplate \"secrets/GITLAB_RUNNER_TOKEN_WINDOWS\" | decrypt | trim }}{{ else }}{{ env \"GITLAB_RUNNER_TOKEN_WINDOWS\" }}{{ end }}\" ;;\n cygwin*) GITLAB_RUNNER_TOKEN=\"{{ if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"GITLAB_RUNNER_TOKEN_WINDOWS\")) }}{{ includeTemplate \"secrets/GITLAB_RUNNER_TOKEN_WINDOWS\" | decrypt | trim }}{{ else }}{{ env \"GITLAB_RUNNER_TOKEN_WINDOWS\" }}{{ end }}\" ;;\n *) echo \"unknown: $OSTYPE\" ;;\n esac\n\n ### Check if Runner Token value is present before attempting to register runner(s)\n if [ $GITLAB_RUNNER_TOKEN != \"\" ]; then\n ### Registering runners\n {{ $cmd := `gitlab-runner register \\\n --non-interactive \\\n --token $GITLAB_RUNNER_TOKEN \\` }}\n ### Register Docker based runners if Docker is installed and operational\n if [ $HAS_DOCKER -eq 1 ]; then\n logg info 'Registering GitLab Runner(s) that use Docker executor'\n {{- range .host.gitlabRunners }}\n {{- if index . \"runnerImage\" }}\n {{- $cmd }}\n --url {{ .glurl }} \\\n --executor \"docker\" \\\n --description \"{{ .runnerDescription }} - on {{ $.chezmoi.hostname }}\" \\\n --docker-image {{ .runnerImage }} \\\n {{ if and .runnerTags (gt (len .runnerTags) 0) }}--tag-list \"{{ .runnerTags }},{{ $.chezmoi.hostname }},docker\"\n {{- else }}--tag-list \"{{ $.chezmoi.hostname }},docker\" --run-untagged{{ end }} || echo 'Runner registration failed\"\n {{ end -}}\n {{ end }}\n fi\n \n ### Register VirtualBox based runners if VirtualBox is installed\n if [ $HAS_VIRTUALBOX -eq 1 ]; then\n logg info 'Registering GitLab Runner(s) that use VirtualBox executor'\n {{- range .host.gitlabRunners }}\n {{- if index . \"baseVM\" }}\n {{- $cmd }}\n --url {{ .glurl }} \\\n --executor \"virtualbox\" \\\n --description \"{{ .runnerDescription }} - on {{ $.chezmoi.hostname }}\" \\\n --virtualbox-base-name \"{{ .baseVM }}\" \\\n {{ if and .runnerTags (gt (len .runnerTags) 0) }}--tag-list \"{{ .runnerTags }},{{ $.chezmoi.hostname }},virtualbox\"\n {{- else }}--tag-list \"{{ $.chezmoi.hostname }},virtualbox\" --run-untagged{{ end }} || echo 'Runner registration failed\"\n {{ end -}}\n {{ end }}\n fi\n else\n logg warn 'GITLAB_RUNNER_TOKEN is not set. Not registering runner(s)'\n fi\n else\n logg warn 'gitlab-runner is not installed or is not available in PATH'\n fi\nfi\n" _service: gitlab-runner _serviceEnabled: true ansible: professormanhattan.gitlabrunner brew: gitlab-runner choco: gitlab-runner pacman: gitlab-runner port: gitlab-runner scoop: gitlab-runner gitlabform: _bin: gitlabform _github: https://github.com/gitlabform/gitlabform/ pipx: gitlabform gitleaks: _bin: gitleaks _desc: Extension to scan git repos (or files) for secrets using regex and entropy _github: https://github.com/zricethezav/gitleaks _name: gitleaks brew: gitleaks dnf:fedora: gitleaks github: github.com/zricethezav/gitleaks pkg: gitleaks yay: gitleaks gitmoji-cli: _bin: gitmoji _github: https://github.com/carloscuesta/gitmoji-cli _npm: Gitmoji CLI brew: gitmoji npm: gitmoji-cli gitomatic: _bin: gitomatic _desc: '[git-o-matic](https://github.com/muesli/gitomatic) is a tool to monitor git repositories and automatically pull & push changes' _github: https://github.com/muesli/gitomatic _name: git-o-matic _post: "#!/usr/bin/env bash\n# @file git-o-matic Configuration\n# @brief Starts service on Linux systems to monitor Git repositories\n# @description\n# git-o-matic is a tool to monitor git repositories and automatically pull/push changes. Multiple repositories can be\n# monitored by running multiple instances of `gitomatic`. This script supports SSH Key based authentication only.\n#\n# If the `gitomatic` program is installed, this script creates and starts a Systemd service to monitor the repositories.\n# The repositories are cloned if they are not available at the path.\n#\n# ## Notes\n# * The author name and email address for commits are the same as `.user.name` and `.user.email` (configured in the `home/.chezmoi.yaml.tmpl` file)\n# * `gitomatic` automatically pushes and pulls changes. The script does not change this behavior\n# * `gitomatic` checks for changes every minute. This setting is not changed by this script\n# * The User's default SSH Key is used for authentication\n#\n# ## Links\n#\n# * [gitomatic GitHub repository](https://github.com/muesli/gitomatic/)\n# * [Systemd Unit file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/gitomatic/gitomatic.service.tmpl)\n# * [Helper script](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_local/bin/executable_gitomatic_service.tmpl)\n\nif command -v gitomatic > /dev/null; then\n ### Copy bin to /usr/local/bin\n logg info \"Copying $HOME/.local/bin/gitomatic-service to /usr/local/bin/gitomatic-service\" && sudo cp -f \"$HOME/.local/bin/gitomatic-service\" /usr/local/bin/gitomatic-service\n \n ### Copy gitomatic to global directory\n if [ ! -f /usr/local/bin/gitomatic ]; then\n logg info 'Copying gitomatic executable to /usr/local/bin/gitomatic' && sudo cp -f \"$(which gitomatic)\" /usr/local/bin/gitomatic\n fi\n\n if [ -d /Applications ] && [ -d /System ]; then\n ### macOS\n logg info 'Copying gitomatic plist file to /Library/LaunchDaemons' && sudo cp -f \"${XDG_CONFIG_HOME:-$HOME/.config}/gitomatic/com.github.muesli.gitomatic.plist\" /Library/LaunchDaemons/com.github.muesli.gitomatic.plist\n if ! sudo launchctl list | grep 'gitomatic' > /dev/null; then\n logg info 'Running sudo launchctl load /Library/LaunchDaemons/com.github.muesli.gitomatic.plist' && sudo launchctl load /Library/LaunchDaemons/com.github.muesli.gitomatic.plist\n logg info 'Running sudo launchctl start /Library/LaunchDaemons/com.github.muesli.gitomatic.plist' && sudo launchctl start /Library/LaunchDaemons/com.github.muesli.gitomatic.plist\n else\n logg info \"gitomatic services appear to already be loaded\"\n fi\n else\n ### Linux\n logg info 'Copying gitomatic systemd unit file to /etc/systemd/system/' && sudo cp -f \"${XDG_CONFIG_HOME:-$HOME/.config}/gitomatic/gitomatic.service\" /etc/systemd/system/gitomatic.service\n logg info 'Reloading systemd daemon' && sudo systemctl daemon-reload\n logg info 'Enabling and starting gitomatic service' && sudo systemctl enable --now gitomatic\n fi\nelse\n logg info 'gitomatic is not installed or it is not available in PATH'\nfi\n" ansible: professormanhattan.gitomatic github: github.com/muesli/gitomatic go: github.com/muesli/gitomatic@latest pacman: gitomatic scoop: gitomatic gitql: _bin: gitql _github: https://github.com/filhodanuvem/gitql _name: GitQL brew: gitql gitui: _bin: gitui _desc: Blazing fast TUI for git written in Rust _docs: https://github.com/extrawurst/gitui _github: https://github.com/extrawurst/gitui _home: https://github.com/extrawurst/gitui _name: Git UI brew: gitui cargo: gitui choco: delta dnf:fedora: gitui nix: nixpkgs.gitui pacman: gitui pkg: gitui port: gitui scoop: gitui winget: gitui gixy: _bin: gixy _github: https://github.com/yandex/gixy pipx: gixy glab: _bin: glab _desc: An open-source GitLab command line tool bringing GitLab's cool features to your command line _github: https://github.com/profclems/glab _name: glab apk: glab brew: glab github: github.com/profclems/glab scoop: glab # Only available on edge release (i.e. sudo snap install --edge glab) # snap: glab yay: gitlab-glab-bin glances: _bin: glances _github: https://github.com/nicolargo/glances _desc: '[Glances](https://github.com/nicolargo/glances) is a cross-platform monitoring tool which aims to present a maximum of information in a minimum of space through a curses or a web interface. It can adapt the displayed information depending on the terminal size dynamically. It is a top/htop alternative for Linux, BSD, macOS, and even Windows.' _name: Glances _post:pipx: | #!/usr/bin/env bash pipx inject glances glances[all] ansible: professormanhattan.glances apt:ubuntu: - python3-dev - python3-jinja2 - python3-pip - python3-psutil - python3-setuptools - gcc - glances - lm-sensors - wireless-tools brew: glances dnf: - gcc - glances - lm_sensors - python3-devel - python3-pip pacman: - glances - python - lm_sensors - wireless_tools pipx: glances port: glances glen: _bin: glen _desc: A CLI to gather GitLab project and group variables _github: https://github.com/lingrino/glen go: github.com/lingrino/glen@latest glow: _bin: glow _desc: Glow is a terminal based markdown reader designed from the ground up to bring out the beauty—and power—of the CLI _github: https://github.com/charmbracelet/glow _name: glow brew: glow github: github.com/charmbracelet/glow pkg: glow scoop: glow yay: glow glusterfs: # TODO - The master / peer logic still needs to be implemented in the .chezmoiscripts _bin: gluster _desc: '[Gluster](https://www.gluster.org/) is a free and open source software scalable network filesystem. Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage.' _docs: https://docs.gluster.org/en/latest/ _github: https://github.com/gluster/glusterfs _home: https://www.gluster.org/ _name: GlusterFS _service: glusterd # ansible:linux: professormanhattan.glusterfs apt: glusterfs-server dnf:fedora: glusterfs-server pacman: glusterfs gnome: _bin: gnome _github: https://github.com/GNOME/gnome-shell _name: GNOME apt: gnome dnf: gnome pacman: gnome zypper: gnome gnome-boxes: _bin: gnome-boxes _github: https://github.com/GNOME/gnome-boxes _desc: GNOME Boxes is an application of the GNOME Desktop Environment, used to access virtual systems. Boxes uses the QEMU, KVM, and libvirt virtualization technologies _docs: https://help.gnome.org/users/gnome-boxes/stable/ _home: https://apps.gnome.org/app/org.gnome.Boxes/ _name: GNOME Boxes apt: gnome-boxes dnf: gnome-boxes flatpak: org.gnome.Boxes pacman: gnome-boxes gnome-calendar: _bin: calendar _github: https://github.com/GNOME/gnome-calendar flatpak: org.gnome.Calendar gnome-document-viewer: _bin: document-viewer _github: https://github.com/GNOME/evince flatpak: org.gnome.Evince gnome-extension-manager: _bin: gnome-extension-manager _github: https://github.com/mjakeman/extension-manager flatpak: com.mattjakeman.ExtensionManager gnome-eyedropper: _github: https://github.com/FineFindus/eyedropper _bin: eyedropper flatpak: com.github.finefindus.eyedropper gnome-file-roller: _github: https://github.com/GNOME/file-roller _bin: file-roller flatpak: org.gnome.FileRoller gnome-image-viewer: _bin: image-viewer _github: https://github.com/GNOME/eog flatpak: org.gnome.eog gnome-network-displays: _bin: network-displays _github: https://github.com/GNOME/gnome-network-displays flatpak: org.gnome.NetworkDisplays gnome-passwords-keys: _bin: seahorse _github: https://github.com/GNOME/seahorse flatpak: org.gnome.seahorse.Application gnome-photos: _bin: photos _github: https://github.com/GNOME/gnome-photos flatpak: org.gnome.Photos gnome-sound-recorder: _bin: sound-recorder _github: false _gitlab: https://gitlab.gnome.org/World/vocalis flatpak: org.gnome.SoundRecorder gnome-text-editor: _bin: text-editor _github: https://github.com/GNOME/gnome-text-editor flatpak: org.gnome.TextEditor gnome-tweaks: _bin: gnome-tweaks _name: GNOME Tweaks _github: https://github.com/GNOME/gnome-tweaks apt: gnome-tweaks dnf: gnome-tweaks pacman: gnome-tweaks gnome-video-player: _bin: video-player _github: https://github.com/GNOME/totem flatpak: org.gnome.Totem gnome-weather: _bin: gnome-weather _github: https://github.com/GNOME/gnome-weather flatpak: org.gnome.Weather gnu: _github: false _deps:darwin: - coreutils - findutils - gawk - gnu-indent - gnu-tar - gnu-sed - gnutls - grep gnu-indent: _bin: gindent _github: false brew: gnu-indent gnu-sed: _bin: gsed _github: false brew: gnu-sed gnu-tar: _bin: gtar _github: false brew: gnu-tar gnutls: _github: false _bin: gnutls-certtool brew: gnutls go: _bin: go _desc: '[Go](https://golang.org/) is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.' _docs: https://go.dev/doc/ _github: https://github.com/golang/go _home: https://go.dev/ _name: Go ansible: professormanhattan.go apt: golang-go brew: go choco: golang pacman: go port: go scoop: go snap: go --classic go-chromecast: _bin: go-chromecast _desc: CLI for Google Chromecast, Home devices and Cast Groups _github: https://github.com/vishen/go-chromecast _name: go-chromecast github: github.com/vishen/go-chromecast go: github.com/vishen/go-chromecast@latest go-outline: _bin: go-outline _github: https://github.com/ramya-rao-a/go-outline go: github.com/ramya-rao-a/go-outline@latest goaccess: _bin: goaccess _desc: GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser. _docs: https://goaccess.io/get-started _github: https://github.com/allinurl/goaccess _home: https://goaccess.io/ _name: GoAccess apt: goaccess brew: goaccess dnf:fedora: goaccess emerge: net-analyzer/goaccess pacman: goaccess pkgin: goaccess gojq: _bin: gojq _desc: gojq is a pure Go implementation of jq that is mostly backwards compatible (but not completely) _github: https://github.com/itchyny/gojq _name: gojq brew: gojq github: github.com/itchyny/gojq go: github.com/itchyny/gojq@latest golangci-lint: _bin: golangci-lint _desc: Fast linters Runner for Go _github: https://github.com/golangci/golangci-lint _home: https://golangci-lint.run/ brew: golangci-lint go: github.com/golangci/golangci-lint/cmd/golangci-lint@latest gomodifytags: _bin: gomodifytags _desc: Go tool to modify struct field tags _github: https://github.com/fatih/gomodifytags brew: gomodifytags go: github.com/fatih/gomodifytags@latest gomplate: _bin: gomplate _desc: A flexible commandline tool for template rendering. Supports lots of local and remote datasources. _docker: docker run hairyhenderson/gomplate:stable _docs: https://docs.gomplate.ca/ _github: https://github.com/hairyhenderson/gomplate _home: https://gomplate.ca/ _name: Gomplate apk: gomplate brew: gomplate choco: gomplate port: gomplate goofys: _bin: goofys _deps: - fuse _desc: A high-performance, POSIX-ish Amazon S3 file system written in Go _docs: https://github.com/kahing/goofys#usage _github: https://github.com/kahing/goofys _home: https://github.com/kahing/goofys _name: Goofys ansible:linux: professormanhattan.goofys brew:linux: goofys go:linux: github.com/kahing/goofys@latest google-assistant: _app: Google Assistant.app _bin: g-assist _desc: '[Google Assistant for Desktop](https://github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client) is a cross-platform unofficial Google Assistant Client for Desktop.' _github: https://github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client _name: Google Assistant for Desktop ansible:windows: professormanhattan.googleassistant cask: google-assistant github: github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client snap: g-assist winget: g-assist google-chrome: _app: Google Chrome.app _bin: null _deps: - chrome-gnome-shell _desc: '[Google Chrome](https://www.google.com/chrome/) is a cross-platform web browser developed by Google. It was first released in 2008 for Microsoft Windows, and was later ported to Linux, macOS, iOS, and Android where it is the default browser built into the OS.' _docs: https://developer.chrome.com/docs/extensions/reference/ _env: GOOGLE_CHROME_APPDATA: cask: "$HOME/Library/Application Support/Google/Chrome/Default" flatpak: "$HOME/.var/app/com.google.Chrome/config/google-chrome/Default" _github: Not open-source _home: https://www.google.com/chrome/ _name: Google Chrome _post: | #!/usr/bin/env bash # @file Chrome Settings / Extensions # @brief This script configures Chrome, Brave, and Chromium system-wide managed / recommended policies settings. It also pre-loads a configurable list of Chrome extensions to Chrome, Brave, Chromium, and Edge (if they are installed). # @description # This Chrome setup script applies system-wide settings and pre-loads Chrome extensions into the browser profiles. The # extensions still must be enabled but they appear in the Chrome extensions menu and can be enabled with the toggle. The # system settings are applied to Chrome, Chromium, and Brave. Extensions are installed to the same browsers plus Microsoft Edge. # # ## Features # # * Adds `~/.config/chrome/managed.json` to the `managed/policies.json` system locations # * Adds `~/.config/chrome/recommended.json` to the `recommended/policies.json` system locations # * Pre-loads extension metadata for all the extensions defined under `chromeExtensions` in the [`home/.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoidata.yaml) file # # ## TODO # # * Automatically enable the extensions that are pre-loaded # * Create several profiles with different characteristics (similar to the Firefox setup script) # * Ensure the directories that the script cycles through to install managed settings and extensions are complete for all installation types (i.e. there might need to be some additions for Flatpak installations since their folder structure is different) # * Document how [`chromium-flags.conf`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/chromium-flags.conf) can be or is integrated # # ## Links # # * [`managed.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/chrome/managed.json) # * [`recommended.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/chrome/recommended.json) function chromeSetUp() { ### Ensure Chrome policies directory is present logg info 'Processing policy directories for Chromium based browsers' for POLICY_DIR in "/opt/google/chrome/policies"; do if [ -d "$(dirname "$POLICY_DIR")" ]; then ### Managed policies if [ ! -f "$POLICY_DIR/managed/policies.json" ]; then logg info "Ensuring directory $POLICY_DIR/managed exists" sudo mkdir -p "$POLICY_DIR/managed" logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json to $POLICY_DIR/managed/policies.json" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json" "$POLICY_DIR/managed/policies.json" fi ### Recommended policies if [ ! -f "$POLICY_DIR/recommended/policies.json" ]; then logg info "Ensuring directory $POLICY_DIR/recommended exists" && sudo mkdir -p "$POLICY_DIR/recommended" logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json to $POLICY_DIR/recommended/policies.json" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json" "$POLICY_DIR/recommended/policies.json" fi else logg info "Skipping extension injection into $POLICY_DIR - create these folders prior to running to create managed configs" fi done ### Add Chrome extension JSON logg info 'Populating Chrome extension JSON' for EXTENSION_DIR in "/opt/google/chrome/extensions" "$HOME/Library/Application Support/Google/Chrome/External Extensions"; do ### Ensure program-type is installed if [ -d "$(dirname "$EXTENSION_DIR")" ]; then ### Ensure extension directory exists if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && sudo mkdir -p "$EXTENSION_DIR" fi else if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && mkdir -p "$EXTENSION_DIR" fi fi ### Add extension JSON logg info "Adding Chrome extensions to $EXTENSION_DIR" for EXTENSION in {{ list (.chromeExtensions | toString | replace "[" "" | replace "]" "") | uniq | join " " }}; do logg info "Adding Chrome extension manifest ($EXTENSION)" if ! echo "$EXTENSION" | grep 'https://chrome.google.com/webstore/detail/' > /dev/null; then EXTENSION="https://chrome.google.com/webstore/detail/$EXTENSION" fi EXTENSION_ID="$(echo "$EXTENSION" | sed 's/^.*\/\([^\/]*\)$/\1/')" if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" else cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" fi done else logg info "$EXTENSION_DIR does not exist" fi done } chromeSetUp ansible: professormanhattan.chrome cask: google-chrome choco: googlechrome flatpak: com.google.Chrome yay: google-chrome google-drive: _app: Google Drive.app _bin: google-drive _desc: Google Drive for Desktop integrates a Google Drive account into your macOS / Windows workstation by adding a menubar with options to synchronize folders to the cloud. _docs: false _github: false _home: https://www.google.com/drive/download/ _name: Google Drive cask: google-drive choco: googledrive google-web-designer: _bin: google-web-designer _github: false _desc: Google Web Designer gives you the power to create beautiful and compelling videos, images, and HTML5 ads. Use animation and interactive elements to build out your creative vision, then scale your content for different sizes or audiences with responsive and dynamic workflows. _name: Google Web Designer cask: google-web-designer choco: google-web-designer gopass: _bin: gopass _desc: The slightly more awesome standard unix password manager for teams _docs: https://github.com/gopasspw/gopass/tree/master/docs _github: https://github.com/gopasspw/gopass _home: https://www.gopass.pw/ _name: GoPass apk: gopass brew: gopass choco: - gpg4win - gopass dnf: gopass go: github.com/gopasspw/gopass@latest pacman: gopass scoop: gopass winget: gopass.gopass gopkgs: _bin: gopkgs _desc: Tool to get list available Go packages _github: https://github.com/uudashr/gopkgs go: github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest gopls: _bin: gopls _github: false brew: gopls go: golang.org/x/tools/gopls@latest goreleaser: _bin: goreleaser _github: https://github.com/goreleaser/goreleaser _name: Go Releaser brew: goreleaser go: github.com/goreleaser/goreleaser@latest nix-env: goreleaser snap: goreleaser --classic yay: goreleaser-bin gotests: _bin: gotests _desc: Automatically generate Go test boilerplate from your source code _github: https://github.com/cweill/gotests brew: gotests go: github.com/cweill/gotests/...@latest gphotos-sync: _bin: gphotos-sync _desc: Google Photos Sync is a backup tool for your Google Photos cloud storage. _docs: https://gilesknap.github.io/gphotos-sync/main/index.html _github: https://github.com/gilesknap/gphotos-sync _home: https://gilesknap.github.io/gphotos-sync/main/index.html _name: Google Photos Sync pacman: gphotos-sync pipx: gphotos-sync gping: _bin: gping _desc: '[gping](https://github.com/orf/gping) is like the regular ping command except it also displays a chart labeled with response timing statistics.' _github: https://github.com/orf/gping _name: gping ansible: professormanhattan.gping brew: gping cargo: gping choco: gping github: github.com/orf/gping pacman: gping scoop: gping gpt-engineer: _bin: gpt-engineer _github: https://github.com/AntonOsika/gpt-engineer _name: GPT Engineer pipx: gpt-engineer gradle: _bin: gradle _desc: '[Gradle](https://gradle.org/) is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. Supported languages include Java, C/C++, JavaScript.' _docs: https://docs.gradle.org/current/userguide/userguide.html _github: https://github.com/gradle/gradle _home: https://gradle.org/ _name: Gradle ansible: professormanhattan.gradle brew: gradle choco: gradle port: gradle scoop: gradle snap: gradle --classic graphql-playground: _app: GraphQL Playground.app _bin: graphql-playground _github: https://github.com/graphql/graphql-playground _name: GraphQL Playground appimage: graphql/graphql-playground cask: graphql-playground exe: https://github.com/graphql/graphql-playground/releases/download/v1.8.10/graphql-playground-electron-setup-1.8.10.exe grep: _bin: grep _github: false apt: grep brew: grep dnf: grep pacman: grep zypper: grep grex: _bin: grex _desc: A command-line tool and library for generating regular expressions from user-provided test cases _docs: https://github.com/pemistahl/grex#5-how-to-use _github: https://github.com/pemistahl/grex _home: https://pemistahl.github.io/grex-js/ _name: grex brew: grex cargo: grex choco: grex github: github.com/pemistahl/grex scoop: grex snap: grex gron: _bin: gron _desc: Extension to make JSON greppable _github: https://github.com/tomnomnom/gron _name: gron brew: gron github: github.com/tomnomnom/gron go: github.com/tomnomnom/gron@latest grype: _bin: grype _desc: A vulnerability scanner for container images and filesystems _docs: https://github.com/anchore/grype#getting-started _github: https://github.com/anchore/grype _home: https://github.com/anchore/grype _name: Grype brew: anchore/grype/grype choco: grype port: grype yay: grype-bin gtop: _bin: gtop _desc: System monitoring dashboard for terminal _github: https://github.com/aksakalli/gtop brew: gtop npm: gtop guacamole: _bin: null _desc: '[Apache Guacamole](https://guacamole.apache.org/) is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.' _docs: https://guacamole.apache.org/doc/gug/configuring-guacamole.html _github: https://github.com/apache/guacamole-client _home: https://guacamole.apache.org/ _name: Guacamole ansible: professormanhattan.guacamole gulp: _bin: gulp _desc: '[Gulp](https://gulpjs.com/) is a toolkit to automate & enhance your workflow' _docs: https://gulpjs.com/docs/en/getting-started/quick-start _github: https://github.com/gulpjs/gulp _home: https://gulpjs.com/ _name: Gulp # Brew gulp is deprecated # brew: gulp npm: gulp gum: _bin: gum _desc: A tool for glamorous shell scripts. Provides styling and fancy prompts. _docs: https://github.com/charmbracelet/gum _github: https://github.com/charmbracelet/gum _home: https://charm.sh/ _name: Gum apk: gum brew: gum go: github.com/charmbracelet/gum@latest nix: nixpkgs.gum pacman: gum pkg-termux: gum gup: _bin: gup _github: https://github.com/nao1215/gup _name: Gup brew: nao1215/tap/gup go: github.com/nao1215/gup@latest gvm: _bin: null _desc: '[gvm](https://github.com/moovweb/gvm) lets you manage Go environments and switch between Go versions.' _github: https://github.com/moovweb/gvm _name: rvm ansible: professormanhattan.gvm hadolint: _bin: hadolint _desc: A smarter Dockerfile linter that helps you build best practice Docker images. The linter parses the Dockerfile into an AST and performs rules on top of the AST _github: https://github.com/hadolint/hadolint _name: hadolint brew: hadolint dnf:fedora: hadolint scoop: hadolint handbrake: _app: HandBrake.app _bin: handbrake _github: https://github.com/HandBrake/HandBrake cask: handbrake choco: handbrake flatpak: fr.handbrake.ghb handlr: _bin: handlr _desc: A better xdg-utils _docs: https://github.com/chmln/handlr#usage _github: https://github.com/chmln/handlr _home: https://github.com/chmln/handlr _name: Handlr cargo: handlr --locked yay: handlr-bin haproxy: _bin: haproxy _github: https://github.com/haproxy/haproxy _name: HAProxy _service: haproxy apk: haproxy apt: haproxy brew: haproxy choco: haproxy dnf: haproxy pacman: haproxy zypper: haproxy has: _bin: has _github: https://github.com/kdabir/has _name: Has brew: kdabir/tap/has hbs-cli: _bin: hbs _desc: This is a CLI tool to render handlebars templates, with the ability to require in Partials, Helpers and JSON Data _github: https://github.com/keithamus/hbs-cli npm: hbs-cli hclq: _bin: hclq _desc: Command-line processor for HashiCorp config files, like sed for HCL — Terraform, Consul, Nomad, Vault _github: https://github.com/mattolenik/hclq _name: hclq github: github.com/mattolenik/hclq go: github.com/mattolenik/hclq@latest helix: _bin: hx _desc: A post-modern modal text editor. _docs: https://docs.helix-editor.com/ _github: https://github.com/helix-editor/helix _home: https://helix-editor.com/ _name: Helix Editor _repology: helix brew: helix choco: helix flatpak: com.helix_editor.Helix pacman: helix scoop: helix winget: Helix.Helix helm: _bin: helm _desc: The Kubernetes Package Manager. Helm is the best way to find, share, and use software built for Kubernetes. _docs: https://helm.sh/docs _github: https://github.com/helm/helm _home: https://helm.sh/ _name: Helm brew: helm choco: kubernetes-helm scoop: helm snap: helm --classic helm-docs: _bin: helm-docs _github: https://github.com/norwoodj/helm-docs _name: Helm Docs brew: norwoodj/tap/helm-docs scoop: helm-docs helmfile: _bin: helmfile _github: https://github.com/helmfile/helmfile _name: Helmfile brew: helmfile pacman: helmfile scoop: helmfile zypper: helmfile heroku-cli: _bin: heroku _github: https://github.com/heroku/cli _desc: '[Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) lets you create and manage Heroku apps directly from the terminal. It’s an essential part of using Heroku.' _name: Heroku CLI ansible: professormanhattan.heroku brew: heroku/brew/heroku choco: heroku-cli npm: heroku scoop: heroku-cli yay: heroku-cli hexyl: _bin: hexyl _desc: '[hexyl](https://github.com/sharkdp/hexyl) is a simple hex viewer for the terminal. It uses a colored output to distinguish different categories of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII).' _github: https://github.com/sharkdp/hexyl _name: hexyl ansible: professormanhattan.hexyl apt: hexyl brew: hexyl cargo: hexyl dnf:fedora: hexyl github: github.com/sharkdp/hexyl nix: hexyl pacman: hexyl pkg-freebsd: hexyl pkg-termux: hexyl port: hexyl scoop: hexyl xbps: hexyl hey: _bin: hey _desc: HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom _github: https://github.com/rakyll/hey _name: hey brew: hey github: github.com/rakyll/hey hiddenbar: _app: Hidden Bar.app _bin: null _desc: macOS menu bar application that allows you to add menu bar items to a hideable drawer _docs: https://github.com/dwarvesf/hidden _github: https://github.com/dwarvesf/hidden _home: https://dwarves.foundation/opensource/ _name: Hidden Bar cask: hiddenbar mas: 1452453066 himalaya: _bin: himalaya _github: https://github.com/soywod/himalaya _desc: '[Himalaya](https://github.com/soywod/himalaya) is a CLI email client written in Rust.' _name: Himalaya ansible: professormanhattan.himalaya brew: himalaya scoop: himalaya hishtory: _bin: hishtory _github: https://github.com/ddworken/hishtory _name: hiSHtory _post: | #!/usr/bin/env bash echo y | hishtory init "$HISHTORY_USER_SECRET" _todo: Check for Homebrew version script: curl -sSL --compressed https://hishtory.dev/install.py | python3 - hoard: _bin: hoard _github: https://github.com/Hyde46/hoard _name: Hoard # brew: Hyde46/hoard/hoard # Fails with cURL trying to download non-existant release file cargo: hoard-rs nix-env: hoard # Might be paru instead of pacman pacman: hoard port: hoard-cli holehe: _bin: holehe _github: https://github.com/megadose/holehe _name: Holehe pipx: holehe hostctl: _bin: hostctl _desc: This tool gives more control over the use of hosts file _github: https://github.com/guumaster/hostctl _name: hostctl brew: guumaster/tap/hostctl github: github.com/guumaster/hostctl scoop: hostctl yay: hostctl hosthomepage: _bin: null _name: Host Home Page _github: false ansible: professormanhattan.hosthomepage hosts: _bin: null _github: false _desc: This role is intended to be used with the [main ProfessorManhattan playbook](https://gitlab.com/ProfessorManhattan/Playbooks). It integrates tightly with the configuration variables that come with the playbook. _name: Hosts ansible: professormanhattan.hosts howdoi: _bin: howdoi _github: https://github.com/gleitz/howdoi _name: howdoi brew: howdoi pipx: howdoi hss: _bin: hss _github: https://github.com/six-ddc/hss _name: hss brew: hss port: hss script: cd /tmp && git clone https://github.com/six-ddc/hss.git && cd hss && make && make install && cd /tmp && rm -rf hss hstr: _bin: hstr _github: https://github.com/dvorka/hstr _name: HiSToRy apk: hstr apt: hstr brew: hstr dnf: hstr emerge: app-shells/hstr nix-env: hstr pkg-freebsd: hstr port: histr xbps: hstr htmlhint: _bin: htmlhint _desc: The static code analysis tool you need for your HTML _docs: https://htmlhint.com/docs/user-guide/getting-started _github: https://github.com/htmlhint/HTMLHint _home: https://htmlhint.com/ _name: HTMLHint npm: htmlhint htmlq: _bin: htmlq _desc: A lightweight and flexible command-line JSON processor for HTML _github: https://github.com/mgdm/htmlq _name: htmlq brew: htmlq cargo: htmlq github: github.com/mgdm/htmlq htop: _bin: htop _desc: '[htop](https://htop.dev/) is an interactive system-monitor process-viewer and process-manager. It is designed as an alternative to the Unix program top. It shows a frequently updated list of the processes running on a computer, normally ordered by the amount of CPU usage.' _docs: https://www.man7.org/linux/man-pages/man1/htop.1.html _github: https://github.com/htop-dev/htop _home: https://htop.dev/ _name: htop ansible:darwin: professormanhattan.htop ansible:linux: professormanhattan.htop apt: htop brew: htop dnf: htop pacman: htop port: htop http-prompt: _bin: http-prompt _desc: HTTP Prompt is an interactive command-line HTTP client featuring autocomplete and syntax highlighting, built on HTTPie and prompt_toolkit. _docs: https://docs.http-prompt.com/en/latest/ _github: https://github.com/httpie/http-prompt _home: https://http-prompt.com/ _name: HTTP Prompt brew: http-prompt pipx: http-prompt http-toolkit: _app: HTTP Toolkit.app _github: https://github.com/httptoolkit/httptoolkit _name: HTTP Toolkit apt: https://github.com/httptoolkit/httptoolkit-desktop/releases/download/v1.14.8/HttpToolkit-1.14.8.deb cask: http-toolkit winget: HTTPToolKit.HTTPToolKit yay: httptoolkit httpie: _bin: httpie _desc: '[HTTPie](https://httpie.io/) is a terminal-based, user-friendly command-line HTTP client for the API era. It comes with JSON support, syntax highlighting, persistent sessions, wget-like downloads, plugins, and more.' _name: HTTPie _github: https://github.com/httpie/cli _todo: Look into https://github.com/httpie/desktop as alternative to Postman and other HTTP request clients ansible: professormanhattan.httpie brew: httpie choco: httpie dnf: httpie pacman: httpie pipx: httpie port: httpie snap: httpie httpstat: _bin: httpstat _desc: curl statistics made simple _docs: https://github.com/reorx/httpstat#usage _github: https://github.com/reorx/httpstat _home: https://github.com/reorx/httpstat _name: httpstat brew: httpstat pipx: httpstat hub: _bin: hub _desc: Add GitHub support to git on the command-line _github: https://hub.github.com/ apt: hub brew: hub choco: hub dnf:fedora: hub pacman: hub pkg: hub scoop: hub hugo: _bin: hugo _desc: The world’s fastest framework for building websites. _docs: https://gohugo.io/documentation/ _github: https://github.com/gohugoio/hugo _home: https://gohugo.io/ _name: Hugo apt: hugo brew: hugo choco: hugo dnf: hugo eopkg: hugo go: github.com/gohugoio/hugo@latest pacman: hugo port: hugo scoop: main/hugo snap: hugo zypper: hugo hurl: _bin: hurl _github: https://github.com/Orange-OpenSource/hurl brew: hurl cargo: hurl choco: hurl npm: '@orangeopensource/hurl' pkg-freebsd: hurl port: hurl scoop: hurl winget: hurl husky: _bin: husky _desc: Husky improves your commits and more _github: https://github.com/typicode/husky _home: https://typicode.github.io/husky/ _name: Husky npm: husky hyper: _appImageName: Hyper _bin: null _desc: '[Hyper](https://hyper.is/) is an electron-based terminal. It is written using web technologies such as HTML, CSS, JavaScript etc. It looks very modern and has lots of customization options.' _docs: https://hyper.is/blog _github: https://github.com/vercel/hyper _home: https://hyper.is/ _name: Hyper ansible: professormanhattan.hyper appimage: hyper brew: hyper choco: hyper yay: hyper hyperfine: _bin: hyperfine _desc: '[hyperfine](https://github.com/sharkdp/hyperfine) is a cross-platform command-line benchmarking tool that can be used to determine the performance of shell commands.' _docs: https://docs.rs/crate/hyperfine/1.2.0 _github: https://github.com/sharkdp/hyperfine _name: hyperfine ansible: professormanhattan.hyperfine apk: hyperfine brew: hyperfine cargo: hyperfine choco: hyperfine dnf: hyperfine github: github.com/sharkdp/hyperfine pacman: hyperfine pkg: hyperfine hyperkit: _bin: hyperkit _deps:darwin: - xcode _github: https://github.com/moby/hyperkit _name: HyperKit brew:darwin: hyperkit ideviceinstaller: _bin: ideviceinstaller _github: https://github.com/libimobiledevice/ideviceinstaller brew:darwin: ideviceinstaller iina: _app: iina.app _bin: null _desc: The modern video player for macOS. _docs: https://iina.io/ _github: https://github.com/iina/iina _home: https://iina.io/ _name: iina macOS Video Player cask: iina imagemagick: _bin: convert _github: https://github.com/ImageMagick/ImageMagick apk: imagemagick apt: - imagemagick - libx11-dev brew: imagemagick choco: imagemagick dnf:fedora: imagemagick scoop: imagemagick imageoptim: _app: ImageOptim.app _bin: null _desc: Image compressor that utilizes other applications like ImageOptim under the hood _github: https://github.com/ImageOptim/ImageOptim _home: https://imageoptim.com/mac cask: imageoptim imageoptim-cli: _bin: imageoptim _deps: - imageoptim _desc: Image compressor that utilizes other applications like ImageOptim under the hood _github: https://github.com/ImageOptim/ImageOptim _home: https://imageoptim.com/mac brew:darwin-x86_64: imageoptim-cli npm:darwin: imageoptim-cli imagine: _app: Imagine.app _bin: null _desc: Imagine is a desktop app for compression of PNG and JPEG, with a modern and friendly UI. _docs: https://github.com/meowtec/Imagine _github: https://github.com/meowtec/Imagine _home: https://github.com/meowtec/Imagine _name: Imagine appimage: meowtec/Imagine exe: https://github.com/meowtec/Imagine/releases/download/v0.7.4/Imagine-Setup-0.7.4.exe script:darwin: curl -sSL https://github.com/meowtec/Imagine/releases/download/v0.7.4/Imagine-0.7.4.dmg > /tmp/Imagine.dmg && sudo hdiutil attach /tmp/Imagine.dmg && sudo cp -R "/Volumes/Imagine 0.7.4/Imagine.app" /Applications && sudo hdiutil detach "/Volumes/Imagine 0.7.4" && rm -f /tmp/Imagine.dmg imgur-uploader: _bin: imgur-uploader _desc: Upload images to imgur _github: https://github.com/kevva/imgur-uploader-cli npm: imgur-uploader-cli impl: _bin: impl _desc: impl generates method stubs for implementing an interface _github: https://github.com/josharian/impl go: github.com/josharian/impl@latest infracost: _bin: infracost _desc: '[infracost](https://www.infracost.io/) provides cloud cost estimates for Terraform in pull requests' _docs: https://www.infracost.io/docs _github: https://github.com/infracost/infracost _home: https://www.infracost.io/ _name: infracost brew: infracost choco: infracost yay: infracost inkscape: _app: Inkscape.app _bin: inkscape _desc: '[Inkscape](https://inkscape.org/) is a free and open-source vector graphics editor used to create vector images, primarily in Scalable Vector Graphics format. Other formats can be imported and exported. Inkscape can render primitive vector shapes and text. This role installs Inkscape on nearly any platform.' _docs: https://inkscape.org/*docs/ _github: https://github.com/inkscape/inkscape _home: https://inkscape.org _name: Inkscape ansible: professormanhattan.inkscape apt: inkscape cask: inkscape choco: inkscape dnf: inkscape flatpak: org.inkscape.Inkscape pacman: inkscape snap: inkscape intellij-idea-ce: _app: IntelliJ IDEA CE.app _bin: intellij-idea-community _desc: '[IntelliJ IDEA](https://www.jetbrains.com/idea/) is an integrated development environment written in Java for developing computer software. It is developed by JetBrains, and is available as an Apache 2 Licensed community edition, and in a proprietary commercial edition. Both can be used for commercial development.' _docs: https://www.jetbrains.com/help/ _github: https://github.com/JetBrains/intellij-community _home: https://www.jetbrains.com/idea/ _name: IntelliJ IDEA (CE) ansible: professormanhattan.intellij cask: intellij-idea-ce choco: intellijidea-community snap: intellij-idea-community --classic iodine: _bin: iodined _github: https://github.com/yarrick/iodine _name: Iodine brew: iodine choco: iodine ionic: _bin: ionic _desc: '[Ionic Framework](https://ionicframework.com/) The Ionic command line interface (CLI) is your go-to tool for developing Ionic apps' _docs: https://ionicframework.com/docs _github: https://github.com/ionic-team/ionic-cli _home: https://ionicframework.com/ _name: Ionic Framework npm: '@ionic/cli' ios-deploy: _bin: ios-deploy _desc: Install and debug iPhone apps from the command line, without using Xcode _github: https://github.com/ios-control/ios-deploy brew:darwin: ios-deploy npm:darwin: ios-deploy ios-sim: _bin: ios-sim _github: https://github.com/ios-control/ios-sim _name: ios-sim npm:darwin: ios-sim ipfs: _bin: ipfs _desc: A peer-to-peer hypermedia protocol designed to preserve and grow humanity's knowledge by making the web upgradeable, resilient, and more open _docs: https://docs.ipfs.tech/ _github: https://github.com/ipfs/ipfs _home: https://ipfs.tech/ _name: IPFS _service: ipfs brew: ipfs choco: go-ifps nix: ipfs port: ipfs scoop: go-ipfs snap: ipfs ipfs-deploy: _bin: ipd _desc: A peer-to-peer hypermedia protocol designed to preserve and grow humanity's knowledge by making the web upgradeable, resilient, and more open _docs: https://docs.ipfs.tech/ _github: https://github.com/ipfs/ipfs _home: https://ipfs.tech/ _name: IPFS npm: ipfs-deploy ipfs-desktop: _app: IPFS Desktop.app _bin: null _desc: An unobtrusive and user-friendly desktop application for IPFS on Windows, Mac and Linux. _docs: https://docs.ipfs.tech/install/ipfs-desktop/ _github: https://github.com/ipfs/ipfs-desktop _home: https://ipfs.tech/ _name: IPFS Desktop appimage: https://github.com/ipfs-shipyard/ipfs-desktop/releases/download/v0.28.0/ipfs-desktop-0.28.0-linux-x86_64.AppImage cask: ipfs choco: ipfs-desktop scoop: extras/ipfs-desktop winget: IPFS.IPFS-Desktop ipmitool: _bin: ipmitool _github: https://github.com/ipmitool/ipmitool _name: IPMI Tool apt: ipmitool brew: ipmitool dnf: ipmitool pacman: ipmitool iproute2mac: _bin: ip _github: https://github.com/brona/iproute2mac _name: iproute2mac brew:darwin: iproute2mac iredis: _bin: iredis _desc: A terminal client for Redis with auto-completion and syntax highlightin _docs: https://github.com/laixintao/iredis _github: https://github.com/laixintao/iredis _home: https://pypi.org/project/iredis/ _name: iRedis apt: iredis brew: iredis pipx: iredis irssi: _bin: irssi _desc: Irssi is a modular text mode chat client. It comes with IRC support built in, and there are third party ICB, SILC, XMPP (Jabber), PSYC and Quassel protocol modules available. _docs: https://irssi.org/documentation/ _github: https://github.com/irssi/irssi _home: https://irssi.org/ _name: irssi apt: irssi brew: irssi dnf: irssi pacman: irssi port: irssi is-up: _bin: is-up _desc: Check whether a website is up or down using the isitup.org API _github: https://github.com/sindresorhus/is-up-cli npm: is-up-cli iso-image-writer: _github: https://github.com/KDE/isoimagewriter _bin: iso-image-writer _name: ISO Image Writer flatpak: org.kde.isoimagewriter isort: _bin: isort _desc: isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type. _docs: https://pycqa.github.io/isort/index.html _github: https://github.com/PyCQA/isort _home: https://pycqa.github.io/isort/ _name: iSort brew: isort pipx: isort iterm2: _app: iTerm.app _bin: null _desc: '[iTerm2](https://eugeny.github.io/iterm2/) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux.' _docs: https://iterm2.com/documentation.html _github: https://github.com/gnachman/iTerm2 _home: https://iterm2.com/ _name: iTerm2 _post:cask: | #!/usr/bin/env bash echo "Setting iTerm2 options location to Install Doctor Chezmoi location" && defaults write com.googlecode.iterm2 PrefsCustomFolder -string "${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/Library/Preferences/com.googlecode.iterm2.plist" echo "Setting iTerm2 to automatically sync with managed options" && defaults write com.googlecode.iterm2 NoSyncNeverRemindPrefsChangesLostForFile_selection -int 2 ansible:darwin: professormanhattan.iterm2 cask: iterm2 java: _bin: false _desc: '[Java](https://www.java.com/en/) is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.' _docs: https://docs.oracle.com/en/cloud/paas/nosql-cloud/index.html _github: https://github.com/oracle/nosql-java-sdk _home: https://www.java.com/en/ _name: Java _when:cask: '! brew list temurin > /dev/null' ansible: professormanhattan.java apt: openjdk-11-jdk brew: openjdk cask: temurin choco: jdk11 dnf: java-11-openjdk-devel.x86_64 pacman: jdk-openjdk port: openjdk11 scoop: openjdk11 jc: _bin: jc _github: https://github.com/kellyjonbrazil/jc _name: jc apt: jc brew: jc dnf: jc nix-env: nixpkgs.jc pacman: jc pipx: jc zypper: jc jenv: _bin: jenv _desc: '[jenv](https://www.jenv.be/) lets you switch between Java versions. It sets JAVA_HOME inside your shell, in a way that can be set globally, local to the current working directory or per shell.' _docs: https://github.com/gcuisinier/jenv/wiki _github: https://github.com/jenv/jenv _home: https://www.jenv.be/ _name: jenv ansible: professormanhattan.jenv brew: jenv jest: _bin: jest _desc: Delightful JavaScript testing. _docs: https://jestjs.io/docs/getting-started _github: https://github.com/jestjs/jest _home: https://jestjs.io/ _name: Jest npm: jest jiq: _bin: jiq _desc: Create jq queries interactively by leveraging a live reload feature in the terminal _github: https://github.com/fiatjaf/jiq _name: jiq github: github.com/fiatjaf/jiq/cmd/jiq go: github.com/fiatjaf/jiq/cmd/jiq@latest jitsi-meet: _app: Jitsi Meet.app _bin: jitsi-meet _desc: Desktop application for Jitsi Meet built with Electron _github: https://github.com/jitsi/jitsi-meet-electron _name: Jitsi Meet Electron cask: jitsi-meet choco: jitsi-meet-electron flatpak: org.jitsi.jitsi-meet github: github.com/jitsi/jitsi-meet-electron pkg: jitsi-meet yay: jitsi-meet-desktop-bin jo: _bin: jo _desc: '[jo](https://github.com/jpmens/jo) is a free and open-source command-line tool that allows you to create JSON objects.' _github: https://github.com/jpmens/jo _name: jo ansible: professormanhattan.jo apt: jo brew: jo github: github.com/jpmens/jo pkg: jo scoop: jo snap: jo yay: jo john: _bin: john _github: https://github.com/openwall/john _name: John apt: john brew: john choco: john dnf: john pacman: john jpegoptim: _bin: jpegoptim _github: https://github.com/tjko/jpegoptim _name: JPEGOptim apt: jpegoptim brew: jpegoptim choco: jpegoptim dnf: jpegoptim pacman: jpegoptim zypper: jpegoptim jq: _bin: jq _desc: '[jq](https://github.com/stedolan/jq) is like sed for JSON data. You can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.' _docs: https://stedolan.github.io/jq/manual/ _github: https://github.com/stedolan/jq _home: https://stedolan.github.io/jq _name: jq ansible: professormanhattan.jq apk: jq apt: jq brew: jq choco: jq dnf: jq github: github.com/stedolan/jq pkg: jq jqp: _bin: jqp _desc: A TUI playground to experiment with jq _docs: https://github.com/noahgorstein/jqp#usage _github: https://github.com/noahgorstein/jqp _home: https://github.com/noahgorstein/jqp _name: jqp brew: noahgorstein/tap/jqp port: jqp yay: jqp json-server: _bin: json-server _desc: Get a full fake REST API with zero coding in less than 30 seconds (seriously) _docs: https://github.com/typicode/json-server _github: https://github.com/typicode/json-server _home: https://github.com/typicode/json-server _name: JSON Server npm: json-server juicefs: _bin: juicefs _github: https://github.com/juicedata/juicefs _name: JuiceFS _post: | #!/usr/bin/env sh . "$HOME/.local/bin/installx/juicefs.sh" brew: juicefs scoop: juicefs snap: juicefs yay: juicefs juju: _bin: juju _github: https://github.com/juju/juju _desc: '[Juju](https://juju.is/) is a Charmed Operator Framework, composed of a Charmed Operator Lifecycle Manager, and the Charmed Operator SDK. It allows you to deploy, integrate, and manage Kubernetes, container, and VM-native applications seamlessly across hybrid clouds. Juju drives Day 0 through Day 2 operations in your complex environment.' _docs: https://juju.is/docs _home: https://juju.is/ _name: Juju ansible: professormanhattan.juju brew: juju choco: juju snap: juju --classic junction: _bin: junction _github: https://github.com/sonnyp/Junction flatpak: re.sonny.Junction just: _bin: just _github: https://github.com/casey/just _name: Just apk: just apt: just brew: just cargo: just choco: just dnf: just eopkg: just nix-env: nixpkgs.just pacman: just pkg-freebsd: just port: just scoop: just snap: --edge --classic just winget: Casey.Just xbps: just k9s: _bin: k9s _github: https://github.com/derailed/k9s _name: K9s brew: derailed/k9s/k9s choco: k9s pacman: k9s port: k9s scoop: k9s kap: _app: Kap.app _bin: kap _github: https://github.com/wulkano/Kap _name: Kap cask: kap kasmvnc: _bin: kasmvncpasswd _github: https://github.com/kasmtech/KasmVNC script:linux: | RELEASES=$(curl -sS "https://api.github.com/repos/kasmtech/KasmVNC/releases/latest") || : LATEST_VERSION=$(echo $RELEASES | grep -o '"tag_name": "[^"]*' | grep -o '[^"]*$') || : if command -v apt-get > /dev/null; then . /etc/os-release cd /tmp case $VERSION_CODENAME in bullseye ) wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvncserver_bullseye_${LATEST_VERSION:1}_amd64.deb" || : ;; buster ) wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvncserver_buster_${LATEST_VERSION:1}_amd64.deb" || : ;; focal ) wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvncserver_focal_${LATEST_VERSION:1}_amd64.deb" || : ;; jammy ) wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvncserver_jammy_${LATEST_VERSION:1}_amd64.deb" || : ;; * ) ;; esac if ls kasmvncserver*.deb > /dev/null 2>&1; then sudo apt-get install ./kasmvncserver_*.deb; sudo addgroup $USER ssl-cert; fi elif command -v dnf > /dev/null; then wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvncserver_centos_core_${LATEST_VERSION:1}_x86_64.rpm" || : if ls kasmvncserver*.rpm > /dev/null 2>&1; then sudo rpm -ivh ./kasmvncserver_*.rpm; sudo usermod -a -G kasmvnc-cert $USER; fi elif command -v zypper > /dev/null; then wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvncserver_opensuse_15_${LATEST_VERSION:1}_x86_64.rpm" || : if ls kasmvncserver*.rpm > /dev/null 2>&1; then sudo rpm -ivh ./kasmvncserver_*.rpm; sudo usermod -a -G kasmvnc-cert $USER; fi elif command -v apk > /dev/null; then wget "https://github.com/kasmtech/KasmVNC/releases/download/$LATEST_VERSION/kasmvnc.alpine_317_x86_64.tgz" || : if ls kasmvncserver*.rpm > /dev/null 2>&1; then sudo tar -xzf "./kasmvnc.alpine_317_x86_64.tgz" -C /; fi fi yay: kasmvncserver-bin kcpassword: _bin: kcpassword _github: https://github.com/xfreebird/kcpassword _name: kcpassword brew:darwin: xfreebird/utils/kcpassword kdash: _bin: kdash _desc: A simple and fast dashboard for Kubernetes _github: https://github.com/kdash-rs/kdash _home: https://kdash.cli.rs/ _name: kdash brew: kdash-rs/kdash/kdash cargo: kdash choco: kdash github: github.com/kdash-rs/kdash scoop: kdash kde-plasma-desktop: _bin: plasmashell _github: https://github.com/KDE/plasma-desktop _deps: - kdeplasma-addons apt: kde-plasma-desktop dnf: kde-plasma-desktop pacman: kde-plasma-desktop kdenlive: _app: kdenlive.app _bin: kdenlive _github: https://github.com/KDE/kdenlive _name: Kdenlive cask: kdenlive choco: kdenlive flatpak: org.kde.kdenlive kdeplasma-addons: _github: https://github.com/KDE/kdeplasma-addons apt: kdeplasma-addons dnf: kdeplasma-addons pacman: kdeplasma-addons keybase: _app: Keybase.app _bin: null _desc: '[Keybase](https://keybase.io/) is secure messaging and file-sharing. Keybase uses public key cryptography to ensure your messages stay private. Keybase works for families, roommates, clubs, and groups of friends. Keybase connects to public identities, too. You can connect with communities from Twitter, Reddit, and elsewhere.' _docs: https://book.keybase.io/docs _github: https://github.com/keybase/client _home: https://keybase.io/ _name: Keybase _post: | #!/usr/bin/env bash # @file Keybase Configuration # @brief Updates Keybase's system configuration with the Keybase configuration stored in the `home/dot_config/keybase/config.json` location. # @description # This script ensures Keybase utilizes a configuration that, by default, adds a security fix. if command -v keybase > /dev/null; then KEYBASE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/keybase/config.json" if [ -f "$KEYBASE_CONFIG" ]; then logg info 'Ensuring /etc/keybase is a directory' && sudo mkdir -p /etc/keybase logg info "Copying $KEYBASE_CONFIG to /etc/keybase/config.json" && sudo cp -f "$KEYBASE_CONFIG" /etc/keybase/config.json else logg warn "No Keybase config located at $KEYBASE_CONFIG" fi else logg info 'The keybase executable is not available' fi _post:cask: | #!/usr/bin/env bash if [ ! -f /usr/local/bin/keybase ] && [ -f /Applications/Keybase.app/Contents/SharedSupport/bin/keybase ]; then echo "Fixing missing keybase executable symlink permission issue" && sudo ln -s /Applications/Keybase.app/Contents/SharedSupport/bin/keybase /usr/local/bin/keybase; fi _when:ansible: '! test -f /opt/keybase/Keybase' ansible: professormanhattan.keybase cask: keybase choco: keybase pacman: - keybase - keybase-gui yay: keybase-bin keycastr: _app: KeyCastr.app _bin: null _desc: Keystroke visualizer for macOS screen recordings _docs: https://github.com/keycastr/keycastr _github: https://github.com/keycastr/keycastr _home: https://github.com/keycastr/keycastr _name: Keycastr cask: keycastr kitty: _bin: null _desc: '[KiTTY](https://sw.kovidgoyal.net/kitty/) is designed for power keyboard users. To that end all its controls work with the keyboard (although it fully supports mouse interactions as well). Its configuration is a simple, human editable, single file for easy reproducibility.' _docs: https://sw.kovidgoyal.net/kitty/quickstart/ _github: https://github.com/kovidgoyal/kitty _home: https://sw.kovidgoyal.net/kitty/ _name: KiTTY ansible: professormanhattan.kitty kn: _bin: kn _desc: The Knative CLI (kn) provides a quick and easy interface for creating Knative resources, such as Knative Services and Event Sources _github: https://github.com/knative/client _name: kn brew: kn github: github.com/knative/client yay: knative-client-bin kodi: _app: Kodi.app _bin: kodi _desc: '[Kodi](https://kodi.tv/) is a free and open-source media player software application developed by the XBMC Foundation, a non-profit technology consortium. Kodi is available for multiple operating systems and hardware platforms, with a software 10-foot user interface for use with televisions and remote controls.' _docs: https://kodi.wiki/view/Main_Page _github: https://github.com/xbmc/xbmc _home: https://kodi.tv/ _name: Kodi ansible: professormanhattan.kodi apt: kodi cask: kodi choco: kodi dnf: kodi flatpak: tv.kodi.Kodi pacman: kodi koodo-reader: _app: Koodo Reader.app _bin: koodo-reader _github: https://github.com/koodo-reader/koodo-reader _name: Koodo Reader cask: koodo-reader flatpak: io.github.troyeguo.koodo-reader scoop: extras/koodo-reader winget: AppbyTroye.KoodoReader kooha: _bin: kooha _github: https://github.com/SeaDve/Kooha flatpak: io.github.seadve.Kooha korkut: _bin: korkut _github: https://github.com/oguzhaninan/korkut _name: Korkut npm: korkut krew: _bin: kubectl-krew _github: https://github.com/kubernetes-sigs/krew _name: KubeCTL brew: krew krita: _app: krita.app _bin: krita _github: https://github.com/KDE/krita cask: krita choco: krita flatpak: org.kde.krita ksnip: _app: ksnip.app _bin: ksnip _github: https://github.com/ksnip/ksnip _name: kSnip _post:snap: | #!/usr/bin/env bash sudo snap connect ksnip:network-observe && sudo snap connect ksnip:network-manager-observe && sudo snap connect ksnip:removable-media cask: ksnip choco: ksnip flatpak: org.ksnip.ksnip snap: ksnip kube-shell: _bin: kube-shell _desc: An integrated shell for working with the Kubernetes _docs: https://github.com/cloudnativelabs/kube-shell _github: https://github.com/cloudnativelabs/kube-shell _home: https://github.com/cloudnativelabs/kube-shell _name: Kube Shell pipx: kube-shell kubectx: _bin: kubectx _desc: Faster way to switch between clusters and namespaces in kubectl _github: https://github.com/ahmetb/kubectx _name: kubectx brew: kubectx choco: - kubens - kubectx pacman: kubectx port: kubectx snap: kubectx --classic kubekey: _bin: kk _desc: kk stands for KubeKey and it is an installer for [KubeSphere](https://github.com/kubesphere/kubesphere) _docs: https://github.com/kubesphere/kubekey#usage _github: https://github.com/kubesphere/kubekey _home: https://kubesphere.io/ _name: KubeKey brew: kubekey kubenav: _app: kubenav.app _bin: null _desc: kubenav is the navigator for your Kubernetes clusters right in your pocket _docs: https://github.com/kubenav/kubenav _github: https://github.com/kubenav/kubenav _home: https://kubenav.io/ _name: kubenav cask: kubenav github: github.com/kubenav/kubenav yay: kubenav-bin kubernetes-cli: _bin: kubectl _desc: kubectl is a command line tool for communicating with a Kubernetes cluster's control plane, using the Kubernetes API _docs: https://kubernetes.io/docs/reference/kubectl/kubectl/ _github: https://github.com/kubernetes/kubectl _name: kubectl brew: kubectl choco: kubernetes-cli snap: kubectl --classic kubernetes-kompose: _bin: kompose _desc: Go from Docker Compose to Kubernetes _docs: https://kompose.io/getting-started/ _github: https://github.com/kubernetes/kompose _home: https://kompose.io/ _name: kompose brew: kompose choco: kubernetes-kompose snap: kompose kubeval: _bin: kubeval _desc: Validate your Kubernetes configuration files, supports multiple Kubernetes versions _github: https://github.com/instrumenta/kubeval/ _home: https://www.kubeval.com/ _name: kubeval _post:binary:darwin: | #!/usr/bin/env bash tar xf kubeval-darwin-amd64.tar.gz sudo cp kubeval /usr/local/bin _post:binary:linux: | #!/usr/bin/env bash tar xf kubeval-linux-amd64.tar.gz sudo cp kubeval /usr/local/bin _pre:scoop: scoop bucket add instrumenta https://github.com/instrumenta/scoop-instrumenta binary:darwin: https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-darwin-amd64.tar.gz binary:linux: https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz # Following Homebrew does not work properly # brew: instrumenta/instrumenta/kubeval go: github.com/instrumenta/kubeval@latest scoop: kubeval kustomize: _bin: kustomize _github: https://github.com/kubernetes-sigs/kustomize _name: Kustomize brew: kustomize choco: kustomize go: sigs.k8s.io/kustomize/kustomize/v5@latest port: kustomize kvantum: _bin: kvantummanager _desc: Kvantum is an SVG-based theme engine for Qt4/Qt5 and KDE, i.e. a program for styling Qt applications with SVG images, with an emphasis on elegance, usability and practicality. _docs: https://github.com/tsujan/Kvantum/blob/master/Kvantum/doc/Theme-Config.pdf _github: https://github.com/tsujan/Kvantum _home: https://github.com/tsujan/Kvantum _name: Kvantum apt: - qt5-style-kvantum - qt5-style-kvantum-themes dnf:fedora: kvantum eopkg: kvantum pacman: kvantum kvm: _github: false _bin: - kvm - qemu-img _bin:brew: - libvirtd - qemu-img _desc: Kernel-based Virtual Machine (or [KVM](https://www.linux-kvm.org/page/Main_Page)) is a virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the Linux kernel mainline in kernel version 2.6.20, which was released on February 5, 2007. _docs: https://www.linux-kvm.org/page/Documents _groups: - kvm - libvirt _home: https://www.linux-kvm.org/page/Main_Page _name: KVM _service: libvirt _serviceEnabled: true ansible: professormanhattan.kvm apt: - bridge-utils - libvirt-clients - libvirt-daemon-system - qemu-kvm - virt-manager - virtinst brew: - libvirt - qemu dnf: - bridge-utils - libvirt - qemu-kvm - virt-install - virt-manager - virt-top - virt-viewer pacman: - bridge-utils - libvirt - virt-manager langflow: _bin: langflow _github: https://github.com/logspace-ai/langflow _name: LangFlow pipx: langflow lapce: _app: Lapce.app _bin: lapce _desc: Lightning-fast and Powerful Code Editor written in Rust _docs: https://docs.lapce.dev/ _github: https://github.com/lapce/lapce _home: https://lapce.dev/ _name: Lapce cask: lapce emerge: app-editors/lapce flatpak: dev.lapce.lapce nix-env: nixpkgs.lapce scoop: lapce winget: lapce lazygit: _bin: lazygit _desc: Simple terminal UI for git commands _github: https://github.com/jesseduffield/lazygit brew: lazygit choco: lazygit eopkg: lazygit go: github.com/jesseduffield/lazygit@latest pacman: lazygit port: lazygit scoop: lazygit xbps: lazygit ledger-live: _app: Ledger Live.app _bin: ledger-live _github: https://github.com/LedgerHQ/ledger-live _desc: '[Ledger Live](https://www.ledger.com/ledger-live) is a new generation wallet desktop application providing a unique interface to maintain multiple cryptocurrencies for your Ledger Nano S / Blue. Manage your device, create accounts, receive and send cryptoassets and many more.' _home: https://www.ledger.com/ledger-live _name: Ledger Live ansible: professormanhattan.ledgerlive appimage: ledger-live-desktop cask: ledger-live choco: ledger-live lens: _app: Lens.app _bin: lens _bin:snap: kontena-lens _desc: '[Lens IDE](https://k8slens.dev/) provides the full situational awareness for everything that runs in Kubernetes. It is an IDE designed for those who work with Kubernetes on a daily basis' _docs: https://docs.k8slens.dev/main/ _github: https://github.com/lensapp/lens _home: https://k8slens.dev/ _name: Lens ansible: professormanhattan.lens cask: lens choco: lens snap: kontena-lens --classic yay: lens lepton: _app: Lepton.app _bin: lepton _bin:snap: lepton _desc: Cross-platform snippet manager _github: https://github.com/hackjutsu/Lepton _home: https://hackjutsu.com/Lepton/ _name: lepton cask: lepton snap: lepton lexicon: _bin: lexicon _desc: '[Lexicon](https://github.com/AnalogJ/lexicon) provides a way to manipulate DNS records on multiple DNS providers in a standardized/agnostic way.' _github: https://github.com/AnalogJ/lexicon _name: Lexicon _post:pipx: | #!/usr/bin/env bash pipx inject dns-lexicon dns-lexicon[full] ansible: professormanhattan.lexicon pipx: dns-lexicon libguestfs-tools: _bin: guestfish _github: https://github.com/libguestfs/libguestfs apt: libguestfs-tools dnf: libguestfs-tools libimobiledevice: _bin: null _github: https://github.com/libimobiledevice/libimobiledevice _home: https://libimobiledevice.org/ brew:darwin: libimobiledevice libre-menu-editor: _bin: libre-menu-editor _name: Libre Menu Editor for GNOME flatpak: page.codeberg.libre_menu_editor.LibreMenuEditor _github: false libreoffice: _app: LibreOffice.app _bin: libreoffice _github: https://github.com/LibreOffice/core _desc: '[LibreOffice](https://www.libreoffice.org/) is a free and open-source office productivity software suite, a project of The Document Foundation. It was forked in 2010 from OpenOffice.org, which was an open-sourced version of the earlier StarOffice.' _docs: https://documentation.libreoffice.org/en/english-documentation/ _home: https://www.libreoffice.org/ _name: LibreOffice apt: libreoffice cask: libreoffice choco: libreoffice-fresh dnf: libreoffice flatpak: org.libreoffice.LibreOffice mas: 1630474372 pacman: libreoffice librewolf: _app: LibreWolf.app _bin: librewolf _gitlab: https://gitlab.com/librewolf-community/browser/linux _github: https://github.com/librewolf-community/browser-linux _scoopExtras: true cask: librewolf choco: librewolf flatpak: io.gitlab.librewolf-community scoop: librewolf winget: librewolf yay: librewolf license: _bin: license _desc: Command-line license text generator _github: https://github.com/nishanths/license _name: license go: github.com/nishanths/license@latest yay: nishanths-license-git lighthouse: _bin: lighthouse _github: https://github.com/GoogleChrome/lighthouse _name: Lighthouse npm: lighthouse lightproxy: _app: LightProxy.app _bin: lightproxy _github: https://github.com/alibaba/lightproxy _name: LightProxy cask: lightproxy linkerd2: _bin: linkerd _desc: Linkerd is an ultralight, security-first service mesh for Kubernetes _github: https://github.com/linkerd/linkerd2 _home: https://linkerd.io/ _name: linkerd2 brew: linkerd github: github.com/linkerd/linkerd2 yay: linkerd linkliar: _app: LinkLiar.app _bin: null _desc: Menu bar application for macOS that allows you to spoof your MAC address _docs: https://halo.github.io/LinkLiar/usage.html _github: https://github.com/halo/LinkLiar _home: https://halo.github.io/LinkLiar/ _name: Link Liar cask: linkliar liquidjs: _bin: liquidjs _desc: A simple, expressive and safe template engine. _docs: https://liquidjs.com/tutorials/intro-to-liquid.html _github: https://github.com/harttle/liquidjs _home: https://liquidjs.com/ _name: LiquidJS npm: liquidjs litecli: _bin: litecli _desc: CLI for SQLite Databases with auto-completion and syntax highlighting _docs: https://litecli.com/features/ _github: https://github.com/dbcli/litecli _home: https://litecli.com/ _name: LiteCLI brew: litecli pipx: litecli yay: litecli live-captions: _bin: live-captions _github: https://github.com/abb128/LiveCaptions _desc: Linux Desktop application that provides live captioning flatpak: net.sapples.LiveCaptions localtunnel: _bin: lt _desc: localtunnel exposes your localhost to the world for easy testing and sharing _github: https://github.com/localtunnel/localtunnel _home: https://theboroer.github.io/localtunnel-www/ _name: localtunnel brew: localtunnel npm: localtunnel logcli: _bin: logcli _desc: Run LogQL queries against a Loki server _github: https://github.com/grafana/loki _home: https://grafana.com/loki _name: logcli brew: logcli github: github.com/grafana/loki yay: logcli-git logi-options-plus: _app: logioptionsplus.app _bin: logi-options-plus _env: LOGI_OPTIONS_PLUS_APPDATA: cask: "$HOME/Library/Application Support/LogiOptionsPlus" choco: "TODO" _github: false _name: Logi Options+ cask: logi-options-plus choco: logioptionsplus exe: https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe winget: Logitech.OptionsPlus logi-tune: _bin: logi-tune _github: false _name: Logi Tune dmg: https://software.vc.logitech.com/downloads/tune/LogiTuneInstaller.dmg exe: https://software.vc.logitech.com/downloads/tune/LogiTuneInstall.exe lolcat: _bin: lolcat _github: https://github.com/busyloop/lolcat _name: lolcat brew: lolcat choco: lolcat snap: lolcat lollypop: _bin: lollypop _gitlab: https://gitlab.gnome.org/World/lollypop _github: https://github.com/hamonikr/lollypop _desc: '[Lollypop](https://wiki.gnome.org/Apps/Lollypop) is a lightweight modern music player designed to work excellently on the GNOME desktop environment. Lollypop also features a party mode which will automatically select party-related playlists to play; a full-screen view which lets you visually access the player from your couch thanks to its HiDPI support; and native support for replay gain.' _docs: https://gitlab.gnome.org/World/lollypop/issues _home: https://wiki.gnome.org/Apps/Lollypop _name: Lollypop ansible:linux: professormanhattan.lollypop apt: lollypop dnf: lollypop flatpak: org.gnome.Lollypop pacman: lollypop yay: lollypop-stable-git loop: _bin: loop _github: https://github.com/Miserlou/Loop _name: Loop cargo: loop-rs pacman: loop snap: loop-rs --beta lpass: _bin: null _desc: >- [LastPass CLI](https://github.com/lastpass/lastpass-cli) is a user-friendly command-line client for [LastPass](https://www.lastpass.com/). LastPass is a freemium password manager that stores encrypted passwords online. The standard version of LastPass comes with a web interface, but also includes plugins for various web browsers and apps for many smartphones. It also includes support for bookmarklets. It is similar to but not open-source like [Bitwarden](https://gitlab.com/megabyte-labs/ansible-roles/bw). _docs: LastPass command line interface tool _github: https://github.com/lastpass/lastpass-cli _name: LastPass CLI ansible: professormanhattan.lpass lsd: _bin: lsd _desc: '[LSD](https://github.com/Peltoche/lsd) (LSDeluxe), a clone of ls, is the next gen ls command with colorful output, file type icons, and more.' _docs: https://github.com/lsd-rs/lsd _github: https://github.com/Peltoche/lsd _home: https://github.com/lsd-rs/lsd _name: LSD (LSDeluxe) _notes: Only the Chocolatey definition is included because LSD is only used on Windows (when `exa` is not available) apt: lsd brew: lsd cargo: lsd choco: lsd dnf: lsd eopkg: lsd pacman: lsd pkg-freebsd: lsd pkg-termux: lsd port: lsd scoop: lsd xbps: lsd zypper: lsd lsyncd: _bin: lsyncd _desc: Lsyncd (Live Syncing Daemon) synchronizes local directories with remote targets (via SSH and more) _docs: https://lsyncd.github.io/lsyncd/ _github: https://github.com/lsyncd/lsyncd _home: false _name: Lsyncd apt: lsyncd brew: lsyncd dnf: lsyncd pacman: lsyncd lua: _bin: lua _github: https://github.com/lua/lua _name: Lua apt: lua brew: lua choco: lua dnf: lua pacman: lua lulu: _app: LuLu.app _bin: null _desc: Powerful firewall application for macOS _docs: https://objective-see.org/products/lulu.html _github: https://github.com/objective-see/LuLu _home: https://objective-see.org/products/lulu.html _name: LuLu cask: lulu lux: _bin: lux _github: https://github.com/iawia002/lux _name: Lux brew: lux choco: github.com/iawia002/lux go: github.com/iawia002/lux@latest scoop: lux xbps: lux lxc: _bin: lxc _desc: Linux Containers is an operating-system-level virtualization method for running multiple isolated Linux systems on a control host using a single Linux kernel. _docs: https://linuxcontainers.org/lxc/documentation/ _github: https://github.com/lxc/lxc _home: https://linuxcontainers.org/lxc/ _name: LXC _service: lxc apt: lxc brew: lxc dnf: lxc pacman: lxc lxd: _bin: null _desc: '[LXD](https://linuxcontainers.org) is a next generation system container manager. It offers a user experience similar to virtual machines but using Linux containers instead' _docs: https://linuxcontainers.org/lxd/docs/master/ _github: https://github.com/lxc/lxd _groups: - lxd _home: https://linuxcontainers.org/lxd/ _name: LXDC ansible:linux: professormanhattan.lxdc snap: lxd lxd-ui: _bin: lxd-ui _github: https://github.com/canonical/lxd-ui _name: LXD UI _post: | #!/usr/bin/env bash lxd init && lxc config set core.https_address "[::]:8443" snap: lxd lxdc: _github: false _deps: - lxc - lxd m-cli: _bin: m _desc: Swiss Army Knife for macOS. A wrapper for many types of macOS-specific commands. _docs: https://github.com/rgcr/m-cli _github: https://github.com/rgcr/m-cli _home: https://github.com/rgcr/m-cli _name: m-cli brew:darwin: m-cli maas: _bin: maas _desc: '[MAAS](https://maas.io/) allows very fast server provisioning for your data centre. It allows self-service, remote installation of Windows, CentOS, ESXi and Ubuntu on real servers. It turns your data centre into a bare metal cloud.' _docs: https://maas.io/docs _github: https://github.com/maas/maas _home: https://maas.io/ _name: MAAS _ports: - port: 5240 proto: tcp - port: 5240 proto: udp - port: 5248 proto: tcp - port: 5248 proto: udp - port: 5241-5247 proto: tcp - port: 5241-5247 proto: udp - port: 5250-5270 proto: tcp - port: 5250-5270 proto: udp ansible:ubuntu: professormanhattan.maas snap:ubuntu: maas mackup: _bin: mackup _desc: '[mackup](https://github.com/lra/mackup) lets you keep your application settings in sync.' _docs: https://github.com/lra/mackup _github: https://github.com/lra/mackup _home: https://github.com/lra/mackup _name: mackup ansible: professormanhattan.mackup brew: mackup pipx: mackup macprefs: _bin: macprefs _github: https://github.com/clintmod/macprefs _name: MacPrefs brew: clintmod/formulas/macprefs macvim: _app: MacVim.app _github: https://github.com/macvim-dev/macvim _todo: Integrate this into macOS setup cask: macvim mage-ai: _bin: mage _desc: The modern replacement for Airflow. Build, run, and manage data pipelines for integrating and transforming data. _docs: https://docs.mage.ai/introduction/overview _github: https://github.com/mage-ai/mage-ai _home: https://www.mage.ai _name: Mage AI pipx: mage-ai magic-wormhole: _bin: wormhole _github: https://github.com/magic-wormhole/magic-wormhole _name: Magic Wormhole brew: magic-wormhole mailcatcher: _bin: mailcatcher _github: https://github.com/sj26/mailcatcher _name: Mail Catcher _service: mailcatcher brew: mailcatcher gem: mailcatcher mailspring: _app: Mailspring.app _bin: mailspring _desc: '[Mailspring](https://getmailspring.com/) comes packed with powerful features like Unified Inbox, Snooze, Send Later, Mail Rules, Templates and more. Mailspring Pro, which you can unlock with a monthly subscription, adds even more features for people who send a ton of email: link tracking, read receipts, mailbox analytics, contact and company profiles. All of these features run in the client - Mailspring does not send your email credentials to the cloud.' _docs: https://community.getmailspring.com/docs/ _env: MAILSPRING_APPDATA: cask: "$HOME/Library/Application Support/Mailspring" choco: "TODO" flatpak: "TODO" snap: "TODO" _github: https://github.com/Foundry376/Mailspring _home: https://getmailspring.com/ _name: Mailspring cask: mailspring choco: mailspring flatpak: com.getmailspring.Mailspring snap: mailspring yay: mailspring mailsy: _bin: mailsy _github: https://github.com/BalliAsghar/Mailsy _name: Mailsy brew: mailsy npm: mailsy majestic: _bin: majestic _github: https://github.com/Raathigesh/majestic _name: Majestic npm: majestic makeself: _bin: makeself _github: https://github.com/megastep/makeself _name: MakeSelf brew: makeself malwarebytes: _app: Malwarebytes.app _bin: malwarebytes _desc: Cybersecurity. For every one. _home: https://www.malwarebytes.com/ _github: false _name: Malwarebytes cask: malwarebytes choco: malwarebytes mambaforge: _bin: conda _github: https://github.com/mamba-org/mamba _name: Mamba Forge _post: | #!/usr/bin/env bash echo y | conda update -n base -c conda-forge conda cask: mambaforge choco: mambaforge script:linux: bash <(curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh") manta: _app: Manta.app _bin: null _desc: Flexible invoicing desktop app with beautiful & customizable templates _github: https://github.com/hql287/Manta _name: Manta appimage: https://github.com/hql287/Manta/releases/download/v1.1.4/Manta-1.1.4-x86_64.AppImage cask: manta exe: https://github.com/hql287/Manta/releases/download/v1.1.4/Manta.Setup.1.1.4.exe github: github.com/hql287/Manta mariadb: _bin: mariadb _github: false _name: MariaDB _service: mariadb apk: mariadb-server apt: mariadb-server brew: mariadb choco: mariadb dnf: mariadb-server pacman: mariadb-server mark-text: _app: MarkText.app _bin: marktext _desc: A simple and elegant markdown editor, available for Linux, macOS and Windows _env: MARK_TEXT_APPDATA: cask: "$HOME/Library/Application Support/marktext" choco: "TODO" flatpak: "TODO" winget: "TODO" _github: https://github.com/marktext/marktext _name: MarkText cask: mark-text choco: marktext flatpak: com.github.marktext.marktext winget: marktext yay: marktext markdownlint-cli: _bin: markdownlint _desc: MarkdownLint command line interface _docs: https://github.com/igorshubovych/markdownlint-cli _github: https://github.com/igorshubovych/markdownlint-cli _home: https://github.com/igorshubovych/markdownlint-cli _name: Markdownlint CLI brew: markdownlint-cli pipx: markdownlint-cli markmap: _bin: markmap _desc: Visualize your Markdown as mindmaps with Markmap. _docs: https://markmap.js.org/docs/markmap _github: https://github.com/markmap/markmap _home: https://markmap.js.org/ _name: Markmap npm: markmap-cli marp: _bin: marp _desc: A CLI interface for Marp and Marpit based converters _docs: https://github.com/marp-team/marp-cli _github: https://github.com/marp-team/marp-cli _home: https://marp.app/ _name: Marp brew: marp-cli npm: '@marp-team/marp-cli' scoop: marp mas: _bin: mas _desc: '[MAS CLI](https://github.com/mas-cli/mas) is a simple command line interface for the Mac App Store. Designed for scripting and automation.' _name: MAS CLI _github: https://github.com/mas-cli/mas ansible:darwin: professormanhattan.mas brew:darwin: mas port: mas mask: _bin: mask _github: https://github.com/jacobdeichert/mask _name: Mask brew: mask cargo: mask masscan: _bin: masscan _github: https://github.com/robertdavidgraham/masscan _name: Masscan brew: masscan choco: masscan masscode: _app: massCode.app _bin: null _desc: A free and open source code snippets manager for developers _github: https://github.com/antonreshetov/massCode _name: MassCode cask: masscode github: github.com/antonreshetov/massCode mc: _bin: mc _desc: MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage _github: https://github.com/minio/mc _home: https://min.io/ _name: mc _post:binary:linux: | #!/usr/bin/env bash # TODO _post:binary:windows: | #!/usr/bin/env bash # TODO binary:linux: https://dl.min.io/client/mc/release/linux-amd64/mc binary:windows: https://dl.min.io/client/mc/release/windows-amd64/mc.exe brew: minio/stable/mc go: github.com/minio/mc@latest mcfly: _bin: mcfly _desc: "[McFly](https://github.com/cantino/mcfly) replaces your default CTRL-r shell history search with an intelligent search engine that takes into account your working directory and the context of recently executed commands. McFly's suggestions are prioritized in real time with a small neural network." _github: https://github.com/cantino/mcfly _name: McFly ansible:darwin: professormanhattan.mcfly ansible:linux: professormanhattan.mcfly brew: mcfly port: mcfly script:darwin: curl -LSfs https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- --git cantino/mcfly script:linux: curl -LSfs https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- --git cantino/mcfly medis: _app: Medis.app _bin: medis _github: https://github.com/luin/medis _name: Medis cask: medis medusa: _bin: medusa _github: https://github.com/medusajs/medusa _name: Medusa npm: '@medusajs/medusa-cli' meetingbar: _app: MeetingBar.app _bin: null _desc: Meeting menu bar application that shows calendar event details on macOS _docs: https://github.com/leits/MeetingBar _github: https://github.com/leits/MeetingBar _home: https://apps.apple.com/app/id1532419400 _name: Meeting Bar cask: meetingbar mas: 1532419400 meld: _app: Meld.app _bin: meld _github: https://github.com/GNOME/meld cask: meld choco: meld flatpak: org.gnome.meld meta: _bin: meta _github: https://github.com/mateodelnorte/meta _name: Meta npm: meta meta-package-manager: _bin: mpm _github: https://github.com/kdeldycke/meta-package-manager _name: Meta Package Manager brew: meta-package-manager pipx: meta-package-manager metasploit: _github: https://github.com/rapid7/metasploit-framework _name: Metasploit Framework _when: '! test -f /opt/metasploit-framework/bin/msfconsole' script: curl -sSL --compressed https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > /tmp/msfinstall && chmod 755 /tmp/msfinstall && sudo /tmp/msfinstall micromamba: _bin: micromamba _github: https://github.com/mamba-org/mamba _name: MicroMamba _post: | #!/usr/bin/env bash micromamba self-update brew: micromamba microsoft-edge: _app: Microsoft Edge.app _bin: microsoft-edge _desc: '[Microsoft Edge](https://www.microsoft.com/en-us/edge) is a cross-platform web browser developed by Microsoft. It was first released for Windows 10 and Xbox One in 2015, then for Android and iOS in 2017, for macOS in 2019, and as a preview for Linux in October 2020.' _docs: https://docs.microsoft.com/en-us/microsoft-edge/ _env: MICROSOFT_EDGE_APPDATA: cask: "$HOME/Library/Application Support/Microsoft Edge/Default" choco: "TODO" flatpak: "TODO" _github: false _home: https://www.microsoft.com/en-us/edge _name: Microsoft Edge _post: | #!/usr/bin/env bash # @brief See `google-chrome` `_post` script for more details function chromeSetUp() { ### Ensure Chrome policies directory is present # logg info 'Processing policy directories for Chromium based browsers' ### TODO - Find POLICY_DIR location for Microsoft Edge # for POLICY_DIR in "/opt/google/chrome/policies" "/etc/chromium/policies" "/etc/brave/policies"; do # if [ -d "$(dirname "$POLICY_DIR")" ]; then # ### Managed policies # if [ ! -f "$POLICY_DIR/managed/policies.json" ]; then # logg info "Ensuring directory $POLICY_DIR/managed exists" # sudo mkdir -p "$POLICY_DIR/managed" # logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json to $POLICY_DIR/managed/policies.json" # sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json" "$POLICY_DIR/managed/policies.json" # fi # ### Recommended policies # if [ ! -f "$POLICY_DIR/recommended/policies.json" ]; then # logg info "Ensuring directory $POLICY_DIR/recommended exists" && sudo mkdir -p "$POLICY_DIR/recommended" # logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json to $POLICY_DIR/recommended/policies.json" # sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json" "$POLICY_DIR/recommended/policies.json" # fi # else # logg info "Skipping extension injection into $POLICY_DIR - create these folders prior to running to create managed configs" # fi # done ### Add Chrome extension JSON logg info 'Populating Chrome extension JSON' for EXTENSION_DIR in "$HOME/Library/Application Support/Microsoft/Edge/External Extensions"; do ### Ensure program-type is installed if [ -d "$(dirname "$EXTENSION_DIR")" ]; then ### Ensure extension directory exists if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && sudo mkdir -p "$EXTENSION_DIR" fi else if [ ! -d "$EXTENSION_DIR" ]; then logg info "Creating directory $EXTENSION_DIR" && mkdir -p "$EXTENSION_DIR" fi fi ### Add extension JSON logg info "Adding Chrome extensions to $EXTENSION_DIR" for EXTENSION in {{ list (.chromeExtensions | toString | replace "[" "" | replace "]" "") | uniq | join " " }}; do logg info "Adding Chrome extension manifest ($EXTENSION)" if ! echo "$EXTENSION" | grep 'https://chrome.google.com/webstore/detail/' > /dev/null; then EXTENSION="https://chrome.google.com/webstore/detail/$EXTENSION" fi EXTENSION_ID="$(echo "$EXTENSION" | sed 's/^.*\/\([^\/]*\)$/\1/')" if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" else cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json" fi done else logg info "$EXTENSION_DIR does not exist" fi done } chromeSetUp cask: microsoft-edge choco: microsoft-edge flatpak: com.microsoft.Edge yay: microsoft-edge-stable-bin microsoft-git: _bin: scalar _github: https://github.com/microsoft/VFSForGit _name: Microsoft Git (with Git VFS) cask: microsoft/git/microsoft-git script:linux: | #!/usr/bin/env bash mkdir -p "$HOME/.local/src" rm -rf "$HOME/.local/src/microsoft-git" git clone https://github.com/microsoft/git "$HOME/.local/src/microsoft-git" cd "$HOME/.local/src/microsoft-git" make -j12 prefix=/usr/local sudo make -j12 prefix=/usr/local install winget: microsoft.git microsoft-office: _app: Microsoft Word.app _bin: null _github: false _desc: '[Microsoft Office](https://www.microsoft.com/en-us/microsoft-365/microsoft-office), or simply Office, is a family of client software, server software, and services developed by Microsoft.' _docs: https://docs.microsoft.com/en-us/microsoft-365/?view=o365-worldwide _home: https://www.office.com/ _name: Office cask: microsoft-office choco: office365business microsoft-remote-desktop: _app: Microsoft Remote Desktop.app _bin: microsoft-remote-desktop _github: false _name: Microsoft Remote Desktop cask: microsoft-remote-desktop mas: 1295203466 microsoft-teams: _app: Microsoft Teams.app _bin: teams _github: false _desc: '[Microsoft Teams](https://www.microsoft.com/en-us/microsoft-teams/group-chat-software) is a proprietary business communication platform developed by Microsoft, as part of the Microsoft 365 family of products. Teams primarily competes with the similar service Slack, offering workspace chat and videoconferencing, file storage, and application integration.' _name: Microsoft Teams ansible: professormanhattan.teams cask: microsoft-teams choco: microsoft-teams flatpak: com.microsoft.Teams snap: teams-for-linux yay: teams-for-linux microsoft-todo: _app: Ao.app _bin:snap: microsoft-todo-unofficial _desc: '[Microsoft To Do](https://todo.microsoft.com/tasks/) is a productivity application developed by Microsoft. It lets you create to do lists, reminders, and notes for any purpose. Sync lists across devices and Microsoft 365 accounts to access daily planner and task manager features anywhere.' _docs: https://support.microsoft.com/en-us/todo _github: false _home: https://todo.microsoft.com/tasks/ _name: Microsoft To-Do ansible: professormanhattan.microsofttodo cask: ao mas: 1274495053 snap: microsoft-todo-unofficial miller: _bin: mlr _github: https://github.com/johnkerl/miller _name: Miller apt: miller brew: miller choco: miller dnf: miller port: miller minikube: _bin: minikube _deps: - docker _deps:darwin: - hyperkit _desc: minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows _docs: https://minikube.sigs.k8s.io/docs/ _github: https://github.com/kubernetes/minikube _name: minikube # TODO - Prefer HyperV on Windows https://minikube.sigs.k8s.io/docs/drivers/hyperv/ _post: | #!/usr/bin/env bash if command -v hyperkit > /dev/null; then minikube config set driver hyperkit; elif command -v docker > /dev/null; then minikube config set driver docker; elif command -v VBoxManage > /dev/null; then minikube config set driver virtualbox; fi _todo: A full installation of Xcode.app 9.0 is required. Also, hyperkit x86_64 architecture is required for this software. So automate install of Xcode.app 9.0 and add check for x86_64 prior to installing this brew: minikube choco: minikube mise: _bin: mise _github: https://github.com/jdx/mise _name: mise _post: | #!/usr/bin/env bash mise install if [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/mise/installs/java/openjdk-20/Contents" ]; then sudo mkdir -p /Library/Java/JavaVirtualMachines/openjdk-20.jdk sudo ln -s "${XDG_DATA_HOME:-$HOME/.local/share}/mise/installs/java/openjdk-20/Contents" /Library/Java/JavaVirtualMachines/openjdk-20.jdk/Contents fi apk: mise brew: mise cargo: mise-cli nix-env: mise npm: '@jdxcode/mise' port: port mitmproxy: _bin: mitmproxy _desc: '[mitmproxy](https://mitmproxy.org/) is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets. It also includes mitmweb which is a web-based interface for mitmproxy.' _docs: https://docs.mitmproxy.org/stable _github: https://github.com/mitmproxy/mitmproxy _home: https://mitmproxy.org/ _name: mitmproxy ansible: professormanhattan.mitmproxy apt: mitmproxy cask: mitmproxy choco: mitmproxy pacman: mitmproxy mjml: _app: MJML.app _bin:npm: mjml _desc: The desktop app for MJML _docs: https://documentation.mjml.io/ _github: https://github.com/mjmlio/mjml-app _home: https://mjmlio.github.io/mjml-app/ _name: MJML App cask: mjml github: github.com/mjmlio/mjml-app npm: mjml mkcert: _bin: mkcert _desc: A simple zero-config tool to make locally trusted development certificates with any names _github: https://github.com/FiloSottile/mkcert _name: mkcert brew: mkcert choco: mkcert github: github.com/FiloSottile/mkcert pacman: mkcert scoop: mkcert mockoon: _app: Mockoon.app _bin:snap: mockoon _desc: Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source _github: https://github.com/mockoon/mockoon _name: Mockoon cask: mockoon choco: mockoon github: github.com/mockoon/mockoon npm: '@mockoon/cli' snap: mockoon winget: mockoon yay: mockoon-bin modern-flyouts: _bin: modern-flyouts _github: https://github.com/ModernFlyouts-Community/ModernFlyouts _name: Modern Flyouts choco: modernflyouts winapp: modernflyouts-preview/9MT60QV066RP winget: ModernFlyouts.ModernFlyouts mods: _bin: mods _desc: AI for the command-line that leverages OpenAI or LocalAI (if configured to do so) _docs: https://github.com/charmbracelet/mods _github: https://github.com/charmbracelet/mods _home: https://charm.sh/ _name: Mods brew: charmbracelet/tap/mods go: github.com/charmbracelet/mods@latest yay: mods mole: _bin: mole _desc: CLI application to create ssh tunnels focused on resiliency and user experience _docs: https://davrodpin.github.io/mole/ _github: https://github.com/davrodpin/mole _home: https://davrodpin.github.io/mole/ _name: mole brew: davrodpin/homebrew-mole/mole github: github.com/davrodpin/mole yay: mole-bin molecule: _bin: molecule _desc: Molecule aids in the development and testing of Ansible roles _docs: https://molecule.readthedocs.io/en/latest/getting-started.html _github: https://github.com/ansible-community/molecule _home: https://molecule.readthedocs.io/en/latest/ _name: Ansible Molecule _post:pipx: | #!/usr/bin/env bash pipx inject molecule ansible PyObjC PyObjC-core docker lxml netaddr pexpect python-vagrant pywinrm requests-credssp watchdog apache-libcloud gcloud junit-xml molecule-docker molecule-gce molecule-vagrant pycrypto # brew: molecule pipx: molecule monero: _app: monero-wallet-gui.app _bin: monero _bin:flatpak: org.getmonero.Monero _desc: '[Monero](https://www.getmonero.org/) is a leading cryptocurrency focused on private and censorship-resistant transactions. This role installs the Monero wallet application which is required for interacting with the Monero network.' _docs: https://www.getmonero.org/resources/user-guides/ _github: https://github.com/monero-project/monero _home: https://www.getmonero.org/ _name: Monero _restricted: true _service: monero ansible: professormanhattan.monero cask: monero-wallet choco: monero flatpak: org.getmonero.Monero monero-cli: _bin: monerod _desc: CLI for Monero, a leading cryptocurrency focused on private and censorship-resistant transactions. _docs: https://www.getmonero.org/resources/user-guides/ _github: https://github.com/monero-project/monero _home: https://www.getmonero.org/ _restricted: true brew: monero scoop: monero mongodb: _bin: mongod _github: https://github.com/mongodb/mongo _name: MongoDB _service: mongodb _service:brew: mongodb-community brew: mongodb/brew/mongodb-community choco: mongodb mongodb-atlas: _bin: atlas _desc: Install the Atlas CLI to quickly provision and manage Atlas database deployments from the terminal. (Official MongoDB hosted service provider CLI) _docs: https://www.mongodb.com/docs/atlas/cli/stable/command/atlas/ _github: https://github.com/mongodb/mongodb-atlas-cli _home: https://www.mongodb.com/docs/atlas/cli/stable/ _name: MongoDB Atlas brew: mongodb-atlas choco: mongodb-atlas mongodb-compass: _app: MongoDB Compass.app _bin: mongodb-compass _github: https://github.com/mongodb-js/compass _name: MongoDB Compass apt: https://downloads.mongodb.com/compass/mongodb-compass_1.38.0_amd64.deb cask: mongodb-compass choco: mongodb-compass dnf: https://downloads.mongodb.com/compass/mongodb-compass-1.38.0.x86_64.rpm monitorcontrol: _app: MonitorControl.app _bin: null _desc: Menu bar application for macOS that allows you to control the screen brightness and volume _docs: https://github.com/MonitorControl/MonitorControl _github: https://github.com/MonitorControl/MonitorControl _home: https://github.com/MonitorControl/MonitorControl _name: Monitor Control cask: monitorcontrol mono: _bin: mono _desc: Mono open source ECMA CLI, C# and .NET implementation. _docs: https://www.mono-project.com/docs/ _github: https://github.com/mono/mono _home: https://www.mono-project.com/ _name: Mono apt: mono-complete brew: mono choco: mono dnf: mono-complete port: mono scoop: main/mono winget: Mono.Mono mosh: _bin: mosh _desc: Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. _docs: https://mosh.org/#usage _github: https://github.com/mobile-shell/mosh _home: https://mosh.org/ _name: Mosh apk: mosh apt: mosh brew: mosh dnf: mosh emerge: net-misc/mosh pacman: mosh pkg-freebsd: net/mosh pkg_add: mosh port: mosh zypper: mosh motrix: _app: Motrix.app _bin: motrix _desc: '[Motrix](https://motrix.app/) is a full-featured download manager that supports downloading HTTP, FTP, BitTorrent, Magnet, etc.' _github: https://github.com/agalwood/Motrix _home: https://motrix.app/ _name: Motrix ansible: professormanhattan.motrix cask: motrix choco: motrix flatpak: net.agalwood.Motrix github: github.com/agalwood/Motrix scoop: motrix yay: motrix-bin mpg123: _bin: mpg123 _github: false _desc: mpg123 is a free and open-source audio player. It supports MPEG audio formats, including MP3 _home: https://mpg123.org/ _name: mpg123 apt: mpg123 brew: mpg123 choco: mpg123 dnf: mpg123 pacman: mpg123 port: mpg123 scoop: mpg123 mpv: _app: mpv.app _bin: mpv _github: https://github.com/mpv-player/mpv _name: MPV _todo: This software does not run on macOS versions other than Mojave, Catalina, Big Sur and Ventura --- probably adding support - this issue will likely fix itself brew: mpv cask: mpv choco: mpv flatpak: io.mpv.Mpv mqttx: _app: MQTTX.app _bin: mqttx _desc: MQTT X - Elegant Cross-platform MQTT 5.0 Desktop Client _github: https://github.com/emqx/MQTTX _name: MQTT X cask: mqttx flatpak: com.emqx.MQTTX github: github.com/emqx/MQTTX snap: mqttx yay: mqttx-bin mudlet: _app: mudlet.app _bin: mudlet _desc: A full-featured cross-OS MUD client _docs: https://wiki.mudlet.org/?pk_vid=b53bfe5eba0aac5a1685341616dc4f27 _github: https://github.com/Mudlet/Mudlet _home: https://www.mudlet.org/ _name: Mudlet cask: mudlet choco: mudlet snap: mudlet-linux muffet: _bin: muffet _desc: Fast website link checker in Go _github: https://github.com/raviqqe/muffet _name: muffet brew: muffet github: github.com/raviqqe/muffet go: github.com/raviqqe/muffet/v2@latest yay: muffet-bin mullvad-vpn: _app: Mullvad VPN.app _bin: null _desc: The Mullvad VPN client app for desktop and mobile _github: https://github.com/mullvad/mullvadvpn-app _name: Mullvad VPN apt: https://github.com/mullvad/mullvadvpn-app/releases/download/2022.5/MullvadVPN-2022.5_amd64.deb cask: mullvadvpn dnf: https://github.com/mullvad/mullvadvpn-app/releases/download/2022.5/MullvadVPN-2022.5_x86_64.rpm exe: https://github.com/mullvad/mullvadvpn-app/releases/download/2022.5/MullvadVPN-2022.5.exe github: github.com/mullvad/mullvadvpn-app yay: mullvad-vpn multi-gitter: _bin: multi-gitter _github: https://github.com/lindell/multi-gitter _name: Multi-Gitter brew: lindell/multi-gitter/multi-gitter go: github.com/lindell/multi-gitter@latest multipass: _app: Multipass.app _bin: multipass _desc: '[Multipass](https://multipass.run/) makes it so that you can get an instant Ubuntu VM with a single command. Multipass can launch and run virtual machines and configure them with cloud-init like a public cloud. It is a product of [Canonical](https://canonical.com/), the same company that publishes Ubuntu.' _docs: https://multipass.run/docs _github: https://github.com/canonical/multipass _home: https://multipass.run/ _name: Multipass _post:cask: | #!/usr/bin/env bash multipass set local.driver=virtualbox _post:choco: | #!/usr/bin/env bash multipass set local.driver=virtualbox ansible: professormanhattan.multipass cask: multipass choco: multipass snap: multipass mutagen: _bin: mutagen _github: https://github.com/mutagen-io/mutagen _name: Mutagen _post: | #!/usr/bin/env bash mutagen daemon register brew: mutagen-io/mutagen/mutagen mycli: _bin: mycli _desc: A terminal client for MySQL with auto-completion and syntax highlighting. _docs: https://www.mycli.net/docs _github: https://github.com/dbcli/mycli _home: https://www.mycli.net/ _name: MyCLI apt: mycli brew: mycli pipx: mycli mymonero: _app: MyMonero.app _bin: null _desc: Easy-to-use Monero client with managed keys _docs: https://github.com/mymonero/mymonero-app-js _github: https://github.com/mymonero/mymonero-app-js _home: https://mymonero.com/ cask: mymonero choco: mymonero nativefier: _bin: nativefier _deps: - imagemagick _desc: Make any web page a desktop application _github: https://github.com/nativefier/nativefier _name: nativefier npm: nativefier nativescript: _bin: ns _github: https://github.com/NativeScript/NativeScript _name: NativeScript npm: nativescript nautilus-brasero: _github: false apt: nautilus-extension-brasero dnf: brasero-nautilus pacman: brasero-nautilus nautilus-gsconnect: _github: false apt: nautilus-gsconnect dnf: nautilus-gsconnect pacman: nautilus-gsconnect nautilus-gtkhash: _github: false apt: nautilus-gtkhash dnf: gtkhash-nautilus pacman: nautilus-gtkhash nautilus-image-converter: _github: false apt: nautilus-image-converter dnf:fedora: nautilus-image-converter pacman: nautilus-image-converter nautilus-python: _github: false apt: nautilus-python dnf:fedora: nautilus-python pacman: nautilus-python nautilus-seahorse: _github: false apt: nautilus-seahorse dnf: seahorse-nautilus pacman: nautilus-seahorse nautilus-search-tool: _github: false apt: nautilus-search-tool dnf:fedora: nautilus-search-tool pacman: nautilus-search-tool nautilus-share: _github: false apt: nautilus-share pacman: nautilus-share nautilus-wipe: _github: false apt: nautilus-wipe pacman: nautilus-wipe navi: _bin: navi _desc: An interactive cheatsheet tool for the command-line _docs: https://github.com/denisidoro/navi/blob/master/docs/installation.md _github: https://github.com/denisidoro/navi _home: https://github.com/denisidoro/navi _name: Navi _repology: navi brew: navi cargo: navi --locked emerge: app-misc/navi nix-env: nixpkgs.navi pacman: navi nb: _bin: nb _deps: - bat - netcat - pandoc - ripgrep - tig - w3m _desc: '[nb](https://xwmx.github.io/nb) is a command line and local web note‑taking, bookmarking, archiving, and knowledge base application with plain text data storage, encryption, filtering, pinning, #tagging, search, Git-backed versioning and syncing, Pandoc-backed conversion and many more features.' _github: https://github.com/xwmx/nb _home: https://xwmx.github.io/nb _name: nb # Permission denied: /usr/share/zsh/site-functions after running sudo nb completions install and nb completions install on macOS arm64 # _post: nb completions install ansible: professormanhattan.nb basher: xwmx/nb bpkg: xwmx/nb brew: nb npm: nb.sh ncc: _bin: ncc _desc: Compile a Node.js project into a single file. Supports TypeScript, binary addons, dynamic requires. _github: https://github.com/vercel/ncc brew: ncc npm: '@vercel/ncc' ndb: _bin: ndb _github: https://github.com/GoogleChromeLabs/ndb _name: ndb npm: ndb nebula: _bin: nebula _desc: A scalable overlay networking tool with a focus on performance, simplicity and security _docs: https://nebula.defined.net/docs/ _github: https://github.com/slackhq/nebula _home: https://github.com/slackhq/nebula _name: nebula _service: nebula _service:brew: - name: nebula sudo: true _serviceEnabled: true brew: nebula dnf: nebula pacman: nebula nectar: _bin: nectar _desc: JavaScript native compiler. No bytecode no VM, just pure native binaries. _docs: https://nectar.js.org/docs/ _github: https://github.com/NerdLang/nerd _home: https://nectar.js.org/ _name: nerctarjs npm: nectarjs neofetch: _bin: neofetch _github: https://github.com/dylanaraps/neofetch _name: NeoFetch apk: - ncurses - neofetch apt: neofetch brew: neofetch dnf: neofetch eopkg: neofetch nix-env: neofetch pacman: neofetch pkg-freebsd: neofetch pkg-termux: neofetch scoop: neofetch xbps: neofetch zypper: neofetch neovide: _app: Neovide.app _bin: neovide _desc: No Nonsense Neovim Client in Rust _docs: https://neovide.dev/installation.html _github: https://github.com/neovide/neovide _home: https://neovide.dev/ _name: Neovide cask: neovide pacman: neovide scoop: neovide snap: neovide neovim: _bin: nvim _deps: - clangd - terraform-ls - neovim-node-host _desc: '[neovim](https://neovim.io/) is Vim-fork focused on extensibility and usability' _docs: https://neovim.io/doc/general/ _github: https://github.com/neovim/neovim _home: https://neovim.io/ _name: neovim apk: neovim apt: - neovim - python3-neovim brew: neovim choco: neovim dnf: - neovim - python3-neovim # Need to figure out how to include neovim plugin suite # flatpak: io.neovim.nvim nix: neovim pacman: - neovim - python-pynvim pkg: - neovim - py27-pynvim - py36-pynvim port: neovim winget: Neovim.Neovim zypper: - neovim - python-neovim - python3-neovim neovim-node-host: _bin: neovim-node-host _github: https://github.com/neovim/node-client _name: Neovim Node Host npm: neovim nest: _bin: nest _desc: CLI tool for Nest applications _docs: https://docs.nestjs.com/cli/overview _github: https://github.com/nestjs/nest-cli _name: nest npm: '@nestjs/cli' netcat: _bin: netcat _github: false _desc: netcat (often abbreviated to nc) is a computer networking utility for reading from and writing to network connections using TCP or UDP. _home: https://nc110.sourceforge.io/ _name: netcat apt: netcat brew: netcat choco: netcat dnf: netcat pacman: netcat scoop: netcat netdata: _bin: netdata _deps: - debsecan - speedtest-cli _desc: '[Netdata](https://www.netdata.cloud/) is an open source tool designed to collect real-time metrics, such as CPU usage, disk activity, bandwidth usage, website visits, etc., and then display them in live, easy-to-interpret charts.' _docs: https://learn.netdata.cloud/docs/ _github: https://github.com/netdata/netdata _groups: - netdata _home: https://www.netdata.cloud/ _name: Netdata _post: "#!/usr/bin/env bash\n# @file Netdata\n# @brief Connects Netdata with Netdata's free cloud dashboard and applies some system optimizations, if necessary\n# @description\n# This script connects Netdata with Netdata Cloud if Netdata is installed, the `NETDATA_TOKEN` is provided, and the\n# `NETDATA_ROOM` is defined. This allows you to graphically browse through system metrics on all your connected devices\n# from a single free web application.\n#\n# This script installs additional alerts and enables notifications if Netdata is installed. Email notifications are configured\n# using the provided primary email address. If the OS is Debian based, Netdata shows the number of CVEs in currently installed packages.\n\nensureNetdataOwnership() {\n ### Ensure /usr/local/var/lib/netdata/cloud.d is owned by user\n if [ -d /usr/local/var/lib/netdata ]; then\n logg info 'Ensuring permissions are correct on /usr/local/var/lib/netdata' && sudo chown -Rf netdata:netdata /usr/local/var/lib/netdata 2> /dev/null || sudo chown -Rf netdata:$(id -g -n) /usr/local/var/lib/netdata\n elif [ -d /var/lib/netdata ]; then\n logg info 'Ensuring permissions are correct on /var/lib/netdata' && sudo chown -Rf netdata:netdata /var/lib/netdata 2> /dev/null || sudo chown -Rf netdata:$(id -g -n) /var/lib/netdata\n elif [ -d \"${HOMEBREW_PREFIX:-/opt/homebrew}/var/lib/netdata\" ]; then\n logg info \"Ensuring permissions are correct on ${HOMEBREW_PREFIX:-/opt/homebrew}/var/lib/netdata\" && sudo chown -Rf netdata:netdata \"${HOMEBREW_PREFIX:-/opt/homebrew}/var/lib/netdata\" 2> /dev/null || sudo chown -Rf netdata:$(id -g -n) \"${HOMEBREW_PREFIX:-/opt/homebrew}/var/lib/netdata\"\n else\n logg warn 'No /var/lib/netdata folder found'\n fi\n}\n\n### Claim the instance with Netdata Cloud\nif command -v netdata-claim.sh > /dev/null; then\n ### Add user / group with script in ~/.local/bin/add-usergroup, if it is available\n if command -v add-usergroup > /dev/null; then\n sudo add-usergroup \"$USER\" netdata\n fi\n\n ### Ensure ownership\n ensureNetdataOwnership\n\n ### netdata-claim.sh must be run as netdata user\n sudo -H -u netdata bash -c 'export NETDATA_ROOM=\"{{- if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"NETDATA_ROOM\")) -}}{{- includeTemplate \"secrets/NETDATA_ROOM\" | decrypt | trim -}}{{- else -}}{{- env \"NETDATA_ROOM\" -}}{{- end -}}\" && export NETDATA_TOKEN=\"{{- if (stat (joinPath .chezmoi.sourceDir \".chezmoitemplates\" \"secrets\" \"NETDATA_TOKEN\")) -}}{{- includeTemplate \"secrets/NETDATA_TOKEN\" | decrypt | trim -}}{{- else -}}{{- env \"NETDATA_TOKEN\" -}}{{- end -}}\" && yes | netdata-claim.sh -token=\"$NETDATA_TOKEN\" -rooms=\"$NETDATA_ROOM\" -url=\"https://app.netdata.cloud\"'\n \n ### Kernel optimizations\n # These are mentioned while installing via the kickstart.sh script method. We are using Homebrew for the installation though.\n # Assuming these optimizations do not cause any harm.\n if [ -d /Applications ] && [ -d /System ]; then\n ### macOS\n logg info 'System is macOS so Netdata kernel optimizations are not required'\n else\n ### Linux\n if [ -d /sys/kernel/mm/ksm ]; then\n logg info 'Adding Netdata kernel optimization for /sys/kernel/mm/ksm/run'\n echo 1 | sudo tee /sys/kernel/mm/ksm/run\n logg info 'Adding Netdata kernel optimization for /sys/kernel/mm/ksm/sleep_millisecs'\n echo 1000 | sudo tee /sys/kernel/mm/ksm/sleep_millisecs\n else\n logg info 'The /sys/kernel/mm/ksm directory does not exist so Netdata kernel optimizations are not being applied'\n fi\n fi\n\n ### Install additional alerts and enable notifications\n if command -v netdata > /dev/null; then\n ### Copy the additional alert definitions\n if [ -d /usr/local/etc/netdata ]; then\n NETDATA_ETC='/usr/local/etc/netdata/'\n elif [ -d /etc/netdata ]; then\n NETDATA_ETC='/etc/netdata'\n elif [ -d \"${HOMEBREW_PREFIX:-/opt/homebrew}/etc/netdata\" ]; then\n NETDATA_ETC=\"${HOMEBREW_PREFIX:-/opt/homebrew}/etc/netdata\"\n else\n logg error 'No etc location found for netdata' && exit 1\n fi\n logg info \"Copying ${XDG_CONFIG_HOME:-$HOME/.config}/netdata/health.d/ to $NETDATA_ETC\" && sudo cp -rf \"${XDG_CONFIG_HOME:-$HOME/.config}/netdata/health.d/\" \"$NETDATA_ETC\"\n \n if command -v gsed > /dev/null; then\n SED_UTIL=\"gsed\"\n else\n SED_UTIL=\"sed\"\n fi\n\n ### Blocky\n logg info \"Adding Blocky metrics collection to $NETDATA_ETC/go.d/prometheus.conf\"\n sudo \"$SED_UTIL\" -i \"/jobs:/a\\ - name: blocky_local \\n url: 'http://127.0.0.1:4000/metrics'\" \"$NETDATA_ETC/go.d/prometheus.conf\"\n \n ### SFTPGo\n logg info \"Adding SFTPGo metrics collection to $NETDATA_ETC/go.d/prometheus.conf\"\n sudo \"$SED_UTIL\" -i \"/jobs:/a\\ - name: sftpgo_local \\n url: 'http://127.0.0.1:57500/metrics'\" \"$NETDATA_ETC/go.d/prometheus.conf\"\n\n # Backup current health alarm configuration and apply new one\n if [ -d /usr/local/lib/netdata ]; then\n NETDATA_LIB='/usr/local/lib/netdata'\n elif [ -d /usr/lib/netdata ]; then\n NETDATA_LIB='/usr/lib/netdata'\n elif [ -d \"${HOMEBREW_PREFIX:-/opt/homebrew}/lib/netdata\" ]; then\n NETDATA_LIB=\"${HOMEBREW_PREFIX:-/opt/homebrew}/lib/netdata\"\n else\n logg error 'No lib location found for netdata' && exit 1\n fi\n logg info \"Copying ${XDG_CONFIG_HOME:-$HOME/.config}/netdata/health_alarm_notify.conf to $NETDATA_LIB/conf.d/health_alarm_notify.conf\" && sudo cp -f \"${XDG_CONFIG_HOME:-$HOME/.config}/netdata/health_alarm_notify.conf\" \"$NETDATA_LIB/conf.d/health_alarm_notify.conf\"\n else\n logg warn 'netdata is not available in the PATH or is not installed'\n fi\n\n ### Ensure the apt command is available before running `debsecan` logic\n if command -v apt-get > /dev/null; then\n ### Configure Netdata to gather information about CVEs in the installed packages\n if command -v debsecan > /dev/null; then\n DEBSECAN_GIT=\"${XDG_DATA_HOME:-$HOME/.local/share}/netdata-debsecan\"\n ### Installing the script to generate report on CVEs in installed packages\n logg info 'Installing script to generate report on CVEs in installed packages' && sudo cp -f \"$DEBSECAN_GIT/usr_local_bin_debsecan-by-type\" \"/usr/local/bin/debsecan-by-type\"\n ### Generate initial debsecan reports in /var/log/debsecan/\n logg info 'Generating initial debsecan reports in /var/log/debsecan/' && debsecan-by-type\n ### Configure dpkg to refresh the file after each run\n logg info 'Configuring dpkg to refresh the file after each run' && sudo cp -f \"$DEBSECAN_GIT/etc_apt_apt.conf.d_99debsecan\" /etc/apt/apt.conf.d/99-debsecan\n ### Add a cron job to refresh the file every hour\n logg info 'Adding a cron job to refresh the file every hour' && sudo cp -f \"$DEBSECAN_GIT/etc_cron.d_debsecan\" /etc/cron.d/debsecan\n ### Install the module/configuration file\n logg info 'Installing the module and configuration file'\n sudo \"$DEBSECAN_GIT/debsecan.chart.py\" /usr/libexec/netdata/python.d/debsecan.chart.py\n sudo \"$DEBSECAN_GIT/debsecan.conf\" /etc/netdata/python.d/debsecan.conf\n else\n logg warn 'apt-get is available but debsecan is not available in the PATH or is not installed'\n fi\n fi\n\n ### Ensure / report whether speedtest-cli is installed\n if ! command -v speedtest-cli > /dev/null; then\n if command -v pipx > /dev/null; then\n pipx install speedtest-cli\n else\n logg warn 'speedtest-cli not installed and pipx is not available'\n fi\n fi\n\n ### Configure Netdata to gather information about Internet connection speed\n if command -v speedtest-cli > /dev/null; then\n ### Installing the script to generate report on Internet connection speed\n logg info 'Installing script to generate report on Internet connection speed'\n LIBEXEC_PATH=\"$(netdata -W buildinfo | grep 'Configure' | sed \"s/.*--libexecdir=\\([^ \\']*\\).*/\\1/\")\"\n if [ -d /usr/libexec/netdata/charts.d ]; then\n sudo cp -f \"${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest/speedtest.chart.sh\" \"/usr/libexec/netdata/charts.d/speedtest.chart.sh\"\n elif [ -d \"$LIBEXEC_PATH/netdata/charts.d\" ]; then\n logg info \"$LIBEXEC_PATH/netdata/charts.d present on system\"\n cp -f \"${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest/speedtest.chart.sh\" \"$LIBEXEC_PATH/netdata/charts.d/speedtest.chart.sh\"\n else\n logg warn \"Failed to find appropriate directory to add Netdata speedtest chart script\"\n fi\n else\n logg warn 'speedtest-cli is not available in the PATH or is not installed'\n fi\n\n ### Ensure ownership again\n ensureNetdataOwnership\n\n ### Restart Netdata service\n if command -v systemctl > /dev/null; then\n logg info 'Enabling netdata service' && sudo systemctl enable netdata\n logg info 'Restarting netdata service' && sudo systemctl restart netdata\n elif [ -d /Applications ] && [ -d /System ]; then\n logg info 'Starting / enabling netdata service' && brew services restart netdata\n else\n logg warn 'systemctl is not available'\n fi\nelse\n logg info 'netdata-claim.sh is not available in the PATH'\nfi\n" _service: netdata _service:brew: - name: netdata sudo: true _serviceEnabled: true ansible: professormanhattan.netdata brew: netdata pacman: netdata port: netdata script: curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh networkmanager: _bin: networkmanager _github: https://github.com/BornToBeRoot/NETworkManager _name: NETworkManager scoop: networkmanager winget: BornToBeRoot.NETworkManager newman: _bin: newman _desc: Command-line collection runner for Postman _github: https://github.com/postmanlabs/newman _home: https://www.getpostman.com _name: newman brew: newman npm: newman newsflash: _bin: newsflash _github: false _gitlab: https://gitlab.com/news-flash/news_flash_gtk flatpak: com.gitlab.newsflash nextcloud: _app: Nextcloud.app _bin: nextcloudcmd _desc: '[Nextcloud Client](https://nextcloud.com) is a tool to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are' _docs: https://docs.nextcloud.com/server/latest/user_manual/en/ _github: https://github.com/nextcloud/desktop _home: https://nextcloud.com _name: Nextcloud Client cask: nextcloud choco: nextcloud-client flatpak: com.nextcloud.desktopclient.nextcloud nginx: _bin: nginx _desc: It also generates sites-enabled proxies using YML configurations. Easter eggs included. [Nginx](https://www.nginx.com/), stylized as NGINX, nginx or NginX, is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software, released under the terms of the 2-clause BSD license. _docs: https://nginx.org/en/docs/ _github: https://github.com/nginx/nginx _home: https://nginx.org/ _name: NGINX _ports: - port: 80 proto: tcp - port: 443 proto: tcp _post: | #!/usr/bin/env bash # @file NGINX Amplify Join # @brief Set up NGINX Amplify and joins the cloud monitoring service dashboard # @description # This script installs NGINX Amplify and connects with the user's NGINX Amplify instance, assuming the `NGINX_AMPLIFY_API_KEY` # is defined. NGINX Amplify is a free web application that serves as a way of browsing through metrics of all your connected # NGINX instances. # # ## Links # # * [NGINX Amplify login](https://amplify.nginx.com/login) # * [NGINX Amplify documentation](https://docs.nginx.com/nginx-amplify/#) if command -v nginx > /dev/null; then logg info 'Downloading the NGINX Amplify installer script' TMP="$(mktemp)" curl -sSL https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh > "$TMP" logg info 'Running the NGINX Amplify setup script' API_KEY="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "NGINX_AMPLIFY_API_KEY")) }}{{- includeTemplate "secrets/NGINX_AMPLIFY_API_KEY" | decrypt | trim -}}{{ else }}{{- env "NGINX_AMPLIFY_API_KEY" -}}{{ end }}" sh "$TMP" fi _service: nginx _serviceEnabled: true _todo: Check out /opt/homebrew/etc/nginx/nginx.conf / nginx/servers ansible: professormanhattan.nginx apt: nginx brew: nginx choco: nginx dnf: nginx pacman: nginx port: nginx scoop: nginx nginx-unit: _bin: unitd _github: https://github.com/nginx/unit _name: NGINX Unit _service: unit brew: nginx/unit/unit ngrok: _bin: ngrok _github: false _desc: '[Ngrok](https://ngrok.com/) exposes local servers behind NATs and firewalls to the public internet over secure tunnels. Ngrok also provides a real-time web UI where you can introspect all HTTP traffic running over your tunnels. You can replay any request against your tunnels with one click. The main feature is the ability to generate an internet-accessible URL that directs traffic to your local web server even if it is behind a firewall or proxy.' _home: https://ngrok.com/) _name: Ngrok ansible: professormanhattan.ngrok cask: ngrok choco: ngrok snap: ngrok ngxtop: _bin: ngxtop _desc: Real-time metrics for nginx server _github: https://github.com/lebinh/ngxtop _name: ngxtop pipx: ngxtop ninja: _bin: ninja _github: https://github.com/ninja-build/ninja _name: Ninja apt: ninja brew: ninja dnf: ninja pacman: ninja zypper: ninja nitroshare: _app: nitroshare.app _bin: nitroshare _desc: Network file transfer application for Windows, OS X, & Linux _docs: https://nitroshare.net/ _github: https://github.com/nitroshare/nitroshare-desktop _home: https://nitroshare.net/ _name: NitroShare apt: nitroshare cask: nitroshare choco: nitroshare dnf: nitroshare pacman: nitroshare nmap: _bin: nmap _desc: >- [Nmap](https://github.com/nmap/nmap) (short for Network Mapper) is a free and open source utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services those hosts are offering, what operating systems they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. It was designed to rapidly scan large networks, but works fine against single hosts. Nmap runs on all major operating systems. _docs: https://nmap.org/docs.html _github: https://github.com/nmap/nmap _home: https://nmap.org/ _name: Nmap _post:snap: | #!/usr/bin/env bash sudo snap connect nmap:network-control ansible: professormanhattan.nmap apt: nmap brew: nmap choco: nmap dnf: nmap pacman: nmap port: nmap scoop: nmap snap: nmap nnn: _bin: nnn _desc: A full-featured terminal file manager _github: https://github.com/jarun/nnn _name: nnn apk: nnn apt: nnn brew: nnn github: github.com/jarun/nnn pacman: nnn pkg: nnn node: _bin: node _desc: '[Node.js](https://nodejs.org/en/) is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.' _docs: https://nodejs.org/en/docs/ _github: https://github.com/nodejs/node _home: https://nodejs.org/en/ _name: Node.js ansible: professormanhattan.nodejs brew: node scoop: nodejs node-prune: _bin: node-prune _desc: Extension to remove unnecessary files from node_modules _github: https://github.com/tj/node-prune _name: node-prune github: github.com/tj/node-prune go: github.com/tj/node-prune@latest nodemon: _bin: nodemon _github: https://github.com/remy/nodemon _name: Nodemon npm: nodemon nomad: _bin: nomad _github: https://github.com/hashicorp/nomad _desc: '[HashiCorp Nomad](https://www.nomadproject.io/) is a simple and flexible scheduler and workload orchestrator to deploy and manage containers and non-containerized applications across on-prem and clouds at scale.' _docs: https://developer.hashicorp.com/nomad/docs _home: https://www.nomadproject.io/ _name: HashiCorp Nomad _service: nomad ansible: professormanhattan.nomad brew: nomad choco: nomad yay: nomad-git nomino: _bin: nomino _desc: Batch rename utility for developers _github: https://github.com/yaa110/nomino _name: nomino cargo: nomino github: github.com/yaa110/nomino yay: nomino nordvpn: _bin: null _desc: '[NordVPN](https://nordvpn.com/) is a virtual private network service provider. It has desktop applications for Windows, macOS, and Linux, mobile apps for Android and iOS, as well as an application for Android TV. Manual setup is available for wireless routers, NAS devices and other platforms.' _docs: https://support.nordvpn.com/ _github: https://github.com/jotyGill/openpyn-nordvpn _home: https://nordvpn.com/ _name: NordVPN ansible: professormanhattan.nordvpn normit: _bin: normit _deps: - mpg123 _desc: '[Normit](https://github.com/pawurb/normit) allows you to easily translate any text from one language to another. It also includes the ability to generate audio through speech synthesis as well.' _github: https://github.com/pawurb/normit _name: Normit ansible: professormanhattan.normit npm: normit notion: _app: Notion.app _bin: null _desc: Notion is the connected workspace where better, faster work happens. _docs: https://www.notion.so/help/guides/category/documentation _env: NOTION_APPDATA: cask: "$HOME/Library/Application Support/Notion" choco: "TODO" _github: https://github.com/makenotion/notion-sdk-js _home: https://www.notion.so/ _name: Notion AI _note: Waiting on Linux install alternative. cask: notion choco: notion mas: 1559269364 np: _bin: np _desc: A better `npm publish` _github: https://github.com/sindresorhus/np _name: np npm: np # Error installing aiohttp dependency # starred: # _bin: starred # pipx: starred npkill: _bin: npkill _github: https://github.com/voidcosmos/npkill _name: npkill npm: npkill npm-check: _bin: npm-check _desc: Check for outdated, incorrect, and unused dependencies. _github: https://github.com/dylang/npm-check _name: npm-check npm: npm-check npm-check-updates: _bin: ncu _github: https://github.com/raineorshine/npm-check-updates _name: NPM Check Updates npm: npm-check-updates ntfy: _bin: nfty _github: https://github.com/dschep/ntfy _name: NFTY _post: | #!/usr/bin/env bash sudo mkdir -p /usr/local/etc/branding sudo cp -f "$HOME/.local/etc/branding/logo-color-256x256.png" /usr/local/etc/branding/logo-color-256x256.png sudo mkdir -p /usr/local/share/sounds sudo rsync -rtvp "${XDG_DATA_HOME:-$HOME/.local/share}/sounds/" /usr/local/share/sounds if command -v apt-get > /dev/null; then sudo apt install python-dbus fi if command -v termux-setup-storage > /dev/null; then apt install termux-api fi pip3: ntfy[emoji,matrix,pid,slack] ntl: _bin: ntl _github: https://github.com/ruyadorno/ntl _name: NTL npm: ntl nuclear: _app: nuclear.app _bin: nuclear _desc: Streaming music player that finds free music _github: https://github.com/nukeop/nuclear _home: https://nuclear.js.org/ _name: Nuclear cask: nuclear choco: nuclear flatpak: org.js.nuclear.Nuclear github: github.com/nukeop/nuclear snap: nuclear yay: nuclear-player-bin nugetpackageexplorer: _bin: nugetpackageexplorer _github: https://github.com/NuGetPackageExplorer/NuGetPackageExplorer _name: NuGet Package Explorer choco: nugetpackageexplorer winapp: nuget-package-explorer/9WZDNCRDMDM3 winget: NuGet Package Explorer nushell: _bin: nu _github: https://github.com/nushell/nushell _name: Nu apk: nushell apt: nushell brew: nushell choco: nushell dnf: nushell pacman: nushell port: nushell scoop: nushell winget: nushell nve: _bin: nve _github: https://github.com/ehmicky/nve _name: nve npm: nve nx: _bin: nx _github: https://github.com/nrwl/nx _name: NX npm: nx obs-studio: _app: OBS.app _bin: obs-studio _github: https://github.com/obsproject/obs-studio _name: OBS Studio cask: obs choco: obs-studio flatpak: com.obsproject.Studio obsidian: _app: Obsidian.app _bin: null _desc: Obsidian is the private and flexible note‑taking app that adapts to the way you think. _docs: https://help.obsidian.md/Home _github: false _home: https://obsidian.md/ _name: Obsidian appimage: Obsidian cask: obsidian choco: obsidian flatpak: md.obsidian.Obsidian scoop: extras/obsidian winget: Obsidian.Obsidian obsidian-cli: _bin: obs _github: https://github.com/Yakitrak/obsidian-cli _name: Obsidian CLI _pre:scoop: scoop bucket add scoop-yakitrak https://github.com/yakitrak/scoop-yakitrak.git brew: megabyte-labs/tap/obs-cli scoop: obs oclif: _bin: oclif _desc: "[oclif](https://oclif.io/) is a framework for building CLIs in Node.js. This framework was built out of the Heroku CLI but generalized to build any custom CLI. It's designed both for single-file CLIs with a few flag options, or for very complex CLIs that have subcommands (like git or heroku)" _docs: https://oclif.io/docs/ _github: https://github.com/oclif/oclif _home: https://oclif.io/ _name: oclif npm: oclif octosql: _bin: octosql _github: https://github.com/cube2222/octosql _name: OctoSQL brew: cube2222/octosql/octosql scoop: octosql oh-my-posh: _bin: oh-my-posh _desc: A blazing fast cross platform/shell prompt renderer _docs: https://ohmyposh.dev/docs _github: https://github.com/jandedobbeleer/oh-my-posh _home: https://ohmyposh.dev/ _name: oh-my-posh _post:scoop: | #!/usr/bin/env bash clink autorun install brew: jandedobbeleer/oh-my-posh/oh-my-posh scoop: - clink - https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json onionshare: _bin: onionshare _desc: '[OnionShare](https://.onionshare.org/) is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network.' _docs: https://docs.onionshare.org/2.5/en/ _github: https://github.com/onionshare/onionshare _home: https://onionshare.org/ _name: OnionShare ansible: professormanhattan.onionshare apt: onionshare cask: onionshare choco: onionshare dnf: onionshare flatpak: org.onionshare.OnionShare snap: onionshare onlykey: _app: OnlyKey App.app _bin: onlykey _bin:snap: onlykey-app _github: https://github.com/trustcrypto/OnlyKey-App _name: onlykey _post:snap: | #!/usr/bin/env bash sudo curl -sSL https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/pages/49-onlykey.rules -o /etc/udev/rules.d/49-onlykey.rules sudo chmod 644 /etc/udev/rules.d/49-onlykey.rules sudo udevadm control --reload-rules sudo udevadm trigger ansible:darwin: professormanhattan.onlykey choco: onlykey script:darwin: cd /tmp && curl -sSL https://github.com/trustcrypto/OnlyKey-App/releases/download/v5.3.6/OnlyKey.App.5.3.6.dmg > OnlyKey.dmg && hdiutil attach "/tmp/OnlyKey.dmg" && sudo cp -R "/Volumes/OnlyKey App/OnlyKey App.app" /Applications && sudo hdiutil detach "/Volumes/OnlyKey App" && rm -f "/tmp/OnlyKey.dmg" snap: onlykey-app onlykey-agent: _bin: onlykey-agent _deps: - onlykey-cli-deps _github: https://github.com/trustcrypto/onlykey-agent _name: OnlyKey Agent brew: onlykey-agent pipx: onlykey-agent onlykey-cli: _bin: onlykey-cli _deps: - onlykey-cli-deps _github: https://github.com/trustcrypto/python-onlykey _name: OnlyKey CLI pipx: onlykey onlykey-cli-deps: _github: false _post:linux: | #!/usr/bin/env bash sudo curl -sSL https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/pages/49-onlykey.rules -o /etc/udev/rules.d/49-onlykey.rules sudo chmod 644 /etc/udev/rules.d/49-onlykey.rules sudo udevadm control --reload-rules sudo udevadm trigger apt: - python3-pip - python3-tk - libusb-1.0-0-dev - libudev-dev brew:darwin: - libusb dnf: - python3-pip - python3-devel - python3-tkinter - libusb-devel - libudev-devel - gcc - redhat-rpm-config pacman: - git - python3-setuptools - python3 - libusb - python3-pip zypper: - python3-pip - python3-devel - python3-tk - libusb-1_0-devel - libudev-devel opencommit: _bin: opencommit _desc: GPT CLI to auto-generate impressive commits in 1 second _docs: https://github.com/di-sukharev/opencommit _github: https://github.com/di-sukharev/opencommit _home: https://www.npmjs.com/package/opencommit _name: OpenCommit npm: opencommit openinterminal: _app: OpenInTerminal.app _bin: null _desc: Finder Toolbar app for macOS to open the current directory in Terminal, iTerm, Hyper or Alacritty _docs: https://github.com/Ji4n1ng/OpenInTerminal _github: https://github.com/Ji4n1ng/OpenInTerminal _home: https://github.com/Ji4n1ng/OpenInTerminal _name: OpenInTerminal cask: openinterminal openjdk: _bin: javac _desc: Latest version of the OpenJDK (Java Development Kit) _docs: https://openjdk.org/groups/build/doc/building.html _github: https://github.com/openjdk/jdk _home: https://openjdk.org/ _name: OpenJDK apt: default-jdk brew: openjdk choco: openjdk dnf: java-latest-openjdk.x86_64 pacman: jdk-openjdk openshift-cli: _bin: oc _desc: The OpenShift Command Line, part of OKD _docs: https://docs.openshift.com/container-platform/4.8/cli_reference/openshift_cli/getting-started-cli.html _github: https://github.com/openshift/oc _home: https://www.redhat.com/en/technologies/cloud-computing/openshift _name: OpenShift CLI brew: openshift-cli choco: openshift-cli openssh-server: _service: sshd _github: false _when: test -f /proc/version && ! grep Microsoft /proc/version > /dev/null && ! test -d /Applications' apt: openssh-server dnf: openssh-server pacman: openssh openssl: _bin: openssl _github: false _name: OpenSSL apt: openssl brew: openssl choco: openssl dnf: openssl pacman: openssl port: openssl scoop: openssl openssl-osx-ca: _bin: openssl-osx-ca _github: https://github.com/raggi/openssl-osx-ca _name: OpenSSL macOS CA _service:brew:darwin: - name: openssl-osx-ca sudo: true _serviceEnabled: true brew:darwin: raggi/ale/openssl-osx-ca openvpn: _bin: openvpn _github: https://github.com/OpenVPN/openvpn _name: OpenVPN _service: openvpn _service:brew: - name: openvpn sudo: true apt: openvpn brew: openvpn choco: openvpn dnf: openvpn pacman: openvpn opn-cli: _bin: opn-cli _github: https://github.com/andeman/opn-cli _name: OPNSense CLI pipx: opn-cli oq: _bin: oq _desc: A performant, and portable jq wrapper to facilitate the consumption and output of formats other than JSON; using jq filters to transform the data _github: https://github.com/Blacksmoke16/oq _home: https://blacksmoke16.github.io/oq/ _name: oq brew: oq github: github.com/Blacksmoke16/oq snap: oq yay: oq orbstack: _app: OrbStack.app _github: https://github.com/orbstack/orbstack _bin: orb _name: OrbStack cask: orbstack osquery: _bin: osqueryctl _desc: SQL powered operating system instrumentation, monitoring, and analytics _docs: https://osquery.readthedocs.io/en/stable/ _github: https://github.com/osquery/osquery _home: https://osquery.io/ _name: osquery cask: osquery choco: osquery github: github.com/osquery/osquery yay: osquery-git osx-sign: _bin: electron-osx-sign _github: https://github.com/electron/osx-sign _name: macOS Code Sign npm: '@electron/osx-sign' ots: _bin: ots _desc: Share end-to-end encrypted secrets with others via a one-time URL _github: https://github.com/sniptt-official/ots _home: https://ots.sniptt.com/ _name: ots brew: ots github: github.com/sniptt-official/ots go: github.com/sniptt-official/ots@latest p7zip: _bin: p7zip _name: p7zip _github: https://github.com/p7zip-project/p7zip apt: p7zip brew: p7zip dnf: p7zip pacman: p7zip package-size: _bin: package-size _desc: Get the bundle size of an npm package _github: https://github.com/egoist/package-size _name: package-size npm: package-size packer: _bin: packer _desc: '[Packer](https://www.packer.io/) is a free and open source tool for creating golden images for multiple platforms from a single source configuration. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. It is a [HashiCorp](https://www.hashicorp.com/) product.' _docs: https://developer.hashicorp.com/packer/docs _github: https://github.com/hashicorp/packer _home: https://www.packer.io/ _name: Packer ansible: professormanhattan.packer apt: packer brew: packer choco: packer pacman: packer page-fetch: _bin: page-fetch _desc: Fetch web pages using headless Chrome, storing all fetched resources including JavaScript files _github: https://github.com/detectify/page-fetch _name: page-fetch go: github.com/detectify/page-fetch@latest pageres: _bin: pageres _desc: Capture website screenshots _github: https://github.com/sindresorhus/pageres-cli _name: pageres npm: pageres-cli pake: _bin: pake _github: https://github.com/tw93/Pake npm: pake-cli pandoc: _bin: pandoc _deps: - python _deps:darwin: - basictex - python _desc: '[Pandoc](https://pandoc.org/) is a Haskell library for converting from one documentation markup format to another. If you need to convert files from one markup format into another, then look no further. Pandoc is your swiss-army knife. It converts from and to dozens of formats like HTML, markdown, docx, JSON, YAML, and CSV, to name a few.' _docs: https://pandoc.org/getting-started.html _github: https://github.com/jgm/pandoc _home: https://pandoc.org/ _name: Pandoc ansible: professormanhattan.pandoc apt: pandoc brew: - pandoc - librsvg choco: - pandoc - rsvg-convert - miktex crew: pandoc dnf: pandoc nix: pandoc pacman: pandoc winget: pandoc papertrail: _bin: papertrail _desc: Command-line client for Papertrail hosted log management service. Tails and searches app server logs and system syslog. Supports Boolean search and works with grep and pipe output (Unix) _github: https://github.com/papertrail/papertrail-cli _name: papertrail gem: papertrail parallels: _app: Parallels Desktop.app _bin: parallels _github: false _desc: '[Parallels Desktop for Mac](https://www.parallels.com/) is software providing hardware virtualization for Macintosh computers with Intel processors. It is developed by Parallels, since 2018 a subsidiary of Corel.' _docs: https://kb.parallels.com/ _home: https://www.parallels.com/ _name: Parallels _notes: On macOS, full disk access is required for Terminal. For Homebrew Cask, this requires the terminal to have full disk access ansible:darwin: professormanhattan.parallels cask: parallels mas: 1085114709 pass: _bin: pass _desc: pass is a very simple password store that keeps passwords inside gpg2(1) encrypted files _home: https://www.passwordstore.org/ _github: false _name: pass apt: pass brew: pass dnf: pass pacman: pass pkg: password-store pastel: _bin: pastel _desc: A command-line tool to generate, analyze, convert and manipulate colors _github: https://github.com/sharkdp/pastel _name: pastel brew: pastel cargo: pastel github: github.com/sharkdp/pastel snap: pastel yay: pastel patch-package: _bin: patch-package _github: https://github.com/ds300/patch-package _name: Patch Package npm: patch-package pb: _app: PB for Desktop.app _bin: pushbullet _github: https://github.com/sidneys/pb-for-desktop _name: Pushbullet for Desktop appimage: sidneys/pb-for-desktop cask: pb choco: pushbullet peco: _bin: peco _desc: '[peco](https://github.com/peco/peco) can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think and look through the current results.' _github: https://github.com/peco/peco _home: https://peco.github.io/ _name: Peco ansible: professormanhattan.peco apt: peco brew: peco choco: peco github: github.com/peco/peco pacman: peco peek: _bin: peek _desc: '[Peek](https://github.com/phw/peek) is an animated GIF screen recorder with an easy-to-use interface. It is available for Linux systems that are running GNOME. It is not a general purpose screencast app with extended features. It focuses on simply creating small screencasts of an area of the screen that are output as a GIF, WebM, or MP4 video.' _github: https://github.com/phw/peek _name: Peek _rpmFusion: true ansible:linux: professormanhattan.peek apt: - software-properties-common - peek dnf: - ffmpeg - gstreamer1-plugins-ugly - peek flatpak: com.uploadedlobster.peek pacman: - gst-plugins-good - gst-plugins-ugly - gifski - peek yay: peek-git percol: _bin: percol _github: https://github.com/mooz/percol _name: Percol pipx: percol pfsense-fauxapi: _bin: fauxapi _github: https://github.com/ndejong/pfsense_fauxapi_client_python _name: pfSense CLI (fauxapi) pipx: pfsense-fauxapi pgcli: _bin: pgcli _desc: '[pgcli](https://www.pgcli.com/) is a free and open-source CLI for Postgres that does auto-completion and syntax highlighting.' _docs: https://www.pgcli.com/docs _github: https://github.com/dbcli/pgcli _home: https://www.pgcli.com/ _name: pgcli ansible: professormanhattan.pgcli brew: pgcli choco: pgcli pipx: pgcli port: pgcli php: _bin: php _deps: - php-extensions _desc: '[PHP](https://www.php.net/) is a general-purpose scripting language especially suited to web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group.' _docs: https://www.php.net/docs.php _github: https://github.com/php/php-src _home: https://www.php.net/ _name: PHP _service: php ansible: professormanhattan.php apt: php brew: php choco: php dnf: php pacman: php port: php scoop: php php-extensions: _deps: - postgresql _name: PHP Extensions _github: false _note: Needs testing apt: - libpcre3-dev - libpq-dev - php-apcu - php-cgi - php-cli - php-common - php-curl - php-dev - php-fpm - php-gd - php-intl - php-imap - php-json - php-mbstring - php-opcache - php-pgsql - php-redis - php-snmp - php-sqlite3 - php-xml dnf: - pcre-devel - postgresql-devel - php-apcu - php-cgi - php-cli - php-common - php-curl - php-devel - php-fpm - php-gd - php-intl - php-json - php-mbstring - php-opcache - php-pgsql - php-redis - php-snmp - php-sqlite3 - php-xml pacman: - libpcre3-dev - postgresql-libs - php-apcu - php-cgi - php-cli - php-common - php-curl - php-dev - php-fpm - php-gd - php-intl - php-imap - php-json - php-mbstring - php-opcache - php-redis - php-snmp - php-sqlite3 - php-xml zypper: - pcre-devel - postgresql-devel - php-apcu - php-cgi - php-cli - php-common - php-curl - php-devel - php-fpm - php-gd - php-intl - php-json - php-mbstring - php-opcache - php-redis - php-snmp - php-sqlite3 - php-xml phpmon: _app: PHP Monitor.app _bin: phpmon _github: https://github.com/nicoverbruggen/phpmon _name: PHP Mon _pre: | #!/usr/bin/env bash if ! command -v valet > /dev/null; then if ! command -v composer > /dev/null; then brew install composer fi composer global require laravel/valet valet install valet trust fi cask: nicoverbruggen/homebrew-cask/phpmon pick: _bin: pick _github: https://github.com/mptre/pick _name: Pick apt: pick brew: pick dnf: pick emerge: pick pkg-freebsd: pick pkg_add: pick port: pick xbps: pick yay: pick pidcat: _bin: pidcat _github: https://github.com/JakeWharton/pidcat _name: PidCat brew: pidcat pieces: _app: Pieces.app _bin: pieces-for-developers _desc: Pieces is a first-in-kind productivity suite that optimizes developer tools and eliminates the chaos of context switching. _docs: https://docs.pieces.app/ _github: false _home: https://pieces.app/ _name: Pieces appinstaller: https://builds.pieces.app/stages/production/appinstaller/pieces_for_x.appinstaller cask: pieces exe: https://builds.pieces.app/stages/production/pieces_for_x/windows-exe/download snap: pieces-for-developers pieces-cli: _bin: pieces _desc: Pieces is a first-in-kind productivity suite that optimizes developer tools and eliminates the chaos of context switching. _docs: https://docs.pieces.app/ _github: false _home: https://pieces.app/ _name: Pieces CLI cask: pieces-cli pieces-os: _app: Pieces.app _bin: pieces-os _docs: https://docs.pieces.app/ _env: PIECES_OS_APPDATA: cask: "$HOME/Library/Application Support/com.pieces.os" snap: "TODO" _github: false _home: https://pieces.app/ _name: Pieces OS _note: Waiting for choco package _post:snap: | #!/usr/bin/env bash sudo snap connect pieces-os:dotnet-runtime-aspnetcore appinstaller: https://builds.pieces.app/stages/production/appinstaller/os_server.appinstaller cask: pieces-os exe: https://builds.pieces.app/stages/production/os_server/windows-exe/download snap: pieces-os pigz: _bin: pigz _github: https://github.com/madler/pigz _name: PIGZ apt: pigz brew: pigz dnf: pigz pacman: pigz pika: _app: Pika.app _bin: null _desc: An open-source colour picker app for macOS _docs: https://github.com/superhighfives/pika _github: https://github.com/superhighfives/pika _home: https://superhighfives.com/pika _name: Pika cask: pika pinapp: _bin: pinapp _github: https://github.com/fabrialberio/PinApp flatpak: io.github.fabrialberio.pinapp pip: _bin: pip _desc: '[pip](https://pypi.org/project/pip/) is a package-management system written in Python used to install and manage software packages. It connects to an online repository of public and paid-for private packages, called the Python Package Index.' _docs: https://pip.pypa.io/en/stable/user_guide/ _github: https://github.com/pypa/pip _home: https://pip.pypa.io/en/stable/ _name: PIP ansible: professormanhattan.pip pipedream-cli: _bin: pd _desc: Connect APIs, remarkably fast. Free for developers. _docs: https://pipedream.com/docs/cli/reference/ _github: https://github.com/PipedreamHQ/pipedream _home: https://pipedream.com/ _name: Pipedream CLI brew: pipedreamhq/pd-cli/pipedream pipelight: _bin: pipelight _github: https://github.com/pipelight/pipelight _name: Pipelight cargo:linux: --git https://github.com/pipelight/pipelight yay: pipelight pipx: _bin: pipx _desc: "[pipx](https://pypi.org/project/pipx/) is a tool to help you install and run end-user applications written in Python. It's roughly similar to macOS's brew, JavaScript's npx, and Linux's apt" _docs: https://pypa.github.io/pipx/ _github: https://github.com/pypa/pipx _home: https://pypi.org/project/pipx/ _post:brew: | #!/usr/bin/env bash pipx ensurepath brew: pipx pkg: _bin: pkg _desc: This command line interface enables you to package your Node.js project into an executable that can be run even on devices without Node.js installed. _github: https://github.com/vercel/pkg _name: pkg npm: pkg pkgx: _bin: pkgx _desc: The next-generation, cross‐platform package manager _docs: https://docs.pkgx.sh/ _github: https://github.com/pkgxdev/pkgx _home: https://pkgx.sh/ _name: pkgx brew: pkgxdev/made/pkgx platformio: _bin: platformio _github: https://github.com/platformio/platformio-core _name: PlatformIO brew: platformio pipx: platformio playwright: _bin: playwright _desc: '[Playwright](https://playwright.dev) enables reliable end-to-end testing for modern web apps. It allows testing Chromium, Firefox and WebKit with a single API' _docs: https://playwright.dev/docs/intro _github: https://github.com/Microsoft/playwright _home: https://playwright.dev _name: Playwright npm: playwright please: _bin: plz _github: https://github.com/thought-machine/please _name: Please brew: thought-machine/please/please plex: _app: Plex.app _bin: plex _desc: '[Plex](https://www.plex.tv/) is a global streaming service of free ad-supported video, with TV shows and movies from distributors such as Crackle, Warner Bros., MGM, Endemol Shine Group, Lionsgate, and Legendary. Plex is also a client–server media player system plus an ancillary software suite.' _github: false _home: https://www.plex.tv/ _name: Plex ansible: professormanhattan.plex cask: plex choco: plex flatpak: tv.plex.PlexDesktop plex-htpc: _app: Plex HTPC.app _bin: plex-htpc _github: false _home: https://www.plex.tv/ _name: Plex HTPC cask: plex-htpc choco: plex-home-theater flatpak: tv.plex.PlexHTPC snap: plex-htpc plex-media-server: _app: Plex Media Server.app _bin: plex-media-server _github: false _name: Plex Media Server _ports: - port: 32400 proto: tcp - port: 3005 proto: tcp - port: 5353 proto: udp - port: 8324 proto: tcp - port: 32410-32414 proto: udp - port: 1900 proto: udp - port: 32469 proto: tcp cask: plex-media-server choco: plexmediaserver snap: plexmediaserver yay: plex-media-server plumber: _bin: plumber _github: https://github.com/streamdal/plumber _name: Plumber brew: streamdal/public/plumber exe: https://github.com/streamdal/plumber/releases/latest/download/plumber-windows.exe plymouth: _github: false _post: | #!/usr/bin/env bash # @file Plymouth Theme / Configuration # @brief Configures Plymouth to use a custom theme # @description # This script installs Plymouth and then configures it to use our custom Betelgeuse theme. ### Create /etc/plymouth/plymouthd.conf if [ -f /etc/plymouth/plymouthd.conf ]; then ### Back up original plymouthd.conf if [ ! -f /etc/plymouth/plymouthd.conf.bak ]; then logg info 'Backing up /etc/plymouth/plymouthd.conf to /etc/plymouth/plymouthd.conf.bak' sudo cp -f /etc/plymouth/plymouthd.conf /etc/plymouth/plymouthd.conf.bak fi ### Create new plymouthd.conf logg info 'Populating the /etc/plymouth/plymouthd.conf file' echo "[Daemon]" | sudo tee /etc/plymouth/plymouthd.conf > /dev/null echo "Theme={{ .theme }}" | sudo tee -a /etc/plymouth/plymouthd.conf > /dev/null echo "ShowDelay=1" | sudo tee -a /etc/plymouth/plymouthd.conf > /dev/null fi ### Apply update-alternatives if command -v update-alternatives > /dev/null; then if [ -f "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" ]; then sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" 100 logg success 'Installed default.plymouth' # Required sometimes sudo update-alternatives --set default.plymouth "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" logg success 'Set default.plymouth' else logg warn "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth does not exist!" fi else logg warn 'update-alternatives is not available' fi ### Update /etc/plymouth/plymouthd.conf # Replaced by code above # if [ -f /etc/plymouth/plymouthd.conf ]; then # logg info 'Setting ShowDelay=1 in /etc/plymouth/plymouthd.conf' # if cat /etc/plymouth/plymouthd.conf | grep ShowDelay; then # sudo sed -i 's/^ShowDelay=.*/ShowDelay=1/' /etc/plymouth/plymouthd.conf # else # echo 'ShowDelay=1' | sudo tee -a /etc/plymouth/plymouthd.conf > /dev/null # fi # else # logg warn '/etc/plymouth/plymouthd.conf does not exist!' # fi ### Symlink /usr/local/share/plymouth/themes to /usr/share/plymouth/themes if [ ! -d '/usr/share/plymouth/themes/{{ .theme }}' ]; then logg info 'Symlinking /usr/local/share/plymouth/themes/{{ .theme }} to /usr/share/plymouth/themes/{{ .theme }}' sudo ln -s '/usr/local/share/plymouth/themes/{{ .theme }}' '/usr/share/plymouth/themes/{{ .theme }}' fi ### Set default Plymouth theme if command -v plymouth-set-default-theme > /dev/null; then sudo plymouth-set-default-theme -R '{{ .theme }}' || EXIT_CODE=$? if [ -n "$EXIT_CODE" ]; then logg warn 'There may have been an issue while setting the Plymouth default theme with plymouth-set-default-theme' else logg success 'Set Plymouth default theme with plymouth-set-default-theme' fi else logg warn 'Could not apply default Plymouth theme because plymouth-set-default-theme is missing' fi ### Apply update-alternatives (again - required sometimes) if command -v update-alternatives > /dev/null; then if [ -f "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" ]; then # Required sometimes sudo update-alternatives --set default.plymouth "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth" logg success 'Set default.plymouth (second time is required sometimes)' else logg warn "/usr/local/share/plymouth/themes/{{ .theme }}/{{ .theme }}.plymouth does not exist!" fi else logg warn 'update-alternatives is not available' fi ### Update kernel / initrd images # Set `export DEBUG_MODE=true` to bypass GRUB2 / Plymouth application if [ "$DEBUG_MODE" != 'true' ]; then if command -v update-initramfs > /dev/null; then logg info 'Running sudo update-initramfs -u' sudo update-initramfs -u logg success 'Updated kernel / initrd images for Plymouth' elif command -v dracut > /dev/null; then logg info 'Running sudo dracut --regenerate-all -f' sudo dracut --regenerate-all -f logg success 'Updated kernel / initrd images for Plymouth' else logg warn 'Unable to update kernel / initrd images because neither update-initramfs or dracut are available' fi fi apt: - libplymouth5 - plymouth - plymouth-themes - plymouth-label dnf: - plymouth # - plymouth-x11 - plymouth-plugin-script pacman: - plymouth pm2: _bin: pm2 _desc: PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks _docs: https://pm2.keymetrics.io/docs/usage/quick-start/ _github: https://github.com/Unitech/pm2 _home: https://pm2.keymetrics.io/ _name: pm2 npm: pm2 pnpm: _bin: pnpm _desc: '[pnpm](https://github.com/pnpm/pnpm) is a fast, disk space efficient package manager' _docs: https://pnpm.io/motivation _github: https://github.com/pnpm/pnpm _home: https://pnpm.io/ _name: pnpm ansible: professormanhattan.pnpm brew: pnpm npm: pnpm scoop: pnpm yay: pnpm pnpm-lock-export: _bin: pnpm-lock-export _github: https://github.com/cvent/pnpm-lock-export _desc: A CLI utility that reads a package.json and pnpm-lock.yaml, and outputs an npm ci compatible package-lock.json npm: pnpm-lock-export pock: _app: Pock.app _bin: null _desc: Widgets manager for MacBook Touch Bar _docs: https://github.com/pock/pock _github: https://github.com/pock/pock _home: https://pock.app/ _name: Pock cask: pock podman: _bin: podman _github: https://github.com/containers/podman _name: Podman apk: podman apt: podman bitbake: podman brew: podman dnf: podman emerge: app-containers/podman pacman: podman zypper: podman poetry: _bin: poetry _desc: '[Poetry](https://python-poetry.org) helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.' _docs: https://python-poetry.org/docs/ _github: https://github.com/python-poetry/poetry _home: https://python-poetry.org/ _name: Poetry ansible: professormanhattan.poetry brew: poetry yay: python-poetry-git polybar: _bin: polybar _github: https://github.com/polybar/polybar _name: Polybar apt: polybar dnf: polybar pacman: polybar pkg-freebsd: polybar xbps: polybar zypper: polybar pony: _bin: pony _desc: Local file-based password, API key, secret, recovery code store backed by GPG _github: https://github.com/jessfraz/pony _name: pony github: github.com/jessfraz/pony go: github.com/jessfraz/pony@latest poppler: _github: https://github.com/Belval/pdf2image brew: poppler portal: _bin: portal _desc: Portal is a quick and easy command-line file transfer utility from any computer to another _docs: https://github.com/SpatiumPortae/portal _github: https://github.com/SpatiumPortae/portal _home: https://portal.spatiumportae.com/ _name: Portal brew: portal scoop: portal winget: SpatiumPortae.portal yay: portal-bin porter: _bin: porter _desc: Porter enables you to package your application artifact, client tools, configuration and deployment logic together as an installer that you can distribute, and install with a single command. _docs: https://getporter.org/docs/ _github: https://github.com/getporter/porter _home: https://getporter.org/ _name: Porter script:darwin: curl -L https://cdn.porter.sh/latest/install-mac.sh | bash script:linux: curl -L https://cdn.porter.sh/latest/install-linux.sh | bash script:windows: iwr "https://cdn.porter.sh/latest/install-windows.ps1" -UseBasicParsing | iex portmaster: _bin: null _desc: "[Portmaster](https://safing.io/portmaster/) is a free and open-source application that puts you back in charge over all your computer's network connections." _docs: https://docs.safing.io/portmaster/architecture/overview _github: https://github.com/safing/portmaster _home: https://safing.io/ _name: Portmaster _when:linux: '! test -f /opt/safing/portmaster/portmaster-start' ansible:linux: professormanhattan.portmaster ansible:windows: professormanhattan.portmaster apt: https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.deb choco: portmaster dnf: https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.rpm exe: https://updates.safing.io/latest/windows_amd64/packages/portmaster-installer.exe scoop: portmaster-np postfix: _bin: postfix _desc: Postfix is an e-mail server that can be used to send e-mail _docs: https://www.postfix.org/documentation.html _github: https://github.com/vdukhovni/postfix _home: https://www.postfix.org/ _name: Postfix _post: | #!/usr/bin/env bash # @file SendGrid Postfix Configuration # @brief Configures Postfix to use SendGrid as a relay host so you can use the `mail` program to send e-mail from the command-line # @description # This script follows the instructions from [SendGrid's documentation on integrating Postfix](https://docs.sendgrid.com/for-developers/sending-email/postfix). # After this script runs, you should be able to send outgoing e-mails using SendGrid as an SMTP handler. In other words, you will # be able to use the `mail` CLI command to send e-mails. The following is an example mailing the contents of `~/.bashrc` to `name@email.com`: # # ```shell # cat ~/.bashrc | mail -s "My subject" name@email.com # ``` if [ -n "$SENDGRID_API_KEY" ] && [ "$SENDGRID_API_KEY" != "" ]; then if command -v postfix > /dev/null; then ### Ensure dependencies are installed if command -v apt-get > /dev/null; then logg info 'Installing libsasl2-modules' sudo apt-get update sudo apt-get install -y libsasl2-modules || EXIT_CODE=$? elif command -v dnf > /dev/null; then sudo dnf install -y cyrus-sasl-plain || EXIT_CODE=$? elif command -v yum > /dev/null; then sudo yum install -y cyrus-sasl-plain || EXIT_CODE=$? fi if [ -n "$EXIT_CODE" ]; then logg warn 'There was an error ensuring the Postfix-SendGrid dependencies were installed' fi if [ -d /etc/postfix ]; then ### Add the SendGrid Postfix settings to the Postfix configuration if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf" ]; then CONFIG_FILE=/etc/postfix/main.cf if cat "$CONFIG_FILE" | grep '### INSTALL DOCTOR MANAGED' > /dev/null; then logg info 'Removing Install Doctor-managed block of code in /etc/postfix/main.cf block' START_LINE="$(echo `grep -n -m 1 "### INSTALL DOCTOR MANAGED ### START" "$CONFIG_FILE" | cut -f1 -d ":"`)" END_LINE="$(echo `grep -n -m 1 "### INSTALL DOCTOR MANAGED ### END" "$CONFIG_FILE" | cut -f1 -d ":"`)" if [ -n "$START_LINE" ] && [ -n "$END_LINE" ]; then if command -v gsed > /dev/null; then sudo gsed -i "${START_LINE},${END_LINE}d" "$CONFIG_FILE" else sudo sed -i "${START_LINE},${END_LINE}d" "$CONFIG_FILE" fi else logg info 'No start-line or end-line detected - configuration appears to already be clean' fi fi ### Add Postfix main configuration logg "Adding the following configuration from ${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf to /etc/postfix/main.cf" cat "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf" | sudo tee -a "$CONFIG_FILE" > /dev/null echo "" | sudo tee -a "$CONFIG_FILE" > /dev/null fi ### Ensure proper permissions on `sasl_passwd` and update Postfix hashmaps if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/sasl_passwd" ]; then logg info "Copying file from ${XDG_CONFIG_HOME:-$HOME/.config}/postfix/sasl_passwd to /etc/postfix/sasl_passwd" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/sasl_passwd" /etc/postfix/sasl_passwd logg info 'Assigning proper permissions to /etc/postfix/sasl_passwd' sudo chmod 600 /etc/postfix/sasl_passwd logg info 'Updating Postfix hashmaps for /etc/postfix/sasl_passwd' sudo postmap /etc/postfix/sasl_passwd else logg warn '~/.config/postfix/sasl_passwd file is missing' fi ### Forward root e-mails if [ -d /root ]; then logg info "Forwarding root e-mails to $PRIMARY_EMAIL" echo "$PRIMARY_EMAIL" | sudo tee /root/.forward > /dev/null || logg error 'Failed to set root user .forward file' elif [ -d /var/root ]; then logg info "Forwarding root e-mails to $PRIMARY_EMAIL" echo "$PRIMARY_EMAIL" | sudo tee /var/root/.forward > /dev/null || logg error 'Failed to set root user .forward file' else logg warn 'Unable to identify root user home directory' fi ### Ensure /etc/postfix/header_checks exists if [ ! -d /etc/postfix/header_checks ]; then logg info 'Creating /etc/postfix/header_checks since it does not exist' sudo touch /etc/postfix/header_checks fi ### Re-write header From for SendGrid if ! cat /etc/postfix/header_checks | grep "no-reply@${PUBLIC_SERVICES_DOMAIN}" > /dev/null; then logg info 'Added From REPLACE to /etc/postfix/header_checks' echo "/^From:.*@${PUBLIC_SERVICES_DOMAIN}/ REPLACE From: no-reply@${PUBLIC_SERVICES_DOMAIN}" | sudo tee -a /etc/postfix/header_checks > /dev/null fi ### Update aliases if [ -f /etc/aliases ]; then logg info "Forward root e-mails to $PRIMARY_EMAIL" ALIASES_TMP="$(mktemp)" logg info "Setting $PRIMARY_EMAIL as root e-mail in temporary file" sudo sed "s/#root.*/root:\ $PRIMARY_EMAIL/" /etc/aliases > "$ALIASES_TMP" logg info 'Moving temporary file to /etc/aliases' sudo mv -f "$ALIASES_TMP" /etc/aliases if ! cat /etc/aliases | grep "$USER_USERNAME: root" > /dev/null; then logg info 'Forward user e-mail to root@localhost' echo "$USER_USERNAME: root" | sudo tee -a /etc/aliases > /dev/null fi ### Ensure old /etc/aliases.db is removed if [ -f /etc/aliases.db ]; then logg info 'Ensuring /etc/aliases.db is removed' && sudo rm -f /etc/aliases.db else logg info '/etc/aliases.db was not found' fi ### Re-generate the /etc/aliases.db file if [ -f /etc/aliases ]; then logg info 'Ensuring proper permissions on the /etc/aliases file' && sudo chown $(stat -c "%U:%G" /etc/sudoers) /etc/aliases logg info 'Generating Postfix aliases' && sudo postalias /etc/aliases > /dev/null else logg warn '/etc/aliases is missing which is required for Postfix' fi # The `sudo newaliases` mode is probably used to regenerate the /etc/aliases.db # but since we are removing it to ensure proper permissions, this method is commented out. # logg info 'Running newaliases to regenerate the alias database' && sudo newaliases else logg warn '/etc/aliases does not appear to exist' fi if [ -d /Applications ] && [ -d /System ]; then ### macOS # Source: https://budiirawan.com/install-mail-server-mac-osx/ if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/com.apple.postfix.master.plist" ] && ! sudo launchctl list | grep 'postfix.master' > /dev/null; then logg info 'Copying com.apple.postfix.master.plist' sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/com.apple.postfix.master.plist" /System/Library/LaunchDaemons/com.apple.postfix.master.plist sudo launchctl load /System/Library/LaunchDaemons/com.apple.postfix.master.plist && logg success 'launchctl load of com.apple.postfix.master successful' fi if ! sudo postfix status > /dev/null; then logg info 'Starting postfix' sudo postfix start > /dev/null else logg info 'Reloading postfix' sudo postfix reload > /dev/null fi else ### Enable / restart postfix on Linux logg info 'Enabling / restarting postfix' sudo systemctl enable postfix sudo systemctl restart postfix fi else logg warn '/etc/postfix is not a directory! Skipping SendGrid Postfix setup.' fi else logg info 'Skipping Postfix configuration because Postfix is not installed' fi fi apt: postfix dnf: postfix pacman: postfix port: postfix script:darwin: echo "Postfix is included by macOS already" postgresql: _bin: postgresql _github: https://github.com/postgres/postgres _name: PostgreSQL _service: postgresql _service:brew: postgresql@14 apt: postgresql brew: postgresql choco: postgresql dnf: postgresql pacman: postgresql zypper: postgresql postman: _app: Postman.app _bin: postman _github: https://github.com/postmanlabs/postman-app-support _desc: "[Postman](https://www.postman.com/) is a collaboration platform for API development. Postman's features simplify each step of building an API and streamline collaboration so you can create better APIs — faster." _docs: https://learning.postman.com/docs/getting-started/introduction/ _home: https://www.postman.com/ _name: Postman ansible: professormanhattan.postman cask: postman choco: postman flatpak: com.getpostman.Postman snap: postman yay: postman-bin powerline: _bin: powerline _github: https://github.com/powerline/powerline apt: powerline dnf: powerline pacman: powerline pipx: powerline-status powershell: _app: PowerShell.app _bin: powershell _github: https://github.com/PowerShell/PowerShell _desc: '[PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.1) is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-source and cross-platform in 2016 with the introduction of PowerShell Core.' _docs: https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.1 _name: Powershell _post:cask: | #!/usr/bin/env bash brew install mono-libgdiplus ansible: professormanhattan.powershell cask: powershell snap: powershell --classic pppc-utility: _app: PPPC Utility.app _bin: pppc-utility _github: https://github.com/jamf/PPPC-Utility _name: Privacy Preferences Policy Control (PPPC) Utility cask: pppc-utility pre-commit: _bin: pre-commit _desc: Automatically installs a git pre-commit script in your git repository which runs your `npm test` on pre-commit _github: https://github.com/observing/pre-commit _name: pre-commit brew: pre-commit pipx: pre-commit prefsniff: _bin: prefsniff _github: https://github.com/zcutlip/prefsniff _name: PrefSniff pipx: prefsniff prepare: _bin: null _github: false _desc: An Ansible Role that prepares hosts for playbook execution ansible: professormanhattan.prepare prettier: _bin: prettier _desc: '[Prettier](https://prettier.io/docs/en/index.html) is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary' _docs: https://prettier.io/docs/en/index.html _github: https://github.com/prettier/prettier _home: https://prettier.io/ _name: Prettier brew: prettier npm: prettier prettierd: _bin: prettierd _desc: Prettier, as a daemon, for improved formatting speed. _docs: https://github.com/fsouza/prettierd _github: https://github.com/fsouza/prettierd _home: https://github.com/fsouza/prettierd _name: Prettierd brew: fsouza/prettierd/prettierd npm: '@fsouza/prettierd' pretzel: _app: Pretzel.app # cask: pretzel _bin: null _desc: Pretzel is Mac desktop app that shows and find keyboard shortcuts based on your current app _docs: https://github.com/amiechen/pretzel _github: https://github.com/amiechen/pretzel _home: https://github.com/amiechen/pretzel _name: Pretzel _todo: Waiting for SHASUM error on Homebrew cask to resolve prezi-video: _app: Prezi Video.app _bin: prezi-video _github: false _name: Prezi Video cask: prezi-video privaxy: _app: Privaxy.app _bin: privaxy _desc: Privaxy is the next generation tracker and advertisement blocker. It blocks ads and trackers by MITMing HTTP(s) traffic. _docs: false _github: https://github.com/Barre/privaxy _home: false _name: Privaxy appimage: barre/privaxy apt: https://github.com/Barre/privaxy/releases/download/v0.5.2/privaxy_0.5.2_amd64.deb script:darwin: curl -sSL https://github.com/Barre/privaxy/releases/download/v0.5.2/Privaxy_0.5.2_universal.dmg > /tmp/Privaxy.dmg && sudo hdiutil attach /tmp/Privaxy.dmg && sudo cp -R /Volumes/Privaxy/Privaxy.app /Applications && sudo hdiutil detach /Volumes/Privaxy && rm -f /tmp/Privaxy.dmg privileges: _app: Privileges.app _bin: privileges _github: https://github.com/SAP/macOS-enterprise-privileges _name: Privileges cask: privileges privoxy: _bin: privoxy _desc: Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk _docs: https://www.privoxy.org/user-manual/index.html _github: https://github.com/unisx/privoxy _groups: - privoxy _home: https://www.privoxy.org/ _name: Privoxy _post: "#!/usr/bin/env bash\n# @file Privoxy Configuration\n# @brief This script applies the Privoxy configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config` to the system and then restarts Privoxy\n# @description\n# Privoxy is a web proxy that can be combined with Tor to provide an HTTPS / HTTP proxy that can funnel all traffic\n# through Tor. This script:\n#\n# 1. Determines the system configuration file location\n# 2. Applies the configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config`\n# 3. Enables and restarts the Privoxy service with the new configuration\n#\n# ## Links\n#\n# * [Privoxy configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/privoxy/config)\n\n### Define the Privoxy configuration location based on whether system is macOS or Linux\nif [ -d /Applications ] && [ -d /System ]; then\n ### macOS\n if [ -d \"/usr/local/etc/privoxy\" ]; then\n PRIVOXY_CONFIG_DIR=/usr/local/etc/privoxy\n elif [ -d \"${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy\" ]; then\n PRIVOXY_CONFIG_DIR=\"${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy\"\n else\n logg warn 'Unable to detect Privoxy configuration directory'\n fi\nelse\n ### Linux\n PRIVOXY_CONFIG_DIR=/etc/privoxy\nfi\nPRIVOXY_CONFIG=\"$PRIVOXY_CONFIG_DIR/config\"\n\n### Copy Privoxy configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config` to the system location\nif command -v privoxy > /dev/null; then\n if [ -d \"$PRIVOXY_CONFIG_DIR\" ]; then\n sudo cp -f \"${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config\" \"$PRIVOXY_CONFIG\"\n sudo chmod 600 \"$PRIVOXY_CONFIG\"\n if command -v add-usergroup > /dev/null; then\n sudo add-usergroup \"$USER\" privoxy\n fi\n sudo chown privoxy:privoxy \"$PRIVOXY_CONFIG\" 2> /dev/null || sudo chown privoxy:$(id -g -n) \"$PRIVOXY_CONFIG\"\n \n ### Restart Privoxy after configuration is applied\n if [ -d /Applications ] && [ -d /System ]; then\n ### macOS\n brew services restart privoxy\n else\n if [[ ! \"$(test -d /proc && grep Microsoft /proc/version > /dev/null)\" ]]; then\n ### Linux\n sudo systemctl enable privoxy\n sudo systemctl restart privoxy\n else\n logg info 'The system is a WSL environment so the Privoxy systemd service will not be enabled / restarted'\n fi\n fi\n else\n logg warn 'The '\"$PRIVOXY_CONFIG_DIR\"' directory is missing'\n fi\nelse\n logg logg 'privoxy is missing from the PATH - skipping configuration'\nfi\n" _service: privoxy _serviceEnabled: true apt: privoxy brew: privoxy dnf: privoxy pacman: privoxy port: privoxy procs: _bin: procs _desc: A modern replacement for ps written in Rust _github: https://github.com/dalance/procs _name: procs apk: procs brew: procs cargo: procs dnf: procs github: github.com/dalance/procs pacman: procs scoop: procs snap: procs profilecreator: _app: ProfileCreator.app _bin: null _desc: Profile manifest creator GUI for macOS _docs: https://github.com/ProfileCreator/ProfileCreator _github: https://github.com/ProfileCreator/ProfileCreator _home: https://github.com/ProfileCreator/ProfileCreator _name: Profile Creator cask: profilecreator mas: 2141249187 progress: _bin: progress _github: https://github.com/Xfennec/progress _name: Progress apt: progress brew: progress dnf: progress pacman: progress port: progress zypper: progress projen: _bin: projen _github: https://github.com/projen/projen _name: Projen npm: projen protonmail-bridge: _app: Proton Mail Bridge.app _github: https://github.com/ProtonMail/proton-bridge _bin: protonmail-bridge cask: protonmail-bridge choco: protonmailbridge flatpak: ch.protonmail.protonmail-bridge yay: protonmail-bridge protonmail-import-export: _app: ProtonMail Import-Export app.app _bin: protonmail-import-export _github: false cask: protonmail-import-export flatpak: ch.protonmail.protonmail-import-export-app protonvpn: _app: ProtonVPN.app _bin: protonvpn _desc: '[Proton](https://www.proton.org/) is a free and open-source raster graphics editor used for image manipulation and image editing, free-form drawing, transcoding between different image file formats, and more specialized tasks. Proton is released under GPLv3+ license and is available for Linux, macOS, and Microsoft Windows.' _docs: https://protonmail.com/support/ _github: https://github.com/ProtonVPN/linux-app _home: https://protonmail.com/ _name: ProtonVPN _post:dnf:fedora: | #!/usr/bin/env bash sudo dnf install -y python3-pip && pip3 install --user 'dnspython>=1.16.0' _post:yay: | #!/usr/bin/env bash sudo pacman -Syu libappindicator-gtk3 gnome-shell-extension-appindicator _pre:apt: | #!/usr/bin/env bash sudo apt-get install -y https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.3_all.deb && sudo apt-get update _pre:dnf: | #!/usr/bin/env bash sudo dnf install -y https://repo.protonvpn.com/fedora-36-stable/release-packages/protonvpn-stable-release-1.0.1-1.noarch.rpm && sudo dnf update # ansible: professormanhattan.proton apt: - gir1.2-appindicator3-0.1 - gnome-shell-extension-appindicator - protonvpn cask: protonvpn choco: protonvpn dnf:fedora: - gnome-extensions-app - gnome-shell-extension-appindicator - gnome-tweaks - libappindicator-gtk3 - protonvpn yay: protonvpn protonvpn-cli: _bin: protonvpn _github: https://github.com/ProtonVPN/linux-cli _deps:script:darwin: - dialog - openvpn _desc: The ProtonVPN CLI official release for Linux along with an unofficial ProtonVPN CLI for macOS _name: ProtonVPN CLI _todo: Populate this once the ProtonVPN CLI is released to the package managers apt: protonvpn-cli dnf: protonvpn-cli pacman: protonvpn-cli script:darwin: | sudo rm -rf /usr/local/src/protonvpn-cli sudo git clone https://github.com/phx/protonvpn-cli-macos /usr/local/src/protonvpn-cli cd /usr/local/src/protonvpn-cli && pip3 install -r requirements.txt sudo python3 setup.py install provisionql: _github: https://github.com/ealeksandrov/ProvisionQL _name: ProvisionQL _when:cask: '! test -d "$HOME/Library/QuickLook/ProvisionQL.qlgenerator"' cask: provisionql proxyman: _app: Proxyman.app _bin: proxyman-cli _github: https://github.com/ProxymanApp/Proxyman _name: Proxyman cask: proxyman psi: _bin: psi _desc: Run mobile and desktop performance tests for your deployed site using Google PageSpeed Insights v5 with tidy reporting for your build process _github: https://github.com/GoogleChromeLabs/psi _name: psi npm: psi psscriptanalyzer: _bin: psscriptanalyzer _github: https://github.com/PowerShell/PSScriptAnalyzer _name: PSScriptAnalyzer choco: psscriptanalyzer psu: _bin: portainer-stack-utils _desc: CLI client for Portainer _docs: https://github.com/greenled/portainer-stack-utils _github: https://github.com/greenled/portainer-stack-utils _home: https://hub.docker.com/r/greenled/portainer-stack-utils/ _name: psu go: github.com/greenled/portainer-stack-utils@master pueue: _bin: pueue _github: https://github.com/Nukesor/pueue _name: Pueue _service: pueue apk: pueue apt: pueue brew: pueue cargo: pueue --locked dnf: pueue pacman: pueue pulumi: _bin: pulumi _desc: Pulumi - Infrastructure as Code in any programming language. Build infrastructure intuitively on any cloud using familiar languages _docs: https://www.pulumi.com/docs/quickstart/ _github: https://github.com/pulumi/pulumi _home: https://www.pulumi.com/ _name: Pulumi brew: pulumi/tap/pulumi choco: pulumi pup: _bin: pup _desc: '[pup](https://github.com/ericchiang/pup) is a command line tool for processing HTML. It reads from stdin, prints to stdout, and allows the user to filter parts of the page using CSS selectors.' _github: https://github.com/ericchiang/pup _name: pup ansible: professormanhattan.pup brew: pup github: github.com/ericchiang/pup go: github.com/ericchiang/pup@latest pushpin: _bin: pushpin _github: https://github.com/fastly/pushpin _name: Pushpin brew: pushpin pv: _bin: pv _github: https://github.com/icetee/pv apt: pv pwnat: _bin: pwnat _github: https://github.com/samyk/pwnat _name: pwnat brew: pwnat python: _bin: python3 _github: https://github.com/python/cpython _post:brew: | #!/usr/bin/env bash python3 -m pip install --upgrade setuptools python3 -m pip install --upgrade pip apt: python3-pip brew: python dnf: python3-pip pacman: python-pip scoop: python python2: _bin: python2 _github: false apt: python2 # Prepare an alternate method for installing python2 on macOS - python2 package no longer works # brew: python2 choco: python2 dnf: python2 pacman: python2 scoop: python2 pywhat: _bin: what _desc: Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it'll tell you what it is! _github: https://github.com/bee-san/pyWhat brew: pywhat pipx: pywhat port: pywhat pywin32: _bin: pywin32 _github: https://github.com/mhammond/pywin32 _name: Pywin32 pipx:windows: pywin32 qbittorrent: _app: qBittorrent.app _bin: qbittorrent _desc: '[qBittorrent](https://www.qbittorrent.org/) is a cross-platform free and open-source BitTorrent client. qBittorrent is a native application written in C++. It uses Boost, Qt 5 toolkit, and libtorrent-rasterbar library. Its optional search engine is written in Python.' _docs: https://github.com/qbittorrent/qBittorrent/wiki _github: https://github.com/qbittorrent/qBittorrent _home: https://www.qbittorrent.org/ _name: qBittorrent ansible: professormanhattan.qbittorrent apt: qbittorrent cask: qbittorrent choco: qbittorrent dnf: qbittorrent flatpak: org.qbittorrent.qBittorrent pacman: qbittorrent yay: qbittorrent-git qlcolorcode: _github: https://github.com/n8gray/QLColorCode _name: QLColorCode _when:cask: '! test -d "$HOME/Library/QuickLook/QLColorCode.qlgenerator"' cask: qlcolorcode qlmarkdown: _github: https://github.com/toland/qlmarkdown _name: QLMarkdown _when:cask: '! test -d "$HOME/Library/QuickLook/ProvisionQL.qlgenerator"' cask: qlmarkdown qlplugins: _bin: null _github: false _deps: - provisionql - qlcolorcode - qlmarkdown - qlstephen - qlvideo - quicklook-json - quicklookapk - webpquicklook _name: null qlstephen: _github: https://github.com/whomwah/qlstephen _name: QLStephen _when:cask: '! test -d "$HOME/Library/QuickLook/QLStephen.qlgenerator"' cask: qlstephen qlvideo: _github: https://github.com/Marginal/QLVideo _name: QLVideo _when:cask: '! test -d "$HOME/Library/QuickLook/ProvisionQL.qlgenerator"' cask: qlvideo quark-engine: _bin: quark _desc: Dig Vulnerabilities in the BlackBox (requirement of APKLabs VSCode plugin) _docs: https://quark-engine.readthedocs.io/en/latest/index.html _github: https://github.com/quark-engine/quark-engine _home: https://github.com/quark-engine/quark-engine _name: Quark-Engine pipx: quark-engine quasar: _bin: null _desc: '[Quasar](https://github.com/quasar/Quasar) is a fast and light-weight remote administration tool coded in C#. The usage ranges from user support through day-to-day administrative work to employee monitoring. Providing high stability and an easy-to-use user interface, Quasar is the perfect remote administration solution for you.' _docs: https://github.com/quasar/Quasar/wiki _github: https://github.com/quasar/Quasar _home: https://github.com/quasar/Quasar _name: Quasar ansible:windows: professormanhattan.quasar quickemu: _bin: quickemu _github: https://github.com/quickemu-project/quickemu _pre: | #!/usr/bin/env bash sudo apt-add-repository ppa:flexiondotorg/quickemu && sudo apt update apt:ubuntu: quickemu quickgui: _github: https://github.com/quickemu-project/quickgui _pre: | #!/usr/bin/env bash sudo add-apt-repository ppa:yannick-mauray/quickgui && sudo apt update apt:ubuntu: quickgui quicklook-json: _github: false _name: QLJSON _when:cask: '! test -d "$HOME/Library/QuickLook/QuickLookJSON.qlgenerator"' cask: quicklook-json quicklookapk: _github: https://github.com/hezi/QuickLookAPK _name: QLAPK _when:cask: '! test -d "$HOME/Library/QuickLook/QuickLookAPK.qlgenerator"' cask: quicklookapk quicktype: _bin: quicktype _github: https://github.com/quicktype/quicktype _name: Quicktype npm: quicktype ramda: _bin: ramda _desc: A CLI tool for processing data with functional pipelines _docs: https://github.com/raine/ramda-cli#synopsis _github: https://github.com/raine/ramda-cli _home: https://github.com/raine/ramda-cli _name: Ramda npm: ramda-cli rancher-cli: _bin: rancher _desc: The Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server _docs: https://ranchermanager.docs.rancher.com/reference-guides/cli-with-rancher/rancher-cli _github: https://github.com/rancher/cli _name: rancher brew: rancher-cli github: github.com/rancher/cli yay: rancher-cli-bin rancher-desktop: _github: https://github.com/rancher-sandbox/rancher-desktop/ cask: rancher raspberry-pi-imager: _app: Raspberry Pi Imager.app _bin: rpi-imager _desc: '[Raspberry Pi Imager](https://www.raspberrypi.org/software/) is the quick and easy way to install Raspberry Pi OS and other operating systems to a microSD card, ready to use with your Raspberry Pi.' _docs: https://www.raspberrypi.com/documentation/computers/getting-started.html _github: https://github.com/raspberrypi/rpi-imager _home: https://www.raspberrypi.com/software/ _name: Raspberry Pi Imager ansible: professormanhattan.raspberryimager cask: raspberry-pi-imager choco: rpi-imager dnf: rpi-imager flatpak: org.raspberrypi.rpi-imager snap: rpi-imager yay: rpi-imager raycast: _app: Raycast.app _bin: null _desc: Everything you need to extend Raycast (the search provider for macOS) _docs: https://developers.raycast.com/ _env: RAYCAST_APPDATA: cask: "$HOME/Library/Application Support/com.raycast.macos" _github: https://github.com/raycast/extensions _home: https://www.raycast.com/ _name: Raycast cask: raycast rclone: _bin: rclone _desc: '[Rclone](https://rclone.org/) is an open source, multi threaded, command line computer program to manage content on cloud and other high latency storage. Its capabilities include sync, transfer, crypt, cache, union, compress and mount. The rclone website lists [fifty supported backends](https://rclone.org/overview/) including S3 services and Google Drive.' _docs: https://rclone.org/docs/ _github: https://github.com/rclone/rclone _groups: - rclone _home: https://rclone.org/ _name: Rclone _post: | #!/usr/bin/env bash # @file Rclone S3 Mounts # @brief This script configures Rclone to provide several S3-compliant mounts by leveraging CloudFlare R2 # @description # Install Doctor leverages Rclone and CloudFlare R2 to provide S3-compliant bucket mounts that allow you to retain stateful files and configurations. # In general, these buckets are used for backing up files like your browser profiles, Docker backup files, and other files that cannot be stored as # as code in your Install Doctor fork. # # This script sets up Rclone to provide several folders that are synchronized with S3-compliant buckets (using CloudFlare R2 by default). # The script ensures required directories are created and that proper permissions are applied. This script will only run if `rclone` is # available in the `PATH`. It also requires the user to provide `CLOUDFLARE_R2_ID` and `CLOUDFLARE_R2_SECRET` as either environment variables # or through the encrypted repository-fork-housed method detailed in the [Secrets documentation](https://install.doctor/docs/customization/secrets). # # ## Mounts # # The script will setup five mounts by default and enable / start `systemd` services on Linux systems so that the mounts are available # whenever the device is turned on. The mounts are: # # | Mount Location | Description | # |-----------------------|-----------------------------------------------------------------------------------------------------------------------| # | `/mnt/Private` | Private system-wide bucket used for any private files that should not be able to be accessed publicly over HTTPS | # | `/mnt/Public` | Public system-wide bucket that can be accessed by anyone over HTTPS with the bucket's URL (provided by CloudFlare R2) | # | N/A | Private system-wide bucket used for storing Docker-related backups / files | # | N/A | Private system-wide bucket similar to `/mnt/Private` but intended for system file backups | # | `$HOME/Public` | Private user-specific bucket (used for backing up application settings) | # # ## Permissions # # The system files are all assigned proper permissions and are owned by the user `rclone` with the group `rclone`. The exception to this is the # user-specific mount which uses the user's user name and user group. # # ## Samba # # If Samba is installed, then by default Samba will create two shares that are symlinked to the `/mnt/s3-private` and `/mnt/s3-public` # buckets. This feature allows you to easily access the two buckets from other devices in your local network. If Rclone buckets are not # available then the Samba setup script will just create regular empty folders as shares. # # ## Notes # # * The mount services all leverage the executable found at `$HOME/.local/bin/rclone-mount` to mount the shares. # # ## Links # # * [Rclone mount script](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_local/bin/executable_rclone-mount) # * [Rclone default configurations](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/rclone) # * [Rclone documentation](https://rclone.org/docs/) if command -v rclone > /dev/null; then {{- if and (or (and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_ID"))) (env "CLOUDFLARE_R2_ID")) (or (and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_SECRET"))) (env "CLOUDFLARE_R2_SECRET")) (ne .user.cloudflare.r2 "") }} logg info 'Removing ~/.config/rclone/rclone.conf Install Doctor managed block' CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/rclone/rclone.conf" if cat "$CONFIG_FILE" | grep '# INSTALL DOCTOR MANAGED S3 START' > /dev/null; then # TODO: Remove old block START_LINE="$(echo `grep -n -m 1 "# INSTALL DOCTOR MANAGED S3 START" "$CONFIG_FILE" | cut -f1 -d ":"`)" END_LINE="$(echo `grep -n -m 1 "# INSTALL DOCTOR MANAGED S3 END" "$CONFIG_FILE" | cut -f1 -d ":"`)" if command -v gsed > /dev/null; then gsed -i "$START_LINE,${END_LINE}d" "$CONFIG_FILE" > /dev/null else sed -i "$START_LINE,${END_LINE}d" "$CONFIG_FILE" > /dev/null fi fi logg info 'Adding ~/.config/rclone/rclone.conf INSTALL DOCTOR managed block' sudo tee -a "$CONFIG_FILE" > /dev/null < /dev/null; then sudo add-usergroup "$USER" rclone fi sudo chown -Rf rclone:rclone /var/cache/rclone logg info 'Ensuring /var/log/rclone exists' sudo mkdir -p /var/log/rclone sudo chmod 750 /var/log/rclone sudo chown -Rf rclone:rclone /var/log/rclone logg info 'Adding ~/.local/bin/rclone-mount to /usr/local/bin' sudo cp -f "$HOME/.local/bin/rclone-mount" /usr/local/bin/rclone-mount sudo chmod +x /usr/local/bin/rclone-mount logg info 'Adding ~/.config/rclone/rcloneignore to /etc/rcloneignore' sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/rclone/rcloneignore" /etc/rcloneignore sudo chown -Rf rclone:rclone /etc/rcloneignore sudo chmod 640 /etc/rcloneignore logg info 'Adding ~/.config/rclone/system-rclone.conf to /etc/rclone.conf' sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/rclone/system-rclone.conf" /etc/rclone.conf sudo chown -Rf rclone:rclone /etc/rclone.conf sudo chmod 600 /etc/rclone.conf if [ -d /Applications ] && [ -d /System ]; then ### Enable Rclone mounts logg info 'Ensuring Rclone mount-on-reboot definitions are in place' if [ -f "$HOME/Library/LaunchDaemons/rclone.private.plist" ] && [ ! -f "/Library/LaunchDaemons/rclone.private.plist" ]; then logg info 'Adding /Volumes/Private as S3 bucket mount, enabled at boot' sudo mkdir -p /Library/LaunchDaemons sudo cp -f "$HOME/Library/LaunchDaemons/rclone.private.plist" '/Library/LaunchDaemons/rclone.private.plist' sudo launchctl load '/Library/LaunchDaemons/rclone.private.plist' && logg success 'launchctl load successful' fi if [ -f "$HOME/Library/LaunchDaemons/rclone.public.plist" ] && [ ! -f "/Library/LaunchDaemons/rclone.public.plist" ]; then logg info 'Adding /Volumes/Public as S3 bucket mount, enabled at boot' sudo mkdir -p /Library/LaunchDaemons sudo cp -f "$HOME/Library/LaunchDaemons/rclone.public.plist" '/Library/LaunchDaemons/rclone.public.plist' sudo launchctl load '/Library/LaunchDaemons/rclone.public.plist' && logg success 'launchctl load successful' fi if [ -f "$HOME/Library/LaunchDaemons/rclone.user.plist" ] && ! launchctl list | grep 'rclone.user' > /dev/null; then logg info 'Adding ~/Public as S3 bucket mount, enabled at boot' launchctl load "$HOME/Library/LaunchDaemons/rclone.user.plist" && logg success 'user launchctl load successful' fi elif [ -d /etc/systemd/system ]; then find "${XDG_CONFIG_HOME:-$HOME/.config}/rclone/system" -mindepth 1 -maxdepth 1 -type f | while read RCLONE_SERVICE; do ### Add systemd service file logg info "Adding S3 system mount service defined at $RCLONE_SERVICE" FILENAME="$(basename "$RCLONE_SERVICE")" SERVICE_ID="$(echo "$FILENAME" | sed 's/.service//')" sudo cp -f "$RCLONE_SERVICE" "/etc/systemd/system/$(basename "$RCLONE_SERVICE")" ### Ensure mount folder is created logg info "Ensuring /mnt/$SERVICE_ID is created with proper permissions" sudo mkdir -p "/mnt/$SERVICE_ID" sudo chmod 750 "/mnt/$SERVICE_ID" ### Enable / restart the service logg info "Enabling / restarting the $SERVICE_ID S3 service" sudo systemctl enable "$SERVICE_ID" sudo systemctl restart "$SERVICE_ID" done ### Add user Rclone mount logg info 'Adding user S3 rclone mount (available at ~/.local/mnt/s3)' sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/rclone/s3-user.service" "/etc/systemd/system/s3-${USER}.service" logg info 'Enabling / restarting the S3 user mount' sudo systemctl enable "s3-${USER}" sudo systemctl restart "s3-${USER}" fi else logg info 'rclone is not available' fi ansible: professormanhattan.rclone apt: rclone brew:linux: rclone choco: - rclone - winfsp - nssm dnf: rclone pacman: rclone port: rclone scoop: rclone script:darwin: | #!/usr/bin/env bash TMP="$(mktemp)" curl https://rclone.org/install.sh > "$TMP" sudo bash "$TMP" rm -f "$TMP" recoverpy: _bin: recoverpy _deps: - coreutils - grep - progress - util-linux _desc: '[RecoverPy](https://github.com/PabloLec/RecoverPy) is a powerful tool that leverages your system capabilities to recover lost file. Unlike others, you can not only recover deleted files but also overwritten data.' _docs: https://github.com/PabloLec/RecoverPy#usage _github: https://github.com/PabloLec/RecoverPy _home: https://github.com/PabloLec/RecoverPy _name: RecoverPy _when: echo '! pip3 list | grep recoverpy > /dev/null' | bash ansible:linux: professormanhattan.recoverpy script:linux: python3 -m pip install recoverpy recuva: _bin: recuva _desc: Recuva recovers files from your Windows computer, recycle bin, digital camera card, or MP3 player! _docs: https://www.ccleaner.com/recuva _github: false _home: https://www.ccleaner.com/recuva _name: Recuva choco: recuva scoop: extras/recuva redis-desktop-manager: _bin: redis-desktop-manager _desc: '[Redis Desktop Manager](https://rdm.dev/) is an open source cross-platform Desktop Manager for Redis based on Qt 5.' _docs: https://docs.rdm.dev/en/docs-fix-edit-url/ _github: https://github.com/uglide/RedisDesktopManager _home: https://resp.app/ _name: Redis Desktop Manager ansible:linux: professormanhattan.rdm flatpak: app.resp.RESP snap: redis-desktop-manager redis-insight: _app: RedisInsight.app _bin: redis-insight _github: https://github.com/RedisInsight/RedisInsight _name: Redis Insight cask: redisinsight flatpak: com.redis.RedisInsight mas: 2142946629 reek: _bin: reek _github: https://github.com/troessner/reek _name: Reek gem: reek remmina: _bin: remmina _github: https://github.com/FreeRDP/Remmina _desc: Remmina is a GTK Remmina Remote Desktop Client which provides remote access, screen and file sharing to your desktop _docs: https://gitlab.com/Remmina/Remmina/-/wikis/home _env: REMMINA_APPDATA: flatpak: "$HOME/.var/app/org.remmina.Remmina/config/remmina/remmina.pref" snap: "$HOME/snap/remmina/current/.config/remmina/remmina.pref" _home: https://remmina.org/ _name: Remmina apt: remmina dnf: remmina flatpak: org.remmina.Remmina pacman: remmina snap: remmina yay: remmina-git remote-desktop: _github: false _deps: - gnome-boxes - microsoft-remote-desktop - remmina - xrdp repo: _bin: repo _github: false _name: Repo apt: repo brew: repo dnf: repo pacman: repo # TODO: Include Windows install method responsively: _app: ResponsivelyApp.app _bin: null _desc: A modified web browser that helps in responsive web development _github: https://github.com/responsively-org/responsively-app _name: Responsively cask: responsively choco: responsively github: github.com/responsively-org/responsively-app restic: _bin: restic _desc: '[Restic](https://restic.net/) is a modern backup program that can back up your files from Linux, BSD, Mac and Windows to many different storage types, including self-hosted and online services. It is a single executable that you can run without a server or complex setup. It can be used to only back-up the parts of files that actually changed. It uses cryptography in every part of the process. Restic is entirely free to use and completely open source.' _docs: https://restic.readthedocs.io/en/latest/ _github: https://github.com/restic/restic _home: https://restic.net/ _name: Restic ansible: professormanhattan.restic apk: restic apt: restic brew: restic dnf: restic eopkg: restic nix: restic pacman: restic pkg-freebsd: restic pkg_add: restic port: restic scoop: restic zypper: restic resume: _bin: resume _desc: CLI tool to easily setup a new resume _docs: https://jsonresume.org/getting-started/ _github: https://github.com/jsonresume/resume-cli _home: https://jsonresume.org/ _name: JSON Resume CLI npm: resume-cli ripgrep: _bin: rg _desc: '[ripgrep](https://github.com/BurntSushi/ripgrep) is a line-oriented search tool that recursively searches your current directory for a regex pattern. By default, ripgrep will respect your .gitignore and automatically skip hidden files/directories and binary files. This role also installs ripgrep-all. [ripgrep-all](https://github.com/phiresky/ripgrep-all) is just like ripgrep except it also searches in PDFs, E-Books, Office documents, zip, tar.gz, etc.' _github: https://github.com/BurntSushi/ripgrep _name: ripgrep ansible: professormanhattan.ripgrep apt: ripgrep brew: ripgrep cargo: ripgrep choco: ripgrep dnf: ripgrep nix: ripgrep pacman: ripgrep pkg: ripgrep port: ripgrep scoop: ripgrep zypper: ripgrep ripgrep-all: _bin: rga _desc: rga is a line-oriented search tool that allows you to look for a regex in a multitude of file types. rga wraps the awesome ripgrep and enables it to search in pdf, docx, sqlite, jpg, movie subtitles (mkv, mp4), etc. _github: https://github.com/phiresky/ripgrep-all brew: - ffmpeg - pandoc - poppler - rga - tesseract choco: ripgrep-all nix: ripgrep-all pacman: ripgrep-all rkhunter: _bin: rkhunter _desc: rkhunter is a Unix-based tool that scans for rootkits, backdoors and possible local exploits _home: https://rkhunter.sourceforge.net/ _name: rkhunter _github: false _notes: The _post script removes an entry for VMware with a space in it that causes rkhunter to hiccup _post: | #!/usr/bin/env bash if [ -d /Applications ] && [ -d /System ]; then ### macOS logg info 'Updating file "$(brew --prefix)/Cellar/rkhunter/1.4.6/etc/rkhunter.conf"' && gsed -i "s/^#WEB_CMD.*$/WEB_CMD=curl\ -L/" "$(brew --prefix)/Cellar/rkhunter/1.4.6/etc/rkhunter.conf" else ### Linux logg info 'Updating file /etc/rkhunter.conf' && sed -i "s/^#WEB_CMD.*$/WEB_CMD=curl\ -L/" /etc/rkhunter.conf fi export PATH="$(echo "$PATH" | sed 's/VMware Fusion.app/VMwareFusion.app/')" sudo rkhunter --propupd || RK_PROPUPD_EXIT_CODE=$? if [ -n "$RK_PROPUPD_EXIT_CODE" ]; then echo "FIXME sudo rkhunter --propupd returned non-zero exit code" fi sudo rkhunter --update || RK_UPDATE_EXIT_CODE=$? if [ -n "$RK_UPDATE_EXIT_CODE" ]; then echo "FIXME sudo rkhunter --update returned non-zero exit code" fi _service:pacman: cronie apt: rkhunter brew: rkhunter dnf: rkhunter pacman: - cronie - rkhunter - s-nail rm-improved: _bin: rip _desc: A safe and ergonomic alternative to rm _docs: https://github.com/nivekuil/rip _github: https://github.com/nivekuil/rip _home: https://github.com/nivekuil/rip _name: rip (Rm ImProved) brew: rm-improved cargo: rm-improved github: github.com/nivekuil/rip yay: rm-improved robotframework: _bin: robot _desc: Generic automation framework for acceptance testing and RPA _docs: https://robotframework.org/robotframework/#user-guide _github: https://github.com/robotframework/robotframework _home: https://robotframework.org/ _name: Robot Framework pipx: robotframework rofi: _bin: rofi _desc: Rofi is a window switcher, application launcher and dmenu replacement _docs: https://davatorium.github.io/rofi/ _github: https://github.com/davatorium/rofi _home: https://davatorium.github.io/rofi/ _name: rofi apt: rofi dnf:fedora: rofi pacman: rofi pkg: rofi port: rofi zypper: rofi rsync: _bin: rsync _desc: rsync is an open source utility that provides fast incremental file transfer. _docs: https://rsync.samba.org/documentation.html _github: https://github.com/WayneD/rsync _home: https://rsync.samba.org/ _name: rsync apt: rsync brew: rsync choco: rsync dnf: rsync rsyslog: _bin: rsyslogd _github: https://github.com/rsyslog/rsyslog _name: RSyslog _ports: - port: 514 proto: tcp _service: rsyslog apt: rsyslog brew: rsyslog dnf: rsyslog pacman: rsyslog rtop: _bin: rtop _github: https://github.com/rapidloop/rtop _name: rtop go: github.com/rapidloop/rtop@latest rubocop: _bin: rubocop _github: https://github.com/rubocop/rubocop _name: Rubocop gem: rubocop ruby: _bin: ruby _desc: Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s in Japan. _docs: https://www.ruby-lang.org/en/documentation/ _github: https://github.com/ruby/ruby _home: https://www.ruby-lang.org/en/ _name: Ruby ansible: professormanhattan.ruby apt: ruby-dev brew: ruby choco: ruby dnf: ruby-devel pacman: ruby port: ruby scoop: ruby ruff: _bin: ruff _desc: An extremely fast Python linter, written in Rust. _docs: https://beta.ruff.rs/docs/ _github: https://github.com/charliermarsh/ruff _home: https://beta.ruff.rs/docs/ _name: Ruff apk: ruff brew: ruff pacman: ruff pipx: ruff runitor: _bin: runitor _github: https://github.com/bdd/runitor _name: Runitor go: bdd.fi/x/runitor/cmd/runitor@latest runjs: _app: RunJS.app _bin: null _desc: A JavaScript playground that auto-evaluates as you type _github: https://github.com/lukehaas/RunJS _name: RunJS cask: runjs choco: runjs github: github.com/lukehaas/RunJS yay: runjs-bin rust: _bin: rustc _desc: '[Rust](https://www.rust-lang.org/) is a multi-paradigm programming language designed for performance and safety, especially safe concurrency.' _docs: https://www.rust-lang.org/learn _github: https://github.com/rust-lang/rust _home: https://www.rust-lang.org/ _name: Rust _post:snap: | #!/usr/bin/env bash rustup toolchain install stable ansible: professormanhattan.rust brew: rust choco: rust dnf: - cargo - rust pacman: rust port: - cargo - rust scoop: rust script:darwin: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y script:linux: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y rustdesk: _app: RustDesk.app _bin: rustdesk _desc: Open source virtual / remote desktop infrastructure for everyone! The open source TeamViewer alternative. Display and control your PC and Android devices from anywhere at anytime. _docs: https://rustdesk.com/docs/en/ _github: https://github.com/rustdesk/rustdesk _home: https://rustdesk.com/ _name: RustDesk apt: https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9.deb cask: rustdesk choco: rustdesk dnf: https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9-fedora28-centos8.rpm pacman: rustdesk scoop: rustdesk zypper: https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9-suse.rpm rustscan: _bin: rustscan _desc: An Nmap-based port scanner that scans all 65k ports in 3 seconds _docs: https://rustscan.github.io/RustScan/ _github: https://github.com/RustScan/RustScan _home: https://github.com/RustScan/RustScan _name: RustScan brew: rustscan yay: rustscan rusty: _bin: rusty _github: https://github.com/zahidkhawaja/rusty _name: Rusty AI CLI _todo: Get cargo crate link once this is resolved https://github.com/zahidkhawaja/rusty/issues/7 s-search: _bin: s _desc: Open a web search in your terminal. _docs: https://github.com/zquestz/s _github: https://github.com/zquestz/s _home: https://github.com/zquestz/s _name: s brew: s-search s5cmd: _bin: s5cmd _desc: '[s5cmd](https://github.com/peak/s5cmd) is a very fast S3 and local filesystem execution tool. It comes with support for a multitude of operations including tab completion and wildcard support for files, which can be very handy for your object storage workflow while working with large number of files. s5cmd is the fastest way of interacting with S3 buckets because it can utilize multiple threads unlike similar tools.' _github: https://github.com/peak/s5cmd _name: s5cmd ansible: professormanhattan.s5cmd brew: peak/tap/s5cmd github: github.com/peak/s5cmd go: github.com/peak/s5cmd@latest sad: _bin: sad _desc: sad is a Batch File Edit tool. It will show you a really nice diff of proposed changes before you commit them _github: https://github.com/ms-jpq/sad brew: ms-jpq/sad/sad pacman: sad safe-rm: _bin: safe-rm _github: https://github.com/kaelzhang/shell-safe-rm _name: safe-rm npm: safe-rm sake: _bin: sake _desc: Sake is a task runner for local and remote hosts _docs: https://sakecli.com/examples _github: https://github.com/alajmo/sake _home: https://sakecli.com/ _name: Sake brew: alajmo/sake/sake go: github.com/alajmo/sake@latest script:darwin: curl -sfL https://raw.githubusercontent.com/alajmo/sake/main/install.sh | sh script:linux: curl -sfL https://raw.githubusercontent.com/alajmo/sake/main/install.sh | sh samba: _bin: smbd _bin:dnf: smb _desc: '[Samba](https://www.samba.org/) is a free and open-source software that allows files to be shared across Windows and Linux systems simply and easily. To be exact, it is an open-source implementation of the SMB/CIFS protocol.' _docs: https://www.samba.org/samba/docs/ _github: https://github.com/samba-team/samba _groups: - sambausers _home: https://www.samba.org/ _name: Samba _post: | #!/usr/bin/env bash # @file Samba Configuration # @brief This script configures Samba by applying the configuration stored in `${XDG_DATA_HOME:-$HOME/.config}/samba/config` if the `smbd` application is available # @description # This script applies the Samba configuration stored in `${XDG_DATA_HOME:-$HOME/.config}/samba/config` if Samba is installed. # The script and default configuration set up two Samba shares. # # ## Security # # Both shares are configured by default to only accept connections # from hosts with DNS that ends in `.local.PUBLIC_SERVICES_DOMAIN`, where `PUBLIC_SERVICES_DOMAIN` is an environment variable that # can be passed into Install Doctor. So, if your `PUBLIC_SERVICES_DOMAIN` environment variable is set to `megabyte.space`, then # a device with a FQDN of `alpha.local.megabyte.space` pointing to its LAN location will be able to connect but a device # with a FQDN of `alpha.megabyte.space` will not be able to connect. # # ## Samba Shares / S3 Backup # # If CloudFlare R2 credentials are provided, Samba is configured to store its shared files in the Rclone mounts so that your # Samba shares are synchronized to the S3 buckets. If not, new folders are created. Either way, the folder / symlink that the # shares host data from are stored at `/mnt/Private` and `/mnt/Public` (*Note: Different paths are used on macOS*). # # 1. The **public** share (named "Public") can be accessed by anyone (including write permissions with the default settings) # 2. The **private** share (named "Private") can be accessed by specifying the PAM credentials of anyone who has an account that is included in the `sambausers` group # # ## Symlinks # # Symlinks are disabled for security reasons. This is because, with symlinking enabled, people can create symlinks on the shares and use the symlinks to access system files outside of the # Samba shares. There are commented-out lines in the default configuration that you can uncomment to enable the symlinks in shares. # # ## Printers # # Printer sharing is not enabled by default. There are commented lines in the default configuration that should provide a nice stepping # stone if you want to use Samba for printer sharing (with CUPS). # # ## Environment Variables # # The following chart details some of the environment variables that are used to determine the configuration of the # Samba shares: # # | Environment Variable | Description | # |-----------------------------|-----------------------------------------------------------------------------------------------------| # | `PUBLIC_SERVICES_DOMAIN` | Used to determine which hosts can connect to the Samba share (e.g. `.local.PUBLIC_SERVICES_DOMAIN`) | # | `SAMBA_NETBIOS_NAME` | Determines the NetBIOS name (defaults to the `HOSTNAME` environment variable value) | # | `SAMBA_WORKGROUP` | Controls Samba workgroup name (defaults to "BETELGEUSE") | # # ## Links # # * [Default Samba configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_local/samba/config.tmpl) # * [Secrets / Environment variables documentation](https://install.doctor/docs/customization/secrets) ### Configure Samba server if command -v smbd > /dev/null; then # Add user / group with script in ~/.local/bin/add-usergroup, if it is available if command -v add-usergroup > /dev/null; then sudo add-usergroup "$USER" rclone fi ### Define share locations if [ -d /Applications ] && [ -d /System ]; then ### macOS does not have `/mnt` folder so use `/Volumes` location MNT_FOLDER='Volumes' else MNT_FOLDER='mnt' fi PRIVATE_SHARE="/$MNT_FOLDER/Private" PUBLIC_SHARE="/$MNT_FOLDER/Public" logg info "Ensuring $PRIVATE_SHARE is created" sudo mkdir -p "$PRIVATE_SHARE" sudo chmod 750 "$PRIVATE_SHARE" sudo chown -Rf root:rclone "$PRIVATE_SHARE" logg info "Ensuring $PUBLIC_SHARE is created" sudo mkdir -p "$PUBLIC_SHARE" sudo chmod 755 "$PUBLIC_SHARE" sudo chown -Rf root:rclone "$PUBLIC_SHARE" logg info "Ensuring $HOME/Public is created" mkdir -p "$HOME/Public" chmod 755 "$HOME/Public" chown -Rf "$USER":rclone "$HOME/Public" ### Copy the Samba server configuration file if [ -d /Applications ] && [ -d /System ]; then sudo sharing -a "$PRIVATE_SHARE" -S "Private (System)" -n "Private (System)" -g 000 -s 001 -E 1 -R 1 && logg success "Configured $PRIVATE_SHARE as a private Samba share" || logg info 'sharing command failed - it is likely that the share was already set up' sudo sharing -a "$PUBLIC_SHARE" -S "Public (System)" -n "Public (System)" -g 001 -s 001 -E 1 -R 0 && logg success "Configured $PUBLIC_SHARE as a public Samba share" || logg info 'sharing command failed - it is likely that the share was already set up' sudo sharing -a "$HOME/Public" -S "Public (User)" -n "Public (User)" -g 001 -s 001 -E 1 -R 0 && logg success "Configured $HOME/Public as a public Samba share" || logg info 'sharing command failed - it is likely that the share was already set up' else logg info "Copying Samba server configuration to /etc/samba/smb.conf" sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/samba/config" "/etc/samba/smb.conf" ### Reload configuration file changes logg info 'Reloading the smbd config' smbcontrol smbd reload-config fi else logg info "Samba server is not installed" fi _service: smbd _service:dnf: smb apt: samba brew: samba dnf: samba pacman: samba port: samba4 sanoid: _bin: sanoid _deps: - pv _desc: '[Sanoid](https://github.com/jimsalterjrs/sanoid/) is a free and open source snapshot management tool. Sanoid is a policy-driven snapshot management tool for ZFS filesystems. When combined with the Linux KVM hypervisor, you can use it to make your systems functionally immortal.' _github: https://github.com/jimsalterjrs/sanoid/ _name: Sanoid # Only install Sanoid when there are ZFS shares listed in the command `zfs list` _when:linux: command -v zfs > /dev/null && ! zfs list ansible:linux: professormanhattan.sanoid apt: - libcapture-tiny-perl - libconfig-inifiles-perl - libdata-dump-perl # Unavailable on Ubuntu 22.04 # - mhash2 - sanoid santa: _bin: santactl _desc: A binary authorization system for MacOS (santa) role is a daemon that makes execution decisions based on the contents of a local database, a GUI agent that notifies the user in case of a block decision and a command-line utility for managing the system and synchronizing the database with a server. _docs: https://santa.dev/ _github: https://github.com/google/santa _home: https://santa.dev/ _name: A binary authorization system for MacOS cask: santa sapling: _bin: sl _github: https://github.com/facebook/sapling _name: Sapling brew: sapling pacman: sapling-scm-bin script:windows: | curl -sSL https://github.com/facebook/sapling/releases/latest > ~/Downloads/sapling_windows_0.2.20231113-145254+995db0d6_amd64.zip Expand-Archive ~/Downloads/sapling_windows_0.2.20231113-145254+995db0d6_amd64.zip 'C:\Program Files' setx PATH "$env:PATH;C:\Program Files\Sapling" -m Set-Alias -Name sl -Value 'C:\Program Files\Sapling\sl.exe' -Force -Option Constant,ReadOnly,AllScope scap-security-guide: _bin: oscap _github: https://github.com/ComplianceAsCode/content _name: OpenSCAP apt: - ssg-debderived - ssg-applications apt:debian: - ssg-debian - ssg-applications dnf: scap-security-guide schema: _bin: schema _desc: A tool to infer and instantiate schemas and translate between data formats _github: https://github.com/Confbase/schema _name: schema go: github.com/Confbase/schema@latest scrcpy: _bin: scrcpy _desc: '[scrcpy](https://github.com/Genymobile/scrcpy) is a free and open-source application that provides display of Android devices connected on USB (or over TCP/IP). It also allows you to control the Android device. It does not require any root access.' _github: https://github.com/Genymobile/scrcpy _name: scrcpy ansible: professormanhattan.scrcpy apt: scrcpy brew: scrcpy choco: scrcpy dnf: scrcpy github: github.com/Genymobile/scrcpy pkg: scrcpy snap: scrcpy yay: scrcpy scrcpy-gui: _bin: scrcpy-gui _desc: A simple & beautiful GUI application for scrcpy _github: https://github.com/Tomotoes/scrcpy-gui _name: Scrcpy GUI flatpak: in.srev.guiscrcpy sd: _bin: sd _desc: Intuitive find & replace CLI (sed alternative) _github: https://github.com/chmln/sd _name: sd apk: sd brew: sd cargo: sd choco: sd-cli dnf:fedora: sd github: github.com/chmln/sd pacman: sd pkg: sd sddm: _bin: sddm _github: https://github.com/sddm/sddm _name: SDDM _post: | #!/usr/bin/env bash sudo systemctl set-default graphical.target _service: sddm apt: sddm dnf: sddm pacman: sddm zypper: sddm sdkman-cli: _bin: sdk _github: https://github.com/sdkman/sdkman-cli _name: SDKMan script: | #!/usr/bin/env bash # @file SDKMAN Install # @brief Ensures SDKMAN is installed. # @description # This script ensures SDKMAN (a Java version manager) is installed using the method recommended on [their # website](https://sdkman.io/). ### Re-source ~/.bashrc if [ -z "$SDKMAN_DIR" ]; then logg info 'SDKMAN_DIR is undefined so ~/.bashrc is being re-sourced' && source ~/.bashrc fi ### SDKMan ~/.bashrc settings if command -v brew > /dev/null && command -v sdkman-cli > /dev/null; then export SDKMAN_DIR="$(brew --prefix sdkman-cli)/libexec" . "$SDKMAN_DIR/bin/sdkman-init.sh" elif [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/sdkman" ]; then export SDKMAN_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/sdkman" . "$SDKMAN_DIR/bin/sdkman-init.sh" else logg logg 'Unable to find SDKMAN instance' fi ### Ensure SDKMan is installed (https://sdkman.io/) if [ ! -d "$SDKMAN_DIR" ]; then logg info 'Installing SDKMan via curl -s https://get.sdkman.io?rcupdate=false' logg info "Install directory: $SDKMAN_DIR" curl -s "https://get.sdkman.io?rcupdate=false" | bash if [ -f "$SDKMAN_DIR/bin/sdkman-init.sh" ]; then . "$SDKMAN_DIR/bin/sdkman-init.sh" logg info 'Running sdk install java' && sdk install java else logg warn 'SDKMAN_DIR/bin/sdkman-init.sh is missing' fi else logg info 'SDKMan appears to already be installed.' logg info 'Running sdk update' if command -v sdk > /dev/null; then sdk update else logg warn 'Unable to run sdk update because the sdk command is unavailable' fi fi seafile-client: _app: Seafile Client.app _github: https://github.com/haiwen/seafile-client _bin: seafile-client _todo: Look into integration of the full Seafile stack outlined [here](https://github.com/haiwen/seafile) cask: seafile-client choco: seafile-client flatpak: com.seafile.Client search-gpt: _bin: searchgpt _github: https://github.com/tobiasbueschel/search-gpt _name: Search GPT npm: search-gpt secretive: _app: Secretive.app _bin: null _desc: Store SSH keys in the Secure Enclave _github: https://github.com/maxgoedjen/secretive cask: secretive security: _bin: null _github: false _desc: This role turns on auto-updates and configures sudo, for instance. _name: Security ansible: professormanhattan.security semantic-release: _bin: semantic-release _desc: '[semantic-release](https://semantic-release.gitbook.io) automates the whole package release workflow including: determining the next version number, generating the release notes, and publishing the package' _docs: https://semantic-release.gitbook.io _github: https://github.com/semantic-release/semantic-release _home: https://semantic-release.gitbook.io _name: semantic-release npm: semantic-release sentry-cli: _bin: sentry-cli _desc: sentry-cli can connect to the Sentry API and manage some data for your projects _github: https://github.com/getsentry/sentry-cli/ _name: sentry-cli brew:darwin: getsentry/tools/sentry-cli github: github.com/getsentry/sentry-cli npm: '@sentry/cli' scoop: sentry-cli yay: sentry-cli-bin serve: _bin: serve _desc: serve helps you serve a static site, single page application or just a static file (no matter if on your device or on the local network). It also provides a neat interface for listing the directory's contents _github: https://github.com/vercel/serve _name: serve npm: serve serverless: _bin: serverless _github: https://github.com/serverless/serverless _desc: Build applications with serverless architectures _docs: https://www.serverless.com/framework/docs _home: https://www.serverless.com/ _name: serverless brew: serverless npm: serverless sftpgo: _bin: sftpgo _deps: - sftpgo-plugin-auth _desc: Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob _github: https://github.com/drakkan/sftpgo _name: sftpgo _post: | #!/usr/bin/env bash sudo mkdir -p /usr/local/etc/sftpgo sudo cp -f "$HOME/.local/etc/sftpgo/sftpgo.json" /usr/local/etc/sftpgo/sftpgo.json sudo cp -f "$HOME/.local/etc/sftpgo/banner" /usr/local/etc/sftpgo/banner sudo mkdir -p /usr/local/etc/branding sudo cp -f "$HOME/.local/etc/branding/favicon.ico" /usr/local/etc/branding/favicon.ico sudo cp -f "$HOME/.local/etc/branding/logo-color-256x256.png" /usr/local/etc/branding/logo-color-256x256.png sudo cp -f "$HOME/.local/etc/branding/logo-color-900x900.png" /usr/local/etc/branding/logo-color-900x900.png sudo sftpgo initprovider _service: sftpgo _service:brew: - name: sftpgo sudo: true _serviceEnabled: true brew: sftpgo choco: sftpgo github: github.com/drakkan/sftpgo pkg: sftpgo yay: sftpgo-bin sftpgo-plugin-auth: _bin: sftpgo-plugin-auth _desc: A plugin for SFTPGo to enable LDAP/Active Directory authentication _github: https://github.com/sftpgo/sftpgo-plugin-auth _name: SFTPGo Authentication Plugin _post: | #!/usr/bin/env bash sudo mv -f $(which sftpgo-plugin-auth) /usr/local/bin/sftpgo-plugin-auth go: github.com/sftpgo/sftpgo-plugin-auth@latest share: _bin: share _desc: Quickly share files from your command line _github: https://github.com/marionebl/share-cli _name: share npm: share-cli sharex: _bin: null _desc: '[ShareX](https://getsharex.com/) is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.' _docs: https://getsharex.com/docs/faq _github: https://github.com/ShareX/ShareX _home: https://getsharex.com/ _name: ShareX ansible:windows: professormanhattan.sharex choco: sharex sharp: _bin: sharp _desc: CLI for sharp (a Node.js image processing module) _github: https://github.com/vseventer/sharp-cli _name: sharp npm: sharp-cli shc: _bin: shc _desc: Shell script compiler _docs: https://github.com/neurobin/shc _github: https://github.com/neurobin/shc _home: https://neurobin.org/projects/softwares/unix/shc/ _name: shc ansible:darwin: professormanhattan.shc ansible:linux: professormanhattan.shc brew: shc port: shc shdoc: _bin: shdoc _deps:script: - gawk _desc: '[shdoc](https://github.com/reconquest/shdoc) is a tool to generate Documentation for shell scripts (bash, sh, zsh)' _github: https://github.com/reconquest/shdoc _name: shdoc ansible:darwin: professormanhattan.shdoc ansible:linux: professormanhattan.shdoc script:darwin: cd /tmp && git clone --recursive https://github.com/reconquest/shdoc && cd shdoc && sudo make install && cd /tmp && sudo rm -rf shdoc script:linux: cd /tmp && git clone --recursive https://github.com/reconquest/shdoc && cd shdoc && sudo make install && cd /tmp && sudo rm -rf shdoc yay: shdoc-git sheldon: _bin: sheldon _completions: sheldon completions --shell {SHELL} _github: https://github.com/rossmacarthur/sheldon _name: Sheldon brew: sheldon cargo: sheldon shell-gpt: _bin: sgpt _github: https://github.com/TheR1D/shell_gpt _name: Shell GPT pipx: shell-gpt shellcheck: _bin: shellcheck _desc: A static analysis tool for shell scripts _docker: docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable _docs: https://github.com/koalaman/shellcheck/wiki/Directive _github: https://github.com/koalaman/shellcheck _home: https://www.shellcheck.net/ _name: Shellcheck apt: shellcheck brew: shellcheck cabal: shellcheck choco: shellcheck dnf: shellcheck emerge: shellcheck eopkg: shellcheck nix: nixpkgs.shellcheck pacman: shellcheck pkg-freebsd: shellcheck pkg_add: shellcheck port: shellcheck scoop: shellcheck snap: shellcheck stack: shellcheck zypper: shellcheck shfmt: _bin: shfmt _desc: '[shfmt](https://github.com/mvdan/sh) is a shell parser, formatter, and interpreter with bash support that is written with [Go](https://gitlab.com/megabyte-labs/ansible-roles/go).' _github: https://github.com/mvdan/sh _home: https://pkg.go.dev/mvdan.cc/sh/v3 _name: shfmt ansible: professormanhattan.shfmt apk: shfmt brew: shfmt github: github.com/mvdan/sh go: mvdan.cc/sh/v3/cmd/shfmt@latest pacman: shfmt pkg: shfmt scoop: shfmt snap: shfmt shml: _bin: shml _github: https://github.com/odb/shml _name: SHML brew: shml npm: shml shotcut: _app: Shotcut.app _bin: shotcut _desc: '[Shotcut](https://shotcut.org/) is a free and open-source cross-platform video editing application for FreeBSD, Linux, macOS and Windows. Started in 2011 by Dan Dennedy, Shotcut is developed on the MLT Multimedia Framework, in development since 2004 by the same author.' _docs: https://shotcut.org/howtos/getting-started/ _github: https://github.com/mltframework/shotcut _home: https://shotcut.org/ _name: Shotcut ansible: professormanhattan.shotcut apt: shotcut cask: shotcut choco: shotcut dnf: shotcut flatpak: org.shotcut.Shotcut snap: shotcut --classic shotwell: _bin: shotwell _desc: '[Shotwell](https://shotwell-project.org/doc/html/) is an image organizer designed to provide personal photo management for the GNOME desktop environment. In 2010, it replaced F-Spot as the standard image tool for several GNOME-based Linux distributions, including Fedora in version 13 and Ubuntu in its 10.10 Maverick Meerkat release.' _docs: http://shotwell-project.org/doc/html/ _github: https://github.com/GNOME/shotwell _home: https://wiki.gnome.org/Apps/Shotwell _name: Shotwell ansible:linux: professormanhattan.shotwell apt: shotwell dnf: shotwell flatpak: org.gnome.Shotwell pacman: shotwell shuttle: _bin: cargo-shuttle _github: https://github.com/shuttle-hq/shuttle _name: Shuttle cargo: cargo-shuttle pacman: cargo-shuttle script: curl -sSfL https://www.shuttle.rs/install | bash shx: _bin: shx _github: https://github.com/shelljs/shx _name: shx npm: shx sidekick: _app: Sidekick.app _bin: sidekick _github: false _name: Sidekick cask: pushplaylabs-sidekick signal: _app: Signal.app _bin: signal _desc: Signal is a cross-platform centralized encrypted instant messaging service developed by the non-profit Signal Foundation and its subsidiary, the Signal Messenger LLC. Users can send one-to-one and group messages, which can include files, voice notes, images, and videos. _docs: https://support.signal.org/hc/en-us _github: https://github.com/signalapp/Signal-Desktop _home: https://signal.org _name: Signal Desktop cask: signal choco: signal flatpak: org.signal.Signal scoop: signal skaffold: _bin: skaffold _github: https://github.com/GoogleContainerTools/skaffold _name: Skaffold brew: skaffold choco: skaffold port: skaffold scoop: extras/skaffold skate: _bin: skate _desc: Skate is a personal key-value store. Use it to save and retrieve anything you’d like—even binary data. It’s fully encrypted, backed up to the cloud (that you can self-host if you want) and can be synced with all your machines _github: https://github.com/charmbracelet/skate _name: skate brew: charmbracelet/tap/skate go: github.com/charmbracelet/skate@latest nix: nixpkgs.skate pacman: skate skhd: _bin: skhd _desc: Keyboard shortcut daemon for macOS _docs: https://github.com/koekeishiya/skhd/issues/1 _github: https://github.com/koekeishiya/skhd _home: https://github.com/koekeishiya/skhd _name: skhd _post:brew: | #!/usr/bin/env bash skhd --start-service brew:darwin: koekeishiya/formulae/skhd skm: _bin: skm _desc: A simple and powerful SSH keys manager _github: https://github.com/TimothyYe/skm _name: skm github: github.com/TimothyYe/skm go: github.com/TimothyYe/skm/cmd/skm@latest skype: _app: Skype.app _bin: skype _desc: '[Skype](https://www.skype.com/en/) is a proprietary telecommunications application that specializes in providing video chat and voice calls between computers, tablets, mobile devices, the Xbox One console, and smartwatches over the Internet. Skype also provides instant messaging services. Users may transmit text, video, audio and images.' _description: Skype is for connecting with the people that matter most in your life and work _docs: https://docs.microsoft.com/en-us/skype-sdk/skypeuris/skypeuriapireference _github: Not open-source _home: https://www.skype.com/en/ _name: Skype ansible: professormanhattan.skype cask: skype choco: skype flatpak: com.skype.Client snap: skype yay: skypeforlinux-stable-bin slack: _app: Slack.app _bin: slack _desc: '[Slack](https://slack.com/) is a proprietary business communication platform developed by American software company Slack Technologies. Slack offers many IRC-style features, including persistent chat rooms organized by topic, private groups, and direct messaging.' _docs: https://api.slack.com/docs _github: https://github.com/slackhq/SlackTextViewController _home: https://slack.com/ _name: Slack ansible: professormanhattan.slack cask: slack choco: slack flatpak: com.slack.Slack mas: 803453959 snap: slack slack-term: _bin: slack-term _desc: '[slack-term](https://github.com/erroneousboat/slack-term) features a colorful interface as well as keyboard shortcuts. It is one of, if not the, most well-received [Slack](https://slack.com/) client available on GitHub.' _github: https://github.com/erroneousboat/slack-term _name: slack-term ansible: professormanhattan.slackterm go: github.com/erroneousboat/slack-term@latest slides: _bin: slides _desc: A terminal application that allows you to present slides rendered from markdown _docs: https://github.com/maaslalani/slides _github: https://github.com/maaslalani/slides _home: https://maaslalani.com/slides/ _name: Slides brew: slides go: github.com/maaslalani/slides@latest nix-env: nixpkgs.slides snap: slides yay: slides sloth: _app: Sloth.app _bin: null _desc: Mac app that shows all open files, directories, sockets, pipes and devices in use by all running processes. Nice GUI for lsof. _docs: https://github.com/sveinbjornt/Sloth _github: https://github.com/sveinbjornt/Sloth _home: https://sveinbjorn.org/sloth _name: Sloth cask: sloth snapcraft: _bin: snapcraft _github: https://github.com/canonical/snapcraft _deps: - snapd _name: Snapcraft brew: snapcraft snap: snapcraft --classic snapd: _bin: snap _github: https://github.com/snapcore/snapd _desc: '[Snap](https://snapcraft.io/) is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions and allow upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system.' _home: https://snapcraft.io/ _name: Snap # ansible:linux: professormanhattan.snapd _service: snapd snitch: _app: Little Snitch.app # Used for OpenSnitch, which is "temporarily" disabled until it works as expected # _bin: opensnitchd _desc: '[Little Snitch](https://www.obdev.at/products/littlesnitch/index.html) (macOS) and [OpenSnitch](https://github.com/evilsocket/opensnitch) (Linux) are application firewalls that make Internet connections visible. You can then configure which applications can access the internet (or LAN) as well as monitor the traffic patterns of applications.' _docs: https://www.obdev.at/products/littlesnitch/getting-started.html _github: https://github.com/evilsocket/opensnitch _home: https://www.obdev.at/products/littlesnitch/index.html _name: OpenSnitch/Little Snitch # Not loading on Ubuntu 22.04 # ansible: professormanhattan.snitch cask: little-snitch social-analyzer: _bin: social-analyzer _desc: API, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites _github: https://github.com/qeeqbox/social-analyzer _name: social-analyzer pipx: social-analyzer soduto: _app: Soduto.app _github: https://github.com/soduto/Soduto _name: Soduto cask: soduto soft-serve: _bin: soft _desc: A tasty, self-hostable Git server for the command line _docs: https://github.com/charmbracelet/soft-serve _github: https://github.com/charmbracelet/soft-serve _home: https://charm.sh/ _name: Soft Serve brew: charmbracelet/tap/soft-serve go: github.com/charmbracelet/soft-serve/cmd/soft@latest nix-env: nixpkgs.soft-serve pacman: soft-serve solargraph: _bin: solargraph _desc: Ruby language server _docs: https://solargraph.org/guides/getting-started _github: https://github.com/castwide/solargraph _home: https://solargraph.org/ _name: Solargraph brew: solargraph gem: solargraph solidity: _bin: solcjs _desc: Javascript bindings for the Solidity compiler _github: https://github.com/ethereum/solc-js _name: solcjs npm: solc sparkleshare: _app: SparkleShare.app _bin: sparkleshare _github: https://github.com/hbons/SparkleShare _name: Sparkle Share cask: sparkleshare choco: sparkleshare flatpak: org.sparkleshare.SparkleShare speed-test: _bin: speed-test _desc: Test your internet connection speed and ping using speedtest.net from the CLI _github: https://github.com/sindresorhus/speed-test _name: speed-test npm: speed-test speedtest-cli: _bin: speedtest-cli _desc: Command line interface for testing internet bandwidth using speedtest.net _github: https://github.com/sivel/speedtest-cli _name: speedtest-cli pipx: speedtest-cli sphinx: _bin: sphinx-build _github: https://github.com/sphinx-doc/sphinx _name: Sphinx apt: python3-sphinx choco: sphinx dnf: python-sphinx pipx: sphinx spotdl: _bin: spotdl _deps: - ffmpeg _desc: Download your Spotify playlists and songs along with album art and metadata _docs: https://spotdl.readthedocs.io/en/latest/ _github: https://github.com/spotDL/spotify-downloader _name: spotdl pipx: spotdl sql-language-server: _bin: sql-language-server _desc: An SQL language server _docs: https://github.com/joe-re/sql-language-server _github: https://github.com/joe-re/sql-language-server _home: https://github.com/joe-re/sql-language-server _name: SQL Language Server brew: sql-language-server npm: sql-language-server sqlectron: _app: sqlectron.app _bin: null _desc: A simple and lightweight SQL client desktop with cross database and platform support _github: https://github.com/sqlectron/sqlectron-gui _name: SQLectron cask: sqlectron github: github.com/sqlectron/sqlectron-gui yay: sqlectron-gui sqlite: _bin: sqlite3 _desc: SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. _docs: https://sqlite.org/docs.html _github: https://github.com/sqlite/sqlite _home: https://sqlite.org/index.html _name: SQLite apt: sqlite3 brew: sqlite choco: sqlite dnf: sqlite pacman: sqlite port: sqlite3 scoop: sqlite squid: _bin: squid _github: https://github.com/squid-cache/squid _name: Squid _preload: true _service: squid apt: squid brew: squid dnf: squid pacman: squid ssh: _bin: null _github: false _desc: On top of tightening up SSH security settings, this role also installs fail2ban on Linux systems. If provided, the role will also populate all your SSH keys and set their permissions appropriately _name: SSH ansible: professormanhattan.ssh ssh-vault: _bin: ssh-vault _desc: '[sshvault](https://ssh-vault.com/) lets you encrypt/decrypt using SSH private keys. It is written in Go and the documentation can be read in under a minute.' _docs: https://ssh-vault.com/post/how-it-works/ _github: https://github.com/ssh-vault/ssh-vault _home: https://ssh-vault.com/ _name: ssh-vault ansible: professormanhattan.sshvault brew: ssh-vault github: github.com/ssh-vault/ssh-vault sshfs: _bin: sshfs _name: SSHFS _github: https://github.com/libfuse/sshfs apt: sshfs brew:linux: sshfs choco: sshfs dnf: sshfs pacman: sshfs port: sshfs scoop: sshfs-np sshpass: _bin: sshpass _github: https://github.com/kevinburke/sshpass _desc: SSHPass is a tool for non-interactivly performing password authentication with SSH's so called "interactive keyboard password authentication". Most user should use SSH's more secure public key authentiaction instead. _home: https://sourceforge.net/projects/sshpass/ _name: sshpass apt: sshpass brew: hudochenkov/sshpass/sshpass dnf: sshpass sshs: _bin: sshs _github: https://github.com/quantumsheep/sshs _name: SSHS brew: sshs choco: sshs sshuttle: _bin: sshuttle _github: https://github.com/sshuttle/sshuttle _name: SShuttle apt: sshuttle brew: sshuttle dnf: sshuttle emerge: net-proxy/sshuttle nix-env: nixos.sshuttle nix-pkg: nixpkgs.sshuttle pacman: sshuttle pipx: sshuttle port: sshuttle zypper: sshuttle ssl-proxy: _bin: ssl-proxy _desc: Simple zero-config SSL reverse proxy with real autogenerated certificates _github: https://github.com/suyashkumar/ssl-proxy _name: ssl-proxy go: github.com/suyashkumar/ssl-proxy@latest stacer: _bin: stacer _desc: Popular desktop GUI for monitoring and cleaning Linux systems. _docs: https://github.com/oguzhaninan/Stacer/blob/native/README.md _github: https://github.com/oguzhaninan/Stacer _home: https://oguzhaninan.github.io/Stacer-Web/ _name: Stacer appimage: https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/Stacer-1.1.0-x64.AppImage apt: https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/stacer_1.1.0_amd64.deb apt:debian: stacer apt:ubuntu: stacer dnf: https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/stacer-1.1.0-amd64.rpm dnf:fedora: stacer yay: stacer standard-notes: _app: Standard Notes.app _bin: standard-notes _desc: End-to-end encrypted notes app _docs: https://standardnotes.com/help _github: https://github.com/standardnotes/app _home: https://standardnotes.com/ _name: Standard Notes cask: standard-notes flatpak: org.standardnotes.standardnotes starred: _bin: starred _desc: Creates your own Awesome List sorted by GitHub stars by using the GitHub API _docs: https://github.com/maguowei/starred _github: https://github.com/maguowei/starred _home: https://pypi.org/project/starred/ _name: Starred pipx: starred starship: _bin: null _github: https://github.com/starship/starship _desc: '[Starship](https://starship.rs/) is the minimal, blazing fast, and extremely customizable prompt for any shell! It shows the information you need, while staying sleek and minimal. Unlike most other prompts, it is compatible with nearly every type of terminal. If you want to retain the same look and feel across different terminals, then look no further.' _name: Starship ansible: professormanhattan.starship statcode: _bin: statcode _docs: Man pages for HTTP status codes _github: https://github.com/shobrook/statcode pipx: statcode yay: statcode staticcheck: _bin: staticcheck _desc: State of the art linter for the Go programming language _docs: https://staticcheck.io/docs/ _github: https://github.com/dominikh/go-tools _home: https://staticcheck.io/ _name: staticcheck brew: staticcheck dnf:fedora: golang-honnef-tools go: honnef.co/go/tools/cmd/staticcheck@latest pacman: staticcheck port: staticcheck scoop: staticcheck stats: _app: Stats.app _bin: null _desc: System monitor for the menu bar _github: https://github.com/exelban/stats _name: stats _service: null cask: stats steam: _app: Steam.app _bin: steam _github: false _name: steam cask: steam choco: steam flatpak: com.valvesoftware.Steam steampipe: _bin: steampipe _github: https://github.com/turbot/steampipe _name: Steampipe brew: turbot/tap/steampipe stegcloak: _bin: stegcloak _desc: StegCloak is a pure JavaScript steganography module designed in functional programming style, to hide secrets inside text by compressing and encrypting the secret before cloaking it with special unicode invisible characters _github: https://github.com/KuroLabs/stegcloak _home: https://stegcloak.surge.sh/ _name: stegcloak npm: stegcloak storybook: _bin: storybook _github: https://github.com/storybookjs/storybook _name: Storybook npm: storybook sttr: _bin: sttr _desc: Cross-platform, CLI app to perform various operations on string _docs: https://github.com/abhimanyu003/sttr _github: https://github.com/abhimanyu003/sttr _home: https://github.com/abhimanyu003/sttr _name: sttr brew: abhimanyu003/sttr/sttr go: github.com/abhimanyu003/sttr@latest snap: sttr yay: sttr-bin stubby: _bin: stubby _github: https://github.com/getdnsapi/stubby _desc: DNS privacy enabled stub resolver service based on getdns _docs: https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Daemon+-+Stubby _name: Stubby _post:brew:darwin: | #!/usr/bin/env bash bash "$(brew --prefix stubby)/sbin/stubby-setdns-macos.sh" _service: stubby brew:darwin: stubby supervisor: _bin: supervisord _github: https://github.com/Supervisor/supervisor _name: Supervisor _service: supervisor apt: supervisor brew: supervisor dnf: supervisor pacman: supervisor pipx: supervisor zypper: supervisor surge: _bin: surge _desc: CLI for the surge.sh CDN _github: https://github.com/sintaxi/surge _name: surge npm: surge svgo: _bin: svgo _desc: SVG Optimizer is a Node.js-based tool for optimizing SVG vector graphics files. _github: https://github.com/svg/svgo _name: svgo brew: svgo npm: svgo swarm: _bin: null _desc: Docker Swarm is an orchestration management tool that runs Docker applications. It helps in creating and deploying a cluster of Docker nodes _docs: https://docs.docker.com/engine/swarm/ _github: https://github.com/moby/swarmkit _name: Docker Swarm ansible: professormanhattan.swarm swiftbar: _app: SwiftBar.app _github: https://github.com/swiftbar/SwiftBar _name: SwiftBar cask: swiftbar swiftformat: _bin: swiftformat _github: https://github.com/nicklockwood/SwiftFormat _name: SwiftFormat brew: swiftformat swifty: _app: Swifty.app _bin: swifty _github: https://github.com/swiftyapp/swifty _name: Swifty appimage: swiftyapp/swifty cask: swifty exe: https://github.com/swiftyapp/swifty/releases/download/v0.6.13/Swifty-Setup-0.6.13.exe swimat: _app: Swimat.app _bin: null _desc: Swift code auto-formatter for Xcode _docs: https://jintin.github.io/Swimat/ _github: https://github.com/Jintin/Swimat _home: https://jintin.github.io/Swimat/ _name: Swimat cask: swimat switchhosts: _app: SwitchHosts.app _bin: null _desc: '[SwitchHosts](https://github.com/oldj/SwitchHosts) is an application for managing the etc hosts file. It allows you to easily switch between different etc hosts file configurations.' _docs: https://github.com/oldj/SwitchHosts _github: https://github.com/oldj/SwitchHosts _home: https://swh.app/ _name: SwitchHosts ansible: professormanhattan.switchhosts appimage: oldj/SwitchHosts cask: switchhosts choco: switchhosts github: github.com/oldj/SwitchHosts scoop: switchhosts sync-ssh-keys: _bin: sync-ssh-keys _desc: Sync public ssh keys to ~/.ssh/authorized_keys, based on Github/Gitlab organization membership _github: https://github.com/samber/sync-ssh-keys _name: sync-ssh-keys go: github.com/samber/sync-ssh-keys@latest yay: sync-ssh-keys-bin syncpack: _bin: syncpack _desc: Consistent dependency versions in large JavaScript Monorepos. _docs: https://jamiemason.github.io/syncpack/installation _github: https://github.com/JamieMason/syncpack _home: https://jamiemason.github.io/syncpack/ _name: Syncpack npm: syncpack syncthing: _bin: syncthing _github: https://github.com/syncthing/syncthing _name: Syncthing _service: syncthing _serviceEnabled: true brew: syncthing choco: syncthing port: syncthing scoop: syncthing synp: _bin: synp _desc: Convert yarn.lock to package-lock.json and vice versa _github: https://github.com/imsnif/synp _name: synp npm: synp sysbench: _bin: sysbench _desc: System performance benchmark tool _github: https://github.com/akopytov/sysbench _name: sysbench apk: sysbench apt: sysbench brew: sysbench dnf:fedora: sysbench pacman: sysbench pkg: sysbench sysdig: _bin: sysdig _desc: '[sysdig](https://www.sysdig.com/) is a simple tool for deep system visibility, exploration and troubleshooting, with native support for containers.' _docs: https://docs.sysdig.com/ _github: https://github.com/draios _groups: - sysdig _home: https://sysdig.com/ _name: sysdig ansible: professormanhattan.sysdig brew: sysdig pacman: - sysdig - sysdig-dkms sysget: _bin: sysget _desc: One package manager to rule them all _github: https://github.com/emilengler/sysget _name: sysget _note: TODO sysz: _bin: sysz _deps: - fzf _desc: An fzf terminal UI for systemctl _docs: https://github.com/joehillen/sysz _github: https://github.com/joehillen/sysz _home: https://github.com/joehillen/sysz _name: syz bin: https://github.com/joehillen/sysz nix-env: nixpkgs.sysz pacman: sysz script:linux: cd /tmp && git clone https://github.com/joehillen/sysz.git && cd sysz && sudo make install && cd /tmp && rm -rf sysz t: _bin: t _desc: A command-line power tool for Twitter _github: https://github.com/sferik/t gem: t t-rec: _bin: t-rec _deps:cargo: - imagemagick _desc: '[t-rec](https://github.com/sassman/t-rec-rs) is a blazingly fast terminal recorder that generates animated GIF images for the web written in Rust' _docs: https://crates.io/crates/t-rec _github: https://github.com/sassman/t-rec-rs _home: https://crates.io/crates/t-rec _name: t-rec ansible: professormanhattan.trec brew: t-rec cargo: t-rec port: t-rec snap: t-rec --classic yay: t-rec tabby: _app: Tabby.app _bin: tabby _desc: '[Tabby](https://eugeny.github.io/tabby/) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux.' _docs: https://openbase.com/js/tabby/documentation _github: https://github.com/Eugeny/tabby _home: https://tabby.sh/ _name: Tabby _notes: TODO Update the direct links periodically and keep eye out for Snap / Flatpak _post: | #!/usr/bin/env bash # @file Tabby Plugins # @brief This script installs the default Tabby plugins which are defined in `${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins/package.json` # @description # This script pre-installs a handful of useful Tabby plugins which are defined in `${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins/package.json`. # These default plugins can be customized by editting the `package.json` file stored in your Install Doctor fork in the Tabby `plugins/package.json` # file. # # ## Default Plugins Configuration # # The script will install all the plugins defined in the `package.json` file by navigating to the `~/.config/tabby/plugins` folder # and then run `npm install`. The default configuration will include the following plugins: # # ```json # { # ... # // Notable dependencies listed below # "dependencies": { # "tabby-docker": "^0.2.0", # "tabby-save-output": "^3.1.0", # "tabby-search-in-browser": "^0.0.1", # "tabby-workspace-manager": "^0.0.4" # }, # ... # } # ``` # # ## Default Plugin Descriptions # # The following chart provides a short description of the default plugins that are pre-installed alongside Tabby: # # | NPM Package | Description | # |---------------------------|---------------------------------------------------------------------| # | `tabby-docker` | Allows you to shell directly into Docker containers | # | `tabby-save-output` | This plugin lets you stream console output into a file. | # | `tabby-search-in-browser` | Allows you to open a internet browser and search for selected text. | # | `tabby-workspace-manager` | Allows you to create multiple workspace profiles. | # # ## Links # # * [Tabby plugins `package.json`](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/tabby/plugins/package.json) # * [Secrets / Environment variables documentation](https://install.doctor/docs/customization/secrets) which details how to store your Tabby configuration in as an encrypted file if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins/package.json" ]; then if [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins/node_modules" ]; then logg info 'Skipping Tabby plugin installation because it looks like the plugins were already installed since node_modules is present in ~/.config/tabby/plugins' else logg info 'Installing Tabby plugins defined in '"${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins/package.json"'' cd "${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins" npm install --quiet logg success 'Finished installing Tabby plugins' fi else logg info 'Skipping Tabby plugin installation because is not present' fi ansible:linux: professormanhattan.tabby apt: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.deb cask: tabby choco: tabby dnf: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.rpm github: github.com/Eugeny/tabby pacman: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.pacman tailscale: _app: Tailscale.app _bin: tailscale _desc: '[Tailscale](https://tailscale.com/) lets you easily manage access to private resources, quickly SSH into devices on your network, and work securely from anywhere in the world.' _docs: https://tailscale.com/kb/ _github: https://github.com/tailscale/tailscale _home: https://tailscale.com/ _name: Tailscale _post: | #!/usr/bin/env bash # @file Tailscale # @brief Connects the Tailscale client with the Tailscale network # @description # This script ensures the `tailscaled` system daemon is installed on macOS. Then, on both macOS and Linux, it connects to the Tailscale # network if the `TAILSCALE_AUTH_KEY` variable is provided. ### Install the Tailscale system daemon if [ -d /Applications ] && [ -d System ]; then ### macOS if command -v tailscaled > /dev/null; then logg info 'Ensuring tailscaled system daemon is installed' sudo tailscaled install-system-daemon logg info 'tailscaled system daemon is now installed and will load on boot' else logg info 'tailscaled does not appear to be installed' fi fi ### Connect to Tailscale network if command -v tailscale > /dev/null && [ "$TAILSCALE_AUTH_KEY" != "" ]; then logg info 'Connecting to Tailscale with user-defined authentication key' timeout 14 tailscale up --authkey="$TAILSCALE_AUTH_KEY" --accept-routes || EXIT_CODE=$? if [ -n "$EXIT_CODE" ]; then logg warn 'tailscale up timed out' else logg success 'Connected to Tailscale network' fi fi _service:brew: tailscale _service:pacman: tailscaled ansible: professormanhattan.tailscale brew: tailscale cask: tailscale choco: tailscale go: tailscale.com/cmd/tailscale{,d}@main mas: 1475387142 pacman: tailscale port: tailscale talksheet: _bin: talksheet _github: https://github.com/danthelion/talksheet _name: Talksheet pipx: talksheet taplo: _bin: taplo _desc: A TOML toolkit written in Rust that includes TOML formatting abilities _docker: docker run tamasfe/taplo _docs: https://taplo.tamasfe.dev/cli/introduction.html _github: https://github.com/tamasfe/taplo _home: https://taplo.tamasfe.dev/ _name: Taplo cargo: taplo-cli --locked npm: '@taplo/cli' tart: _bin: tart _github: https://github.com/cirruslabs/tart _todo: Verify that this installs properly (error on arm64 macOS) brew:darwin: cirruslabs/cli/gitlab-tart-executor task: _bin: task _desc: A task runner / simpler Make alternative written in Go _docs: https://taskfile.dev/usage/ _github: https://github.com/go-task/task _home: https://taskfile.dev _name: Task brew: go-task choco: go-task github: github.com/go-task/task go: github.com/go-task/task/v3/cmd/task@latest scoop: task taskwarrior: _bin: taskwarrior _github: https://github.com/GothenburgBitFactory/taskwarrior _name: Task Warrior apt: taskwarrior brew: - task - taskd - tasksh dnf: task emerge: task nix-env: taskwarrior pacman: task port: task sbopkg: task xbps: task zypper: taskwarrior teamviewer: _app: TeamViewer.app _bin: teamviewer _desc: '[TeamViewer](https://www.teamviewer.com/en-us/) is a proprietary software for remote access to as well as remote control and maintenance of computers and other devices, which was first released in 2005. The functionality has been expanded step by step, most recently for example through the integration of TeamViewer Meeting.' _docs: https://www.teamviewer.com/en-us/documents/ _github: Not open-source _home: https://www.teamviewer.com/en-us/ _name: TeamViewer ansible:linux: professormanhattan.teamviewer apt: https://download.teamviewer.com/download/linux/teamviewer_amd64.deb cask: teamviewer choco: teamviewer dnf: https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm yay: teamviewer zypper: https://download.teamviewer.com/download/linux/teamviewer-suse.x86_64.rpm telegram: _app: Telegram.app _github: https://github.com/telegramdesktop/tdesktop _bin: telegram _name: Telegram cask: telegram choco: telegram flatpak: org.telegram.desktop mas: 747648890 teleport: _bin: teleport _desc: '[Teleport](https://goteleport.com/) is a free and open-source tool that allows engineers and security professionals to unify access for SSH servers, Kubernetes clusters, web applications, and databases across all environments. It is an identity-aware, multi-protocol access proxy which understands SSH, HTTPS, Kubernetes API, MySQL and PostgreSQL wire protocols.' _github: https://github.com/gravitational/teleport _name: Teleport ansible: professormanhattan.teleport brew: teleport pkg: teleport yay: teleport-bin teller: _bin: teller _desc: Cloud native secrets management for developers - never leave your command line for secrets _github: https://github.com/tellerops/teller _name: teller brew: spectralops/tap/teller github: github.com/tellerops/teller temps: _bin: null _desc: Simple menubar application based on Electron with actual weather information and forecast _github: https://github.com/jackd248/temps _name: Temps github: github.com/jackd248/temps terminal-notifier: _bin: terminal-notifier _github: https://github.com/julienXX/terminal-notifier _name: Terminal Notifier brew:darwin: terminal-notifier terminalizer: _bin: terminalizer _desc: Record your terminal and generate animated gif images or share a web player _github: https://github.com/faressoft/terminalizer _home: https://www.terminalizer.com/ _name: terminalizer npm: terminalizer termius: _bin: termius _desc: '[Termius](https://www.termius.com/) is the SSH client that works on Desktop and Mobile.' _home: https://www.termius.com/ _name: Termius _github: false _post:binary:windows: | # TODO # TODO ansible: professormanhattan.termius binary:windows: https://autoupdate.termius.com/windows/Termius.exe brew: termius pipx: termius snap: termius-app yay: termius terraform: _github: https://github.com/hashicorp/terraform _deps: - tfenv terraform-ls: _bin: terraform-ls _desc: '[terraform-ls](https://github.com/tfutils/tfenv) is the official Terraform language server maintained by HashiCorp that provides IDE features to any LSP-compatible editor.' _docs: https://github.com/hashicorp/terraform-ls _github: https://github.com/hashicorp/terraform-ls _home: https://github.com/hashicorp/terraform-ls _name: terraform-ls _service: false brew: terraform-ls textql: _bin: textql _desc: CLI that allows you to execute SQL against structured text like CSV or TSV _docs: https://github.com/dinedal/textql _github: https://github.com/dinedal/textql _home: https://github.com/dinedal/textql _name: TextQL brew: textql go: github.com/dinedal/textql@master yay: textql-git tfenv: _bin: tfenv _desc: '[tfenv](https://github.com/tfutils/tfenv) is a Terraform version manager inspired by [rbenv](https://github.com/rbenv/rbenv). It supports macOS, Linux, and Windows.' _docs: https://github.com/tfutils/tfenv#usage _github: https://github.com/tfutils/tfenv _home: https://github.com/tfutils/tfenv _name: tfenv _post: | #!/usr/bin/env bash if command -v tfenv > /dev/null; then tfenv use latest fi ansible:darwin: professormanhattan.tfenv ansible:linux: professormanhattan.tfenv brew: tfenv port: tfenv yay: tfenv tflint: _bin: tflint _desc: '[tflint](https://github.com/terraform-linters/tflint) is a framework that can help in finding possible errors for major cloud providers, warn about deprecated syntax and unused declarations and enforce best practices. This role installs tflint on nearly any platform.' _github: https://github.com/terraform-linters/tflint _name: tflint ansible: professormanhattan.tflint brew: tflint choco: tflint github: github.com/terraform-linters/tflint tfsec: _bin: tfsec _github: https://github.com/aquasecurity/tfsec _name: Aqua TFSec brew: tfsec choco: tfsec scoop: tfsec tgpt: _bin: tgpt _github: https://github.com/aandrew-me/tgpt _name: Terminal GPT go: github.com/aandrew-me/tgpt/v2@latest scoop: https://raw.githubusercontent.com/aandrew-me/tgpt/main/tgpt.json yay: tgpt-bin thefuck: _bin: fuck _desc: Magnificent CLI tool that corrects your previous console command whenever something fails due to misspelling. _docs: https://github.com/nvbn/thefuck _github: https://github.com/nvbn/thefuck _home: https://github.com/nvbn/thefuck _name: The Fuck brew: thefuck crew: thefuck pacman: thefuck pipx: thefuck pkg-freebsd: thefuck thunderbird: _app: Thunderbird.app _bin: thunderbird _github: false cask: thunderbird choco: thunderbird flatpak: org.mozilla.Thunderbird tig: _bin: tig _desc: Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands _github: https://github.com/jonas/tig _home: https://jonas.github.io/tig/ _name: tig brew: tig nix: tig pkg: tig tigervnc: _bin: tigervncpasswd _github: https://github.com/TigerVNC/tigervnc _name: TigerVNC Server _ports: - port: 5900-5904 proto: tcp apt: tigervnc-standalone-server dnf: tigervnc-server pacman: tigervnc zypper: tigervnc tilt: _bin: tilt _desc: Define your dev environment as code. For microservice apps on Kubernetes _docs: https://docs.tilt.dev/ _github: https://github.com/tilt-dev/tilt _home: https://tilt.dev/ _name: tilt brew: tilt github: github.com/tilt-dev/tilt yay: tilt-bin timeshift: _bin: timeshift _desc: '[Timeshift](https://github.com/teejee2008/timeshift) is a free and open source system restore tool for Linux. Timeshift for Linux is an application that provides functionality similar to the System Restore feature in Windows and the Time Machine tool in Mac OS. Timeshift protects your system by taking incremental snapshots of the file system at regular intervals. These snapshots can be restored at a later date to undo all changes to the system.' _github: https://github.com/teejee2008/timeshift _home: https://teejeetech.com/timeshift/ _name: Timeshift _post: | #!/usr/bin/env bash # @file Timeshift Configuration # @brief Updates the Timeshift system configuration with the Timeshift configuration stored in the `home/dot_config/timeshift/timeshift.json` location. # @description # This script applies a Timeshift configuration that defines how Timeshift should maintain system backups. if command -v timeshift > /dev/null; then logg info 'Ensuring /etc/timeshift is a directory' sudo mkdir -p /etc/timeshift TIMESHIFT_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/timeshift/timeshift.json" logg info "Copying $TIMESHIFT_CONFIG to /etc/timeshift/timeshift.json" sudo cp -f "$TIMESHIFT_CONFIG" /etc/timeshift/timeshift.json else logg info 'The timeshift executable is not available' fi # Unavailable on CentOS Stream 9 # ansible:linux: professormanhattan.timeshift apt: timeshift dnf:fedora: timeshift yay: timeshift timewarrior: _bin: timew _github: https://github.com/GothenburgBitFactory/timewarrior _name: Time Warrior apt: timewarrior brew: timewarrior dnf: timew emerge: app-misc/timew nix-env: timewarrior pacman: timew tinypng: _bin: tinypng _desc: Handy command line tool for shrinking PNG images using the TinyPNG API _github: https://github.com/websperts/tinypng-cli _name: tinypng _service: null npm: tinypng-cli tldr: _bin: tldr _desc: Simplified and community-driven man pages _github: https://github.com/tldr-pages/tldr _home: https://tldr.sh/ _name: tldr brew: tldr npm: tldr tmate: _bin: tmate _github: https://github.com/tmate-io/tmate _name: tmate apt: tmate brew: tmate dnf: tmate emerge: app-misc/tmate opkg: tmate pacman: tmate pkg-freebsd: tmate pkg_add: tmate zypper: tmate tmux: _bin: tmux _desc: '[Tmux](https://github.com/tmux/tmux/wiki) is a terminal multiplexer. It enables a number of terminals to be created, accessed, and controlled from a single screen. Tmux may be detached from a screen and continue running in the background, then later reattached.' _docs: https://github.com/tmux/tmux/wiki _github: https://github.com/tmux/tmux _name: tmux ansible: professormanhattan.tmux apt: tmux brew: - awk - gnu-sed - perl - tmux tmuxinator: _bin: tmuxinator _desc: Manage complex tmux sessions easily _docs: https://github.com/tmuxinator/tmuxinator _github: https://github.com/tmuxinator/tmuxinator _home: https://github.com/tmuxinator/tmuxinator _name: Tmuxinator brew: tmuxinator tokei: _bin: tokei _desc: Tokei is a program that displays statistics about the code _github: https://github.com/XAMPPRocky/tokei _name: tokei apk: tokei brew: tokei cargo: tokei dnf:fedora: tokei github: github.com/XAMPPRocky/tokei pacman: tokei pkg: tokei scoop: tokei tomcat: _bin: catalina _github: https://github.com/apache/tomcat _name: Tomcat _post:darwin: | #!/usr/bin/env bash sed 's/8080/8180/g' /usr/local/etc/tomcat/server.xml > /usr/local/etc/tomcat/server.xml _post:linux: | #!/usr/bin/env bash sed 's/8080/8180/g' /usr/local/etc/tomcat/server.xml > /usr/local/etc/tomcat/server.xml _service: tomcat apt: tomcat brew: tomcat choco: tomcat dnf: tomcat pacman: tomcat toml-sort: _bin: toml-sort _desc: A Python module that auto-formats TOML files _docs: https://pypi.org/project/toml-sort/ _github: https://github.com/pappasam/toml-sort _home: https://pypi.org/project/toml-sort/ _name: TOML Sort pipx: toml-sort tor: _bin: tor _desc: "[Tor](https://www.torproject.org/) is free and open-source software for enabling anonymous communication by directing Internet traffic through a free, worldwide, volunteer overlay network consisting of more than seven thousand relays in order to conceal a user's location and usage from anyone conducting network surveillance or traffic analysis. On Linux you can combine Tor with [Privoxy](https://www.privoxy.org/) which allows you to tunnel all of your traffic through the Tor network." _docs: https://tb-manual.torproject.org/ _github: https://github.com/TheTorProject _home: https://www.torproject.org/ _name: TOR _post: | #!/usr/bin/env bash # @file Tor Configuration # @brief This script applies the Tor configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/tor/torrc` to the system and then restarts Tor # @description # Tor is a network that uses onion routing, originally published by the US Navy. It is leveraged by privacy enthusiasts # and other characters that deal with sensitive material, like journalists and people buying drugs on the internet. # This script: # # 1. Determines the system configuration file location # 2. Applies the configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/tor/torrc` # 3. Enables and restarts the Tor service with the new configuration # # ## Links # # * [Tor configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/tor/torrc) ### Determine the Tor configuration location by checking whether the system is macOS or Linux if [ -d /Applications ] && [ -d /System ]; then ### macOS TORRC_CONFIG_DIR=/usr/local/etc/tor else ### Linux TORRC_CONFIG_DIR=/etc/tor fi TORRC_CONFIG="$TORRC_CONFIG_DIR/torrc" ### Apply the configuration if the `torrc` binary is available in the `PATH` if command -v toron > /dev/null; then if [ -d "$TORRC_CONFIG_DIR" ]; then ### Copy the configuration from `${XDG_CONFIG_HOME:-$HOME/.config}/tor/torrc` to the system configuration file location sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/tor/torrc" "$TORRC_CONFIG" sudo chmod 600 "$TORRC_CONFIG" ### Enable and restart the Tor service if [ -d /Applications ] && [ -d /System ]; then ### macOS brew services restart tor else if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then ### Linux sudo systemctl enable tor sudo systemctl restart tor else logg info 'Environment is WSL so the Tor systemd service will not be enabled / restarted' fi fi else logg warn 'The '"$TORRC_CONFIG_DIR"' directory is missing' fi else logg warn 'toron is missing from the PATH' fi _restricted: true _service: tor _serviceEnabled: true ansible:linux: professormanhattan.tor apt: tor brew: tor dnf: tor pacman: tor port: tor tor-browser: _app: Tor Browser.app _bin: tor-browser _desc: Tor, short for The Onion Router, is free and open-source software for enabling anonymous communication. It directs Internet traffic through a free, worldwide, volunteer overlay network, consisting of more than seven thousand relays, to conceal a user's location and usage. _docs: https://www.torproject.org/docs/documentation.html.en _env: TOR_BROWSER_APPDATA: cask: "$HOME/Library/Application Support/TorBrowser-Data/Tor" choco: "TODO" flatpak: "TODO" _github: https://github.com/TheTorProject/gettorbrowser _home: https://www.torproject.org/ _name: Tor Browser _restricted: true cask: tor-browser choco: tor-browser flatpak: com.github.micahflee.torbrowser-launcher tradingview: _app: TradingView.app _bin: tradingview _github: https://github.com/tradingview/lightweight-charts _name: Trading View cask: tradingview msix: https://tvd-packages.tradingview.com/stable/latest/win32/TradingView.msix snap: tradingview translate: _bin: trans _desc: '[Translate Shell](https://github.com/soimort/translate-shell) (formerly Google Translate CLI) is a command-line translator powered by Google Translate (default), Bing Translator, Yandex.Translate, and Apertium. It gives you easy access to these translation engines in your terminal. It is feature-rich and, although there is some overlap, it complements [Normit](https://gitlab.com/megabyte-labs/ansible-roles/normit) well.' _github: https://github.com/soimort/translate-shell _name: Translate Shell ansible:darwin: professormanhattan.translate ansible:linux: professormanhattan.translate apt:ubuntu: translate-shell brew: translate-shell dnf: translate-shell pacman: translate-shell trayscale: _bin: trayscale _desc: Unofficial Menu Bar for Tailscale on Linux _github: https://github.com/DeedleFake/trayscale _name: Trayscale flatpak: dev.deedles.Trayscale tree: _bin: tree _desc: '[tree-cli](https://github.com/MrRaindrop/tree-cli) is a recursive directory listing program that produces a depth indented listing of files. With no arguments, tree lists the files in the current directory. When directory arguments are given, tree lists all the files and/or directories found in the given directories each in turn. Upon completion of listing all files/directories found, tree returns the total number of files and/or directories listed.' _name: tree-cli _github: https://github.com/MrRaindrop/tree-cli ansible: professormanhattan.tree apt: tree brew: tree choco: tree dnf: tree pacman: tree tree-sitter: _bin: tree-sitter _desc: CLI tool for creating and testing tree-sitter parsers _github: https://github.com/tree-sitter/tree-sitter-cli _name: tree-sitter-cli cargo: tree-sitter-cli trellis: _bin: trellis _desc: A CLI to manage Trellis projects _github: https://github.com/roots/trellis-cli _home: https://roots.io/trellis/ _name: trellis brew: roots/tap/trellis-cli trivy: _bin: trivy _desc: Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues _github: https://github.com/aquasecurity/trivy _name: trivy brew: trivy github: github.com/aquasecurity/trivy yay: trivy-bin trufflehog: _bin: trufflehog _desc: Find credentials all over the place _github: https://github.com/trufflesecurity/trufflehog _home: https://trufflesecurity.com/trufflehog/ _name: trufflehog brew: trufflesecurity/trufflehog/trufflehog trunk: _bin: trunk _desc: An all-in-one linter / code auto-fixer augmented by a freemium web service _docs: https://docs.trunk.io/ _github: false _home: https://trunk.io/ cask: trunk-io npm: '@trunkio/launcher' script: curl https://get.trunk.io -fsSL | bash -s -- -y ts2c: _bin: ts2c _desc: Convert Javascript/TypeScript to C _github: https://github.com/andrei-markeev/ts2c _name: ts2c npm: ts2c tunnelblick: _app: Tunnelblick.app _desc: Tunnelblick is a macOS menubar tray application that helps you control OpenVPN. _docs: https://tunnelblick.net/documents.html _github: https://github.com/Tunnelblick/Tunnelblick _home: https://tunnelblick.net/ _name: Tunnelblick cask: tunnelblick turbo: _bin: turbo _github: https://github.com/vercel/turbo _name: Turbo npm: turbo typescript: _bin: tsc _desc: TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale. _docs: https://www.typescriptlang.org/docs/ _github: https://github.com/microsoft/TypeScript _home: https://www.typescriptlang.org/ _name: TypeScript brew: typescript npm: tsc typescript-to-lua: _bin: tstl _github: https://github.com/TypeScriptToLua/TypeScriptToLua _name: TypeScript to Lua Converter npm: typescript-to-lua ugm: _bin: ugm _desc: A terminal based UNIX user and group browser _docs: https://github.com/ariasmn/ugm _github: https://github.com/ariasmn/ugm _home: https://github.com/ariasmn/ugm _name: ugm go: github.com/ariasmn/ugm@latest ulauncher: _bin: ulauncher _desc: '[Ulauncher](https://ulauncher.io/) is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel. The packages, called ulaunchers, and the tool for using them, ulauncher, work across a range of Linux distributions and allow upstream software developers to distribute their applications directly to users. Ulaunchers are self-contained applications running in a sandbox with mediated access to the host system.' _docs: https://docs.ulauncher.io/ _github: https://github.com/Ulauncher/Ulauncher/ _home: https://ulauncher.io/ _name: Ulauncher ansible: professormanhattan.ulauncher ultra: _bin: ultra _desc: Ultra fast monorepo script runner and build tool _docs: https://github.com/folke/ultra-runner _github: https://github.com/folke/ultra-runner _home: https://www.npmjs.com/package/ultra-runner _name: Ultra Task Runner npm: ultra-runner unbuffer: _bin: unbuffer _name: Unbuffer _github: false apt: unbuffer # expect package on Homebrew contains unbuffer brew: expect dnf: unbuffer pacman: unbuffer unikraft: _bin: kraft _github: https://github.com/unikraft/unikraft _name: Unikraft brew: unikraft/cli/kraftkit script: curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh unison: _bin: unison _github: https://github.com/bcpierce00/unison _name: Unison brew: unison choco: unison up: _bin: up _desc: up, which is short for [Ultimate Plumber](https://github.com/akavel/up), is a tool for writing Linux pipes in a terminal-based UI interactively, with an instant live preview of command results. _github: https://github.com/akavel/up _name: Ultimate Plumber (up) ansible: professormanhattan.up brew: up github: github.com/akavel/up pkg: up yay: up upscayl: _bin: upscayl _github: https://github.com/upscayl/upscayl _name: Upscayl _todo: Recheck for Homebrew Cask appimage: Upscayl choco: upscayl flatpak: org.upscayl.Upscayl snap: upscayl upt: _bin: upt _desc: Universal package-management tool for Windows, macOS and Linux _github: https://github.com/sigoden/upt _name: upt cargo: upt 'cargo:': upt upx: _bin: upx _desc: '[UPX](https://upx.github.io/) is an advanced executable file compressor. UPX will typically reduce the file size of programs and DLLs by around 50%-70%, thus reducing disk space, network load times, download times and other distribution and storage costs. It supports compressing a wide variety of binary-like files. Surprisingly, it even compresses executables better than WinZip. Best of all, it is free and open source.' _docs: https://github.com/upx/upx _github: https://github.com/upx/upx _home: https://upx.github.io/ _name: UPX ansible: professormanhattan.upx apt: upx brew: upx choco: upx dnf:fedora: upx pacman: upx port: upx scoop: upx usql: _bin: usql _github: https://github.com/xo/usql _name: Universal SQL CLI brew: xo/xo/usql choco: usql go: github.com/xo/usql@latest scoop: usql util-linux: _github: false _bin: - cal - chmem - hexdump apt: util-linux dnf: util-linux pacman: util-linux utm: _app: UTM.app _bin: utm _github: https://github.com/utmapp/UTM _name: UTM cask: utm vagrant: _bin: vagrant _desc: '[Vagrant](https://www.vagrantup.com/) is an open-source software product for building and maintaining portable virtual software development environments (e.g., for VirtualBox, KVM, Hyper-V, Docker containers, VMware, and AWS).' _docs: https://www.vagrantup.com/docs _github: https://github.com/hashicorp/vagrant _home: https://www.vagrantup.com/ _name: Vagrant ansible: professormanhattan.vagrant apt: vagrant brew: hashicorp/tap/vagrant cask: vagrant choco: vagrant dnf:fedora: vagrant pacman: vagrant scoop: vagrant vagrant-manager: _app: Vagrant Manager.app _bin: null _desc: Status bar menu application that allows you to manage Vagrant available on macOS and Windows _docs: https://github.com/lanayotech/vagrant-manager _github: https://github.com/lanayotech/vagrant-manager _home: https://www.vagrantmanager.com/ _name: Vagrant Manager cask: vagrant-manager choco: vagrant-manager vagrant-vmware-utility: _bin: false _name: Vagrant VMWare Utility _github: https://github.com/hashicorp/vagrant-vmware-desktop _post:cask: | #!/usr/bin/env bash sudo ln -s /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility /usr/local/bin/vagrant-vmware-utility _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 _github: https://github.com/errata-ai/vale _name: Vale 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 ansible: professormanhattan.vault brew: hashicorp/tap/vault yay: vault-cli vdirsyncer: _bin: vdirsyncer _github: https://github.com/pimutils/vdirsyncer _name: vdirsyncer _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 # Unlisted on their website and formulae didn't seem to be registering the bin in the PATH 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 brew: velero choco: velero github: github.com/vmware-tanzu/velero yay: velero-bin vermin: _bin: vermin _github: https://github.com/mhewedy/vermin _name: Vermin 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 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 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 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 < /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 ansible: professormanhattan.volta brew: volta scoop: volta vpn: _bin: null _github: false _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. _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 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 _github: https://github.com/VSCodium/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 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 _github: https://github.com/vup-app/vup 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 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.' _name: Wails _github: https://github.com/wailsapp/wails ansible: professormanhattan.wails go: github.com/wailsapp/wails/cmd/wails@latest wallpaper-cli: _bin: wallpaper _github: https://github.com/sindresorhus/wallpaper-cli _name: Wallpaper CLI npm: wallpaper-cli warp: _app: Cloudflare WARP.app _bin: warp-cli _github: false _desc: '[Cloudflare WARP Client](https://cloudflarewarp.com/) is a free app that makes your Internet safer' _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 certifi else logg info 'Ensuring certifi is installed globally for Python 3' pip3 install 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 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 apk: watchexec # Apt is from an unofficial channel # apt: 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 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 ansible: professormanhattan.waypoint brew: hashicorp/tap/waypoint scoop: waypoint wazuh: # TODO: Add logic to .chezmoiscripts that ensures the proper Wazuh settings are in place _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 _when:darwin: '! 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 _github: https://github.com/mozilla/web-ext _name: Web Extension CLI by Mozilla npm: web-ext web-font-generator: _bin: web-font-generator _github: https://github.com/rafaelmardojai/webfont-kit-generator flatpak: com.rafaelmardojai.WebfontKitGenerator webpquicklook: _github: https://github.com/emin/WebPQuickLook _name: QLWebP _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 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 cask: webtorrent choco: webtorrent-desktop flatpak: io.webtorrent.WebTorrent github: github.com/webtorrent/webtorrent-desktop yay: webtorrent-desktop wego: _bin: wego _github: https://github.com/schachmat/wego _name: WeGo brew: wego go: github.com/schachmat/wego@latest wetty: _bin: wetty _github: https://github.com/butlerx/wetty _name: Wetty 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. _home: https://www.gnu.org/software/wget/ _name: wget _github: false ansible: professormanhattan.wget apk: wget apt: wget brew: wget dnf: wget # whalebrew: whalebrew/wget # Temporarily commentted out for debugging 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 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 _github: https://github.com/rafaelrinaldi/whereami _name: Where Am I? 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 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 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 go: github.com/masterzen/winrm-cli@latest yay: winrm-cli-git winui-gallery: _github: https://github.com/microsoft/WinUI-Gallery _name: WinUI Gallery winapp: winui-3-gallery/9P3JFPWWDZRC wipe-modules: _bin: wipe-modules _github: https://github.com/bntzio/wipe-modules _name: wipe-modules npm: wipe-modules wireguard-client: _app: WireGuard.app _bin: wireguard-client _github: https://github.com/WireGuard/wireguard-monolithic-historical _deps: - wireguard-tools _name: WireGuard Client choco: wireguard mas: 1451685025 scoop: wireguard-np wireguard-tools: _bin: wg _name: WireGuard Tools _github: https://github.com/WireGuard/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 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 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 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 # CentOS Stream 9 does not have a supported GitHub release available # ansible: professormanhattan.wkhtmltopdf 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 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 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 ansible:darwin: professormanhattan.wpcli ansible:linux: professormanhattan.wpcli brew: wp-cli wpfui: _github: https://github.com/lepoco/wpfui _name: WPF UI 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 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 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 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 #script:darwin: | # echo "NOTE - This may not work headlessly due to requirement of 2FA" # ### Load AWS secrets # source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/private.sh" # ### Setup passwordless sudo # if ! sudo cat /etc/sudoers | grep '# TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL' > /dev/null; then # if [ -n "$SUDO_PASSWORD" ]; then # printf '%s\n' "$SUDO_PASSWORD" | sudo -p "" -S echo "$(whoami) ALL=(ALL:ALL) NOPASSWD: ALL # TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL" | sudo tee -a /etc/sudoers # else # echo "$(whoami) ALL=(ALL:ALL) NOPASSWD: ALL # TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL" | sudo tee -a /etc/sudoers # fi # fi # ### Remove old files # echo "Removing old ~/.xcodeinstall folder" # rm -rf ~/.xcodeinstall # ### Authenticate # echo "Authenticating" # xcodeinstall authenticate -s "$AWS_DEFAULT_REGION" # ### Download files # while read XCODE_DOWNLOAD_ITEM; do # if [[ "$XCODE_DOWNLOAD_ITEM" != *"Command Line Tools"* ]]; then # DOWNLOAD_ID="$(echo "$XCODE_DOWNLOAD_ITEM" | sed 's/^\[\(.*\)\] .*/\1/')" # echo "Downloading $XCODE_DOWNLOAD_ITEM" # echo "$DOWNLOAD_ID" | xcodeinstall download -s "$AWS_DEFAULT_REGION" # fi # done < <(xcodeinstall list -s "$AWS_DEFAULT_REGION" | grep --invert-match 'Release Candidate' | grep --invert-match ' beta ' | grep ' Xcode \d\d ') # ### Install Xcode # echo "Installing Xcode" # xcodeinstall install --name "$(basename "$(find ~/.xcodeinstall/download -maxdepth 1 -name "*.xip")")" # ### Install Command Line Tools # # Commentted out because it is already installed by xcode-select in the provision.sh script # # xcodeinstall install --name "$(basename "$(find ~/.xcodeinstall/download -maxdepth 1 -name "*Command Line Tools*")")" # ### Install Additional Tools # echo "Installing Additional Tools" # while read ADDITIONAL_TOOLS; do # hdiutil attach "$ADDITIONAL_TOOLS" # rm -rf "/Applications/Additional Tools" # cp -rf "/Volumes/Additional Tools" "/Applications/Additional Tools" # hdiutil detach "$(find /Volumes -name "Additional Tools")" # done < <(find ~/.xcodeinstall/download -name "Additional Tools*") # ### Install Font Tools # echo "Installing Font Tools" # while read FONT_TOOLS; do # hdiutil attach "$FONT_TOOLS" # cd "$(find /Volumes -maxdepth 1 -name "*Font Tools*")" # sudo installer -pkg "$(find . -maxdepth 1 -name "*Font Tools*.pkg")" -target / # cd / && hdiutil detach "$(find /Volumes -maxdepth 1 -name "*Font Tools*")" # done < <(find ~/.xcodeinstall/download -name "Font Tools*") # ### Remove cache / downloaded files # rm -rf ~/.xcodeinstall # ### Remove passwordless sudo # if ! command -v gsed > /dev/null; then # brew install gnu-sed # fi # sudo gsed -i '/# TEMPORARY FOR INSTALL DOCTOR XCODEINSTALL/d' /etc/sudoers xcodeinstall: _bin: xcodeinstall _github: https://github.com/sebsto/xcodeinstall _name: Xcode Install 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 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 cask: xcodes xcpretty: _bin: xcpretty _github: https://github.com/xcpretty/xcpretty _name: xcpretty gem:darwin: xcpretty xdotool: _bin: xdotool _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 apt: xdotool brew: xdotool dnf: xdotool pacman: xdotool pkg-freebsd: xdotool port: xdotool zypper: xdotool xh: _bin: xh _github: https://github.com/ducaale/xh _name: XH 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 _github: https://github.com/machyve/xhyve _name: xhyve _notes: Has not been modified for several years and has been disabled on Homebrew brew:darwin: xhyve port: xhyve xpanes: _bin: xpanes _github: https://github.com/greymd/tmux-xpanes _name: xpanes 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 _github: https://github.com/Xpra-org/xpra _name: xpra 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 _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 apt: xrdp dnf: xrdp pacman: xrdp yay: xrdp zypper: xrdp xsv: _bin: xsv _github: https://github.com/BurntSushi/xsv _name: xsv 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 brew: xurls go: mvdan.cc/xurls/v2/cmd/xurls@latest xxh: _bin: xxh _github: https://github.com/xxh/xxh _name: xxh brew: xxh pipx: xxh-xxh port: xxh xz: _bin: xz _github: https://github.com/xz-mirror/xz _name: xz 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 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 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 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 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 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 brew: yj go: github.com/sclevine/yj/v5@v5.1.0 you-get: _bin: you-get _github: https://github.com/soimort/you-get _name: You-Get 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 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/ _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 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 _github: https://github.com/yt-dlp/yt-dlp/wiki/Installation _name: YouTube Download 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 _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 _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 _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. _home: https://www.yubico.com/products/yubico-authenticator/ _github: https://github.com/Yubico/yubioath-flutter _name: Yubico Authenticator 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 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 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 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 cask: zap choco: zap flatpak: org.zaproxy.ZAP pkg-freebsd: zaproxy scoop: zaproxy snap: zaproxy --classic zenity: _bin: zenity _github: https://github.com/ncruces/zenity _name: Zenity 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 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 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 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 ansible:darwin: professormanhattan.zsh ansible:linux: professormanhattan.zsh apt: zsh brew: zsh dnf: zsh pacman: zsh port: zsh zsh-completions: _github: https://github.com/zsh-users/zsh-completions _name: ZSH Completions 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 brew: zx npm: zx