install.fairie/software.yml
2024-04-03 04:22:04 +00:00

15235 lines
1 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
installerPreference:
apt:
- flatpak
- snap
- whalebrew
- apt
- brew
- go
- cargo
- npm
- pipx
- pip
- gem
- appimage
- script
- ansible
- binary
darwin:
- whalebrew
- cask
- brew
- 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:
_deps:
- kde-plasma-desktop
_github: false
_misc-flatpaks:
_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
- 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
_github: false
_nautilus-extensions:
_deps:
- nautilus-brasero
- nautilus-gtkhash
- nautilus-gsconnect
- nautilus-image-converter
- nautilus-python
- nautilus-seahorse
- nautilus-search-tool
- nautilus-share
- nautilus-wipe
_github: false
ack:
_bin: ack
_desc: "Ack is a tool similar to grep but optimized for searching code. Ack 3 is the latest version of this tool. It is designed to be fast, easy to use, and specifically tailored for searching large codebases.\nIt supports various file types, ignores version control directories, and has built-in filtering options. Ack 3 is written in Perl and is known for its speed and simplicity in searching through code \nfiles. It's a popular choice among developers for efficiently searching and navigating codebases. "
_github: https://github.com/beyondgrep/ack3
_name: Ack
_short: "ack is a code-searching tool similar to grep, optimized for programmers. "
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
_short: "act is a tool that allows you to run GitHub Actions locally. "
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
_github: false
_name: Adobe Creative Cloud
_when:cask: '! test -d "/Applications/Adobe Creative Cloud" && ! test -d "$HOME/Applications/Adobe Creative Cloud"'
cask: adobe-creative-cloud
ai-shell:
_bin: ai
_desc: "The repository at https://github.com/BuilderIO/ai-shell appears to be related to a project called \"ai-shell\" by BuilderIO. It seems to be a shell script that provides various AI-related functionalities \nor tools. Without further details or examining the repository, it's likely designed to assist with tasks related to artificial intelligence within a shell environment. For more specific information, you\nmay want to explore the repository's documentation, code, and README file. "
_github: https://github.com/BuilderIO/ai-shell
_name: AI Shell
_short: "ai-shell is a tool that enhances your shell with AI capabilities, allowing for intelligent auto-completions and suggestions while working in the terminal. "
npm: "@builder.io/ai-shell"
aiac:
_bin: aiac
_desc: "aiac is a Go library developed by gofireflyio that provides a simple and efficient way to interact with the Apple iCloud service. It allows developers to access iCloud services like Find My iPhone, \niCloud Contacts, iCloud Calendar, and iCloud Reminders programmatically using Go. The library supports features such as authentication, device tracking, and interacting with iCloud data. It can be \nuseful for developers looking to integrate iCloud functionality into their Go applications. "
_github: https://github.com/gofireflyio/aiac
_name: AIAC
_short: "aiac is a Go library for building AI applications with a focus on simplicity and ease of use. "
brew: gofireflyio/aiac/aiac
go: github.com/gofireflyio/aiac/v3@latest
aicommits:
_bin: aicommits
_desc: "The repository at https://github.com/Nutlope/aicommits appears to be a project related to artificial intelligence commits. It likely contains code, documentation, or resources related to AI development \nor version control of AI projects. To get a more detailed understanding, you can explore the repository's contents, such as the README file, code files, and any documentation provided. "
_github: https://github.com/Nutlope/aicommits
_name: AI Commits
_short: "aicommits is a tool for analyzing and visualizing AI-related commits on GitHub. "
brew: aicommits
npm: aicommits
aider:
_bin: aider
_desc: "Aider is a GitHub repository created by Paul Gauthier. Unfortunately, without further context or access to the repository, I cannot provide specific details about its contents. To learn more about the \nproject, you can visit the repository link provided and explore the code, documentation, and any other resources available there. "
_github: https://github.com/paul-gauthier/aider
_name: Aider AI Chat
_short: "aider is a tool for generating documentation from your Python code. "
pipx: aider-chat
aifiles:
_bin: aifiles
_deps:
- pandoc
- exiftool
- poppler
- csvkit
_desc: "Repository Description: \n\nThe repository at https://github.com/jjuliano/aifiles contains a collection of AI-related files. These files likely include code, models, datasets, or other resources related to artificial intelligence.\nIt seems to be a valuable resource for individuals interested in AI development, research, or learning. You can explore the repository to access and utilize the AI files provided by the owner. "
_github: https://github.com/jjuliano/aifiles
_name: AI Files
_short: "aifiles is a repository containing various AI-related files and resources. "
_todo: Implement this when XDG spec is supported so we can store configs in ~/.config
npm: aifiles
airdrop-cli:
_bin: airdrop
_desc: "Airdrop-cli is a command-line tool available on GitHub at https://github.com/vldmrkl/airdrop-cli. It allows users to easily send files between Mac devices using AirDrop from the terminal. This tool \nsimplifies the process of sharing files wirelessly by providing a command-line interface for initiating AirDrop transfers. It can be a handy tool for users who prefer working with the terminal and want \na quick way to transfer files between their Mac devices without using the graphical interface. "
_github: https://github.com/vldmrkl/airdrop-cli
_name: Airdrop CLI
_short: "airdrop-cli is a command-line tool for transferring files using Apple's AirDrop feature. "
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
_desc: "Alda is a music programming language for musicians to write and play music. It allows users to compose music using text-based commands and play it back instantly. Alda is designed to be simple and \nintuitive, making it easy for both beginners and experienced musicians to create music. It supports various musical elements like notes, rhythms, chords, and more. The code written in Alda can be saved \nas text files, making it easy to share and collaborate on musical compositions. It is a versatile tool for music enthusiasts looking to experiment with music composition in a unique way. "
_github: https://github.com/alda-lang/alda
_name: Alda
_short: "Alda is a music programming language for musicians and programmers to create music using text-based commands. "
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<version>/bin/allure
_post:binary:windows: |
# TODO
_short: "Allure2 is a flexible test reporting tool that provides clear and concise test execution reports with rich visual representations. "
binary: https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.20.1/allure-commandline-2.20.1.zip
brew: allure
scoop: allure
yay: allure
alt-tab:
_app: AltTab.app
_bin: alt-tab
_desc: "alt-tab-macos is a tool created by lwouis on GitHub. It enhances the macOS app switcher by providing a more Windows-like experience with Alt-Tab functionality. This tool allows users to cycle through \nopen applications using the Alt-Tab key combination, making it easier to switch between apps quickly. It is designed to improve productivity and streamline the app-switching process on macOS systems. \nUsers looking for a more efficient way to navigate between applications may find this tool useful. "
_github: https://github.com/lwouis/alt-tab-macos
_name: Alt+Tab for macOS that works like alt+tab on Windows
_short: "alt-tab-macos is a tool that brings Windows-like alt-tab functionality to MacOS, allowing users to switch between applications more easily. "
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
_short: "Altair is a powerful GraphQL client for making API requests and exploring schemas visually. "
cask: altair-graphql-client
choco: altair-graphql
snap: altair
yay: altair
amethyst:
_app: Amethyst.app
_bin: amethyst
_desc: "Amethyst is a tiling window manager for macOS that allows users to organize and manage their windows efficiently. It enables users to resize and arrange windows using keyboard shortcuts, improving \nproductivity by eliminating the need to manually adjust window sizes. Amethyst supports multiple layouts and customizable key bindings, providing a flexible window management solution for macOS users. \nIt is open-source and available on GitHub at https://github.com/ianyh/Amethyst. "
_github: https://github.com/ianyh/Amethyst
_name: Amethyst
_short: "Amethyst is a tiling window manager for macOS. "
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
_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
_github: false
_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
_short: "Angular is an open-source web application framework maintained by Google for building dynamic single-page applications. "
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
if [ ! -f "${XDG_CACHE_HOME:-$HOME/.cache}/installx/ansible-post" ]; then
pipx inject ansible PyObjC PyObjC-core docker lxml netaddr pexpect python-vagrant pywinrm requests-credssp watchdog
touch "${XDG_CACHE_HOME:-$HOME/.cache}/installx/ansible-post"
else
logg info 'Ansible and dependencies already installed'
fi
_short: "Ansible is an open-source automation tool that simplifies IT orchestration, configuration management, and application deployment. "
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
_short: "ansible-lint is a tool that checks playbooks for practices and behavior that could potentially be improved. "
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
_short: "ansibleconnect is a repository for Ansible playbooks and roles created by psykulsk. "
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
_short: "Ansibler is a tool for managing Ansible playbooks and roles in a structured way. "
pipx: ansibler
ansifilter:
_bin: ansifilter
_github: false
_name: Ansifilter
brew: ansifilter
choco: ansifilter
port: ansifilter
apktool:
_bin: apktool
_desc: "Apktool is a popular open-source tool used for reverse engineering Android APK files. It allows users to decompile, modify, and recompile APK files, making it easier to analyze and understand the inner \nworkings of Android applications. Apktool is commonly used by developers, security researchers, and enthusiasts to explore and customize APKs. It supports decoding resources, smali code, and manifest \nfiles, enabling users to make changes to APKs without access to the original source code. Overall, Apktool is a valuable tool for Android application analysis and modification. "
_github: https://github.com/iBotPeaches/Apktool
_name: APKTool
_short: "Apktool is a tool for reverse engineering Android APK files. "
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
_short: "Appium is an open-source automation tool for testing mobile, web, and hybrid applications. "
brew: appium
npm: appium
appium-desktop:
_app: Appium Server GUI.app
_bin: appium-desktop
_desc: "Appium Desktop is an open-source app that provides a graphical interface for Appium, an automation tool for testing mobile applications. It allows users to easily set up and run Appium server, inspect \nmobile apps, and write and run test scripts. Appium Desktop simplifies the process of creating and running automated tests for mobile apps across different platforms like iOS and Android. It is a \nvaluable tool for mobile app developers and testers looking to automate their testing processes. "
_github: https://github.com/appium/appium-desktop
_name: Appium Desktop
_short: Appium Desktop is a graphical interface for Appium, an open-source tool for automating mobile app testing. It provides a user-friendly way to interact with Appium server and inspect your app's elements.
appimage: appium/appium-desktop
cask: appium
choco: appium-desktop
appium-inspector:
_app: Appium Inspector.app
_bin: appium-inspector
_desc: "Appium Inspector is a tool provided by Appium, an open-source automation framework for mobile apps. It allows users to inspect elements of mobile applications for testing purposes. With Appium \nInspector, you can view the structure of your app's UI elements, locate elements using various selectors, and generate test scripts. It provides a graphical interface for inspecting elements across \ndifferent platforms like iOS and Android, making it easier for testers and developers to interact with mobile apps during the automation testing process. "
_github: https://github.com/appium/appium-inspector
_name: Appium Inspector
_short: "Appium Inspector is a tool for inspecting and recording interactions with mobile apps for testing purposes. "
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
_short: "Description: \nA GitHub repository for the readme-md-generator tool by Andreas Baum. "
npm: "@appnest/readme"
apprise:
_bin: apprise
_deps:
- pywin32
- terminal-notifier
_desc: "Apprise is a Python library that simplifies the process of sending notifications to multiple messaging services. It supports various notification services like Slack, Discord, Telegram, and more. With \nApprise, you can easily integrate notifications into your scripts or applications by providing a unified interface to interact with different messaging platforms. It's a convenient tool for developers \nand system administrators to streamline their notification workflows. "
_github: https://github.com/caronc/apprise
_name: Apprise
_short: "Apprise is a Python library that simplifies sending notifications to multiple messaging services. "
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
_short: "apt-cacher-ng is a caching proxy for software packages, primarily used in Debian-based systems like Ubuntu. It helps in saving bandwidth and speeding up package installations by caching downloaded \npackages locally. "
_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
_short: "Aqua is a tool for secure and efficient container image scanning. "
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
_desc: "Arduino IDE is an open-source integrated development environment (IDE) for programming Arduino boards. It provides a user-friendly interface for writing, compiling, and uploading code to Arduino \ndevices. The IDE supports various Arduino boards and libraries, making it easy for both beginners and advanced users to develop projects. It is written in C++ and uses the Electron framework. The GitHub\nrepository contains the source code, issue tracker, and documentation for the Arduino IDE, allowing users to contribute, report bugs, and stay updated on the latest developments. "
_github: https://github.com/arduino/arduino-ide
_name: "arduino-ide "
_short: "The Arduino IDE is an open-source software used for programming Arduino boards. "
cask: arduino
choco: arduino
flatpak: cc.arduino.IDE2
argc:
_bin: argc
_desc: "argc is a command-line argument parser for C/C++ programs, available at https://github.com/sigoden/argc. It simplifies the process of parsing command-line arguments in C/C++ programs by providing a \nclean and easy-to-use interface. It allows developers to define options, flags, and arguments with minimal boilerplate code. This library can be useful for developers looking to quickly implement \ncommand-line argument parsing in their C/C++ projects without having to write complex parsing logic from scratch. "
_github: https://github.com/sigoden/argc
_name: Argc
_short: "argc is a command-line argument parser for C/C++ programs. "
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
_short: "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. "
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
_short: "aria2 is a lightweight multi-protocol & multi-source command-line download utility. "
ansible: professormanhattan.aria
apt: aria2
brew: aria2
choco: aria2
dnf:fedora: aria2
pacman: aria2
port: aria2
scoop: aria2
ariang:
_app: AriaNg Native.app
_desc: "AriaNg is a lightweight web frontend for the popular download utility Aria2. It provides a clean and intuitive interface for managing downloads through a web browser. Users can add, pause, resume, and \nremove downloads easily. AriaNg supports multiple languages, customizable themes, and can be accessed from various devices. It is a great tool for remotely managing downloads on a server or personal \ncomputer. "
_github: https://github.com/mayswind/AriaNg
_name: "AriaNg "
_short: "AriaNg is a lightweight web frontend for Aria2 that allows you to manage downloads through a web interface. "
cask: ariang
arping:
_bin: arping
_desc: "arping is a utility that allows users to send ARP (Address Resolution Protocol) requests and receive responses. It is commonly used to discover and verify network connectivity and address resolution on \na local network. The tool is helpful for troubleshooting network issues, detecting duplicate IP addresses, and testing network configurations. The GitHub repository for arping, maintained by Thomas \nHabets, likely contains the source code, documentation, and possibly discussions or issues related to the tool's development and usage. "
_github: https://github.com/ThomasHabets/arping
_name: ARPing
_short: "arping is a tool for sending ARP (Address Resolution Protocol) requests and measuring the time taken to receive a response. It helps in troubleshooting network connectivity and detecting duplicate IP \naddresses. "
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
_short: "asciinema is a tool for recording and sharing terminal sessions. "
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
_short: "asdf is a tool for managing multiple runtime versions like Node.js, Ruby, Python, etc., in a single environment. "
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
_short: "assh is a tool that simplifies SSH configuration management by allowing you to define host aliases and settings in a single YAML file. "
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
_post: |
#!/usr/bin/env bash
echo "Waiting on command that installs nvim plugins"
# bash -ci "nvim --headless -c 'quitall'"
_short: "AstroNvim is a plugin for Neovim that provides astronomy-related features and tools for users interested in astronomy while coding. "
atuin:
_bin: atuin
_desc: "Atuin is a tool for managing AWS infrastructure using a simple command-line interface. It allows users to create, update, and delete AWS resources like EC2 instances, security groups, and S3 buckets \nusing a declarative configuration file. Atuin aims to simplify AWS infrastructure management by providing a user-friendly interface and automating common tasks. It is written in Go and is open-source, \navailable on GitHub at https://github.com/ellie/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 login -u "$ATUIN_USERNAME" -p "$ATUIN_PASSWORD" -k "$ATUIN_KEY"
atuin import auto
atuin sync
_short: "Atuin is a command-line tool for managing macOS windows. "
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
_short: "Audacity is an open-source audio editing software for recording and editing sounds. "
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
_short: "auto-install is a tool that automatically installs dependencies for your Node.js projects based on the packages you import in your code. "
npm: auto-install
autodoc:
_bin: doc
_desc: "AutoDoc is a tool developed by Context Labs available on GitHub at https://github.com/context-labs/autodoc. It is designed to automatically generate API documentation from source code comments. This \ntool can help streamline the documentation process by extracting information from code comments and presenting it in a structured format. It supports various programming languages and can be a useful \ntool for developers looking to maintain up-to-date and consistent API documentation alongside their codebase. "
_github: https://github.com/context-labs/autodoc
_name: Autodoc
_short: "AutoDoc is a tool for generating API documentation from source code comments. "
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
_short: "AutoKey is a powerful automation tool for keyboard shortcuts and text expansion on Linux and Unix-like systems. "
ansible:linux: professormanhattan.autokey
ansible:windows: professormanhattan.autokey
apt: autokey
choco: autohotkey
dnf: autokey
yay: autokey-gtk
automake:
_bin: automake
_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
_github: false
_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
_short: "AutoRestic is a tool that simplifies and automates backups using Restic, a fast, secure, and efficient backup program. "
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
_short: "aws-shell is an interactive command-line interface for AWS services, allowing users to manage their AWS resources directly from the terminal. "
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
_short: "AWS CLI is a unified tool to manage AWS services through the command line. "
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
_short: "AWX is an open-source automation platform that provides a web-based user interface, REST API, and task engine built on top of Ansible. "
ansible: professormanhattan.awxcli
pipx: https://releases.ansible.com/ansible-tower/cli/ansible-tower-cli-latest.tar.gz
axel:
_bin: axel
_desc: "Axel is a lightweight command-line download accelerator for Linux and Unix-like systems. It splits downloads into multiple parts and downloads them simultaneously, which can result in faster download \nspeeds. It supports HTTP, HTTPS, and FTP protocols, allows for resuming interrupted downloads, and provides progress indicators during downloads. Axel is known for its simplicity and efficiency in \nspeeding up file downloads, making it a popular choice for users looking to optimize their download speeds from the command line. "
_github: https://github.com/axel-download-accelerator/axel
_name: Axel
_short: "Axel is a command-line download accelerator for Linux and Unix-like systems. "
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
_short: "Azure CLI is a command-line tool for managing Azure resources. "
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
_short: "Azure Functions Core Tools is a command-line interface for Azure Functions, enabling local development and testing of serverless functions. "
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
_desc: "Backup is an open-source Ruby gem that provides a DSL for performing backups and restoring data. It supports various storage destinations like Amazon S3, Dropbox, FTP, and more. Backup allows you to \nschedule backups, encrypt data, and perform database backups for MySQL, PostgreSQL, and MongoDB. It also supports notifications via email or Slack. It's a versatile tool for automating backup processes \nin a customizable and efficient manner. "
_github: https://github.com/backup/backup
_name: Backup
_short: "Backup is an open-source backup system for Unix-like systems, including macOS. It allows you to easily perform backups and store them on various cloud storage services. "
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
_short: "Etcher is an open-source tool for burning images to SD cards and USB drives, making it easy to create bootable media for operating systems like Linux distributions or Raspberry Pi OS. "
ansible:linux: professormanhattan.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
_short: "bandwhich is a terminal bandwidth utilization tool for Linux and macOS. "
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
_short: "Bane is a tool for testing network services and applications for security vulnerabilities. "
github: github.com/genuinetools/bane
go: github.com/genuinetools/bane@latest
barrier:
_app: Barrier.app
_bin: barrier
_desc: "Barrier is an open-source software that allows you to share your mouse and keyboard between multiple computers with different operating systems. It enables you to control multiple machines with a single\nset of input devices seamlessly. Barrier supports Windows, macOS, and Linux operating systems, making it a versatile tool for users who work across different platforms. It is a convenient solution for \nstreamlining workflows and improving productivity by eliminating the need for multiple sets of input devices. "
_github: https://github.com/debauchee/barrier
_name: Barrier
_short: "Barrier is an open-source software that allows you to share your mouse and keyboard between multiple computers. "
_todo: TODO
cask: barrier
choco: barrier
flatpak: com.github.debauchee.barrier
bash-completion:
_bin: null
_desc: "bash-completion is a project on GitHub that provides programmable completion for the Bash shell. It offers completion scripts for various commands, making it easier for users to quickly and accurately \ncomplete command line inputs. These scripts enhance the usability of the Bash shell by providing suggestions and auto-completion for commands, options, and arguments. The project is actively maintained \nand allows users to contribute their own completion scripts for different commands and utilities. It's a useful tool for improving productivity and efficiency when working in a Bash environment. "
_docs: https://docs.brew.sh/Shell-Completion
_github: https://github.com/scop/bash-completion
_name: Bash Completion Formula
_short: "bash-completion is a tool for enhancing tab completion in the Bash shell. "
apt: bash-completion
brew: bash-completion@2
dnf: bash-completion
pacman: bash-completion
bashly:
_bin: bashly
_desc: "Bashly is a tool that helps in creating Bash command-line applications with ease. It allows developers to define the structure of their command-line interface using a simple configuration file, which is\nthen used to generate the necessary Bash scripts. This simplifies the process of building complex command-line applications in Bash by abstracting away the repetitive tasks involved in handling \narguments, flags, and commands. Bashly also provides features like auto-generated help menus, error handling, and tab completion. It is a useful tool for developers looking to create robust command-line\napplications in Bash efficiently. "
_github: https://github.com/DannyBen/bashly
_name: Bashly
_short: "bashly is a tool for creating Bash command-line applications with ease. "
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
_short: "bat is a cat(1) clone with syntax highlighting and Git integration. "
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
_desc: "bat-extras is a collection of additional scripts and utilities that extend the functionality of the bat command-line tool. These extras include features like syntax highlighting for more file types, \nintegration with version control systems like Git, and additional customization options. It enhances the user experience when viewing and working with files in the terminal using bat. You can find more \ndetails and installation instructions on the GitHub repository: bat-extras. "
_github: https://github.com/eth-p/bat-extras
_name: Bat Extras
_short: "bat-extras is a collection of additional scripts and functions for the bat command-line tool, enhancing its functionality on Unix-like systems. "
brew: bat-extras
emerge: sys-apps/bat-extras
pacman: bat-extras
bats:
_bin: bats
_desc: "bats-core is a GitHub repository for Bats (Bash Automated Testing System), a TAP-compliant testing framework for Bash and POSIX shell scripts. It provides a simple way to verify that the UNIX programs \nyou write behave as expected. The repository contains the source code, documentation, and issues related to the Bats project. Users can contribute to the project, report bugs, and access the latest \nreleases and updates for Bats testing framework. "
_github: https://github.com/bats-core/bats-core
_name: Bats Bash Testing
_short: "bats-core is a TAP-compliant testing framework for Bash. "
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
_short: "Bazelisk is a tool that manages different versions of Bazel, a build system developed by Google. It automatically downloads and uses the correct Bazel version specified for a project, simplifying the \nsetup process for developers. "
brew: bazelisk
choco: bazelisk
go: github.com/bazelbuild/bazelisk@latest
npm: "@bazel/bazelisk"
scoop: main/bazel
beekeeper-studio:
_app: Beekeeper Studio.app
_bin: beekeeper-studio
_desc: "Beekeeper Studio is an open-source SQL editor and database manager that supports various databases like MySQL, PostgreSQL, SQLite, and more. It provides a user-friendly interface for executing SQL \nqueries, managing database connections, and viewing query results. Beekeeper Studio offers features like syntax highlighting, auto-completion, and the ability to save queries. It is designed to be \nintuitive and easy to use for both beginners and experienced users in database management. The project is actively maintained on GitHub and welcomes contributions from the community. "
_github: https://github.com/beekeeper-studio/beekeeper-studio
_name: Beekeeper Studio
_short: "Beekeeper Studio is an open-source SQL editor and database manager for MacOS. "
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
_short: "Beets is a music library manager and tagger for organizing your music collection efficiently. "
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
_short: "Betwixt is a web debugging proxy based on Chrome DevTools Network panel with a focus on simplicity and ease of use. "
cask: betwixt
bfg:
_bin: bfg
_desc: "BFG Repo-Cleaner is a tool designed to remove large or problematic files from Git repositories. It's particularly useful for cleaning up repositories before sharing or migrating them. The tool operates \nmuch faster than Git's built-in filter-branch and offers a simpler syntax for specifying files to be removed. It can help reduce the size of repositories by eliminating unwanted files and history, \nmaking them more manageable. BFG Repo-Cleaner is commonly used for tasks like removing sensitive data, large binaries, or other unwanted files from Git history. "
_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
_short: "BFG Repo-Cleaner is a fast, simpler alternative to git-filter-branch for removing large files or sensitive data from Git repositories. "
brew: bfg
choco: bfg-repo-cleaner
port: bfg
bin:
_bin: bin
_desc: Effortless binary manager
_github: https://github.com/marcosnils/bin
_name: bin
_short: "bin is a collection of useful scripts and tools for macOS users, maintained by Marcos Nil. "
github: github.com/marcosnils/bin
go: github.com/marcosnils/bin@latest
binwalk:
_bin: binwalk
_desc: "Binwalk is a popular tool for analyzing, reverse engineering, and extracting firmware images. It can identify embedded files and executable code within firmware images, making it useful for security \nanalysis and vulnerability research. Binwalk supports various file formats commonly found in firmware, including compressed files, executables, and more. It provides detailed information about the \ncontents of firmware images, allowing users to understand the structure and components of embedded systems. Binwalk is widely used in the cybersecurity community for analyzing IoT devices, routers, and \nother embedded systems. "
_github: https://github.com/ReFirmLabs/binwalk
_name: Binwalk
_short: "Binwalk is a tool for analyzing, reverse engineering, and extracting firmware images. "
apt: binwalk
brew: binwalk
choco: binwalk
dnf: binwalk
pacman: binwalk
bismuth:
_bin: bismuth
_desc: "Bismuth is a blockchain platform that focuses on simplicity and modularity. It aims to provide a secure and decentralized environment for applications and smart contracts. The project on GitHub contains\nthe source code, documentation, and resources related to the Bismuth blockchain. Developers can contribute to the project, explore the codebase, and learn about the technology behind Bismuth. It's a \nvaluable resource for those interested in blockchain development and decentralized applications. "
_github: https://github.com/Bismuth-Forge/bismuth
_name: Bismuth
_short: "Bismuth is a blockchain platform that focuses on modularity and customization for developers. "
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
_short: "bitly-cli-client is a command-line interface (CLI) tool for shortening URLs using the Bitly service. "
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
_short: "bitwarden/desktop is a secure and open-source password manager for desktop platforms. "
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
_short: "Bitwarden Clients: Open-source password manager with clients for various platforms including web, desktop, and mobile. "
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
_short: "Bivac is an open-source backup tool for virtual machines. "
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
_short: "BlackHole is a modern macOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency. "
_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
_short: "Blender is an open-source 3D creation suite for modeling, animation, simulation, rendering, and more. "
apt: blender
cask: blender
choco: blender
dnf: blender
flatpak: org.blender.Blender
scoop: extras/blender
snap: blender --classic
blocky:
_bin: blocky
_desc: "Blocky is a tool available on GitHub at https://github.com/0xERR0R/blocky. It is a Python script designed for managing DNS blacklists. Blocky allows users to easily add, remove, and update domains in \nvarious blocklists. This tool can be useful for system administrators and network security professionals to control access to specific domains by blocking them at the DNS level. It provides a simple and\nefficient way to manage blacklists for enhanced security and control over network traffic. "
_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
_short: "blocky is a tool for managing and monitoring multiple blockchain nodes easily. "
brew: blocky
go: github.com/0xERR0R/blocky@mastergithub.com/0xERR0R/blocky@master
blueutil:
_bin: blueutil
_desc: "blueutil is a command-line utility for macOS that allows you to control Bluetooth settings. It provides functionalities like turning Bluetooth on or off, querying the status of Bluetooth, and managing \nconnected devices. This tool can be useful for automating Bluetooth-related tasks or integrating Bluetooth control into scripts. It's a lightweight and handy tool for managing Bluetooth settings on \nmacOS systems. "
_github: https://github.com/toy/blueutil
_name: BlueUtil
_short: "blueutil is a command-line utility for macOS that allows you to control Bluetooth settings. "
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
_short: "Boilr is a command-line tool to generate files and directories from boilerplate templates. "
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
_short: "BoringTun is a lightweight WireGuard VPN implementation designed for embedded systems and low-resource environments. "
_todo: Add sudo boringtun-cli utun
brew: boringtun
cargo:darwin: boringtun-cli
cargo:linux: boringtun-cli
bottles:
_bin: bottles
_desc: "Bottles is a tool that allows you to run Windows applications on macOS using Wine. It provides a user-friendly interface to manage Windows applications, including installation, configuration, and \nremoval. Bottles simplifies the process of setting up and running Windows software on macOS by creating isolated environments for each application, reducing conflicts and dependencies. It is a \nconvenient solution for users who need to use specific Windows applications on their macOS system without the need for a full Windows installation. "
_github: https://github.com/bottlesdevs/Bottles
_name: "Bottles "
_short: "Bottles is a tool for managing Windows applications on macOS. "
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
_short: "bottom is a cross-platform graphical process/system monitor with a customizable interface, written in Rust. "
brew: bottom
pacman: bottom
scoop: bottom
snap: bottom
brasero:
_bin: brasero
_desc: "Brasero is an open-source application for burning CDs and DVDs on the GNOME desktop environment. It provides a simple and user-friendly interface for creating and copying discs, as well as burning ISO \nimages. Brasero supports various disc formats and allows users to create audio CDs, data discs, and more. It is a popular tool for managing optical media on Linux systems. You can find more information \nand the source code for Brasero on its GitHub repository: GNOME/brasero. "
_github: https://github.com/GNOME/brasero
_name: Brasero
_short: "Brasero is a GNOME application for burning CDs/DVDs. "
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
_short: "Brave Browser is an open-source web browser that focuses on privacy and security, with built-in ad-blocking and privacy features. "
cask: brave-browser
choco: brave
flatpak: com.brave.Browser
snap: brave
brew-gem:
_bin: brew-gem
_desc: "brew-gem is a tool that allows you to install Ruby gems as Homebrew formulae on macOS. This simplifies managing Ruby gems by integrating them into Homebrew, a popular package manager for macOS. By using\nbrew-gem, you can easily install, update, and remove Ruby gems using Homebrew commands, providing a more streamlined approach to managing Ruby dependencies on your system. It helps in keeping your Ruby \nenvironment organized and easily maintainable. "
_github: https://github.com/sportngin/brew-gem
_name: Homebrew RubyGems
_short: "brew-gem is a Homebrew tap for installing Ruby gems as formulae. "
brew: brew-gem
brew-pkg:
_desc: "brew-pkg is a tool available on GitHub at https://github.com/timsutton/brew-pkg that allows you to build macOS installer packages directly from Homebrew formulae. It simplifies the process of creating \ninstaller packages for software installed via Homebrew, making it easier to distribute and deploy software on macOS systems. This tool can be particularly useful for system administrators and developers\nwho need to package Homebrew-installed software for deployment across multiple machines. "
_github: https://github.com/timsutton/brew-pkg
_name: Homebrew Pkg
_short: "brew-pkg is a tool that allows you to build macOS installer packages directly from Homebrew formulae. "
_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
_short: "broot is a command-line interactive tree view tool for navigating directories efficiently. "
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
_short: "BrowserSync is a tool that synchronizes actions across multiple browsers in real-time, making web development faster and more efficient. "
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
_short: "Browserosaurus is a macOS app that allows you to choose which browser to open links with. "
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
_short: "Budibase is an open-source low-code platform for building internal tools and applications quickly. "
github: github.com/Budibase/budibase
npm: "@budibase/cli"
buildkite-agent:
_bin: buildkite-agent
_desc: "Buildkite Agent \n\nThe Buildkite Agent is an open-source tool that runs build jobs on your own infrastructure. It allows you to run builds on your own servers, providing more control and security over your build \nenvironment. The agent communicates with the Buildkite service to coordinate and execute build jobs. It supports various platforms and can be easily configured to integrate with your existing CI/CD \npipelines. The agent is highly customizable and scalable, making it a popular choice for teams looking to manage their build processes efficiently. "
_github: https://github.com/buildkite/agent
_name: BuildKite Agent
_short: "buildkite/agent is a lightweight build runner for continuous integration. "
brew: buildkite/buildkite/buildkite-agent
bun:
_bin: bun
_desc: "Bun is a tool developed by oven-sh available on GitHub at https://github.com/oven-sh/bun. It is a command-line utility for managing project-specific environments using Docker. Bun simplifies the process\nof setting up and managing development environments by defining project-specific configurations in a Bunfile. This allows developers to easily reproduce the same environment across different machines. \nBun also supports Docker Compose integration, making it easier to work with multi-container applications. It's a handy tool for streamlining development workflows and ensuring consistency across \nenvironments. "
_github: https://github.com/oven-sh/bun
_name: Bun
_short: "Bun is a tool for managing macOS development environments using Homebrew and Ansible. "
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
_short: "The link leads to the Bundler repository within the RubyGems organization on GitHub. Bundler is a tool for managing Ruby dependencies in a project. "
gem: bundler
caddy:
_bin: caddy
_desc: "Caddy is an open-source web server with automatic HTTPS capability built in. It is known for its simplicity and ease of use, making it popular for serving websites securely. Caddy's configuration is \ndone using a Caddyfile, which simplifies the process compared to traditional web servers. It supports features like virtual hosting, reverse proxy, static file serving, and more. Caddy is written in Go \nand is actively maintained by the community. It is a great choice for those looking for a modern, secure, and easy-to-configure web server solution. "
_github: https://github.com/caddyserver/caddy
_name: Caddy
_service: caddy
_short: "Caddy is a lightweight, open-source web server with automatic HTTPS. "
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
_short: "Cakebrew is a graphical user interface for Homebrew package manager on macOS. It provides a convenient way to manage packages and software installations through a visual interface. "
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
_name: "caniuse-cmd "
_short: "caniuse-cmd is a command-line tool that provides compatibility data for HTML, CSS, and JavaScript features across different web browsers. "
npm: caniuse-cmd
capacitor:
_bin: cap
_desc: "Capacitor is an open-source cross-platform native runtime for web applications. Developed by the Ionic Team, it allows developers to build web apps that can run on iOS, Android, and the web with a \nsingle codebase. Capacitor provides a consistent API for accessing native features like camera, geolocation, and notifications, making it easier to create hybrid apps. It also supports Progressive Web \nApps (PWAs) and Electron for desktop applications. With Capacitor, developers can leverage their web development skills to create powerful, native-like experiences across multiple platforms. "
_github: https://github.com/ionic-team/capacitor
_name: Capacitor
_short: "Capacitor is a cross-platform app runtime that makes it easy to build web apps that run natively on iOS, Android, and the web. "
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
_short: "Captain is a tool for managing your Laravel Forge servers through a simple and elegant interface. "
go: github.com/jenssegers/captain@latest
carapace:
_bin: carapace
_desc: "carapace-bin is a repository on GitHub maintained by rsteube. It contains shell completion scripts for various commands and utilities. These completion scripts help users by providing auto-completion \nsuggestions when typing commands in the shell, making it easier and faster to navigate and use these commands. The repository likely includes scripts for popular tools and commands, enhancing the user \nexperience for those working in the shell environment. "
_github: https://github.com/rsteube/carapace-bin
_name: Carapace
_short: "carapace-bin is a collection of shell completion scripts for various commands and tools, designed to enhance the command-line user experience. "
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
_short: "Carbon is a tool that allows you to create and share beautiful images of your source code snippets. "
npm: carbon-now-cli
carthage:
_bin: carthage
_desc: A simple, decentralized dependency manager for Cocoa
_github: https://github.com/Carthage/Carthage
_name: Carthage
_short: "Carthage is a decentralized dependency manager for macOS and iOS development projects. "
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
_short: "catfs is a FUSE-based file system that concatenates files and directories from multiple locations into a single virtual directory. "
ansible:linux: professormanhattan.s3filesystem
cargo:linux: catfs
catlight:
_app: Catlight.app
_desc: "CatLight is a tool that provides continuous build status notifications for software development teams. It supports various build servers like Jenkins, TeamCity, Travis CI, and more. CatLight monitors \nthe build status of projects and displays notifications on different platforms such as Windows, macOS, and Linux. It helps teams stay informed about the status of their builds without having to \nconstantly check the build server. CatLight also offers features like custom notifications, build history tracking, and integration with popular project management tools like Jira and Trello. "
_github: https://github.com/catlightio/CatLight
_name: Catlight
_short: "CatLight is a tool that provides visual alerts for continuous integration and other events from various sources like Jenkins, Travis CI, and more. "
cask: catlight
deb: https://catlight.io/downloads/linux/beta
ccat:
_bin: ccat
_desc: "ccat is a tool available on GitHub at https://github.com/owenthereal/ccat that enhances the traditional cat command in Unix-like systems. It adds syntax highlighting for various file types when \ndisplaying their contents in the terminal. This can make it easier to read and understand code or configuration files. It supports a wide range of languages and file formats, making it a useful tool for\ndevelopers and system administrators working with text files. "
_github: https://github.com/owenthereal/ccat
_name: ccat
_short: "ccat is a colorizing cat command that highlights syntax in terminal output. "
brew: ccat
go: github.com/owenthereal/ccat@latest
pacman: ccat
ceph:
_bin: ceph-client
_deps:
- dokany
_desc: "Ceph is a distributed storage system designed to provide excellent performance, reliability, and scalability. It is open-source and can be used to store large amounts of data across multiple nodes. Ceph\nuses a decentralized architecture, with data being distributed across the cluster to ensure high availability and fault tolerance. It supports various storage interfaces like object, block, and file \nstorage. Ceph is commonly used in cloud computing environments and is known for its flexibility and ability to handle petabytes of data efficiently. "
_github: https://github.com/ceph/ceph
_name: CephFS
_short: "Ceph is a distributed storage system designed to provide excellent performance, reliability, and scalability. "
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
_short: "Cerebro is a cross-platform productivity app that acts as a search tool for your desktop, allowing you to quickly find and access files, applications, and information. "
cask: cerebro
choco: cerebro
github: github.com/cerebroapp/cerebro
yay: cerebro
certbot:
_bin: certbot
_desc: "[Certbot](https://certbot.eff.org/) is part of EFFs 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 [Lets 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"
_short: "Certbot is a free, open-source software tool that automates the process of enabling HTTPS on your website by deploying SSL/TLS certificates. "
pipx: certbot
cf-terraforming:
_bin: cf-terraforming
_desc: "cf-terraforming is a tool developed by Cloudflare that helps automate the process of exporting existing Cloudflare configurations into Terraform code. This tool allows users to manage their Cloudflare \nconfigurations as code, making it easier to version control, track changes, and replicate configurations across different environments. By using cf-terraforming, users can streamline their \ninfrastructure management processes and ensure consistency in their Cloudflare setups. "
_github: https://github.com/cloudflare/cf-terraforming
_name: CloudFlare Terraforming
_short: "cf-terraforming is a tool by Cloudflare that helps automate the creation of Terraform configurations for Cloudflare resources. "
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
_short: "cfssl is a tool for TLS/PKI management by Cloudflare. "
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
_short: "Charm is a collection of modern CLI tools for building interactive terminal applications in Go. "
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
_short: "chatGPT-mac is a macOS app that brings OpenAI's GPT-3 powered chatbot to your desktop for easy access and interaction. "
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)
_short: "nofwl is a minimalistic firewall for MacOS. "
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
_short: "cheat is a command-line tool that allows you to create and view interactive cheatsheets for the command line. "
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
_desc: "Chef is an open-source configuration management tool written in Ruby and Erlang. It allows you to automate the deployment, configuration, and management of servers and applications. With Chef, you can \ndefine your infrastructure as code using recipes and cookbooks, which are used to describe how each part of your system should be configured. It supports various operating systems and cloud providers, \nmaking it a versatile tool for managing infrastructure at scale. Chef follows a client-server architecture where nodes (servers) are managed by a Chef server that stores configuration data and \ndistributes it to the nodes. "
_github: https://github.com/chef/chef
_name: Chef Workstation
_short: "Chef is an open-source automation platform that helps you manage your infrastructure as code. "
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
_short: "Chezmoi is a tool that helps manage dotfiles across multiple machines using a version control system like Git. "
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
_name: "chrome-cli "
_short: "chrome-cli is a command-line tool for controlling Google Chrome. "
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
_name: "gnome-browser-extension "
_short: "GNOME Browser Extension is a project hosted on GitLab under the GNOME organization. It likely provides browser extensions tailored for the GNOME desktop environment. "
apt: chrome-gnome-shell
dnf: chrome-gnome-shell
pacman: chrome-gnome-shell
chrome-remote-desktop-host:
_app: Chrome Remote Desktop Host Uninstaller.app
_bin: chrome-remote-desktop-host
_github: false
_name: Chrome Remote Desktop Host
_todo: TODO - Add install method for Linux
cask: chrome-remote-desktop-host
choco: chrome-remote-desktop-host
chromium:
_bin: chromium
_deps:
- chrome-gnome-shell
_desc: "Chromium is an open-source web browser project that serves as the foundation for Google Chrome. It provides the source code for the Chromium browser, allowing developers to contribute to its development\nand customize it for their own purposes. The project is maintained by the Chromium team at Google and is known for its speed, stability, and support for modern web standards. Developers can access the \ncode, report issues, and contribute to the project's ongoing development on GitHub. "
_github: https://github.com/chromium/chromium
_name: "chromium "
_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
_short: "https://github.com/chromium/chromium is the official repository for the Chromium web browser, an open-source project that serves as the foundation for Google Chrome. "
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
_short: "Clair is an open-source vulnerability scanning tool for containers, used to monitor the security of container images. "
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
_short: "ClamAV is an open-source antivirus engine for detecting trojans, viruses, malware, and other malicious threats on Unix-like systems. "
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
_short: "clangd is a language server for C++. It provides IDE-like features such as code completion, find references, and more for C and C++ codebases. "
apt: clangd
brew: llvm
choco: llvm
dnf: clang-tools-extra
pacman: clang
scoop: llvm
clipboard:
_bin: cb
_desc: "The repository at https://github.com/Slackadays/Clipboard.git appears to be a Git repository hosted on GitHub. Without further details or access to the repository, I can't provide specific information \nabout its contents. If you need more information, you may want to clone the repository locally and explore its files and commit history using Git commands. "
_github: https://github.com/Slackadays/Clipboard.git
_name: Clipboard
_short: "This is a GitHub repository named Clipboard under the Slackadays organization. "
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
_desc: "cloc (Count Lines of Code) is a tool used to count the lines of code in various programming languages. It can analyze multiple files and directories, providing a breakdown of the number of blank lines, \ncomment lines, and code lines in each file. It supports over 200 programming languages and file types, making it versatile for different projects. cloc is open-source and available on GitHub at \nhttps://github.com/AlDanial/cloc for users to download, contribute to, or report issues. "
_github: https://github.com/AlDanial/cloc
_name: Cloc
_short: "cloc is a tool that counts lines of code in various programming languages. "
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
_name: "Clocker "
_short: "Clocker is a menu bar application for macOS that helps you schedule Do Not Disturb and Notification settings. "
cask: clocker
cloudflare-cli:
_bin: cfcli
_desc: "cloudflare-cli is a command-line interface tool available on GitHub at https://github.com/danielpigott/cloudflare-cli. This tool allows users to interact with Cloudflare's API directly from the command \nline, enabling tasks such as managing DNS records, configuring security settings, and more. It provides a convenient way to automate Cloudflare-related tasks and integrate them into scripts or \nworkflows. The tool is written in Python and offers a range of functionalities to streamline Cloudflare management from the terminal. "
_github: https://github.com/danielpigott/cloudflare-cli
_name: CloudFlare CLI
_short: "cloudflare-cli is a command-line interface tool for interacting with Cloudflare services directly from the terminal. "
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
_short: "cloudflared is a tool by Cloudflare that allows secure and fast access to the internet. "
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
_short: "CMake is an open-source cross-platform build system designed to build, test, and package software. "
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
_short: "cert-manager is a Kubernetes add-on to automate and manage TLS certificates. "
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
_short: "Cockpit is a web-based graphical interface for managing Linux servers. "
_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
_desc: "Cockpit is a web-based server management tool that allows users to monitor and manage multiple servers from a single interface. It provides a dashboard for system metrics, logs, storage, networking, and\nmore. Cockpit is designed to be user-friendly and accessible for both new and experienced administrators. It supports various Linux distributions and offers features like system updates, user \nmanagement, and container management. It is open-source and actively maintained by the Cockpit Project community on GitHub. "
_github: https://github.com/cockpit-project/cockpit
_home: https://cockpit-project.org/
_name: Cockpit Desktop Client
_short: "Cockpit is a web-based graphical interface for managing Linux servers. "
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
_short: "CocoaPods is a dependency manager for Swift and Objective-C projects. "
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
_short: "cod is a lightweight, fast, and powerful code editor designed for macOS. "
_todo: Check for brew install later on (5/14/2023)
go: github.com/dim-an/cod@master
codeclimate:
_bin: codeclimate
_desc: "Code Climate is a popular static analysis platform that helps developers improve code quality. It offers various tools like code review, static analysis, and test coverage to identify issues early in \nthe development process. Code Climate integrates with popular version control systems like GitHub to provide automated code review feedback. It helps teams maintain code quality standards, streamline \ncode reviews, and ultimately deliver better software. The platform supports multiple programming languages and provides actionable insights to help developers write cleaner, more maintainable code. "
_github: https://github.com/codeclimate/codeclimate
_name: CodeClimate
_short: "CodeClimate is a platform for automated code review and quality analysis. "
_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
_desc: "CodeEdit is a GitHub repository for an application called CodeEdit. It likely contains the source code, documentation, and possibly other resources related to the CodeEdit application. Without further \ndetails or access to the repository, it's difficult to provide a more in-depth description. If you need specific information or details about the project, you may want to explore the repository directly\non GitHub. "
_github: https://github.com/CodeEditApp/CodeEdit
_name: CodeEdit
_short: "CodeEdit is a collaborative code editor for developers to work together in real-time on coding projects. "
_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
_short: "coder/coder is an open-source platform for creating, running, and managing development environments in the cloud. "
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
_short: "cointop is a fast and lightweight interactive terminal-based cryptocurrency tracker. "
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
_short: "cz-cli is a command-line tool that helps in creating standardized commit messages following conventional commit message guidelines. "
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
_short: "commitlint is a tool that enforces commit message conventions to ensure consistent and structured commit messages in a project. "
npm: "@commitlint/cli"
common:
_bin: null
_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.
_github: false
_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
_short: "Composer is a dependency manager for PHP. "
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
_short: "confd is a lightweight configuration management tool designed to help manage application configuration files dynamically using templates and backends like etcd, consul, or environment variables. "
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
_short: "Consul is a tool for service discovery, configuration, and orchestration by HashiCorp. "
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
_short: "Consul Template is a tool by HashiCorp that renders templates based on Consul data. "
ansible: professormanhattan.consultemplate
brew: consul-template
choco: consul-template
scoop: main/consul
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
_github: https://github.com/GoogleContainerTools/container-structure-test
_name: Container Structure Tests
_post:binary:linux: |
#!/usr/bin/env bash
echo "TODO"
_short: "container-structure-test is a tool by GoogleContainerTools for validating container images against a set of tests. "
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
_short: "Cookiecutter is a tool that helps you create project templates from cookiecutters (project skeletons). It allows for easy project setup and customization by generating files and folders based on \ntemplates. "
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
_short: "Apache Cordova is an open-source mobile development framework that allows developers to build mobile applications using web technologies like HTML, CSS, and JavaScript. "
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
_short: "croc is a tool for secure and easy file transfer between computers. "
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
_short: "Crunch is a tool for creating wordlists based on character sets. "
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
_short: "Crunch is a tool for creating wordlists based on character sets. "
cask: crunch
cryptomator:
_app: Cryptomator.app
_bin: cryptomator
_desc: "Cryptomator is an open-source encryption software that provides client-side encryption for your cloud storage files. It allows you to securely store your data in the cloud by encrypting it on your \ndevice before uploading. This ensures that only you have access to your files, even if the cloud storage provider is compromised. Cryptomator supports various cloud storage services and offers a \nuser-friendly interface for managing your encrypted files. It is available for multiple platforms, including Windows, macOS, Linux, Android, and iOS. "
_github: https://github.com/cryptomator/cryptomator
_name: "Cryptomator "
_short: "Cryptomator is an open-source encryption software that provides client-side encryption for your cloud files. "
cask: cryptomator
choco: cryptomator
flatpak: org.cryptomator.Cryptomator
csvkit:
_bin: csvcut
_desc: "csvkit is a suite of command-line tools for working with CSV files. It allows you to easily manipulate and analyze CSV data using simple commands in the terminal. With csvkit, you can convert between \nCSV, JSON, SQL, and other formats, clean and filter data, aggregate and join datasets, and more. It's a powerful tool for anyone working with CSV files who prefers command-line interfaces for data \nprocessing. You can find more information and documentation on how to use csvkit at https://github.com/wireservice/csvkit. "
_github: https://github.com/wireservice/csvkit
_name: "csvkit "
_short: "csvkit is a suite of utilities for working with CSV files in the command line. "
brew: csvkit
ctop:
_bin: ctop
_desc: Top-like interface for container metrics
_github: https://github.com/bcicen/ctop
_name: ctop
_short: "ctop is a concise and intuitive container monitoring tool for Docker. "
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
_short: "Cumulus is a command-line tool for managing DigitalOcean servers. "
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
_short: "CUPS (Common UNIX Printing System) is an open-source printing system developed by Apple for Unix-like operating systems. "
_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
_short: "Curator is a tool for managing time-series indices in Elasticsearch. "
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
_short: "curl is a command-line tool and library for transferring data with URLs. "
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
_short: "curlie is a modern command-line interface for curl. "
brew: curlie
go: github.com/rs/curlie@latest
pkg: curlie
port: curlie
scoop: curlie
cutter:
_app: Cutter.app
_bin: cutter
_desc: "Cutter is a graphical user interface for the Rizin reverse engineering framework. It provides a user-friendly environment for analyzing and manipulating binary files. Cutter allows users to disassemble,\ndebug, and analyze executables in a visually appealing way. It supports various architectures and file formats, making it a versatile tool for reverse engineering tasks. Additionally, Cutter is \nopen-source and actively maintained by the Rizin community, making it a popular choice for both beginners and experienced reverse engineers. "
_github: https://github.com/rizinorg/cutter
_name: "cutter "
_short: "Cutter is a graphical user interface for the Rizin reverse engineering framework. "
cask: cutter
choco: cutter
flatpak: re.rizin.cutter
cyberduck:
_app: Cyberduck.app
_bin: cyberduck
_github: https://github.com/iterate-ch/cyberduck
_name: Cyberduck
cask: cyberduck
choco: cyberduck
cyberduck-cli:
_bin: duck
_github: https://github.com/iterate-ch/cyberduck
_name: Cyberduck CLI
brew: cyberduck
choco: duck
pacman: duck
d2vm:
_bin: d2vm
_desc: "d2vm is a project hosted on GitHub under the linka-cloud organization. It appears to be related to virtual machine management, possibly for development or testing purposes. The repository likely \ncontains scripts, configurations, or tools for managing virtual machines efficiently. To get more detailed information about its specific features and functionalities, you may need to explore the \nrepository's contents, README file, or any documentation provided within the project. "
_github: https://github.com/linka-cloud/d2vm
_name: Docker 2 VM
_short: "d2vm is a lightweight virtual machine manager for managing virtual machines on macOS. "
brew: linka-cloud/tap/d2vm
dagu:
_bin: dagu
_desc: "dagu-dev/dagu \n\nThis is a GitHub repository belonging to the user \"dagu-dev\" named \"dagu.\" It likely contains code, documentation, or other files related to a project called \"dagu.\" Without further information or \naccess to the repository, it's difficult to provide more details. You can visit the link to explore the contents of the repository and learn more about the project it represents. "
_github: https://github.com/dagu-dev/dagu
_name: Dagu
_post: |
#!/usr/bin/env bash
sudo mkdir -p /var/log/dagu
_short: "dagu is a GitHub repository for the Dagu project. "
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
_short: "Dasel is a command-line tool to query and modify data in JSON, YAML, TOML, XML, and CSV files using a simple and expressive syntax. "
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
_short: "dat is a decentralized data sharing tool for efficiently syncing and versioning files across multiple devices. "
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
_short: "dat-desktop is a desktop application for sharing and syncing files using the Dat protocol. "
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
_desc: "The link provided is for the GNOME dconf-editor repository on GitHub. dconf-editor is a graphical editor for the dconf configuration system used in GNOME. It allows users to view and edit settings that \nare stored in a simple key-value format. The repository contains the source code for the dconf-editor application, which is written in C and uses GTK for the graphical interface. Users can contribute to\nthe development of dconf-editor by submitting issues, feature requests, or pull requests on this repository. "
_github: https://github.com/GNOME/dconf-editor/tree/master
_gitlab: https://gitlab.gnome.org/GNOME/dconf-editor
_name: "dconf-editor "
_short: "dconf-editor is a graphical editor for the Dconf configuration system used in GNOME. "
flatpak: ca.desrt.dconf-editor
debloat:
_bin: null
_desc: This repository is the home of an Ansible role that Debloats Windows
_github: false
_name: Debloat Windows
ansible: professormanhattan.debloat
debsecan:
_bin: debsecan-by-type
_desc: debsecan analyzes the list of installed packages on the current host and reports vulnerabilities found on the system.
_github: false
_gitlab: https://gitlab.com/fweimer/debsecan
_home: https://wiki.debian.org/DebianSecurity/debsecan
_name: Debian Security Analyzer
apt: debsecan
defaultbrowser:
_bin: null
_desc: This role performs the necessary logic to set the default browser on nearly any platform.
_github: false
_name: Default Browser Setter
ansible: professormanhattan.defaultbrowser
deja-dup:
_bin: dejadup
_github: false
_gitlab: https://gitlab.gnome.org/World/deja-dup
_home: https://apps.gnome.org/DejaDup/
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
_short: "Delta is a tool for viewing git diff output with syntax highlighting and line decorations. "
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
_short: "Delve is a debugger for the Go programming language, allowing developers to inspect and debug Go programs efficiently. "
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
_short: "Deno is a secure runtime for JavaScript and TypeScript. "
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
_short: "desed is a tool for debugging and exploring sed commands interactively. "
cargo: desed
dnf:fedora: desed
github: github.com/SoptikHa2/desed
pkg: desed
xbps-freebsd: desed
desk:
_bin: desk
_desc: "Desk is a tool that helps you manage your workspace configurations on macOS. It allows you to save and restore different setups of your desktop, including open applications, windows, and their \npositions. This can be useful for switching between different projects or tasks without having to rearrange everything manually each time. Desk is a command-line tool that lets you create, list, switch,\nand remove these configurations easily. It's a handy utility for improving productivity and organization on your Mac. "
_github: https://github.com/jamesob/desk
_name: Desk
_short: "desk is a tool for managing your workspace configurations in macOS. "
brew: desk
desktop:
_bin: null
_desc: This role is essentially the place where all desktop-specific tasks that are substantial enough for their own role are placed.
_github: false
_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
_short: "deta-cli is a command-line interface tool for Deta, a platform for building and deploying scalable cloud applications. "
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
_desc: "devbox is a GitHub repository belonging to jetpack-io. It likely contains resources related to a development environment setup, possibly including configurations, scripts, or tools to streamline the \nsetup process. To get more detailed information, you can visit the repository link provided and explore the contents. "
_github: https://github.com/jetpack-io/devbox
_name: "devbox "
_short: "devbox is a tool for creating and managing development environments using Docker. "
_todo: Revisit because install via script would require expect since piping y to the installer is not working
devpod:
_bin: devpod
_desc: "Devpod is a tool that allows developers to create disposable development environments using Kubernetes. It enables developers to define their development environment as code, making it easy to share and\nreproduce. Devpod provides a consistent and isolated environment for each developer, ensuring that dependencies are managed consistently. It supports various IDEs and tools, making it versatile for \ndifferent development workflows. Overall, Devpod streamlines the setup of development environments, making it easier for teams to collaborate and work efficiently. "
_github: https://github.com/loft-sh/devpod
_name: DevPod
_short: "Devpod is a tool that creates disposable development environments using Kubernetes. "
cask: devpod
devspace:
_bin: devspace
_desc: "DevSpace is a tool that simplifies the development workflow for Kubernetes applications. It allows developers to build, test, and deploy applications directly in Kubernetes clusters without needing to \nset up complex local environments. DevSpace provides features like hot reloading, remote debugging, and easy configuration management. It supports various programming languages and frameworks, making it\na versatile tool for Kubernetes development. The tool is open-source and actively maintained on GitHub, making it accessible for developers looking to streamline their Kubernetes development process. "
_github: https://github.com/devspace-sh/devspace
_name: DevSpace
_short: "DevSpace is a tool that simplifies Kubernetes development by providing an efficient workflow for developers. "
brew: devspace
npm: devspace
scoop: devspace
devtoys:
_app: DevToys.app
_bin: devtoys
_desc: "DevToysMac is a collection of development tools for macOS created by ObuchiYuki. It includes various utilities and scripts that can aid developers in their daily tasks. Some of the tools included are \nfor managing Xcode projects, generating Swift code, working with Git repositories, and more. It aims to streamline development workflows and improve productivity on the macOS platform. Users can explore\nthe repository on GitHub to find detailed information about each tool and how to use them effectively. "
_github: https://github.com/ObuchiYuki/DevToysMac
_name: "DevToysMac "
_short: "DevToysMac is a collection of developer tools for MacOS, designed to enhance productivity and streamline common tasks. "
cask: devtoys
devtoys-windows:
_bin: devtoys
_desc: "DevToys is a collection of development tools for macOS that aims to simplify common tasks for developers. It provides a set of utilities accessible from the macOS menu bar, including features like \nJSON/XML/YAML formatting, base64 encoding/decoding, URL encoding/decoding, and more. DevToys offers a convenient way to access these tools without the need to open separate applications, making it a \nhandy resource for developers looking to streamline their workflow on macOS. "
_github: https://github.com/veler/DevToys
_name: Windows DevToys
_short: "DevToys is a collection of development tools and utilities for macOS, designed to enhance productivity and streamline common tasks for developers. "
choco: devtoys
winget: devtoys
dframe:
_bin: dframe
_desc: Put device frames around your mobile/web/progressive app screenshots
_github: https://github.com/c0bra/deviceframe
_name: "deviceframe "
_short: "deviceframe is a tool that allows you to add device frames to screenshots easily. "
npm: deviceframe
dialect:
_bin: dialect
_desc: "The link https://github.com/dialect-app/dialect/ leads to a GitHub repository for a project named \"dialect.\" This repository likely contains the source code, documentation, and other files related to \nthe Dialect application. Without further details or access to the repository, it's difficult to provide specific information about the project's purpose or functionality. Users can typically find \ninformation about the project, such as its README file, codebase, issues, and contributions, by exploring the repository on GitHub. "
_github: https://github.com/dialect-app/dialect/
_name: "dialect "
_short: "Dialect is a GitHub repository for the Dialect app, a platform for language learning and cultural exchange. "
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
_short: "Difftastic is a tool for visually comparing text files in a terminal environment. "
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
_short: "direnv is a tool that helps automate loading and unloading of environment variables based on the current directory. "
ansible: professormanhattan.direnv
apt: direnv
brew: direnv
github: github.com/direnv/direnv
discord:
_app: Discord.app
_bin: discord
_github: false
_name: Discord
cask: discord
choco: discord
flatpak: com.discordapp.Discord
distrobox:
_bin: distrobox
_desc: "Distrobox is a project hosted on GitHub by user 89luca89. It appears to be a repository related to creating a custom Linux distribution. The project might include scripts, configurations, or \ndocumentation to help users build their own Linux distribution tailored to their needs. For more detailed information, you can visit the GitHub repository directly at \nhttps://github.com/89luca89/distrobox. "
_github: https://github.com/89luca89/distrobox
_name: Distrobox
_short: "distrobox is a project on GitHub by 89luca89. It likely involves a distribution or box-related software or tool. For detailed information, you should visit the repository directly. "
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
_short: "Dive is a tool for exploring and analyzing Docker images interactively. "
ansible: professormanhattan.dive
brew: dive
github: github.com/wagoodman/dive
go: github.com/wagoodman/dive@latest
yay: dive
dns:
_bin: null
_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).
_github: false
_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
_short: "dnsmasq is a lightweight DNS forwarder and DHCP server. "
ansible: professormanhattan.dnsmasq
apt: dnsmasq
brew: dnsmasq
dnf: dnsmasq
pacman: dnsmasq
port: dnsmasq
docker:
_bin: docker
_deps:
- docker-images
_desc: "The GitHub repository at https://github.com/microsoft/docker is maintained by Microsoft and is related to Docker, a popular platform for developing, shipping, and running applications using \ncontainerization technology. The repository likely contains code, documentation, and resources related to Microsoft's involvement with Docker, such as tools, extensions, or integrations. It could also \ninclude projects aimed at improving Docker's functionality on Microsoft platforms like Windows or Azure. For specific details, exploring the repository directly would provide more insights. "
_github: https://github.com/microsoft/docker
_name: Docker CLI
_short: "microsoft/docker is a GitHub repository maintained by Microsoft for Docker-related projects. "
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
_short: "docker-credential-helpers is a set of utilities that help Docker authenticate with various container registries securely. "
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
# @file DockerHub Login
# @brief Logs into DockerHub for Docker Desktop
# @description
# This script logs into DockerHub so that Docker Desktop is pre-authenticated. This
# functionality requires that the `DOCKERHUB_USER` be passed in as an environment variable (or
# directly editted in the `~/.config/chezmoi/chezmoi.yaml` file) and that the `DOCKERHUB_TOKEN`
# be passed in as a secret (either via the encrypted secret method or passed in as an environment
# variable).
if command -v docker > /dev/null; then
DOCKERHUB_TOKEN="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "DOCKERHUB_TOKEN")) }}{{- includeTemplate "secrets/DOCKERHUB_TOKEN" | decrypt | trim -}}{{ else }}{{- env "DOCKERHUB_TOKEN" -}}{{ end }}"
DOCKERHUB_USER="{{ .user.docker.username }}"
if [ -d "/Applications/Docker.app" ] || [ -d "$HOME/Applications/Docker.app" ]; then
logg info 'Ensuring Docker.app is open' && open --background -a Docker --args --accept-license --unattended
fi
logg info 'Headlessly authenticating with DockerHub registry' && echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin > /dev/null && logg success 'Successfully authenticated with DockerHub registry'
fi
### Symlink on macOS
if [ -f "$HOME/Library/Containers/com.docker.docker/Data/docker.raw.sock" ]; then
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
fi
_short: "Docker Compose is a tool for defining and running multi-container Docker applications. "
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:
_desc: This entry is used to trigger a post-installation docker image pre-load. See the `docker-images` entry in `.chezmoidata.yaml`.
_github: false
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
_short: "dockerfile-language-server-nodejs is a language server for Dockerfiles, written in Node.js. "
npm: dockerfile-language-server-nodejs
docker-plugins:
_desc: This entry is used to trigger a post-installation Docker plugin installation. See `docker-plugins` entry in `.chezmoidata.yaml`.
_github: false
docker-pushrm:
_bin: docker-pushrm
_desc: "The repository at https://github.com/christian-korneck/docker-pushrm appears to be a tool or script related to Docker. The name \"docker-pushrm\" suggests it might be related to pushing Docker images to a\nregistry. To get more details, you can check the repository's README file or explore the code to understand its functionality, usage, and any specific requirements or dependencies it might have. "
_github: https://github.com/christian-korneck/docker-pushrm
_name: Docker PushRM
_short: "docker-pushrm is a tool that simplifies pushing Docker images to AWS Elastic Container Registry (ECR) with reduced manual steps. "
script: |
#!/usr/bin/env bash
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
_short: "docker-slim is a tool to create smaller and more secure Docker images by analyzing and optimizing them. "
brew: docker-slim
dnf:fedora: golang-github-docker-slim
github: github.com/docker-slim/docker-slim
yay: docker-slim
dockfmt:
_bin: dockfmt
_desc: "Dockfmt is a tool created by jessfraz that formats Dockerfiles in a consistent and easy-to-read manner. It helps maintain a standardized structure in Dockerfiles, making them more readable and \nmaintainable. By using Dockfmt, you can ensure that your Dockerfiles follow best practices and adhere to a specific style guide. It can be integrated into your workflow to automatically format \nDockerfiles, saving time and reducing errors related to inconsistent formatting. "
_github: https://github.com/jessfraz/dockfmt
_name: dockfmt
_short: "dockfmt is a tool for formatting Dockerfiles. "
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
_short: "Dockle is a security and compliance scanner for Docker containers. "
brew: goodwithtech/r/dockle
github: github.com/goodwithtech/dockle
yay: dockle-bin
dockly:
_bin: dockly
_desc: "Dockly is a terminal-based dashboard for managing Docker containers and services. It provides a user-friendly interface to monitor and interact with Docker containers, images, networks, and volumes. \nWith Dockly, users can view container logs, inspect container details, start/stop containers, and more, all from the command line. It offers a convenient way to manage Docker resources without needing \nto switch to a separate GUI application. Dockly is written in Node.js and supports various features to streamline Docker container management in a terminal environment. "
_github: https://github.com/lirantal/dockly
_name: Dockly
_short: "Dockly is a terminal-based dashboard for managing Docker containers. "
npm: dockly
dockutil:
_bin: dockutil
_desc: "Dockutil is a command-line utility for managing the dock in macOS. It allows users to add, remove, and arrange items on the dock from the terminal. This tool is particularly useful for system \nadministrators or users who want to automate dock configurations. It provides a simple and efficient way to customize the dock layout without having to manually drag and drop icons. The GitHub \nrepository contains the source code, documentation, and examples on how to use dockutil effectively. "
_github: https://github.com/kcrawford/dockutil
_name: DockUtil
_short: "dockutil is a command-line utility for managing the macOS Dock. "
brew:darwin: dockutil
doctl:
_bin: doctl
_desc: The official command line interface for the DigitalOcean API
_github: https://github.com/digitalocean/doctl
_name: doctl
_short: "doctl is a command-line interface for managing DigitalOcean services. "
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
_short: "Dog is a command-line DNS client for DNS-over-HTTPS. "
brew: dog
github: github.com/ogham/dog
pacman: dog
pkg: dog
doitlive:
_bin: doitlive
_desc: "DoItLive is a tool for live presentations in the terminal. It allows you to record and replay shell commands with annotations, making it perfect for demonstrations or tutorials. You can define a \nsequence of commands, add comments, and execute them in a controlled manner. It supports syntax highlighting, timing control, and customization options to enhance the presentation experience. Overall, \nit's a handy tool for showcasing command-line workflows in a structured and engaging way. "
_github: https://github.com/sloria/doitlive
_name: Do It Live!
_short: "doitlive is a tool for live presentations in the terminal, allowing you to script and replay command line sessions with ease. "
brew: doitlive
pipx: doitlive
dokany:
_bin: dokany
_desc: "Dokany is a user-mode file system library for Windows that provides a Windows kernel driver to create and manage virtual file systems. It allows developers to create file systems without writing a \nkernel driver. Dokany is similar to FUSE (Filesystem in Userspace) on Unix-like systems. It enables users to mount virtual disks or network drives and interact with them as if they were physical drives.\nDokany is open-source and provides a simple API for developers to create custom file systems on Windows. "
_github: https://github.com/dokan-dev/dokany
_name: Dokany
_note: Required for CephFS on Windows
_short: "Dokany is a user-mode file system library for 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
_short: "dotenv-linter is a tool for checking .env files for errors and inconsistencies. "
brew: dotenv-linter
cargo: dotenv-linter
scoop: dotenv-linter
yay: dotenv-linter
dotenv-vault:
_bin: dotenv-vault
_desc: "dotenv-vault is a tool developed by the dotenv-org organization on GitHub. It is designed to securely manage secrets in a .env file using HashiCorp Vault. This tool allows you to fetch secrets from \nVault and inject them into your application's environment variables, providing a secure way to manage sensitive information. By integrating Vault with your .env file, you can ensure that your \napplication secrets are stored and accessed in a secure manner. "
_github: https://github.com/dotenv-org/dotenv-vault
_name: Dotenv Vault
_short: "dotenv-vault is a tool that loads environment variables from HashiCorp Vault into your application. "
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
_short: "dotnet is a GitHub repository for the .NET development platform by Microsoft. "
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
_short: "dprint is a code formatting tool for various programming languages available on GitHub. "
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
_desc: "The repository at https://github.com/maoschanz/drawing appears to be a project related to drawing. Without further details or access to the repository, it's difficult to provide a detailed description. \nTo get a better understanding, you may want to visit the repository directly to see the project's files, documentation, and any additional information provided by the owner. "
_github: https://github.com/maoschanz/drawing
_name: "drawing "
_short: "drawing is a simple drawing program written in Python using the Tkinter library. "
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
_short: "drawio-desktop is an open-source diagramming tool that allows users to create flowcharts, diagrams, and more. "
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
_short: "drone-cli is a command-line interface (CLI) tool for interacting with the Drone CI/CD platform. "
brew: drone/drone/drone
github: github.com/harness/drone-cli
scoop: drone
dua:
_bin: dua
_desc: "dua-cli is a command-line tool available on GitHub at https://github.com/Byron/dua-cli. It is used for finding and cleaning up unnecessary or duplicate files in a directory. The tool helps in reclaiming\ndisk space by identifying redundant files based on their content. It provides options to review and delete these files efficiently. It is written in Rust and offers a fast and efficient way to manage \ndisk space usage. Users can customize the tool's behavior through various command-line options. "
_github: https://github.com/Byron/dua-cli
_name: "dua-cli "
_short: "dua-cli is a fast, interactive disk usage analyzer with a colorful interface for the command line. "
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
_short: "Duf is a disk usage utility with a modern interface for visualizing disk space usage on your system. "
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
_short: "Dust is a modern alternative to du command, providing a more intuitive visualization of disk usage in a terminal. "
apk: dust
brew:darwin: dust
brew:linux: tgotwig/linux-dust/dust
cargo: du-dust
github: github.com/bootandy/dust
pacman: dust
duti:
_bin: duti
_desc: "duti is a command-line tool for managing default applications on macOS. It allows users to set which applications should open specific file types or URLs by default. This tool is useful for customizing \nthe default behavior of file associations on a Mac system. Users can use duti to specify which application should open when a particular file type or URL is accessed, providing more control over the \nsystem's default application settings. "
_github: https://github.com/moretension/duti
_name: Duti
_short: "duti is a command-line tool for managing default applications on macOS. "
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
_short: "EarTrumpet is a volume control app for Windows that provides a modern alternative to the default volume mixer. "
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
_short: "EasyEngine is a command-line tool for setting up and managing WordPress sites on Linux servers efficiently. "
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
_short: "edex-ui is a sci-fi inspired terminal emulator and system monitor. "
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
_short: "Editly is a tool for creating videos programmatically using JavaScript. "
npm: editly
eget:
_bin: eget
_desc: "eget is a tool created by zyedidia available on GitHub at https://github.com/zyedidia/eget. It is a simple command-line utility for downloading files from the internet. Users can specify a URL to \ndownload a file directly to their current directory. This tool can be useful for automating file downloads in scripts or quickly fetching files without needing a full-fledged download manager. It is \nwritten in Go and is designed to be lightweight and easy to use. "
_github: https://github.com/zyedidia/eget
_name: eget
_short: "eget is a lightweight command-line utility for downloading files from the internet. "
brew: eget
choco: eget
go: github.com/zyedidia/eget@latest
ejs:
_bin: ejs
_desc: "EJS (Embedded JavaScript templates) is a simple templating language that lets you generate HTML markup with plain JavaScript. It works by embedding JavaScript code within <% %> delimiters in your HTML \ntemplates. This allows you to dynamically generate content based on variables, conditions, and loops. EJS is easy to use and integrates well with Node.js applications. It's a popular choice for \ngenerating dynamic web pages and emails. You can find more information and documentation about EJS on its GitHub repository: EJS GitHub Repository. "
_github: https://github.com/mde/ejs
_name: EJS
_short: "EJS is a simple templating language that lets you generate HTML markup with plain JavaScript. "
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
_short: "Electron is a framework that allows you to build cross-platform desktop applications using web technologies like HTML, CSS, and JavaScript. "
cask: electron
choco: electron
npm: electron
element:
_app: Element.app
_bin: element
_desc: "Element Web is an open-source web-based messaging application developed by Vector.im. It is built using the Matrix open network for secure, decentralized communication. Element Web allows users to chat,\nmake voice and video calls, share files, and collaborate in rooms. It supports end-to-end encryption for secure conversations. The platform is highly customizable and extensible, making it suitable for \npersonal and business use. It is actively maintained and updated by the developer community on GitHub. "
_github: https://github.com/vector-im/element-web
_name: Element
_short: "Element Web is an open-source, secure messaging application based on the Matrix protocol. "
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
_short: "emma-cli is a command-line tool for managing your email templates efficiently. "
npm: emma-cli
emoj:
_bin: emoj
_desc: Find relevant emoji from text on the command-line
_github: https://github.com/sindresorhus/emoj
_name: emoj
_short: "emoj is a command-line tool that makes it easy to find and copy emojis from the terminal. "
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
_short: "Emplace is a tool for quickly creating and managing GitHub repositories from the command line. "
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
_short: "empty-trash-cli is a command-line tool for emptying the trash on macOS. "
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
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
_short: "endlessh is a tool that generates endless SSH honeypot noise to frustrate and slow down attackers. "
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
_short: "Enola is a tool for managing and organizing your dotfiles efficiently on GitHub. "
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 [ -f "$HOME/.config/age/chezmoi.txt" ]; then
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'
fi
else
logg info 'envchain is not installed or it is not available in the PATH'
fi
_short: "envchain is a tool that securely stores and manages environment variables for command-line applications. "
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
_short: "Envconsul is a tool by HashiCorp that updates environment variables in running processes from Consul. "
ansible: professormanhattan.envconsul
brew: envconsul
github: github.com/hashicorp/envconsul
envio:
_bin: envio
_desc: "envio is a GitHub repository created by humblepenguinn. Unfortunately, without further context or access to the repository, I can't provide specific details about its contents. Typically, repositories \non GitHub contain code, documentation, or other resources related to a project. If you're interested in learning more about envio, you can visit the GitHub link provided to explore its contents, read \nthe README file, check the code, and see if there are any issues or pull requests associated with it. "
_github: https://github.com/humblepenguinn/envio
_name: Envio
_short: "envio is a lightweight command-line tool for sending files securely over the internet using end-to-end encryption. "
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
_short: "EnvPane is a macOS preference pane for environment variables. "
_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
_short: "ESLint is a popular JavaScript linting tool that helps developers maintain code quality and adhere to coding standards. "
brew: eslint
npm: eslint
eslint-dashboard:
_bin: eslint-dashboard
_desc: "eslint-dashboard is a tool available on GitHub created by fengzilong. It provides a dashboard interface for ESLint, a popular JavaScript linter. This tool allows you to visualize and manage ESLint \nreports in a more user-friendly way, making it easier to track and address code quality issues in your JavaScript projects. It can help streamline the code review process and improve overall code \nquality by providing a centralized view of ESLint warnings and errors. "
_github: https://github.com/fengzilong/eslint-dashboard
_name: ESLint Dashboard
_short: "eslint-dashboard is a tool that provides a visual dashboard for ESLint results, making it easier to track and manage code quality issues in a project. "
npm: eslint-dashboard
eslint-interactive:
_bin: eslint-interactive
_desc: "eslint-interactive is a tool that enhances the ESLint workflow by providing an interactive interface for managing ESLint errors and warnings. It allows users to easily fix, ignore, or review ESLint \nissues directly from the terminal. This tool simplifies the process of addressing linting errors by providing a more user-friendly and efficient way to handle them. It is particularly useful for \ndevelopers who want to streamline their ESLint workflow and improve code quality. "
_github: https://github.com/mizdra/eslint-interactive
_name: ESLint Interactive
_short: "eslint-interactive is a tool that provides an interactive interface for managing ESLint errors and warnings in your codebase. "
npm: eslint-interactive
eslintd:
_bin: eslint_d
_desc: "eslint_d.js is a fast, persistent ESLint server designed to improve linting performance for large codebases. It runs as a daemon process in the background, allowing multiple linting requests to be \nhandled more efficiently. By keeping ESLint loaded in memory, it avoids the overhead of starting ESLint for each linting operation, resulting in faster linting times. This tool is particularly useful \nfor projects with many files or when using ESLint in an editor or build system where linting is done frequently. "
_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
_short: "eslint_d.js is a fast daemon for running ESLint on files. "
npm: eslint_d
espanso:
_app: Espanso.app
_bin: espanso
_desc: "Espanso is a cross-platform text expander tool that allows users to define abbreviations which expand into longer phrases or sentences. It helps in saving time and increasing productivity by automating \nrepetitive typing tasks. Espanso is highly customizable and supports various features like variables, snippets, and more. It is open-source and actively maintained, making it a popular choice for users \nlooking to streamline their typing workflow. "
_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
_short: "Espanso is a cross-platform text expander tool that helps you type faster by replacing abbreviations with snippets of text. "
appimage: federico-terzi/espanso
cask: espanso
choco: espanso
snap: espanso --channel=latest/edge --classic
esprint:
_bin: esprint
_desc: "Esprint is a tool developed by Pinterest to improve the performance of JavaScript unit tests. It parallelizes test runs across multiple processes, reducing the overall test execution time. It is \ndesigned to work with Jest, a popular JavaScript testing framework. Esprint aims to optimize the testing workflow by leveraging the capabilities of modern multi-core processors. By utilizing Esprint, \ndevelopers can significantly speed up their test suites, leading to faster feedback cycles during development. It is open-source and available on GitHub at https://github.com/pinterest/esprint. "
_github: https://github.com/pinterest/esprint
_name: ESPrint
_short: "esprint is a tool by Pinterest for running JavaScript tests with parallel processes to speed up the testing process. "
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
_short: "etcd is a distributed key-value store used for shared configuration and service discovery in distributed systems. "
apt: etcd
brew: etcd
choco: etcd
dnf:fedora: etcd
github: github.com/etcd-io/etcd
yay: etcd
ettercap:
_bin: ettercap
_desc: "Ettercap is a comprehensive suite for man-in-the-middle attacks on LAN. It features sniffing of live connections, content filtering on the fly, and many other interesting tricks. It supports active and \npassive dissection of many protocols and includes many features for network and host analysis. It also has plugin support to extend its functionality. Ettercap is widely used for network security \ntesting and educational purposes. You can find more information about it on its GitHub page: Ettercap GitHub. "
_github: https://github.com/Ettercap/ettercap
_name: Ettercap
_short: "Ettercap is a comprehensive suite for man-in-the-middle attacks on LAN. "
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
_short: "eul is a lightweight macOS system monitor. "
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
_short: "exa is a modern replacement for ls command with more features and better output formatting. "
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
_short: "ExifTool is a powerful command-line tool for reading, writing, and editing metadata in a wide variety of files, including images, videos, and documents. "
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
_github: false
_name: Expect
apt: expect
brew: expect
dnf: expect
pacman: expect
port: expect
extensions:
_bin: null
_desc: This role acts as a catch-all for extensions for various system software.
_github: false
_name: Extensions
ansible: professormanhattan.extensions
fabric:
_bin: fab
_desc: "Fabric is a Python library and command-line tool designed for streamlining the process of executing shell commands remotely over SSH. It simplifies the automation of tasks like deploying applications, \nrunning scripts, and managing servers. Fabric allows you to define tasks in Python scripts and execute them across multiple servers simultaneously. It provides features like parallel execution, error \nhandling, and output processing. Fabric is commonly used by developers and system administrators to automate repetitive tasks in a more efficient and consistent manner. "
_github: https://github.com/fabric/fabric
_name: Fabric
_short: "Fabric is a Python library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks. "
brew: fabric
pipx: fabric
fail2ban:
_bin: fail2ban-client
_desc: "Fail2ban is an open-source intrusion prevention software that protects servers from brute-force attacks by monitoring logs for malicious activity and dynamically blocking IP addresses that exhibit \nsuspicious behavior. It works by analyzing log files, detecting patterns of failed login attempts or other malicious activities, and then taking action such as blocking the IP address for a specified \nperiod. Fail2ban is highly configurable, allowing users to define custom filters and actions. It is commonly used to enhance the security of servers and services like SSH, FTP, and web applications. "
_github: https://github.com/fail2ban/fail2ban
_name: "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
_short: "Fail2ban is an open-source intrusion prevention software that protects servers from brute-force attacks by monitoring logs and blocking malicious IP addresses. "
_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
_short: "fastify-cli is a command-line interface tool for generating Fastify application templates quickly and efficiently. "
npm: fastify-cli
fastlane:
_bin: fastlane
_desc: "Fastlane is an open-source platform that automates the process of building and releasing iOS and Android apps. It simplifies tasks like code signing, generating screenshots, and distributing beta \nbuilds. Fastlane consists of multiple tools that can be used together or independently to streamline the app development workflow. It is highly customizable and can be integrated with Continuous \nIntegration (CI) systems like Jenkins. Fastlane helps developers save time and avoid common errors by automating repetitive tasks involved in the app deployment process. "
_github: https://github.com/fastlane/fastlane
_home: https://fastlane.tools/
_name: Fastlane
_short: "Fastlane is a tool that automates the building and releasing of iOS and Android apps. "
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
_short: "fcp is a tool for copying files with progress bars in the terminal. "
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
_short: "fd is a simple, fast and user-friendly alternative to find command, written in Rust. "
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
_desc: "fdupes is a program written in C that finds duplicate files in a given set of directories. It compares file sizes and MD5 signatures to determine duplicates. It offers options to automatically delete or\nhardlink duplicates, making it useful for freeing up disk space. It's a handy tool for managing cluttered file systems and organizing data efficiently. The program is open-source and available on GitHub\nfor users to download, contribute to, or customize according to their needs. "
_github: https://github.com/adrianlopezroche/fdupes
_name: fdupes
_short: "fdupes is a command-line tool for finding and removing duplicate files in a directory. "
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
_name: "feathers-cli "
_short: "The feathersjs-ecosystem/cli is a command-line interface tool for the Feathers framework, designed to streamline development tasks and enhance productivity. "
npm: "@feathersjs/cli"
ferdium:
_app: Ferdium.app
_bin: ferdium
_desc: I'm unable to access external websites directly. Could you provide me with a brief description or any specific details you would like to know about the https://github.com/ferdium/ferdium-app repository?
_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
_github: https://github.com/ferdium/ferdium-app
_name: "ferdium-app "
_short: "ferdium-app is a GitHub repository belonging to user 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
_short: "FFmpeg is a powerful multimedia framework that can decode, encode, transcode, mux, demux, stream, filter, and play almost anything that humans and machines have created. "
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
_short: "ffsend is a command-line tool for securely and easily sharing files from the terminal using Firefox Send. "
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" || logg info 'Fig login failed - User might already be logged in'
_short: "Fig Autocomplete is a tool that enhances shell autocompletion on MacOS and Linux systems, providing a more interactive and user-friendly experience for navigating and completing commands in the \nterminal. "
cask: fig
figlet:
_bin: figlet
_desc: "Figlet is a program that generates text banners in various typefaces, known as \"figlet fonts.\" It allows users to create ASCII art text using different font styles. The GitHub repository you mentioned, \nhttps://github.com/cmatsuoka/figlet, likely contains the source code, documentation, and possibly additional resources related to the Figlet program. Users can download, install, and customize Figlet to\ncreate visually appealing text-based designs for various purposes like banners, signs, or decorative text in terminal applications. "
_github: https://github.com/cmatsuoka/figlet
_name: Figlet
_short: "Figlet is a command-line tool that generates text banners in various fonts. "
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
_short: "Filebrowser is an open-source, self-hosted web-based file manager with a simple and intuitive interface for managing files on a server. "
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
_short: "This is the URL for the FileZilla project's Subversion repository. "
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
_desc: This role should be the last role in the playbook.
_github: false
_name: Finish
ansible: professormanhattan.finish
firebase:
_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
_github: https://github.com/firebase/firebase-tools
_name: "firebase-tools "
_short: "firebase-tools is a command-line interface for Firebase services, allowing developers to deploy and manage Firebase projects from the terminal. "
npm: firebase-tools
firefox:
_app: Firefox.app
_bin: firefox
_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
_github: false
_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/^<scri.*application\/json">//' | 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
_desc: "firefox-profile-js is a Node.js library that allows you to create and manage Firefox profiles programmatically. It provides functions to create new profiles, set preferences, add extensions, and manage \ncookies and permissions. This library can be useful for automated testing, web scraping, or any scenario where you need to interact with Firefox profiles in a scripted manner. It simplifies the process \nof working with Firefox profiles through a set of easy-to-use functions. "
_github: https://github.com/saadtazi/firefox-profile-js
_name: Firefox Profile CLI
_short: "firefox-profile-js is a tool for managing Firefox profiles programmatically using JavaScript. "
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
_desc: "Firewalld is a dynamic firewall management tool for Linux systems. It provides a dynamically managed firewall with support for network zones, services, and rich rules. It allows for easy configuration \nof firewall rules through a command-line interface or graphical user interface. Firewalld is designed to be more user-friendly and flexible compared to traditional static firewall configurations. It is \nactively maintained and widely used in various Linux distributions to enhance network security and manage firewall settings efficiently. "
_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
_short: "firewalld is a dynamic firewall management tool for Linux systems. "
apt: firewalld
dnf: firewalld
emerge: net-firewall/firewalld
pacman: firewalld
zypper: firewalld
fiscript:
_app: FiScript.app
_bin: fiscript
_desc: "FiScript is a command-line tool for macOS that allows users to interact with files and directories using a simple and intuitive syntax. It provides a set of commands that can be used to perform various \nfile operations such as copying, moving, renaming, deleting, and more. FiScript aims to simplify file management tasks for users who prefer working in the terminal. It is written in Swift and offers a \nrange of features to enhance file manipulation efficiency on macOS systems. "
_github: https://github.com/Mortennn/FiScript
_name: FiScript
_short: "FiScript is a command-line tool for macOS that allows you to interact with files and directories using a simple and intuitive syntax. "
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
_short: "Fission is an open-source, Kubernetes-native serverless framework for easily deploying functions and applications. "
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
_short: "fkill is a command-line tool for macOS that helps you easily kill processes by name or port. "
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
_short: "Flake8 is a Python tool that combines linting and style checking using various plugins to help maintain code quality. "
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
_short: "Flameshot is a powerful open-source screenshot tool for Linux and Windows, allowing users to capture, edit, and annotate screenshots with ease. "
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
_desc: "Flatseal is a graphical utility tool for managing permissions in Flatpak applications on Linux systems. It provides a user-friendly interface to view and modify the permissions granted to Flatpak \napplications, enhancing the security and privacy control for users. With Flatseal, users can easily adjust permissions such as access to files, network, and hardware devices for individual Flatpak \napplications, giving them more control over their system's security settings. "
_github: https://github.com/tchx84/Flatseal
_name: "Flatseal "
_short: "Flatseal is a graphical utility to manage permissions for Flatpak applications on Linux systems. "
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
_short: "Fleet is an open-source device management platform for macOS, Windows, and Linux systems. "
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
_short: "Flow.Launcher is an open-source productivity tool for Windows that enhances search and navigation capabilities through customizable plugins and hotkeys. "
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
_short: "Flutter is a popular open-source UI software development kit created by Google for building natively compiled applications for mobile, web, and desktop from a single codebase. "
cask: flutter
choco: flutter
snap: flutter --classic
yay: flutter
fly:
_bin: fly
_desc: CLI to manage Concourse CI installation
_github: https://github.com/concourse/concourse
_home: https://concourse-ci.org/
_name: fly
_short: "Concourse is an open-source continuous integration and continuous delivery (CI/CD) tool. "
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
_short: "fm is a simple file manager for the terminal. "
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
_short: "Footloose is a tool that creates lightweight containers as virtual machines for development and testing purposes. "
brew: weaveworks/tap/footloose
go: github.com/weaveworks/footloose@master
forever:
_bin: forever
_desc: "forever is a simple CLI tool for ensuring that a given script runs continuously. It's particularly useful for keeping Node.js scripts running indefinitely. It can restart the script if it crashes, and \nit also has features like logging, different log levels, and the ability to specify the maximum number of restarts within a specific time frame. This tool is handy for managing and monitoring \nlong-running processes, making it easier to maintain the stability of your applications. "
_github: https://github.com/foreversd/forever
_name: Forever
_short: "forever is a simple CLI tool for ensuring that a given script runs continuously. "
npm: forever
forklift:
_bin: forklift
_desc: "Forklift is a file manager for macOS that provides a user-friendly interface for managing files and folders. It offers features like dual-pane navigation, remote file access (FTP, SFTP, WebDAV, Amazon \nS3, Backblaze B2), file synchronization, file compression, and more. It is designed to be a powerful alternative to the default Finder app on macOS, with a focus on efficiency and ease of use. Users can\ncustomize the interface, keyboard shortcuts, and workflows to suit their preferences. Forklift is developed by BinaryNights and is available for purchase on the Mac App Store. "
_github: https://github.com/Johnn3y/Forklift
_name: "Forklift "
_short: "Forklift is a powerful file manager for macOS with a dual-pane interface, remote file access, and advanced file management features. "
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
_short: "fpm is a tool for building packages in various formats like deb, rpm, and others, making package management easier across different systems. "
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
_short: "fq is a command-line tool for viewing and querying JSON data interactively. "
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
_short: "Fritzing is an open-source software used for designing electronics projects. It provides a user-friendly interface for creating circuit diagrams, PCB layouts, and more. "
_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)
_short: "frp is a fast reverse proxy to help expose a local server to the internet securely. "
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)
_short: "frp is a fast reverse proxy to help expose a local server to the internet securely. "
brew: frps
fselect:
_bin: fselect
_desc: Extension to find files with SQL-like queries
_github: https://github.com/jhspetersson/fselect
_name: fselect
_short: "fselect is a command-line tool for searching files with SQL-like queries. "
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
_short: "Fuego is a lightweight and fast web framework for Go. "
brew: fuego-firestore
go: github.com/sgarciac/fuego@latest
snap: fuego
fury:
_bin: fury
_desc: "Gemfury is a service that provides private package repositories for RubyGems, Python packages, NPM modules, and more. It allows developers to securely host and distribute their private code and \ndependencies. Gemfury supports continuous integration tools like Travis CI and Jenkins, making it easy to integrate into existing workflows. It also offers features like team collaboration, access \ncontrol, and detailed analytics. Overall, Gemfury is a convenient solution for managing and sharing private packages across different programming languages. "
_github: https://github.com/gemfury/gemfury
_name: Fury
_short: "Gemfury is a platform for hosting and sharing private RubyGems, Python packages, and NPM modules. "
brew: gemfury/tap/gemfury
fuse:
_bin: null
_desc: "[macFUSE](https://osxfuse.github.io/) allows you to extend macOS via third party file systems."
_github: https://github.com/libfuse/libfuse
_name: Fuse
_short: "libfuse is a library for writing filesystems in userspace on Unix-like operating systems. "
_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
_short: "fx is a command-line tool for processing JSON data interactively. "
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
_short: "fzf is a command-line fuzzy finder for searching and selecting items interactively. "
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
_desc: "The link https://github.com/gcc-mirror/gcc leads to the official mirror of the GNU Compiler Collection (GCC) on GitHub. GCC is a widely used compiler for programming languages like C, C++, and Fortran. \nThis repository contains the source code for GCC, allowing developers to contribute to its development, report issues, and access the latest updates. It's a valuable resource for anyone interested in \nunderstanding or modifying the inner workings of this essential compiler tool. "
_github: https://github.com/gcc-mirror/gcc
_name: GCC
_short: "The gcc-mirror/gcc repository on GitHub is a mirror of the official GCC (GNU Compiler Collection) repository. "
apt: gcc
brew: gcc
dnf: gcc
pacman: gcc
port: gcc11
gcloud:
_bin: gcloud
_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."
_github: false
_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
_desc: "gcsf is a FUSE file system that allows you to mount your Google Drive account as a local file system for easy access and manipulation of your files. It uses Google Drive API to interact with your Google\nDrive account securely. With gcsf, you can perform various file operations like browsing, uploading, downloading, and deleting files on your Google Drive directly from your terminal. It provides a \nconvenient way to work with your Google Drive files without needing a web browser. "
_github: https://github.com/harababurel/gcsf
_name: GCSF
_short: "gcsf is a FUSE file system that allows you to mount your Google Drive account as a local file system. "
cargo: gcsf
gdbgui:
_bin: gdbgui
_desc: "gdbgui is a browser-based frontend for the GNU Debugger (GDB), allowing users to debug C, C++, and Rust code in a visual interface. It provides features like code highlighting, variable inspection, and \nmemory viewing. Users can set breakpoints, step through code, and analyze program state in a more user-friendly manner compared to traditional command-line debugging. The tool aims to simplify the \ndebugging process by offering a graphical representation of the debugging session. It can be a useful tool for developers looking for a more intuitive way to debug their code. "
_github: https://github.com/cs01/gdbgui
_name: "gdbgui "
_short: "gdbgui is a browser-based graphical interface for GDB (GNU Debugger) that allows for debugging programs with a visual representation of the code execution flow. "
pipx: gdbgui
gdown:
_bin: gdown
_desc: Download a large file from Google Drive
_github: https://github.com/wkentaro/gdown
_name: "gdown "
_short: "gdown is a Python package that allows you to download files from Google Drive using their shareable links. "
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
_short: "gdrive is a command-line utility for interacting with Google Drive. "
brew: gdrive
choco: gdrive
github: github.com/prasmussen/gdrive
go: github.com/prasmussen/gdrive@latest
port: gdrive
scoop: gdrive
yay: gdrive
gdu:
_bin: gdu
_desc: "gdu is a disk usage analyzer with an ncurses interface for Unix systems. It provides a visual representation of disk space usage, allowing users to quickly identify large files and directories. Users \ncan navigate through directories, delete files, and drill down into specific folders to manage disk space efficiently. It is a lightweight and fast tool that can be useful for system administrators and \nusers looking to optimize their disk usage. "
_github: https://github.com/dundee/gdu
_name: "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
_short: "gdu is a disk usage analyzer with a terminal interface for MacOS. "
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
_desc: "ngx-rocket/generator-ngx-rocket is a Yeoman generator for Angular applications. It provides a scaffolding tool to quickly set up and generate Angular projects with best practices, including a modular \narchitecture, lazy loading, and more. This generator helps streamline the process of creating Angular applications by providing a solid foundation and structure to build upon. It is a useful tool for \ndevelopers looking to kickstart their Angular projects efficiently. "
_github: https://github.com/ngx-rocket/generator-ngx-rocket
_name: Angular
_short: "generator-ngx-rocket is a Yeoman generator for Angular applications, providing a solid foundation with best practices and a modular architecture. "
npm: generator-ngx-rocket
genymotion:
_app: Genymotion.app
_github: false
cask: genymotion
choco: genymotion
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
_name: "google-font-installer "
_short: "google-font-installer is a script that simplifies the process of installing Google Fonts on your system. "
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
_short: "GitHub CLI is a command-line tool that brings GitHub to your terminal. "
ansible: professormanhattan.gh
brew: gh
choco: gh
port: gh
scoop: gh
winget: GitHub.cli
ghcup:
_bin: ghcup
_desc: "ghcup is a tool for installing and managing multiple versions of the Haskell compiler GHC. It allows you to easily switch between different versions of GHC, install development tools, and manage Haskell\npackages. With ghcup, you can keep your Haskell environment organized and up-to-date. It simplifies the process of managing Haskell installations and dependencies, making it easier for developers to \nwork with Haskell projects. "
_github: https://github.com/haskell/ghcup-hs
_name: GHCup
_short: "ghcup-hs is a tool for managing Haskell installations on your system. "
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
_short: "ghorg is a tool for cloning all repositories of a GitHub organization quickly and easily. "
ansible: professormanhattan.ghorg
brew: gabrie30/utils/ghorg
github: github.com/gabrie30/ghorg
go: github.com/gabrie30/ghorg@latest
yay: ghorg
gifsicle:
_bin: gifsicle
_desc: "Gifsicle is a powerful command-line tool for creating, editing, and optimizing GIF images. It allows you to manipulate GIF files by resizing, optimizing, and applying various effects. With Gifsicle, you\ncan merge multiple GIFs, extract frames, and adjust colors. It's a versatile tool for working with GIF images efficiently. You can find more information and detailed usage instructions on its GitHub \npage: https://github.com/kohler/gifsicle. "
_github: https://github.com/kohler/gifsicle
_name: Gifsicle
_short: "gifsicle is a powerful command-line tool for creating, editing, and optimizing GIF images. "
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
_short: "GIMP is a free and open-source image editor for tasks like photo retouching, image composition, and image authoring. "
ansible: professormanhattan.gimp
apt: gimp
cask: gimp
choco: gimp
dnf: gimp
flatpak: org.gimp.GIMP
pacman: gimp
snap: gimp
gist:
_bin: 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."
_github: https://github.com/defunkt/gist
_name: gist
_short: "Gist is a tool for sharing code snippets or files easily on GitHub. "
ansible: professormanhattan.gist
gem: gist
git:
_bin: git
_desc: "git/git is the official repository for the Git version control system. It contains the source code for Git, along with documentation, release notes, and other resources. Users can contribute to Git by \nsubmitting pull requests, reporting issues, and participating in discussions. The repository is maintained by the Git community and serves as the central hub for all things related to the development \nand improvement of Git. "
_github: https://github.com/git/git
_name: "git "
_short: "git/git is the official repository for the Git version control system. "
apk: git
apt: git
brew: git
dnf: git
git-branchless:
_bin: git-branchless
_desc: "git-branchless is a tool that aims to simplify and optimize Git workflows by eliminating the need for branches. It allows users to work directly on commits, making it easier to navigate and manage \nchanges without the overhead of creating and switching between branches. This approach can potentially improve performance and reduce complexity in certain Git workflows. The tool provides commands to \nhelp users interact with commits directly, making it a unique and interesting alternative to traditional branch-based Git workflows. "
_github: https://github.com/arxanas/git-branchless
_name: Git Branchless
_short: "git-branchless is a tool that simplifies Git workflows by avoiding the use of branches. It allows you to work directly on the main branch, making the process more linear and reducing the complexity of \nmanaging multiple branches. "
_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
_desc: "git-bug is a command-line tool that integrates a bug tracker directly into your Git workflow. It allows you to manage issues and bugs using Git commands, making it easy to track and resolve issues \nwithin your repository. With git-bug, you can create, list, edit, and close issues directly from the command line, streamlining the bug tracking process for developers. It also supports features like \nlabels, comments, and attachments, providing a comprehensive solution for managing project issues within Git. "
_github: https://github.com/MichaelMure/git-bug
_name: Git Bug
_short: "git-bug is a distributed bug tracker embedded in Git. "
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."
_github: https://github.com/tj/git-extras
_name: git-extras
_short: "git-extras is a collection of useful Git utilities. "
ansible:windows: professormanhattan.gitextras
apt: git-extras
brew: git-extras
dnf: git-extras
pacman: git-extras
git-filter-repo:
_bin: git-filter-repo
_desc: "[gitfilterrepo](https://github.com/newren/git-filter-repo) is a versatile tool for rewriting history"
_github: https://github.com/newren/git-filter-repo
_name: "git-filter-repo "
_short: "git-filter-repo is a powerful tool for rewriting Git repository history efficiently and with ease. "
ansible: professormanhattan.gitfilterrepo
brew: git-filter-repo
pipx: git-filter-repo
git-jump:
_bin: git-jump
_desc: "git-jump is a tool available at https://github.com/mykolaharmash/git-jump designed to enhance navigation within a Git repository. It allows users to quickly jump to different parts of a repository by \nproviding a fuzzy search functionality for branches, tags, and commits. This tool can be especially useful for developers working on projects with many branches or frequent commits, making it easier to \nnavigate and switch between different parts of the repository efficiently. "
_github: https://github.com/mykolaharmash/git-jump
_name: Git Jump
_short: "git-jump is a tool that allows you to quickly switch between Git branches using fuzzy search. "
brew: mykolaharmash/git-jump/git-jump
npm: git-jump
git-lfs:
_bin: 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.
_github: https://github.com/git-lfs/git-lfs
_name: Git LFS
_post: |
#!/usr/bin/env bash
sudo git lfs install --system
git lfs install
_short: "git-lfs is an open-source extension for Git that manages large files by storing them outside the main repository. "
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
_short: "git-notify is a tool that sends desktop notifications when you have new commits in your Git repositories. "
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
_name: "git-open "
_short: "git-open is a command-line tool that opens the GitHub page for a repository in your browser. "
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. Hows 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
_short: "git-secret is a tool to store private data securely inside a Git repository. It encrypts files before committing them, allowing you to share repositories without exposing sensitive information. "
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
_short: "git-stats is a tool that provides statistics about a Git repository, such as contributors, commits per author, and more. "
ansible: professormanhattan.gitstats
npm: git-stats
git-subrepo:
_bin: git-subrepo
_desc: "git-subrepo is a tool that allows you to manage subrepositories within a Git repository. It enables you to include external repositories as subdirectories within your main repository, making it easier \nto work with multiple repositories as a single project. This tool simplifies the process of managing dependencies and keeping them in sync with your main project. It provides commands to add, update, \nand push changes to subrepositories, making it a useful tool for managing complex projects with multiple dependencies. "
_github: https://github.com/ingydotnet/git-subrepo
_name: Git Sub Repo
_short: "git-subrepo is a tool that allows you to manage subrepositories within a Git repository, enabling you to include external repositories as subdirectories in your main repository. "
brew: git-subrepo
git-town:
_bin: git-town
_desc: "Git Town is a Git extension that simplifies and streamlines common Git workflows. It provides a set of high-level Git commands that make it easier to work with branches, pull requests, and more. With \nGit Town, you can perform complex Git operations with simple, easy-to-remember commands, reducing the need to remember and type out lengthy Git commands. It aims to make Git more approachable for both \nbeginners and experienced users by abstracting away some of the complexity of Git operations. You can find more information and documentation on the project's GitHub page: Git Town on GitHub. "
_github: https://github.com/git-town/git-town
_name: Git Town
_short: "Git Town is a command-line tool that enhances Git workflow by simplifying common tasks and automating best practices. "
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
_short: "gitdock is a GitLab repository belonging to mvanremmerden. "
ansible:darwin: professormanhattan.gitdock
cask: gitdock
github-classroom-assistant:
_app: Classroom Assistant.app
_bin: github-classroom-assistant
_desc: "GitHub Classroom Assistant is a tool designed to help teachers and students manage assignments and repositories in GitHub Classroom. It automates the process of creating student repositories, cloning \nthem to the local machine, and submitting assignments back to GitHub. This tool simplifies the workflow for both instructors and students by providing a streamlined way to manage coding assignments and \nprojects within the GitHub ecosystem. It is a valuable resource for educational institutions looking to leverage GitHub for teaching programming and version control. "
_github: https://github.com/education/classroom-assistant
_name: GitHub Classroom Assistant
_short: "GitHub Classroom Assistant is a tool designed to help teachers and students manage assignments and grading on GitHub. "
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
_desc: "GitHub Desktop is a user-friendly desktop client for GitHub, designed to simplify interactions with GitHub repositories. It provides a graphical interface for tasks like managing repositories, reviewing\ncode, and merging changes. Users can easily clone repositories, create branches, commit changes, and push/pull code without needing to use the command line. GitHub Desktop supports both macOS and \nWindows operating systems, making it accessible to a wide range of users. It is a convenient tool for developers who prefer a visual interface for their version control workflows. "
_github: https://github.com/desktop/desktop
_name: "desktop "
_short: "GitHub Desktop is a user-friendly desktop client for managing your Git repositories. "
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
_when: '! test -d "${XDG_DATA_HOME:-$HOME/.local/share}/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
HOST_DISTRO_FAMILY="$(yq '.data.host.distro.family' "${XDG_CONFIG_HOME:-$HOME/.config}/chezmoi/chezmoi.yaml")"
HOST_DISTRO_ID="$(yq '.data.host.distro.id' "${XDG_CONFIG_HOME:-$HOME/.config}/chezmoi/chezmoi.yaml")"
LABELS="self-hosted,$(yq '.data.host.hostname' "${XDG_CONFIG_HOME:-$HOME/.config}/chezmoi/chezmoi.yaml"),$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
_short: "GitHub Actions Runner is a tool that allows you to run GitHub Actions workflows on your own infrastructure. "
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
_desc: "Gitify is a macOS desktop application that provides a streamlined interface for managing GitHub notifications. It allows users to stay updated on their GitHub activities without needing to keep a \nbrowser tab open. With Gitify, users can receive notifications, view unread notifications, mark notifications as read, and easily access their GitHub repositories. It offers a convenient way for GitHub \nusers to stay organized and informed about their projects and collaborations. "
_description: GitHub notifications on the menu bar
_github: https://github.com/manosim/gitify
_home: https://github.com/manosim/gitify
_name: Gitify
_short: "Gitify is a macOS desktop client for GitHub, providing notifications and easy access to your repositories. "
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
_short: "$'Not open-source' is a string in zsh shell that uses single quotes to interpret escape sequences like \\n for newline. "
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
# @file GitLab Runner Configuration
# @brief Registers GitLab Runner(s) with the given GitLab instance
# @description
# This script registers the runner(s) with the given GitLab instance. SaaS GitLab can also be provided as the GitLab instance to register
# the runners with. The script configures the runners to use either Docker or VirtualBox Executor. Refer to
# [this page](https://docs.gitlab.com/runner/executors/docker.html) and [this page](https://docs.gitlab.com/runner/executors/virtualbox.html)
# for details about the available configuration settings.
#
# 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,
# 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
# runner is configured to pickup `untagged` jobs.
#
# Configuring other type of executors is not supported by this script.
#
# ## Secrets
#
# The following chart details the secret(s) that are needed to configure the runner:
#
# | Secret | Description |
# |------------------------|------------------------------------------------------------|
# | `GITLAB_RUNNER_TOKEN` | The token generated when the runner was created in GitLab |
#
# For more information about storing secrets like SSH keys and API keys, refer to our Secrets documentation provided below
#
# ## Configuration Variables
#
# The following chart details the input variable(s) that are used to determine the configuration of the runner:
#
# | Variable | Description |
# |---------------------|----------------------------------------------------------------------------------------------------------|
# | `glurl` | The URL of the Gitlab instance to associate the Runner with |
# | `runnerImage` | Docker image to use to configure the runner. Needed only when configuring `Docker` executor |
# | `runnerDescription` | Description of this runner |
# | `runnerTags` | Comma separated list of tags for this runner. See details in the description for more info |
# | `baseVM` | Name of the VirtualBox VM to use for creating runner. Needed only when configuring `VirtualBox` executor |
#
# ## Links
#
# * [Secrets / Environment variables documentation](https://install.doctor/docs/customization/secrets)
### Check if Docker is installed and operational so Docker executor(s) can be registered
if command -v docker > /dev/null && docker run --rm hello-world > /dev/null; then
HAS_DOCKER=1
else
HAS_DOCKER=0
logg warn 'Docker is not installed or it is not operational'
fi
### Check if VirtualBox is installed and operational so VirtualBox executor(s) can be registered
if command -v VirtualBox > /dev/null; then
HAS_VIRTUALBOX=1
else
HAS_VIRTUALBOX=0
logg warn 'VirtualBox is not installed'
fi
### Configure runners if Docker or VirtualBox is installed
if [ $HAS_DOCKER -eq 0 ] && [ $HAS_VIRTUALBOX -eq 0 ]; then
logg warn 'Docker and VirtualBox are not installed. Not registering runner(s).'
else
### Run logic if gitlab-runner is installed
if command -v gitlab-runner > /dev/null; then
### Populate appropriate token
case "$OSTYPE" in
solaris*) echo "TODO" ;;
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 }}" ;;
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 }}" ;;
bsd*) echo "TODO" ;;
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 }}" ;;
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 }}" ;;
*) echo "unknown: $OSTYPE" ;;
esac
### Check if Runner Token value is present before attempting to register runner(s)
if [ $GITLAB_RUNNER_TOKEN != "" ]; then
### Registering runners
{{ $cmd := `gitlab-runner register \
--non-interactive \
--token $GITLAB_RUNNER_TOKEN \` }}
### Register Docker based runners if Docker is installed and operational
if [ $HAS_DOCKER -eq 1 ]; then
logg info 'Registering GitLab Runner(s) that use Docker executor'
{{- range .host.gitlabRunners }}
{{- if index . "runnerImage" }}
{{- $cmd }}
--url {{ .glurl }} \
--executor "docker" \
--description "{{ .runnerDescription }} - on {{ $.chezmoi.hostname }}" \
--docker-image {{ .runnerImage }} \
{{ if and .runnerTags (gt (len .runnerTags) 0) }}--tag-list "{{ .runnerTags }},{{ $.chezmoi.hostname }},docker"
{{- else }}--tag-list "{{ $.chezmoi.hostname }},docker" --run-untagged{{ end }} || echo 'Runner registration failed"
{{ end -}}
{{ end }}
fi
### Register VirtualBox based runners if VirtualBox is installed
if [ $HAS_VIRTUALBOX -eq 1 ]; then
logg info 'Registering GitLab Runner(s) that use VirtualBox executor'
{{- range .host.gitlabRunners }}
{{- if index . "baseVM" }}
{{- $cmd }}
--url {{ .glurl }} \
--executor "virtualbox" \
--description "{{ .runnerDescription }} - on {{ $.chezmoi.hostname }}" \
--virtualbox-base-name "{{ .baseVM }}" \
{{ if and .runnerTags (gt (len .runnerTags) 0) }}--tag-list "{{ .runnerTags }},{{ $.chezmoi.hostname }},virtualbox"
{{- else }}--tag-list "{{ $.chezmoi.hostname }},virtualbox" --run-untagged{{ end }} || echo 'Runner registration failed"
{{ end -}}
{{ end }}
fi
else
logg warn 'GITLAB_RUNNER_TOKEN is not set. Not registering runner(s)'
fi
else
logg warn 'gitlab-runner is not installed or is not available in PATH'
fi
fi
_service: gitlab-runner
_serviceEnabled: true
_short: "GitLab Runner is an open-source project that works with GitLab CI/CD to run jobs and send the results back to GitLab. "
ansible: professormanhattan.gitlabrunner
brew: gitlab-runner
choco: gitlab-runner
pacman: gitlab-runner
port: gitlab-runner
scoop: gitlab-runner
gitlabform:
_bin: gitlabform
_desc: "gitlabform is a tool available at https://github.com/gitlabform/gitlabform/ designed to manage GitLab resources as code. It allows users to define GitLab resources like projects, groups, users, and more\nin a configuration file, enabling easy versioning, sharing, and automation of GitLab configurations. With gitlabform, you can apply these configurations to your GitLab instance, ensuring consistency and\nreproducibility across environments. It simplifies GitLab administration tasks by providing a declarative way to manage GitLab resources. "
_github: https://github.com/gitlabform/gitlabform/
_name: "gitlabform "
_short: "gitlabform is a tool for managing GitLab resources as code, allowing you to define and version control your GitLab settings in a declarative way. "
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
_short: "gitleaks is a tool for finding sensitive information in git repositories. "
brew: gitleaks
dnf:fedora: gitleaks
github: github.com/zricethezav/gitleaks
pkg: gitleaks
yay: gitleaks
gitmoji-cli:
_bin: gitmoji
_desc: "gitmoji-cli is a command-line tool available on GitHub that allows users to easily use Gitmoji emojis in their commit messages. Gitmoji emojis are used to help standardize and communicate the purpose of\na commit in a more visual way. This tool simplifies the process of adding these emojis to commit messages, making it easier for developers to convey the nature of their changes. It provides a list of \nemojis and their meanings, making it convenient for developers to select the appropriate emoji for their commits. "
_github: https://github.com/carloscuesta/gitmoji-cli
_name: "gitmoji-cli "
_npm: Gitmoji CLI
_short: "gitmoji-cli is a command-line tool that helps you use emojis in your Git commit messages. "
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
# @file git-o-matic Configuration
# @brief Starts service on Linux systems to monitor Git repositories
# @description
# git-o-matic is a tool to monitor git repositories and automatically pull/push changes. Multiple repositories can be
# monitored by running multiple instances of `gitomatic`. This script supports SSH Key based authentication only.
#
# If the `gitomatic` program is installed, this script creates and starts a Systemd service to monitor the repositories.
# The repositories are cloned if they are not available at the path.
#
# ## Notes
# * 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)
# * `gitomatic` automatically pushes and pulls changes. The script does not change this behavior
# * `gitomatic` checks for changes every minute. This setting is not changed by this script
# * The User's default SSH Key is used for authentication
#
# ## Links
#
# * [gitomatic GitHub repository](https://github.com/muesli/gitomatic/)
# * [Systemd Unit file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/gitomatic/gitomatic.service.tmpl)
# * [Helper script](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_local/bin/executable_gitomatic_service.tmpl)
if command -v gitomatic > /dev/null; then
### Copy bin to /usr/local/bin
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
### Copy gitomatic to global directory
if [ ! -f /usr/local/bin/gitomatic ]; then
logg info 'Copying gitomatic executable to /usr/local/bin/gitomatic' && sudo cp -f "$(which gitomatic)" /usr/local/bin/gitomatic
fi
if [ -d /Applications ] && [ -d /System ]; then
### macOS
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
if ! sudo launchctl list | grep 'gitomatic' > /dev/null; then
logg info 'Running sudo launchctl load /Library/LaunchDaemons/com.github.muesli.gitomatic.plist' && sudo launchctl load /Library/LaunchDaemons/com.github.muesli.gitomatic.plist
logg info 'Running sudo launchctl start /Library/LaunchDaemons/com.github.muesli.gitomatic.plist' && sudo launchctl start /Library/LaunchDaemons/com.github.muesli.gitomatic.plist
else
logg info "gitomatic services appear to already be loaded"
fi
else
### Linux
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
logg info 'Reloading systemd daemon' && sudo systemctl daemon-reload
logg info 'Enabling and starting gitomatic service' && sudo systemctl enable --now gitomatic
fi
else
logg info 'gitomatic is not installed or it is not available in PATH'
fi
_short: "gitomatic is a tool for automatic syncing of Git repositories. "
ansible: professormanhattan.gitomatic
github: github.com/muesli/gitomatic
go: github.com/muesli/gitomatic@latest
pacman: gitomatic
scoop: gitomatic
gitql:
_bin: gitql
_desc: "gitql is a command-line tool that allows you to query your Git repositories using SQL-like syntax. It provides a way to search and filter through your commit history, branches, and more using familiar \nSQL commands. This tool can be useful for developers who are comfortable with SQL and want to analyze their Git repositories in a more structured manner. It offers a unique way to interact with Git \nrepositories and extract specific information efficiently. "
_github: https://github.com/filhodanuvem/gitql
_name: GitQL
_short: "gitql is a command-line tool that allows you to query your Git repositories using SQL-like syntax. "
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
_short: "gitui is a terminal interface for Git with a user-friendly, interactive experience. "
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
_desc: "Gixy is a tool developed by Yandex for analyzing Nginx configuration to detect security misconfigurations and performance issues. It scans the Nginx configuration file and provides recommendations to \nimprove security and performance. Gixy helps in identifying potential vulnerabilities such as insecure directives, misconfigured headers, and more. It is a useful tool for Nginx administrators to ensure\ntheir web server is properly configured and secure. "
_github: https://github.com/yandex/gixy
_name: "gixy "
_short: "gixy is a tool by Yandex for analyzing Nginx configuration to find security misconfigurations and performance issues. "
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
_short: "glab is a GitLab CLI tool that brings GitLab to your terminal. "
apk: glab
brew: glab
github: github.com/profclems/glab
scoop: glab
yay: gitlab-glab-bin
glances:
_bin: 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."
_github: https://github.com/nicolargo/glances
_name: Glances
_post:pipx: |
#!/usr/bin/env bash
pipx inject glances glances[all]
_short: "Glances is a cross-platform monitoring tool that provides real-time system information in a visually appealing way. "
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
_name: "glen "
_short: "glen is a tool for managing Git repositories in a more efficient way. "
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
_short: "Glow is a terminal markdown viewer for Unix systems. "
brew: glow
github: github.com/charmbracelet/glow
pkg: glow
scoop: glow
yay: glow
glusterfs:
_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
_short: "GlusterFS is an open-source distributed file system that can scale out in building-block fashion to store multiple petabytes of data. "
apt: glusterfs-server
dnf:fedora: glusterfs-server
pacman: glusterfs
gnome:
_bin: gnome
_desc: "GNOME Shell is the official user interface of the GNOME desktop environment. It provides the graphical shell for the GNOME desktop, handling the desktop, application launching, and switching between \nwindows. The source code for GNOME Shell is hosted on GitHub at https://github.com/GNOME/gnome-shell. Developers can contribute to the project, report issues, and collaborate on improving the user \nexperience of the GNOME desktop environment. "
_github: https://github.com/GNOME/gnome-shell
_name: GNOME
_short: "GNOME Shell is the official user interface of the GNOME desktop environment for Unix-like operating systems. "
apt: gnome
dnf: gnome
pacman: gnome
zypper: gnome
gnome-boxes:
_bin: 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/
_github: https://github.com/GNOME/gnome-boxes
_home: https://apps.gnome.org/app/org.gnome.Boxes/
_name: GNOME Boxes
_short: "GNOME Boxes is a simple application for managing virtual machines. "
apt: gnome-boxes
dnf: gnome-boxes
flatpak: org.gnome.Boxes
pacman: gnome-boxes
gnome-calendar:
_bin: calendar
_desc: "GNOME Calendar \n\nGNOME Calendar is a simple and beautiful calendar application designed for the GNOME desktop environment. It allows users to manage their events, appointments, and tasks efficiently. The application \nprovides a clean interface with features like day, week, and month views, event reminders, and integration with online calendars like Google Calendar. GNOME Calendar is open-source and actively \nmaintained by the GNOME community. It is written in C and uses the GTK toolkit for its user interface. Users can contribute to the project, report issues, and suggest improvements on its GitHub \nrepository: GNOME Calendar GitHub Repository. "
_github: https://github.com/GNOME/gnome-calendar
_name: "gnome-calendar "
_short: "GNOME Calendar is a simple and elegant calendar application for the GNOME desktop environment. "
flatpak: org.gnome.Calendar
gnome-document-viewer:
_bin: document-viewer
_desc: "Evince is a document viewer designed for the GNOME desktop environment. It supports multiple document formats such as PDF, PostScript, DjVu, TIFF, and DVI. Evince provides features like text search, \ndocument indexing, annotations, and the ability to view multiple documents in tabs. It is known for its simplicity, speed, and integration with the GNOME desktop. Evince is open-source software, \nallowing users to contribute to its development and customize it to suit their needs. "
_github: https://github.com/GNOME/evince
_name: "evince "
_short: "Evince is a document viewer for GNOME desktop environment. "
flatpak: org.gnome.Evince
gnome-extension-manager:
_bin: gnome-extension-manager
_desc: "The repository at https://github.com/mjakeman/extension-manager appears to be an extension manager tool created by the user mjakeman. It likely provides functionality to manage extensions for a specific\nsoftware or platform. Without further details or examining the code, it seems to be a tool designed to simplify the process of installing, updating, and managing extensions or plugins. If you need more \nspecific information, I can help you explore the repository further. "
_github: https://github.com/mjakeman/extension-manager
_name: "extension-manager "
_short: "extension-manager is a tool for managing browser extensions in Chrome and Firefox. "
flatpak: com.mattjakeman.ExtensionManager
gnome-eyedropper:
_bin: eyedropper
_desc: "Eyedropper \n\nEyedropper is a tool available on GitHub at FineFindus/eyedropper. It is a color picker application for macOS that allows users to easily identify and capture colors from their screen. The tool provides\na simple interface for selecting colors and copying their values in various formats. It can be useful for designers, developers, and anyone working with colors in their projects. Eyedropper is designed \nto be user-friendly and efficient in helping users work with colors effectively on the macOS platform. "
_github: https://github.com/FineFindus/eyedropper
_name: "eyedropper "
_short: "Eyedropper is a tool for macOS that allows users to quickly and easily pick colors from anywhere on the screen. "
flatpak: com.github.finefindus.eyedropper
gnome-file-roller:
_bin: file-roller
_desc: "File Roller is a file archive manager for GNOME desktop environments. It allows users to create and modify archives in various formats like zip, tar, and 7z. File Roller provides a simple and intuitive \ninterface for compressing and decompressing files, as well as viewing and extracting contents from archives. It integrates seamlessly with the GNOME desktop environment, making it easy to manage \ncompressed files. Additionally, it supports encryption and password protection for archives, enhancing file security. Overall, File Roller is a handy tool for managing archives on GNOME-based systems. "
_github: https://github.com/GNOME/file-roller
_name: "file-roller "
_short: "file-roller is a GNOME archive manager for managing compressed files on Linux systems. "
flatpak: org.gnome.FileRoller
gnome-image-viewer:
_bin: image-viewer
_desc: "eog (Eye of GNOME) is the official image viewer for the GNOME desktop environment. It allows users to view and browse images in various formats, including JPEG, PNG, TIFF, and more. eog provides basic \nimage editing features like rotating, flipping, and cropping images. It also supports slideshows, fullscreen mode, and can display image metadata. eog is designed to be simple and easy to use, making it\na popular choice for viewing images on Linux systems running the GNOME desktop. "
_github: https://github.com/GNOME/eog
_name: "eog "
_short: "eog is the official image viewer for the GNOME desktop environment. "
flatpak: org.gnome.eog
gnome-network-displays:
_bin: network-displays
_desc: "GNOME Network Displays is a project on GitHub developed by the GNOME community. It aims to provide a way to extend your desktop to other screens over the network. This tool allows you to use other \ncomputers or devices as secondary displays for your main machine. It leverages the VNC protocol to achieve this functionality. Users can mirror or extend their desktop to other devices, making it useful\nfor presentations, remote work, or simply expanding your workspace. The project is open-source and welcomes contributions from the community. "
_github: https://github.com/GNOME/gnome-network-displays
_name: "gnome-network-displays "
_short: "gnome-network-displays is a GNOME Shell extension that allows users to cast their screen to another computer on the same network. "
flatpak: org.gnome.NetworkDisplays
gnome-passwords-keys:
_bin: seahorse
_desc: "Seahorse is a GNOME application for managing encryption keys, passwords, and certificates in Linux systems. It provides a user-friendly interface to handle cryptographic tasks like generating key pairs,\nencrypting/decrypting files, and managing SSH keys. Seahorse integrates with the GNOME desktop environment, making it easy to work with encryption in a graphical way. It also supports OpenPGP and SSH \nprotocols, allowing users to securely store and manage their cryptographic keys. Seahorse is a valuable tool for users who need to handle encryption and key management tasks efficiently on their Linux \nsystems. "
_github: https://github.com/GNOME/seahorse
_name: "seahorse "
_short: "Seahorse is a GNOME application for managing encryption keys and passwords. "
flatpak: org.gnome.seahorse.Application
gnome-photos:
_bin: photos
_desc: "GNOME Photos is an application for managing and organizing photos on the GNOME desktop environment. It allows users to import photos from various sources, view them in a timeline or grid layout, and \nperform basic editing tasks like cropping and rotating. Users can also organize photos into albums, search for specific images, and easily share them. GNOME Photos integrates with online accounts like \nGoogle and Flickr for seamless access to cloud-based photos. It is designed to provide a simple and intuitive way to manage a large collection of photos on Linux systems running the GNOME desktop. "
_github: https://github.com/GNOME/gnome-photos
_name: "gnome-photos "
_short: "gnome-photos is a photo management application for the GNOME desktop environment. "
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
_desc: "GNOME Text Editor \n\nThe GNOME Text Editor, also known as gedit, is a simple and easy-to-use text editor designed for the GNOME desktop environment. It offers basic text editing features like syntax highlighting, search and\nreplace, and support for plugins to extend its functionality. It is written in C and has a clean and user-friendly interface. gedit is commonly used for editing configuration files, programming code, \nand general text editing tasks on Linux systems. It is open-source and actively maintained by the GNOME project. "
_github: https://github.com/GNOME/gnome-text-editor
_name: "gnome-text-editor "
_short: "GNOME Text Editor is a simple and easy-to-use text editor for the GNOME desktop environment. "
flatpak: org.gnome.TextEditor
gnome-tweaks:
_bin: gnome-tweaks
_desc: "GNOME Tweaks is a tool that allows users to customize various aspects of the GNOME desktop environment. It provides a user-friendly interface to tweak settings that are not easily accessible through the\nstandard GNOME settings. Users can modify themes, fonts, icons, extensions, and other desktop-related settings to personalize their GNOME experience. GNOME Tweaks is a popular tool among GNOME users who\nwant more control over their desktop environment's appearance and behavior. It is open-source and actively maintained by the GNOME project. "
_github: https://github.com/GNOME/gnome-tweaks
_name: GNOME Tweaks
_short: "GNOME Tweaks is a tool that allows users to customize various aspects of the GNOME desktop environment on Linux systems. "
apt: gnome-tweaks
dnf: gnome-tweaks
pacman: gnome-tweaks
gnome-video-player:
_bin: video-player
_desc: "Totem is a media player for the GNOME desktop environment. It allows users to play audio and video files, as well as DVDs, VCDs, and various streaming protocols. Totem supports a wide range of formats \nand codecs, making it a versatile choice for multimedia playback on Linux systems. It also includes features like playlist support, subtitle display, and the ability to stream content from online \nsources. The project is open-source and hosted on GitHub, where users can contribute to its development and report issues. "
_github: https://github.com/GNOME/totem
_name: "totem "
_short: "Totem is a simple and easy-to-use media player for GNOME desktop environment. "
flatpak: org.gnome.Totem
gnome-weather:
_bin: gnome-weather
_desc: "GNOME Weather \n\nGNOME Weather is a simple and elegant weather application for the GNOME desktop environment. It provides users with current weather conditions, forecasts, and other weather-related information. The \napplication fetches data from various weather services to keep users informed about the weather in their location. Users can view weather details like temperature, humidity, wind speed, and more in a \nuser-friendly interface. GNOME Weather is designed to seamlessly integrate with the GNOME desktop environment, offering a convenient way for users to stay updated on weather conditions. "
_github: https://github.com/GNOME/gnome-weather
_name: "gnome-weather "
_short: "gnome-weather is a weather application for GNOME desktop environments. "
flatpak: org.gnome.Weather
gnu:
_deps:darwin:
- coreutils
- findutils
- gawk
- gnu-indent
- gnu-tar
- gnu-sed
- gnutls
- grep
_github: false
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:
_bin: gnutls-certtool
_github: false
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
_short: "The official repository for the Go programming language. "
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
_short: "go-chromecast is a Go package for controlling Chromecast devices. "
github: github.com/vishen/go-chromecast
go: github.com/vishen/go-chromecast@latest
go-outline:
_bin: go-outline
_desc: "go-outline is a tool for Go programming language that generates outline information for Go source code. It provides a way to extract structural information like types, functions, and methods from Go \nfiles. This can be useful for understanding the overall structure of a Go project or for tools that need to analyze Go code programmatically. The tool is typically used by Go developers and integrated \ninto IDEs or text editors to enhance code navigation and understanding. "
_github: https://github.com/ramya-rao-a/go-outline
_name: "go-outline "
_short: "go-outline is a Go language tool that generates code outline information for Go source files. "
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
_short: "GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal. "
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
_short: "gojq is a command-line JSON processor written in Go. "
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/
_name: "golangci-lint "
_short: "golangci-lint is a fast Go linter. "
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
_name: "gomodifytags "
_short: "gomodifytags is a tool for Go programming language that allows you to modify struct tags in Go source files easily. "
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
_short: "gomplate is a versatile command-line tool for manipulating text templates with data. "
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
_short: "goofys is a Filey System written in Go, allowing you to mount an S3 bucket as a file system. "
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
_short: "This is an unofficial desktop client for Google Assistant created by Melvin Abraham. "
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
_short: "$'Not open-source' is a string in zsh shell that uses single quotes to interpret escape sequences like \\n for newline. "
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
_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.
_github: false
_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
_short: "gopass is a password manager for the command line that allows you to store and manage your passwords securely. "
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
_name: "gopkgs "
_short: "gopkgs is a tool for listing Go packages in your project. "
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
_desc: "goreleaser is a tool used for automating Go software releases. It simplifies the process of building, packaging, and releasing Go applications by providing a configurable release pipeline. With \ngoreleaser, you can create cross-platform builds, generate release notes, create binaries, and publish releases to platforms like GitHub. It helps streamline the release process for Go projects, making \nit easier for developers to package and distribute their software. "
_github: https://github.com/goreleaser/goreleaser
_name: Go Releaser
_short: "goreleaser is a tool that automates Go software releases. "
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
_name: "gotests "
_short: "gotests is a tool that generates Go tests from your source code. "
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
_short: "gphotos-sync is a tool for syncing Google Photos to a local directory. "
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
_short: "gping is a modern ping tool that shows a graph of ping responses over time. "
ansible: professormanhattan.gping
brew: gping
cargo: gping
choco: gping
github: github.com/orf/gping
pacman: gping
scoop: gping
gpt-engineer:
_bin: gpt-engineer
_desc: "The GitHub repository https://github.com/AntonOsika/gpt-engineer appears to be a project related to GPT (Generative Pre-trained Transformer) technology for engineers. It likely contains code, \ndocumentation, or resources for utilizing GPT models in engineering-related tasks. Without further exploration, it seems to be a tool or framework tailored towards engineers looking to leverage GPT for \ntheir projects. For detailed insights, exploring the repository's contents, README file, and documentation would provide a clearer understanding of its purpose and functionality. "
_github: https://github.com/AntonOsika/gpt-engineer
_name: GPT Engineer
_short: "gpt-engineer is a tool for generating code using GPT-3. "
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
_short: "Gradle is a powerful build automation tool that helps manage dependencies and build processes efficiently for software projects. "
ansible: professormanhattan.gradle
brew: gradle
choco: gradle
port: gradle
scoop: gradle
snap: gradle --classic
graphql-playground:
_app: GraphQL Playground.app
_bin: graphql-playground
_desc: "GraphQL Playground is an interactive web-based IDE for exploring, testing, and sharing GraphQL APIs. It provides a graphical interface where you can write, validate, and execute GraphQL queries, as well\nas view the results in real-time. It offers features like syntax highlighting, auto-completion, and documentation explorer to make working with GraphQL easier. Additionally, it allows you to save and \nshare your queries with others. Overall, GraphQL Playground is a powerful tool for developers working with GraphQL APIs to streamline their development workflow. "
_github: https://github.com/graphql/graphql-playground
_name: GraphQL Playground
_short: "GraphQL Playground is an interactive GraphQL IDE that allows you to explore, test, and share GraphQL APIs. "
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
_short: "grex is a tool that generates regular expressions from user-provided test cases. "
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
_short: "gron is a tool that transforms JSON into easily greppable format. "
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
_short: "Grype is a vulnerability scanner for container images. "
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
_name: "gtop "
_short: "gtop is a system monitoring dashboard for the terminal, providing real-time information on system resources like CPU, memory, and processes. "
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
_short: "Apache Guacamole is an open-source remote desktop gateway that provides access to desktop environments using a web browser. "
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
_short: "Gulp is a popular JavaScript task runner that helps automate repetitive tasks in web development workflows. "
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
_short: "gum is a terminal framework for Go that helps in building rich and interactive command-line applications. "
apk: gum
brew: gum
go: github.com/charmbracelet/gum@latest
nix: nixpkgs.gum
pacman: gum
pkg-termux: gum
gup:
_bin: gup
_desc: "gup is a tool available at https://github.com/nao1215/gup that simplifies the process of updating Git repositories. It allows you to update multiple repositories at once by running a single command. \nThis tool can be useful for managing and keeping multiple repositories up to date efficiently. It provides a convenient way to streamline the update process and ensure that your repositories are always \ncurrent with the latest changes. "
_github: https://github.com/nao1215/gup
_name: Gup
_short: "gup is a tool for updating Git repositories with ease. "
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
_short: "gvm is a Go Version Manager that allows you to easily install and manage multiple versions of Go on your system. "
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
_short: "Hadolint is a Dockerfile linter that checks for best practices and errors in Dockerfiles. "
brew: hadolint
dnf:fedora: hadolint
scoop: hadolint
handbrake:
_app: HandBrake.app
_bin: handbrake
_desc: "HandBrake is an open-source video transcoder software available at https://github.com/HandBrake/HandBrake. It allows users to convert video files into various formats, making it compatible with \ndifferent devices. HandBrake supports a wide range of input formats and offers features like batch encoding, chapter markers, and subtitles. It is popular for its ease of use and efficiency in \nconverting videos while maintaining good quality. The project is actively maintained by a community of developers and contributors. "
_github: https://github.com/HandBrake/HandBrake
_name: "HandBrake "
_short: "HandBrake is an open-source video transcoder that converts multimedia files to various formats. "
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
_short: "handlr is a command-line tool for managing URL handlers on macOS. "
cargo: handlr --locked
yay: handlr-bin
haproxy:
_bin: haproxy
_desc: "HAProxy is a widely-used open-source software that provides high availability, load balancing, and proxying for TCP and HTTP-based applications. It is known for its efficiency, reliability, and \nflexibility in handling traffic across servers. HAProxy can be used to distribute incoming traffic to multiple servers to ensure optimal performance and reliability. It is commonly used in web hosting, \ne-commerce, and other high-traffic websites to improve scalability and fault tolerance. The GitHub repository contains the source code, documentation, and community contributions for the HAProxy \nproject. "
_github: https://github.com/haproxy/haproxy
_name: HAProxy
_service: haproxy
_short: "HAProxy is a reliable, high-performance TCP/HTTP load balancer. "
apk: haproxy
apt: haproxy
brew: haproxy
choco: haproxy
dnf: haproxy
pacman: haproxy
zypper: haproxy
has:
_bin: has
_desc: "has is a tool developed by kdabir available on GitHub. It is a command-line utility for checking the presence of various Unix tools and their versions on a system. This tool can be useful for developers\nand system administrators to quickly verify the availability and versions of essential tools on their Unix-based systems. It simplifies the process of checking for the presence of tools like git, curl, \njq, etc., and their versions in a single command. It can help streamline system setup and troubleshooting processes. "
_github: https://github.com/kdabir/has
_name: Has
_short: "has is a command-line utility for checking the presence of various Unix tools and their versions. "
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
_name: "hbs-cli "
_short: "hbs-cli is a command-line tool for Handlebars templating. "
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
_short: "hclq is a command-line tool for querying and manipulating HashiCorp Configuration Language (HCL) files. "
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
_short: "Helix is a modern text editor for terminal-based systems, designed for speed and ease of use. "
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
_short: "Helm is a package manager for Kubernetes that helps you manage applications and resources using charts. "
brew: helm
choco: kubernetes-helm
scoop: helm
snap: helm --classic
helm-docs:
_bin: helm-docs
_desc: "helm-docs is a tool for automatically generating documentation for your Helm charts. It parses the Chart.yaml file in your Helm chart and generates a README.md file with information about the chart, \nsuch as the chart name, version, description, maintainers, and values.yaml file. This makes it easier to maintain up-to-date documentation for your Helm charts and share them with others. It simplifies \nthe process of creating and updating documentation, ensuring consistency and accuracy across your Helm charts. "
_github: https://github.com/norwoodj/helm-docs
_name: Helm Docs
_short: "helm-docs is a tool that automatically generates Markdown documentation for your Helm charts based on the values.yaml file. "
brew: norwoodj/tap/helm-docs
scoop: helm-docs
helmfile:
_bin: helmfile
_desc: "Helmfile is a declarative spec for deploying Helm charts. It allows you to define and maintain complex Helm deployments in a simple YAML file, making it easier to manage Helm releases across different \nenvironments. With Helmfile, you can specify the charts, values, repositories, and release management options in a structured way. It provides a way to manage Helm releases with more control and \nconsistency, especially in CI/CD pipelines or complex Kubernetes environments. "
_github: https://github.com/helmfile/helmfile
_name: Helmfile
_short: "helmfile is a declarative spec for deploying Helm charts. "
brew: helmfile
pacman: helmfile
scoop: helmfile
zypper: helmfile
heroku-cli:
_bin: heroku
_desc: "[Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) lets you create and manage Heroku apps directly from the terminal. Its an essential part of using Heroku."
_github: https://github.com/heroku/cli
_name: Heroku CLI
_short: "Heroku CLI is a command-line tool that allows developers to manage and deploy applications on the Heroku platform easily. "
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
_short: "Hexyl is a command-line hex viewer designed for speed and ease of use. "
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
_short: "hey is a modern load testing tool for web applications. "
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
_short: "hidden is a tool that helps you hide files and directories in macOS using the chflags command. "
cask: hiddenbar
mas: 1452453066
himalaya:
_bin: himalaya
_desc: "[Himalaya](https://github.com/soywod/himalaya) is a CLI email client written in Rust."
_github: https://github.com/soywod/himalaya
_name: Himalaya
_short: "himalaya is a minimalist and fast static site generator written in Rust. "
ansible: professormanhattan.himalaya
brew: himalaya
scoop: himalaya
hishtory:
_bin: hishtory
_desc: "hishtory is a tool available on GitHub at https://github.com/ddworken/hishtory. It appears to be a project related to browsing history analysis. The tool likely allows users to analyze and visualize \ntheir browsing history data, providing insights into their online activities. For more detailed information, you can explore the repository on GitHub. "
_github: https://github.com/ddworken/hishtory
_name: hiSHtory
_post: |
#!/usr/bin/env bash
echo y | hishtory init "$HISHTORY_USER_SECRET"
_short: "hishtory is a tool for tracking and visualizing your command history in the terminal. "
_todo: Check for Homebrew version
script: curl -sSL --compressed https://hishtory.dev/install.py | python3 -
hoard:
_bin: hoard
_desc: "Hoard is a tool available on GitHub at https://github.com/Hyde46/hoard. It is a simple shell script designed to help users manage their dotfiles by storing them in a Git repository. Dotfiles are \nconfiguration files for various programs in Unix-like systems. Hoard simplifies the process of backing up and syncing these files across multiple machines. Users can easily add, commit, and push changes\nto their dotfiles repository using this tool. It provides a convenient way to keep configurations consistent across different environments. "
_github: https://github.com/Hyde46/hoard
_name: Hoard
_short: "Hoard is a tool for managing secrets securely in macOS keychain. "
cargo: hoard-rs
nix-env: hoard
pacman: hoard
port: hoard-cli
holehe:
_bin: holehe
_desc: "Holehe is a tool available on GitHub that is designed for DNS black-holing. It allows users to block unwanted domains by redirecting them to a local IP address. This tool can be useful for blocking ads,\ntracking domains, or malicious websites at the DNS level. Users can customize the list of domains to block and configure the tool according to their needs. It is a simple yet effective way to enhance \nprivacy and security by preventing unwanted connections to specific domains. "
_github: https://github.com/megadose/holehe
_name: Holehe
_short: "holehe is a tool for identifying and exploiting known and existing vulnerabilities in web applications. "
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
_short: "hostctl is a command-line tool for managing your /etc/hosts file easily. "
brew: guumaster/tap/hostctl
github: github.com/guumaster/hostctl
scoop: hostctl
yay: hostctl
hosthomepage:
_bin: null
_github: false
_name: Host Home Page
ansible: professormanhattan.hosthomepage
hosts:
_bin: null
_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.
_github: false
_name: Hosts
ansible: professormanhattan.hosts
howdoi:
_bin: howdoi
_desc: "howdoi is a command-line tool that provides quick answers to programming questions by searching through Stack Overflow. Users can simply type a question related to programming, and howdoi will fetch and\ndisplay relevant answers from Stack Overflow. It's a handy tool for developers looking for quick solutions or explanations without having to manually search through forums. The tool is written in Python\nand is available on GitHub for anyone to use and contribute to. "
_github: https://github.com/gleitz/howdoi
_name: howdoi
_short: "howdoi is a command-line tool that instantly provides answers to programming questions by searching through Stack Overflow. "
brew: howdoi
pipx: howdoi
hss:
_bin: hss
_desc: "hss is a high-speed socks5 proxy server designed for shadowsocks. It is written in C and aims to provide a fast and efficient proxy solution. The project on GitHub provides details on how to build and \nuse the proxy server. It supports multiple encryption methods and is optimized for performance. Users can configure it to work with shadowsocks clients for secure and fast internet browsing. "
_github: https://github.com/six-ddc/hss
_name: hss
_short: "hss is a high-speed HTTP(S) proxy server written in Go. "
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
_desc: "hstr is a command-line utility for managing command history in Unix-like systems. It enhances the history search functionality in the terminal by providing a more interactive and powerful way to search \nand execute past commands. Users can search their command history with incremental search, view and filter results, and execute commands directly from the search results. It also supports fuzzy matching\nand can be integrated with various shells like zsh and bash. Overall, hstr aims to make working with command history more efficient and user-friendly. "
_github: https://github.com/dvorka/hstr
_name: HiSToRy
_short: "hstr is a command-line utility that enhances the history search functionality in Unix-based systems, allowing users to easily search and execute past commands using a fuzzy search algorithm. "
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
_short: "HTMLHint is a tool that helps developers write clean and error-free HTML code by analyzing and providing feedback on potential issues and best practices. "
npm: htmlhint
htmlq:
_bin: htmlq
_desc: A lightweight and flexible command-line JSON processor for HTML
_github: https://github.com/mgdm/htmlq
_name: htmlq
_short: "htmlq is a command-line tool that allows you to query HTML using CSS selectors. "
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
_short: "htop is a popular interactive process viewer for Unix systems, providing a more user-friendly and feature-rich alternative to the traditional top command. "
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
_short: "http-prompt is an interactive command-line HTTP client built on top of HTTPie, allowing users to make HTTP requests with a user-friendly interface. "
brew: http-prompt
pipx: http-prompt
http-toolkit:
_app: HTTP Toolkit.app
_desc: "HTTP Toolkit is an open-source tool for debugging, testing, and intercepting HTTP and HTTPS. It allows you to inspect, debug, and mock HTTP traffic between your applications and the internet. With HTTP \nToolkit, you can view and modify requests and responses, simulate network conditions, and test how your application behaves in different scenarios. It provides a user-friendly interface for monitoring \nand analyzing HTTP traffic, making it a valuable tool for developers and system administrators working with web applications. "
_github: https://github.com/httptoolkit/httptoolkit
_name: HTTP Toolkit
_short: "httptoolkit is a tool for debugging, testing, and intercepting HTTP and HTTPS traffic. "
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."
_github: https://github.com/httpie/cli
_name: HTTPie
_short: "HTTPie is a command-line HTTP client for making requests with a simple and intuitive syntax. "
_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
_short: "httpstat is a tool that provides a visual representation of HTTP response times in the terminal. "
brew: httpstat
pipx: httpstat
hub:
_bin: hub
_desc: Add GitHub support to git on the command-line
_github: https://hub.github.com/
_name: "hub "
_short: "GitHub CLI (https://hub.github.com/) is a command-line tool that brings GitHub to your terminal. "
apt: hub
brew: hub
choco: hub
dnf:fedora: hub
pacman: hub
pkg: hub
scoop: hub
hugo:
_bin: hugo
_desc: The worlds fastest framework for building websites.
_docs: https://gohugo.io/documentation/
_github: https://github.com/gohugoio/hugo
_home: https://gohugo.io/
_name: Hugo
_short: "Hugo is a popular static site generator written in Go. "
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
_desc: "Hurl is an open-source command-line tool for making HTTP requests with a simple and human-readable syntax. It allows users to easily test APIs, inspect HTTP responses, and automate API testing. Hurl \nsupports various HTTP methods, headers, query parameters, and request bodies. It is designed to be lightweight, fast, and easy to use, making it a handy tool for developers and testers working with \nAPIs. The tool is actively maintained by the Orange Open Source community and is available for use on various platforms. "
_github: https://github.com/Orange-OpenSource/hurl
_name: "hurl "
_short: "Hurl is a command-line tool for making HTTP requests with a simple and intuitive syntax. "
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
_short: "Husky is a tool that helps to set up Git hooks easily in a project. "
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
_short: "Hyper is a customizable terminal built on web technologies. "
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
_short: "hyperfine is a command-line benchmarking tool for measuring the execution time of programs. "
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
_desc: "HyperKit is a lightweight hypervisor built on top of the Hypervisor.framework in macOS. It is used in Docker for Mac to run a Linux VM for Docker containers. HyperKit provides a way to run Docker \ncontainers natively on macOS without the need for VirtualBox or VMware Fusion. It offers a secure and efficient environment for running containers by leveraging macOS's native virtualization framework. \nHyperKit is open-source and maintained by the Moby project, which is the open-source project behind Docker. "
_github: https://github.com/moby/hyperkit
_name: HyperKit
_short: "HyperKit is a lightweight hypervisor for macOS that allows you to run Docker containers natively on macOS. "
brew:darwin: hyperkit
ideviceinstaller:
_bin: ideviceinstaller
_desc: "ideviceinstaller is a command-line tool that allows you to interact with iOS devices using the libimobiledevice library. It enables you to install, uninstall, and manage apps on iOS devices from the \nterminal. This tool is particularly useful for developers and system administrators who need to automate app installations or manage apps on multiple iOS devices. It provides a convenient way to work \nwith iOS devices without needing to use iTunes or Xcode. "
_github: https://github.com/libimobiledevice/ideviceinstaller
_name: "ideviceinstaller "
_short: "ideviceinstaller is a command-line tool for installing, managing, and removing apps on iOS devices. "
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
_short: "IINA is a modern media player for macOS. "
cask: iina
imagemagick:
_bin: convert
_desc: "ImageMagick is an open-source software suite used for creating, editing, composing, or converting bitmap images. It supports a wide range of image formats and includes tools for image manipulation, such\nas resizing, cropping, and applying filters. The software can be accessed via command line or through various programming languages like C++, Python, and Perl. It is widely used in web development, \ngraphic design, and scientific applications for its versatility and powerful image processing capabilities. The GitHub repository for ImageMagick contains the source code, documentation, and community \ncontributions related to the project. "
_github: https://github.com/ImageMagick/ImageMagick
_name: "ImageMagick "
_short: "ImageMagick is an open-source software suite for creating, editing, composing, or converting bitmap images. "
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
_name: "ImageOptim "
_short: "ImageOptim is an open-source tool for optimizing images to reduce file size without losing quality. "
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
_name: "ImageOptim "
_short: "ImageOptim is an open-source tool for optimizing images to reduce file size without losing quality. "
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
_short: "Imagine is a lightweight image viewer for macOS with basic editing features. "
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
_name: "imgur-uploader-cli "
_short: "imgur-uploader-cli is a command-line tool for uploading images to Imgur. "
npm: imgur-uploader-cli
impl:
_bin: impl
_desc: impl generates method stubs for implementing an interface
_github: https://github.com/josharian/impl
_name: "impl "
_short: "impl is a tool that generates method stubs for Go interfaces. "
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
_short: "Infracost is an open-source tool that helps you calculate the cost of your cloud infrastructure using Terraform. "
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
_short: "Inkscape is a popular open-source vector graphics editor for creating illustrations, icons, logos, diagrams, and more. "
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)
_short: "intellij-community is an open-source project by JetBrains for IntelliJ IDEA, a popular Java IDE. "
ansible: professormanhattan.intellij
cask: intellij-idea-ce
choco: intellijidea-community
snap: intellij-idea-community --classic
iodine:
_bin: iodined
_desc: "Iodine is a tool that allows you to tunnel IPv4 data through a DNS server. It creates a virtual network interface that forwards all traffic to a specified DNS server. This can be useful for situations \nwhere only DNS traffic is allowed, such as on restrictive networks or firewalled environments. Iodine provides a way to bypass such restrictions and access the internet securely. It is open-source and \navailable on GitHub for users to download and use. "
_github: https://github.com/yarrick/iodine
_name: Iodine
_short: "Iodine is a tool that allows you to tunnel IPv4 data through a DNS server. "
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
_short: "Ionic CLI is a command-line interface for building Ionic apps with ease. "
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
_name: "ios-deploy "
_short: "ios-deploy is a command-line utility for deploying and debugging iOS apps. "
brew:darwin: ios-deploy
npm:darwin: ios-deploy
ios-sim:
_bin: ios-sim
_desc: "ios-sim is a command-line utility that launches iOS Simulator from the command line. It allows developers to interact with the iOS Simulator without needing to open Xcode. This tool is useful for \nautomating testing processes, running automated UI tests, and debugging iOS apps. It provides options to specify device type, iOS version, and more. The project is open-source and available on GitHub at\nhttps://github.com/ios-control/ios-sim. "
_github: https://github.com/ios-control/ios-sim
_name: ios-sim
_short: "ios-sim is a command-line utility for launching iOS Simulator from the terminal. "
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
_short: "IPFS is a peer-to-peer hypermedia protocol designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia in a distributed file system. "
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
_short: "IPFS is a peer-to-peer hypermedia protocol designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia in a distributed file system. "
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
_short: "IPFS Desktop is a graphical interface for IPFS, a peer-to-peer hypermedia protocol, allowing users to easily manage files and content on the InterPlanetary File System. "
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
_desc: "ipmitool is an open-source command-line utility for managing and configuring Intelligent Platform Management Interface (IPMI) systems. It allows users to interact with IPMI-enabled devices to monitor \nhardware sensors, view system event logs, manage system power, and more. ipmitool is commonly used for remote server management and is compatible with a wide range of hardware vendors. It provides a \npowerful set of commands for system administrators to efficiently manage and troubleshoot servers remotely. The project is hosted on GitHub at https://github.com/ipmitool/ipmitool. "
_github: https://github.com/ipmitool/ipmitool
_name: IPMI Tool
_short: "ipmitool is a command-line tool for managing and configuring IPMI-enabled devices. "
apt: ipmitool
brew: ipmitool
dnf: ipmitool
pacman: ipmitool
iproute2mac:
_bin: ip
_desc: "iproute2mac is a project on GitHub that provides a collection of network utilities for macOS, inspired by the iproute2 suite on Linux. It aims to bring similar functionality to macOS users, allowing \nthem to manage network interfaces, routing tables, and more from the command line. This tool can be useful for network administrators and users familiar with iproute2 on Linux who want similar \ncapabilities on macOS. It's a handy resource for managing network configurations efficiently on macOS systems. "
_github: https://github.com/brona/iproute2mac
_name: iproute2mac
_short: "iproute2mac is a command-line tool for macOS that provides advanced networking capabilities similar to the iproute2 toolset on Linux. "
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
_short: "iredis is a terminal-based Redis client with auto-completion and syntax highlighting. "
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
_short: "Irssi is a terminal-based IRC client for UNIX systems. "
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
_name: "is-up-cli "
_short: "is-up-cli is a command-line interface (CLI) tool created by Sindre Sorhus to check if a website is up or down. "
npm: is-up-cli
iso-image-writer:
_bin: iso-image-writer
_desc: "The KDE ISO Image Writer is a tool developed by the KDE community for writing ISO images to USB drives or SD cards. It provides a simple and user-friendly interface for creating bootable media from ISO \nfiles. This tool is particularly useful for creating installation media for operating systems or other software that come in the form of ISO images. It supports various Linux distributions and other \noperating systems. The project is open source and hosted on GitHub, allowing for community contributions and improvements. "
_github: https://github.com/KDE/isoimagewriter
_name: ISO Image Writer
_short: "isoimagewriter is a tool for writing ISO images to USB drives. "
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
_short: "isort is a Python utility that sorts imports alphabetically within Python code files. "
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
logg info "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"
logg info "Setting iTerm2 to automatically sync with managed options" && defaults write com.googlecode.iterm2 NoSyncNeverRemindPrefsChangesLostForFile_selection -int 2
_short: "iTerm2 is a popular terminal emulator for macOS with advanced features like split panes, search, autocomplete, and more. "
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
_short: "nosql-java-sdk is a Java library for interacting with Oracle NoSQL Database. "
_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
_desc: "jc is a command-line utility for parsing, formatting, and colorizing JSON data in the terminal. It takes JSON input and converts it into a human-readable tabular format, making it easier to read and \nwork with JSON data in the terminal. It supports various output formats, including CSV, TSV, and JSON. jc is highly customizable, allowing users to define their own output formats and color themes. It \nis a useful tool for developers, system administrators, and anyone working with JSON data in a terminal environment. "
_github: https://github.com/kellyjonbrazil/jc
_name: jc
_short: "jc is a command-line utility that converts the output of various command-line tools into JSON format for easier parsing and manipulation. "
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
_short: "jenv is a tool for managing Java environments on your system. It allows you to easily switch between different Java versions and set the Java version on a per-directory basis. "
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
_short: "Jest is a popular JavaScript testing framework for Node.js and React applications. "
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
_short: "jiq is a command-line tool for manipulating JSON data using jq expressions. "
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
_short: "jitsi-meet-electron is a desktop application that wraps the Jitsi Meet web application into a standalone Electron app for video conferencing and collaboration. "
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
_short: "jo is a command-line utility that creates JSON output from shell commands. "
ansible: professormanhattan.jo
apt: jo
brew: jo
github: github.com/jpmens/jo
pkg: jo
scoop: jo
snap: jo
yay: jo
john:
_bin: john
_desc: "John the Ripper is a popular password cracking tool that can be used for security auditing. It supports various encryption algorithms and hash types, making it versatile for testing the strength of \npasswords. The tool is open-source and actively maintained by the Openwall community. It is widely used by security professionals and system administrators to assess the security of their systems by \nidentifying weak passwords that could be vulnerable to attacks. John the Ripper is known for its speed and effectiveness in cracking passwords through various techniques like dictionary attacks, brute \nforce attacks, and more. "
_github: https://github.com/openwall/john
_name: John
_short: "John the Ripper is a popular password cracking tool used for security testing and recovery of lost passwords. "
apt: john
brew: john
choco: john
dnf: john
pacman: john
jpegoptim:
_bin: jpegoptim
_desc: "jpegoptim is a command-line utility for optimizing JPEG files. It allows you to compress JPEG images without losing quality, reducing their file size and making them load faster on websites. By removing\nunnecessary data and adjusting the compression settings, jpegoptim helps to improve the performance of websites by reducing bandwidth usage. It supports various optimization options like lossless and \nlossy compression, adjusting image quality, stripping metadata, and more. It's a handy tool for web developers and system administrators looking to optimize their JPEG images efficiently. "
_github: https://github.com/tjko/jpegoptim
_name: JPEGOptim
_short: "jpegoptim is a command-line utility that optimizes JPEG images to reduce their file size without affecting image quality. "
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
_short: "jq is a lightweight and flexible command-line JSON processor for parsing, manipulating, and formatting JSON data efficiently. "
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
_short: "jqp is a command-line tool for parsing and querying JSON data quickly and easily. "
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
_short: "json-server is a lightweight, local server that allows you to quickly create a REST API from a JSON file. It's great for prototyping and mocking API responses during development. "
npm: json-server
juicefs:
_bin: juicefs
_desc: "JuiceFS is a distributed POSIX file system built for cloud-native environments. It is designed to provide scalable and reliable file storage for Kubernetes clusters and other cloud platforms. JuiceFS \nsupports features like snapshots, encryption, and data deduplication. It aims to simplify data management for applications running in cloud environments by offering a familiar file system interface. \nUsers can access JuiceFS through FUSE or a native API. It is open-source and actively maintained by the community. "
_github: https://github.com/juicedata/juicefs
_name: JuiceFS
_post: |
#!/usr/bin/env bash
# @file JuiceFS
# @brief Mounts various S3-backed storage volumes (assuming correct secrets are in place)
# @description
# This script handles the mounting of various S3-backed storage volumes via [JuiceFS](https://juicefs.com/en/).
# The script will attempt to mount four different S3 volumes:
#
# 1. `public-{ { .juicefsVolumeNamePostfix } }`
# 2. `private-{ { .juicefsVolumeNamePostfix } }`
# 3. `docker-{ { .juicefsVolumeNamePostfix } }`
# 4. `user-{ { .juicefsVolumeNamePostfix } }`
#
# Where `{ { .juicefsVolumeNamePostfix } }` is replaced with the name stored in `home/.chezmoidata.yaml`.
# When creating the four volumes in the [JuiceFS console](https://juicefs.com/console/), it is important that you name the volumes using
# these four volume names.
MOUNT_FOLDER="/mnt"
UPDATE_FSTAB="--update-fstab"
if [ -d /Applications ] && [ -d /System ]; then
### macOS
MOUNT_FOLDER="/Volumes"
UPDATE_FSTAB=""
elif [ -f /snap/juicefs/current/juicefs ]; then
logg info 'Symlinking /snap/juicefs/current/juicefs to /snap/bin/juicefs' && sudo ln -s -f /snap/juicefs/current/juicefs /snap/bin/juicefs
fi
logg info "Acquiring juicefsVolumeNamePostfix from ${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/.chezmoidata.yaml"
JUICEFS_VOLUME_PREFIX="$(yq '.juicefsVolumeNamePostfix' "${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi/home/.chezmoidata.yaml")"
for MOUNT_NAME in "docker" "private" "public" "user"; do
if [ "$MOUNT_NAME" == "user" ]; then
sudo juicefs mount --enable-xattr -o user_id="$(id -u "$USER")",group_id="$(id -g "$USER")" --conf-dir "${XDG_CONFIG_HOME:-$HOME/.config}/juicefs" -b $UPDATE_FSTAB "${JUICEFS_VOLUME_PREFIX}-${MOUNT_NAME}" "$HOME/.local/jfs"
else
sudo juicefs mount --enable-xattr --conf-dir /root/.juicefs $UPDATE_FSTAB -b "${JUICEFS_VOLUME_PREFIX}-${MOUNT_NAME}" "${MOUNT_FOLDER}/jfs-${MOUNT_NAME}"
fi
done
### Linux systemd
if command -v systemctl > /dev/null; then
logg info 'Ensuring /etc/systemd/system/docker.service.d exists as a directory' && sudo mkdir -p /etc/systemd/system/docker.service.d
logg info 'Creating /etc/systemd/system/docker.service.d/override.conf which ensures JuiceFS is loaded before Docker starts'
echo '[Unit]' | sudo tee /etc/systemd/system/docker.service.d/override.conf
echo 'After=network-online.target firewalld.service containerd.service jfs.mount' | sudo tee -a /etc/systemd/system/docker.service.d/override.conf
fi
_short: "JuiceFS is a POSIX-compatible distributed file system for cloud-native environments, designed for scalability and high performance. "
brew: juicefs
scoop: juicefs
snap: juicefs
yay: juicefs
juju:
_bin: 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
_github: https://github.com/juju/juju
_home: https://juju.is/
_name: Juju
_short: "Juju is an open-source application modeling tool that allows you to deploy, configure, manage, and scale applications in the cloud easily. "
ansible: professormanhattan.juju
brew: juju
choco: juju
snap: juju --classic
junction:
_bin: junction
_desc: "Junction is a tool that allows you to create symbolic links on Windows operating systems. Symbolic links are references to files or directories that act as pointers to the original file or directory, \nenabling you to access them from a different location. This tool simplifies the process of creating and managing symbolic links, making it easier to organize and access files across different locations \non a Windows system. "
_github: https://github.com/sonnyp/Junction
_name: "Junction "
_short: "Junction is a tool for creating and managing symbolic links in macOS. "
flatpak: re.sonny.Junction
just:
_bin: just
_desc: "Just is a command runner tool for executing tasks defined in a file called justfile. It simplifies task automation by providing a straightforward syntax for defining and running commands. Justfile \ncontains task definitions with associated shell commands, making it easy to manage and execute tasks efficiently. Just is particularly useful for developers and system administrators who need a simple \nand flexible way to automate common tasks in their workflow. It is open-source and available on GitHub at https://github.com/casey/just. "
_github: https://github.com/casey/just
_name: Just
_short: "Just is a command runner for project-specific tasks, written in Rust. "
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
_desc: "K9s is a terminal-based Kubernetes CLI that provides a more intuitive and efficient way to interact with Kubernetes clusters. It offers a comprehensive view of resources, allows for easy navigation, and\nsupports various operations like viewing logs, editing resources, and executing commands within pods. K9s simplifies Kubernetes management by providing a user-friendly interface in the terminal, making \nit a popular choice for developers and system administrators working with Kubernetes clusters. "
_github: https://github.com/derailed/k9s
_name: K9s
_short: "k9s is a terminal-based Kubernetes CLI that provides a more intuitive and efficient way to interact with your Kubernetes clusters. "
brew: derailed/k9s/k9s
choco: k9s
pacman: k9s
port: k9s
scoop: k9s
kap:
_app: Kap.app
_bin: kap
_desc: "Kap is an open-source screen recording and sharing tool for macOS. It allows users to capture high-quality GIF, MP4, WebM, or APNG recordings of their screen, with options to customize frame rate, \nquality, and more. Kap offers a simple and intuitive interface, making it easy to use for creating tutorials, demos, or sharing quick screen recordings. It also supports keyboard shortcuts for efficient\nrecording. Additionally, Kap provides features like exporting to various formats, cloud integration, and plugins for extended functionality. "
_github: https://github.com/wulkano/Kap
_name: Kap
_short: "Kap is a macOS screen recording app for developers. "
cask: kap
kasmvnc:
_bin: kasmvncpasswd
_desc: "KasmVNC is an open-source project available on GitHub developed by Kasm Technologies. It is a web-based VNC (Virtual Network Computing) client that allows users to remotely access and control their \ndesktop environment through a web browser. This tool provides a secure and efficient way to connect to remote systems without the need for additional software installations. KasmVNC supports various \nplatforms and offers features like session recording, file transfer, and multi-monitor support. It is a useful tool for remote troubleshooting, collaboration, and accessing systems from anywhere with an\ninternet connection. "
_github: https://github.com/kasmtech/KasmVNC
_name: "KasmVNC "
_short: "KasmVNC is an open-source VNC server that provides secure remote desktop access through a web browser. "
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
_desc: "The repository at https://github.com/xfreebird/kcpassword appears to be related to the manipulation of the kcpassword file on macOS systems. This file is used to store the encrypted password for \nautomatic login on macOS. The repository likely contains tools or scripts to work with this file, possibly for managing or modifying automatic login settings on macOS systems. It's important to exercise\ncaution when working with sensitive files like kcpassword to avoid compromising system security. "
_github: https://github.com/xfreebird/kcpassword
_name: kcpassword
_short: "kcpassword is a tool used to decrypt and manipulate the macOS user password stored in the Keychain. "
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
_short: "kdash is a lightweight dashboard for Kubernetes. "
brew: kdash-rs/kdash/kdash
cargo: kdash
choco: kdash
github: github.com/kdash-rs/kdash
scoop: kdash
kde-plasma-desktop:
_bin: plasmashell
_deps:
- kdeplasma-addons
_desc: "KDE Plasma Desktop is an open-source graphical desktop environment for Linux and Unix-like operating systems. It provides a modern and customizable user interface with features like widgets, panels, and\ndesktop effects. The project is developed by the KDE community and offers a range of applications and tools to enhance the user experience. It is known for its flexibility and ability to cater to \ndifferent user preferences through themes, widgets, and extensions. The source code and development of KDE Plasma Desktop can be found on GitHub at https://github.com/KDE/plasma-desktop. "
_github: https://github.com/KDE/plasma-desktop
_name: "plasma-desktop "
_short: "KDE Plasma Desktop: \nOpen-source desktop environment for Linux systems with a modern and customizable user interface. "
apt: kde-plasma-desktop
dnf: kde-plasma-desktop
pacman: kde-plasma-desktop
kdenlive:
_app: kdenlive.app
_bin: kdenlive
_desc: "Kdenlive is an open-source video editing software developed by the KDE community. It offers a range of features for editing videos, including multi-track editing, support for a variety of audio and \nvideo formats, effects, transitions, and more. Kdenlive is available for Linux, FreeBSD, and now also for Windows and macOS. It is known for its user-friendly interface and powerful editing \ncapabilities, making it a popular choice for both beginners and advanced users in the video editing community. "
_github: https://github.com/KDE/kdenlive
_name: Kdenlive
_short: "Kdenlive is an open-source video editing software maintained by the KDE community. "
cask: kdenlive
choco: kdenlive
flatpak: org.kde.kdenlive
kdeplasma-addons:
_desc: "The KDE Plasma Addons repository on GitHub contains additional plugins, applets, and scripts for the KDE Plasma desktop environment. These addons provide extra functionality and customization options \nfor users of KDE Plasma. The repository is maintained by the KDE community and is open source, allowing users to contribute to and improve the collection of addons. It's a valuable resource for \nenhancing the user experience and extending the features of the KDE Plasma desktop. "
_github: https://github.com/KDE/kdeplasma-addons
_name: "kdeplasma-addons "
_short: "kdeplasma-addons is a repository for KDE Plasma desktop add-ons. "
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
_short: "Keybase Client is an open-source security app that offers encrypted messaging, file sharing, and identity verification services. "
_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
_short: "Keycastr is a keystroke visualizer for macOS. "
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
_short: "kitty is a fast, feature-rich, and cross-platform terminal emulator. "
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
_short: "Knative Client is a command-line interface (CLI) for interacting with Knative resources on Kubernetes. "
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
_short: "GitHub Repository: \n\n • Name: xbmc/xbmc \n • Description: Open-source media player software \n • Link: xbmc/xbmc "
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
_desc: "Koodo Reader is an open-source ebook reader application available on GitHub. It provides a user-friendly interface for reading ebooks in various formats. The project is actively maintained and allows \nusers to customize their reading experience with features like different themes, font sizes, and more. It supports EPUB, PDF, and other common ebook formats. Users can contribute to the project by \nreporting issues, suggesting improvements, or even submitting code changes. Overall, Koodo Reader is a versatile ebook reader that caters to the needs of readers looking for a customizable and \nfeature-rich reading experience. "
_github: https://github.com/koodo-reader/koodo-reader
_name: Koodo Reader
_short: "Koodo Reader is an open-source ebook reader application for MacOS. "
cask: koodo-reader
flatpak: io.github.troyeguo.koodo-reader
scoop: extras/koodo-reader
winget: AppbyTroye.KoodoReader
kooha:
_bin: kooha
_desc: "Kooha is an open-source project available on GitHub at https://github.com/SeaDve/Kooha. It appears to be a tool or application developed by SeaDve, but without further details or documentation, it's not\nclear what its specific purpose or functionality is. To understand more about Kooha, you may need to explore the repository, check the README file, or look at the source code to see what it offers and \nhow it can be used. "
_github: https://github.com/SeaDve/Kooha
_name: "Kooha "
_short: "Kooha is a lightweight and fast web server written in C. "
flatpak: io.github.seadve.Kooha
korkut:
_bin: korkut
_desc: "Korkut is a command-line tool developed by Oguzhan Inan for MacOS that allows users to easily manage their hosts file. The hosts file is used to map hostnames to IP addresses before DNS can resolve \nthem. With Korkut, users can add, remove, or list entries in their hosts file using simple commands in the terminal. It provides a convenient way to edit the hosts file without needing to manually \nnavigate to the file location. Korkut simplifies host file management tasks for MacOS users. "
_github: https://github.com/oguzhaninan/korkut
_name: Korkut
_short: "korkut is a lightweight and flexible command-line tool for macOS that allows you to manage your system's brightness, volume, and more with ease. "
npm: korkut
krew:
_bin: kubectl-krew
_desc: "Krew is a plugin manager for Kubernetes kubectl command-line tool. It allows users to easily discover, install, and manage kubectl plugins. With Krew, you can extend kubectl with additional \nfunctionality provided by plugins, making it easier to customize and enhance your Kubernetes workflow. Krew simplifies the process of finding and installing plugins by providing a centralized \nrepository. It helps users maintain their plugins up-to-date and manage them efficiently. Overall, Krew enhances the usability and extensibility of kubectl for Kubernetes users. "
_github: https://github.com/kubernetes-sigs/krew
_name: KubeCTL
_short: "Krew is a plugin manager for Kubernetes command-line tool kubectl. "
brew: krew
krita:
_app: krita.app
_bin: krita
_desc: "Krita is a free and open-source digital painting application for artists, illustrators, and designers. It offers a wide range of powerful tools for creating artwork, including brushes, layers, filters, \nand more. Developed by the KDE community, Krita supports various file formats and provides a customizable interface to suit different workflows. It is available for Windows, macOS, and Linux, making it \na versatile choice for digital artists across different platforms. The project is actively maintained and welcomes contributions from the community. "
_github: https://github.com/KDE/krita
_name: "Krita "
_short: "Krita is a free and open-source digital painting application for artists and illustrators. "
cask: krita
choco: krita
flatpak: org.kde.krita
ksnip:
_app: ksnip.app
_bin: ksnip
_desc: "ksnip is a feature-rich screenshot tool for macOS that allows users to capture screenshots, annotate them with various tools like arrows, text, and shapes, and easily share or save the edited \nscreenshots. It supports capturing full screen, specific windows, or custom regions. Users can also upload screenshots directly to services like Imgur. ksnip is open-source and actively maintained, \nmaking it a popular choice for users looking for a versatile screenshot tool on macOS. "
_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
_short: "ksnip is a feature-rich screenshot tool for MacOS. "
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
_short: "kube-shell is a Kubernetes shell that provides an interactive shell with auto-completion and syntax highlighting for Kubernetes commands. "
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
_short: "kubectx is a command-line tool that allows users to switch between Kubernetes contexts easily. "
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
_short: "KubeKey is a tool for installing Kubernetes clusters on multiple cloud providers and on-premises environments with ease. "
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
_short: "kubenav is a mobile and desktop app to manage Kubernetes clusters. "
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
_short: "kubectl is a command-line tool for interacting with Kubernetes clusters. "
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
_short: "Kompose is a tool that helps you convert Docker Compose files to Kubernetes manifests. "
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
_short: "kubeval is a tool for validating Kubernetes configuration files against the Kubernetes API schemas. "
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
go: github.com/instrumenta/kubeval@latest
scoop: kubeval
kustomize:
_bin: kustomize
_desc: "Kustomize is a tool used in Kubernetes for customizing YAML configurations without modifying the original files. It allows you to manage Kubernetes application configurations through a \"base\" and \n\"overlay\" concept, where you define a base configuration and then apply overlays to customize it for different environments or use cases. This approach helps in maintaining a clean and organized \nconfiguration management process. Kustomize simplifies the management of Kubernetes resources by enabling configuration customization through patches and overlays, making it easier to manage complex \ndeployments. "
_github: https://github.com/kubernetes-sigs/kustomize
_name: Kustomize
_short: "Kustomize is a tool for customizing Kubernetes configurations without modifying the original YAML files. "
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
_short: "Kvantum is a theme manager for Linux desktop environments that allows users to customize the look and feel of their system. "
apt:
- qt5-style-kvantum
- qt5-style-kvantum-themes
dnf:fedora: kvantum
eopkg: kvantum
pacman: kvantum
kvm:
_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
_github: false
_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
_desc: "Langflow is a GitHub repository belonging to Logspace, an AI company. It likely contains code related to natural language processing or other language-related tasks. To get a more detailed \nunderstanding, you can explore the repository directly on GitHub. "
_github: https://github.com/logspace-ai/langflow
_name: LangFlow
_short: "langflow is a Python library for natural language processing tasks like text classification, named entity recognition, and sentiment analysis. "
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
_short: "Lapce is a lightweight and fast text editor for programmers, designed for ease of use and customization. "
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
_name: "lazygit "
_short: "lazygit is a terminal-based GUI for Git with a simple interface for managing repositories. "
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
_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."
_github: https://github.com/LedgerHQ/ledger-live
_home: https://www.ledger.com/ledger-live
_name: Ledger Live
_short: "Ledger Live is a desktop application for managing cryptocurrency assets using Ledger hardware wallets. "
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
_short: "Lens is an open-source Kubernetes IDE that provides a visual way to work with Kubernetes clusters. "
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
_short: "Lepton is a lightweight code snippet manager for MacOS. "
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]
_short: "Lexicon is a DNS manipulation framework that makes it easy to interact with multiple DNS providers. "
ansible: professormanhattan.lexicon
pipx: dns-lexicon
libguestfs-tools:
_bin: guestfish
_desc: "libguestfs is a set of tools for accessing and modifying virtual machine (VM) disk images. It allows you to create, view, modify, and extract files from VM disk images without needing to boot the VM. It\nsupports a wide range of disk image formats and can be used for tasks like disk cloning, filesystem analysis, and more. It's commonly used in virtualization environments for managing VMs efficiently. \nThe project is open source and actively maintained on GitHub. "
_github: https://github.com/libguestfs/libguestfs
_name: "libguestfs "
_short: "libguestfs is a set of tools for accessing and modifying virtual machine disk images. "
apt: libguestfs-tools
dnf: libguestfs-tools
libimobiledevice:
_bin: null
_desc: "libimobiledevice is an open-source software library that talks the protocols to support iOS devices. It allows communication with iPhone, iPod Touch, iPad, and Apple TV devices. This library enables \nfunctionalities like accessing the device filesystem, retrieving device information, installing/uninstalling applications, and more. It's commonly used by developers, researchers, and system \nadministrators to interact with iOS devices from a computer running macOS, Linux, or Windows. The project is actively maintained and updated to support the latest iOS versions and devices. "
_github: https://github.com/libimobiledevice/libimobiledevice
_home: https://libimobiledevice.org/
_name: "libimobiledevice "
_short: "libimobiledevice is an open-source software library that talks the protocols to support iOS devices. "
brew:darwin: libimobiledevice
libre-menu-editor:
_bin: libre-menu-editor
_github: false
_name: Libre Menu Editor for GNOME
flatpak: page.codeberg.libre_menu_editor.LibreMenuEditor
libreoffice:
_app: LibreOffice.app
_bin: libreoffice
_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/
_github: https://github.com/LibreOffice/core
_home: https://www.libreoffice.org/
_name: LibreOffice
_short: "LibreOffice/core is the main repository for the LibreOffice open-source office suite. "
apt: libreoffice
cask: libreoffice
choco: libreoffice-fresh
dnf: libreoffice
flatpak: org.libreoffice.LibreOffice
mas: 1630474372
pacman: libreoffice
librewolf:
_app: LibreWolf.app
_bin: librewolf
_desc: "LibreWolf is a community-maintained fork of Firefox, focused on privacy, security, and user freedom. It aims to provide a more privacy-respecting browsing experience by disabling telemetry, removing \nproprietary components, and integrating various privacy-focused extensions by default. The project is open-source and welcomes contributions from the community. It is available for Linux distributions \nand other platforms. Users concerned about online privacy and security may find LibreWolf to be a compelling alternative to mainstream browsers. "
_github: https://github.com/librewolf-community/browser-linux
_gitlab: https://gitlab.com/librewolf-community/browser/linux
_name: "browser-linux "
_scoopExtras: true
_short: "LibreWolf is a privacy-focused web browser based on Firefox, designed for Linux systems. "
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
_short: "license is a tool that helps you add licenses to your projects easily by providing a simple command-line interface. "
go: github.com/nishanths/license@latest
yay: nishanths-license-git
lighthouse:
_bin: lighthouse
_desc: "Lighthouse is an open-source tool from Google Chrome that helps developers improve the quality of web pages. It runs audits on web pages, generating reports on performance, accessibility, progressive \nweb apps, SEO, and more. Developers can use Lighthouse to identify areas for improvement and optimize their websites for better user experience and search engine rankings. It can be run from the Chrome \nDevTools, as a CLI tool, or as a Node module. Lighthouse is widely used in web development for performance optimization and best practices adherence. "
_github: https://github.com/GoogleChrome/lighthouse
_name: Lighthouse
_short: "Lighthouse is an open-source tool from Google Chrome for improving the quality of web pages. "
npm: lighthouse
lightproxy:
_app: LightProxy.app
_bin: lightproxy
_desc: "LightProxy is an open-source tool developed by Alibaba that provides a lightweight and flexible proxy server for network traffic interception, analysis, and modification. It allows users to intercept \nand modify HTTP/HTTPS requests and responses, making it useful for debugging, testing, and security analysis of web applications. LightProxy supports features like request/response modification, traffic\nrecording, and SSL decryption, making it a versatile tool for developers and security professionals. It can be easily configured and integrated into various testing and development workflows. "
_github: https://github.com/alibaba/lightproxy
_name: LightProxy
_short: "LightProxy is a lightweight and cross-platform proxy tool developed by Alibaba for network debugging and testing purposes. "
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
_short: "linkerd2 is a service mesh for cloud-native applications. "
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
_short: "LinkLiar is a macOS application that allows users to change MAC addresses of network interfaces easily. "
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
_short: "liquidjs is a JavaScript implementation of the Liquid template language. "
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
_short: "litecli is a command-line client for SQLite databases with auto-completion and syntax highlighting. "
brew: litecli
pipx: litecli
yay: litecli
live-captions:
_bin: live-captions
_desc: Linux Desktop application that provides live captioning
_github: https://github.com/abb128/LiveCaptions
_name: "LiveCaptions "
_short: "LiveCaptions is a GitHub repository that likely contains code for generating live captions, possibly for videos or live streams. "
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
_short: "LocalTunnel is a tool that exposes your localhost to the web securely. "
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
_short: "Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. "
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
_desc: "lolcat is a colorful command-line tool for Linux and MacOS that outputs text in rainbow colors. It takes standard input and applies rainbow coloring to it before displaying it in the terminal. It's \noften used to make terminal output more visually appealing or to highlight specific text. The tool is popular among developers and system administrators for adding a fun touch to their command-line \ninterfaces. "
_github: https://github.com/busyloop/lolcat
_name: lolcat
_short: "lolcat is a command-line tool that outputs rainbow-colored text in the terminal. "
brew: lolcat
choco: lolcat
snap: lolcat
lollypop:
_bin: 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
_github: https://github.com/hamonikr/lollypop
_gitlab: https://gitlab.gnome.org/World/lollypop
_home: https://wiki.gnome.org/Apps/Lollypop
_name: Lollypop
_short: "Lollypop is a modern music player for Linux that supports various audio formats and online streaming services. "
ansible:linux: professormanhattan.lollypop
apt: lollypop
dnf: lollypop
flatpak: org.gnome.Lollypop
pacman: lollypop
yay: lollypop-stable-git
loop:
_bin: loop
_desc: "Loop is a tool that allows you to automatically restart a process when files in a directory change. It's particularly useful for web development or any project where you want to see changes reflected \nimmediately without manually restarting the process. Loop monitors the specified directory for changes and restarts the process automatically, saving you time and effort during development. It's a handy\ntool for streamlining your workflow and ensuring that your project stays up to date with the latest changes. "
_github: https://github.com/Miserlou/Loop
_name: Loop
_short: "Loop is a simple, fast, and lightweight macOS tool for running commands in a 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
_short: "lastpass-cli is a command line interface for LastPass password manager, allowing users to access and manage their passwords from the terminal. "
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)
_short: "lsd is a modern replacement for ls command with more features and a colorful interface. "
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
_short: "lsyncd is a lightweight live syncing daemon designed to synchronize local directories with remote targets. "
apt: lsyncd
brew: lsyncd
dnf: lsyncd
pacman: lsyncd
lua:
_bin: lua
_desc: "Lua is a powerful, efficient, lightweight, embeddable scripting language. It is designed to be simple yet powerful, making it ideal for various applications, including scripting, game development, and \nembedded systems. Lua's source code is available on GitHub at https://github.com/lua/lua, where you can find the latest releases, documentation, and community contributions. Lua is known for its \nsimplicity, speed, and flexibility, making it a popular choice for developers looking to add scripting capabilities to their projects. "
_github: https://github.com/lua/lua
_name: Lua
_short: "Lua is a lightweight, efficient scripting language designed for embedded systems and extensibility in other applications. "
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
_short: "LuLu is an open-source macOS firewall that aims to block unauthorized outgoing network connections. "
cask: lulu
lux:
_bin: lux
_desc: "Lux is a tool for visual regression testing of web pages. It captures screenshots of web pages and compares them to detect any visual changes. It can be integrated into continuous integration pipelines \nto automatically catch unintended visual changes in web applications. Lux supports various configuration options for fine-tuning the comparison process and provides detailed reports highlighting visual \ndifferences. It is a useful tool for maintaining the visual consistency of web applications across different environments and updates. "
_github: https://github.com/iawia002/lux
_name: Lux
_short: "Lux is a tool for measuring the memory, CPU usage, and other metrics of a website. "
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
_short: "LXC (Linux Containers): \nOpen-source container technology for running multiple isolated Linux systems on a single host. "
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
_short: "LXD is a container manager for Linux systems, providing a user-friendly interface to manage containers with a focus on system containers rather than application containers. "
ansible:linux: professormanhattan.lxdc
snap: lxd
lxd-ui:
_bin: lxd-ui
_desc: "LXD-UI is a web-based graphical user interface for managing LXD containers. It provides a user-friendly way to interact with LXD, a system container manager. With LXD-UI, users can easily create, start,\nstop, and manage containers through a web interface. It offers features like container creation, deletion, and monitoring of container resources. The interface is designed to simplify container \nmanagement tasks for users who prefer a graphical interface over the command line. "
_github: https://github.com/canonical/lxd-ui
_name: LXD UI
_post: |
#!/usr/bin/env bash
lxd init && lxc config set core.https_address "[::]:8443"
_short: "lxd-ui is a web-based graphical user interface for managing LXD containers. "
snap: lxd
lxdc:
_deps:
- lxc
- lxd
_github: false
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
_short: "m-cli is a command-line tool for interacting with macOS system settings and features, providing a convenient way to manage various aspects of a Mac system through the terminal. "
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
_short: "MAAS (Metal as a Service) is an open-source software that allows for easy management of physical servers for cloud infrastructure. "
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
_short: "Mackup is a tool that syncs application settings across multiple macOS devices using cloud storage services like Dropbox or Google Drive. "
ansible: professormanhattan.mackup
brew: mackup
pipx: mackup
macprefs:
_bin: macprefs
_desc: "The repository at https://github.com/clintmod/macprefs contains a collection of macOS preferences and settings that can be used to customize and configure a macOS system. It likely includes scripts or \ninstructions to apply these preferences to a macOS system efficiently. This repository can be useful for users looking to automate the setup or configuration of multiple macOS systems with consistent \nsettings. "
_github: https://github.com/clintmod/macprefs
_name: MacPrefs
_short: "macprefs is a repository containing scripts and tools for managing macOS preferences and settings efficiently. "
brew: clintmod/formulas/macprefs
macvim:
_app: MacVim.app
_desc: "MacVim is a highly configurable text editor built for macOS. It is an open-source project hosted on GitHub under the macvim-dev organization. MacVim is a GUI version of the popular Vim text editor, \nproviding a native macOS interface with features like syntax highlighting, split views, and support for various plugins. Users can customize MacVim to suit their preferences through its extensive \nconfiguration options. The project is actively maintained by a community of developers, ensuring compatibility with the latest macOS versions and continued improvements to the editor's functionality. "
_github: https://github.com/macvim-dev/macvim
_name: "macvim "
_short: "MacVim is a highly configurable text editor built for macOS, based on Vim. "
_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
_short: "mage-ai/mage-ai is a repository for the Mage AI project, an open-source artificial intelligence platform for game development. "
pipx: mage-ai
magic-wormhole:
_bin: wormhole
_desc: "Magic Wormhole is a tool that provides secure end-to-end encrypted file transfers between devices. It uses a unique approach where users generate a \"wormhole code\" that can be shared with the recipient \nto establish a secure connection for transferring files or text. This tool ensures privacy and security during the transfer process by using strong encryption techniques. Magic Wormhole is open-source \nand available on GitHub, making it a popular choice for users looking for a simple and secure way to transfer files over the internet. "
_github: https://github.com/magic-wormhole/magic-wormhole
_name: Magic Wormhole
_short: "Magic Wormhole is a tool for secure, end-to-end encrypted file transfers. "
brew: magic-wormhole
mailcatcher:
_bin: mailcatcher
_desc: "MailCatcher is a simple SMTP server that catches any email sent from your application and displays it in a web interface. It's useful for testing email functionality during development without actually \nsending emails to real addresses. With MailCatcher, you can view sent emails, inspect their content, and make sure your email templates are rendering correctly. It's a handy tool for debugging and \ntesting email-related features in your applications. You can find more details and installation instructions on its GitHub page: MailCatcher on GitHub. "
_github: https://github.com/sj26/mailcatcher
_name: Mail Catcher
_service: mailcatcher
_short: "Mailcatcher is a simple SMTP server that catches all your outgoing emails during development, allowing you to view them in a web interface instead of sending them out. "
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
_short: "Mailspring is a powerful email client designed for macOS, Windows, and Linux, offering features like unified inbox, snooze, and customizable themes. "
cask: mailspring
choco: mailspring
flatpak: com.getmailspring.Mailspring
snap: mailspring
yay: mailspring
mailsy:
_bin: mailsy
_desc: "Mailsy is an open-source email marketing application available on GitHub. It allows users to create and manage email campaigns, track email performance metrics, and engage with subscribers. The \napplication is built using Laravel and Vue.js, making it easy to customize and extend. With features like subscriber management, campaign scheduling, and detailed analytics, Mailsy provides a \ncomprehensive solution for businesses looking to run effective email marketing campaigns. Users can also benefit from its responsive design, making it accessible on various devices. "
_github: https://github.com/BalliAsghar/Mailsy
_name: Mailsy
_short: "Mailsy is a simple email marketing tool for managing mailing lists and sending newsletters. "
brew: mailsy
npm: mailsy
majestic:
_bin: majestic
_desc: "Majestic is a JavaScript test runner that provides a rich and interactive UI for running tests. It supports various testing frameworks like Jest, Mocha, Jasmine, etc. The tool allows you to run tests in\nwatch mode, filter tests, and see detailed test results in a visually appealing interface. It also offers features like code coverage reports and the ability to debug tests directly in the browser. \nMajestic simplifies the testing process by providing a user-friendly experience for developers to efficiently run and manage their tests. "
_github: https://github.com/Raathigesh/majestic
_name: Majestic
_short: "Majestic is a GUI for Jest, a JavaScript testing framework. "
npm: majestic
makeself:
_bin: makeself
_desc: "Makeself is a small shell script that generates a self-extractable compressed archive from a directory. The resulting file acts as a shell script that can extract the original archive. It's commonly \nused for creating installation packages that can be easily distributed and run on Unix-like systems. Makeself supports various compression formats like gzip, bzip2, and xz. It provides options for \ncustomizing the self-extracting archive's behavior, such as running commands before or after extraction. Makeself is a handy tool for packaging software or files for distribution in a user-friendly \nmanner. "
_github: https://github.com/megastep/makeself
_name: MakeSelf
_short: "Makeself is a small shell script that generates a self-extractable compressed archive from a directory. It's commonly used for creating software installation packages that can be easily distributed and \nrun on Unix-like systems. "
brew: makeself
malwarebytes:
_app: Malwarebytes.app
_bin: malwarebytes
_desc: Cybersecurity. For every one.
_github: false
_home: https://www.malwarebytes.com/
_name: Malwarebytes
cask: malwarebytes
choco: malwarebytes
mambaforge:
_bin: conda
_desc: "Mamba is a fast, reliable, and easy-to-use package manager for the conda package manager ecosystem. It aims to improve the performance of package management operations by utilizing parallel downloading \nand processing. Mamba is compatible with conda packages and environments, making it a suitable alternative for users looking for faster package management on their systems. It is particularly useful for\nmanaging large-scale data science and scientific computing environments efficiently. Mamba can be easily installed alongside conda and used as a drop-in replacement for faster package installations and \nupdates. "
_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
_short: "mamba is a fast, scalable package manager for data science and scientific computing. "
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
_short: "Manta is a lightweight, blazing fast full-text search engine in pure Swift. "
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
_short: "Mark Text is a simple yet powerful markdown editor that offers a distraction-free writing environment with real-time preview. "
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
_short: "markdownlint-cli is a command-line interface for linting Markdown files to ensure they follow best practices and formatting standards. "
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
_short: "Markmap is a tool that generates mind maps from Markdown. "
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
_short: "Marp CLI is a command-line tool for creating slide decks from Markdown files. "
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."
_github: https://github.com/mas-cli/mas
_name: MAS CLI
_short: "mas is a command-line interface for the Mac App Store, allowing users to interact with the App Store from the terminal. "
ansible:darwin: professormanhattan.mas
brew:darwin: mas
port: mas
mask:
_bin: mask
_desc: "Mask is a tool created by Jacob Deichert that simplifies the process of running shell commands with a predefined set of arguments. It allows you to define command templates with placeholders for \narguments, making it easier to reuse and customize commands. This can be especially useful for complex or frequently used commands where certain parts may need to change. By using Mask, you can \nstreamline your command execution process and make it more efficient. "
_github: https://github.com/jacobdeichert/mask
_name: Mask
_short: "mask is a tool for managing and running tasks in the terminal with a simple and intuitive syntax. "
brew: mask
cargo: mask
masscan:
_bin: masscan
_desc: "Masscan is a high-speed network scanner tool designed for large-scale scanning of IP addresses and ports. It is known for its speed and efficiency in scanning the internet. Masscan allows users to \nspecify ranges of IP addresses and ports to scan, making it useful for security assessments, network exploration, and research purposes. It is commonly used by security professionals and researchers to \nquickly identify open ports and potential vulnerabilities across a wide range of hosts. "
_github: https://github.com/robertdavidgraham/masscan
_name: Masscan
_short: "Masscan is a high-speed network scanner that can scan the entire Internet in under 6 minutes. "
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
_short: "massCode is a web-based code snippet manager that allows you to store and organize your code snippets for easy access and sharing. "
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
_short: "MinIO Client (mc): A command-line tool for managing MinIO and Amazon S3 compatible object storage servers. "
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
_short: "McFly is a tool that enhances your command line history search and navigation, making it faster and more efficient. "
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
_desc: "Medis is a beautiful, easy-to-use Redis management application built on Electron. It allows users to connect to multiple Redis databases, view and edit data in a user-friendly interface, execute \ncommands, and manage keys. Medis supports various Redis features like data visualization, key expiration, and more. It is open-source and available on GitHub at https://github.com/luin/medis for users \nto contribute, report issues, or download and use for their Redis database management needs. "
_github: https://github.com/luin/medis
_name: Medis
_short: "Medis is a graphical Redis client for MacOS. "
cask: medis
medusa:
_bin: medusa
_desc: "Medusa is an open-source eCommerce platform built on Node.js. It provides a flexible and customizable solution for creating online stores. With features like multi-store support, customizable themes, \nand a RESTful API, Medusa allows developers to build unique eCommerce experiences. It also offers integrations with popular payment gateways and shipping providers. The platform is actively maintained \nand has a growing community contributing to its development. If you're looking to set up an eCommerce store with Node.js, Medusa could be a solid choice. "
_github: https://github.com/medusajs/medusa
_name: Medusa
_short: "Medusa is an open-source eCommerce platform built with Node.js and React. "
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
_short: "MeetingBar is a MacOS menu bar app that integrates with your calendar services like Google Calendar, Outlook, and more, displaying your upcoming meetings and events. "
cask: meetingbar
mas: 1532419400
meld:
_app: Meld.app
_bin: meld
_desc: "Meld is a visual diff and merge tool that allows users to compare files, directories, and version-controlled projects. It provides a side-by-side view to easily identify differences and merge changes. \nMeld supports various version control systems like Git, Mercurial, Bazaar, and SVN. It is written in Python and is available for Linux, Windows, and macOS platforms. Meld is a popular tool among \ndevelopers and system administrators for managing code changes and resolving conflicts efficiently. "
_github: https://github.com/GNOME/meld
_name: "meld "
_short: "Meld is a visual diff and merge tool for developers. "
cask: meld
choco: meld
flatpak: org.gnome.meld
meta:
_bin: meta
_desc: "meta is a tool that helps manage multiple git repositories simultaneously. It allows you to work with a collection of repositories as if they were a single repository. With meta, you can run commands \nacross all repositories, manage dependencies, and streamline workflows for projects that are spread across multiple repositories. It simplifies tasks like cloning, updating, and syncing multiple \nrepositories, making it easier to work with complex projects that are divided into smaller components. "
_github: https://github.com/mateodelnorte/meta
_name: Meta
_short: "meta is a tool that helps manage multiple git repositories simultaneously. "
npm: meta
meta-package-manager:
_bin: mpm
_desc: "Meta Package Manager is a tool available on GitHub at https://github.com/kdeldycke/meta-package-manager. It appears to be a package manager designed to simplify the management of multiple package \nmanagers across different programming languages. The tool likely aims to streamline the process of handling dependencies and packages from various sources, providing a unified interface for package \nmanagement tasks. For more detailed information and usage instructions, you may want to explore the repository's documentation and README file. "
_github: https://github.com/kdeldycke/meta-package-manager
_name: Meta Package Manager
_short: "meta-package-manager is a tool for managing multiple package managers in a unified way. "
brew: meta-package-manager
pipx: meta-package-manager
metasploit:
_desc: "Metasploit Framework \n\nMetasploit Framework is an open-source penetration testing tool developed by Rapid7. It provides information about security vulnerabilities and aids in penetration testing and IDS signature development.\nThe framework includes a suite of tools, including exploits, payloads, auxiliary modules, and post-exploitation modules. It is widely used by security professionals and researchers to test the security \nof networks and applications. The tool is regularly updated with new exploits and features to keep up with the evolving threat landscape. "
_github: https://github.com/rapid7/metasploit-framework
_name: Metasploit Framework
_short: "metasploit-framework is an open-source penetration testing framework used for developing, testing, and executing exploit code against a remote target machine. "
_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
_desc: "Mamba is a fast, reliable, and easy-to-use package manager for the conda package manager ecosystem. It aims to improve the performance of package management operations by utilizing parallel downloading \nand processing. Mamba is compatible with conda packages and environments, making it a suitable alternative for users looking for faster package management on their systems. It is particularly useful for\nmanaging large-scale data science and scientific computing environments efficiently. Mamba can be easily installed alongside conda and used as a drop-in replacement for faster package installations and \nupdates. "
_github: https://github.com/mamba-org/mamba
_name: MicroMamba
_post: |
#!/usr/bin/env bash
micromamba self-update
_short: "mamba is a fast, scalable package manager for data science and scientific computing. "
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
_desc: "VFS for Git is an open-source system developed by Microsoft that improves Git repository performance on Windows by virtualizing the file system. It allows Git to operate more efficiently with \nrepositories containing large numbers of files. VFS for Git works by only downloading files as they are needed, reducing the disk space and time required for cloning and fetching from repositories. This\ntool can significantly enhance the performance of Git operations, especially in repositories with extensive histories and numerous files. "
_github: https://github.com/microsoft/VFSForGit
_name: Microsoft Git (with Git VFS)
_short: "VFS for Git is a virtual file system extension for Git, designed to improve Git performance on Windows by enabling Git to operate more efficiently with large repositories. "
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
_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
_github: false
_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
_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."
_github: false
_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
_desc: "Miller is a command line tool that allows for text processing in Unix-like systems. It is designed for working with structured text data like CSV, TSV, JSON, and XML. Miller provides various operations \nfor data manipulation such as filtering, joining, sorting, and formatting. It is particularly useful for tasks like data cleaning, transformation, and analysis. Miller is open-source and actively \nmaintained by John Kerl. It offers a flexible and powerful way to work with structured data efficiently from the command line. "
_github: https://github.com/johnkerl/miller
_name: Miller
_short: "Miller is a command line tool for processing text files in Unix-like systems. "
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
_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
_short: "Minikube is a tool that enables you to run Kubernetes clusters locally for development and testing purposes. "
_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
_desc: "Mise is a tool created by jdx available on GitHub at https://github.com/jdx/mise. It is a simple script that helps in managing macOS system preferences from the command line. With Mise, you can easily \nset and get various system preferences like dark mode, accent color, wallpaper, and more. It provides a convenient way to automate the customization of macOS settings, making it useful for system \nadministrators and power users who prefer working with the command line interface. "
_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
_short: "Mise is a tool for managing macOS dotfiles. "
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
_short: "mitmproxy is an open-source interactive HTTPS proxy. "
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
_short: "MJML App is a desktop application that allows users to create responsive email templates using the MJML framework. "
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
_short: "mkcert is a simple tool for making locally-trusted development certificates. "
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
_short: "Mockoon is an open-source API mocking tool that helps developers simulate backend services quickly and easily. "
cask: mockoon
choco: mockoon
github: github.com/mockoon/mockoon
npm: "@mockoon/cli"
snap: mockoon
winget: mockoon
yay: mockoon-bin
modern-flyouts:
_bin: modern-flyouts
_desc: "ModernFlyouts is an open-source project hosted on GitHub that provides a modern and customizable replacement for the default volume, brightness, and media controls in Windows 10. It offers a sleek and \ncustomizable user interface with various themes and settings to enhance the user experience. Users can contribute to the project, report issues, suggest improvements, and customize the tool to suit \ntheir preferences. It aims to provide a more visually appealing and functional alternative to the standard system controls in Windows 10. "
_github: https://github.com/ModernFlyouts-Community/ModernFlyouts
_name: Modern Flyouts
_short: "ModernFlyouts is a customizable and modern replacement for the default volume, brightness, and media controls on Windows 10. "
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
_short: "mods is a collection of terminal utilities for building modern CLI applications in Go. "
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
_short: "Mole is a CLI application that helps you create SSH tunnels with ease. "
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
_short: "Molecule is a tool for testing Ansible roles in multiple scenarios. "
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
_short: "Monero is an open-source cryptocurrency that focuses on privacy, security, and decentralization. "
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/
_name: "monero "
_restricted: true
_short: "Monero is an open-source cryptocurrency that focuses on privacy, security, and decentralization. "
brew: monero
scoop: monero
mongodb:
_bin: mongod
_desc: "MongoDB is an open-source, document-oriented NoSQL database program. It uses a flexible, JSON-like document data model, making it easy to store and manage data. MongoDB is designed for scalability, high\navailability, and performance. The GitHub repository contains the source code, documentation, and resources related to MongoDB. It is actively maintained by the MongoDB community and developers \nworldwide. "
_github: https://github.com/mongodb/mongo
_name: MongoDB
_service: mongodb
_service:brew: mongodb-community
_short: "MongoDB is an open-source NoSQL database program that uses a document-oriented data model. "
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
_short: "mongodb-atlas-cli is a command-line interface tool for managing MongoDB Atlas resources. "
brew: mongodb-atlas
choco: mongodb-atlas
mongodb-compass:
_app: MongoDB Compass.app
_bin: mongodb-compass
_desc: "MongoDB Compass is a graphical user interface (GUI) for MongoDB, designed to make working with MongoDB databases more intuitive and efficient. It allows users to visually explore their data, run ad-hoc \nqueries, and perform CRUD operations without needing to write complex commands. Compass provides features like schema visualization, real-time server statistics, and an aggregation pipeline builder. It \nsupports both SQL and MongoDB query languages, making it a versatile tool for developers and database administrators. Overall, MongoDB Compass simplifies database management tasks and enhances the user \nexperience when working with MongoDB databases. "
_github: https://github.com/mongodb-js/compass
_name: MongoDB Compass
_short: "MongoDB Compass is a graphical user interface for MongoDB, allowing users to explore and manipulate their data visually. "
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
_short: "MonitorControl is a macOS app that allows you to control external monitor brightness, contrast, and volume directly from your Mac. "
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
_short: "Mono is an open-source implementation of Microsoft's .NET Framework. "
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
_short: "Mosh is a remote terminal application that allows for robust and reliable connections, even on unstable networks, by using predictive algorithms to maintain smooth sessions. "
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
_short: "Motrix is a full-featured download manager that supports downloading HTTP, FTP, BitTorrent, Magnet, and more. "
ansible: professormanhattan.motrix
cask: motrix
choco: motrix
flatpak: net.agalwood.Motrix
github: github.com/agalwood/Motrix
scoop: motrix
yay: motrix-bin
mpg123:
_bin: mpg123
_desc: mpg123 is a free and open-source audio player. It supports MPEG audio formats, including MP3
_github: false
_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
_desc: "mpv is a free and open-source media player known for its high-quality video output and wide range of supported formats. It is highly customizable and can be controlled via keyboard shortcuts or command \nline. mpv is popular among users who seek a lightweight, efficient media player with advanced features like hardware acceleration and support for various codecs. It is actively maintained by a community\nof developers and is available for multiple platforms, including macOS. "
_github: https://github.com/mpv-player/mpv
_name: MPV
_short: "mpv is a free and open-source media player known for its high-quality video playback and customization options. "
_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
_short: "MQTTX is a cross-platform MQTT 5.0 client tool. "
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
_short: "Mudlet is an open-source platform for creating and playing text-based multiplayer games, known as MUDs (Multi-User Dungeons). "
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
_short: "Muffet is a fast website link checker written in Go. "
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
_short: "mullvadvpn-app is an open-source VPN application developed by Mullvad for secure and private internet connections. "
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
_desc: "multi-gitter is a tool available on GitHub that allows you to manage multiple repositories across different organizations on GitHub. It provides a way to perform actions like cloning, pulling, pushing, \nand fetching on multiple repositories at once. This tool can be useful for users who work with several repositories and need to streamline their workflow by automating repetitive tasks. It simplifies \nmanaging multiple repositories by providing a single interface to interact with them efficiently. "
_github: https://github.com/lindell/multi-gitter
_name: Multi-Gitter
_short: "multi-gitter is a tool that allows you to run multiple GitHub actions workflows in parallel. "
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
_short: "Multipass is a lightweight VM manager for Linux, Windows, and macOS. "
ansible: professormanhattan.multipass
cask: multipass
choco: multipass
snap: multipass
mutagen:
_bin: mutagen
_desc: "Mutagen is an open-source file synchronization and network forwarding tool that simplifies the process of keeping files in sync between multiple machines. It supports bi-directional synchronization, \nautomatic conflict resolution, and real-time updates. Mutagen can be used for development, deployment, and other scenarios where keeping files in sync is crucial. It works efficiently with large files \nand is designed to be fast and reliable. The tool is available for various operating systems, including macOS, and can be easily integrated into existing workflows. "
_github: https://github.com/mutagen-io/mutagen
_name: Mutagen
_post: |
#!/usr/bin/env bash
mutagen daemon register
_short: "Mutagen is a file synchronization and networking tool for developers, providing fast and efficient file synchronization for local development environments. "
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
_short: "mycli is a command-line interface for MySQL with auto-completion and syntax highlighting. "
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/
_name: "mymonero-app-js "
_short: "mymonero-app-js is a JavaScript library for interacting with the MyMonero web wallet service. "
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
_short: "Nativefier is a tool that allows you to create desktop applications from any website with minimal effort. "
npm: nativefier
nativescript:
_bin: ns
_desc: "NativeScript is an open-source framework for building truly native mobile applications using JavaScript, TypeScript, or Angular. It allows developers to create cross-platform apps for iOS and Android \nwhile maintaining a native look and feel. NativeScript provides access to native APIs, UI components, and performance, making it a powerful tool for mobile app development. The GitHub repository \ncontains the source code, documentation, and resources for the NativeScript framework, making it easy for developers to contribute, report issues, and stay updated on the latest developments. "
_github: https://github.com/NativeScript/NativeScript
_name: NativeScript
_short: "NativeScript is an open-source framework for building truly native mobile applications using JavaScript. "
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
_short: "navi is a command-line cheat sheet tool that helps users navigate commands more efficiently. "
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 notetaking, 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
_short: "nb is a command-line note-taking, bookmarking, and knowledge base application for developers. "
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
_name: "ncc "
_short: "ncc is a tool by Vercel for compiling Node.js projects into a single file. "
brew: ncc
npm: "@vercel/ncc"
ndb:
_bin: ndb
_desc: "ndb is a tool developed by Google Chrome Labs for debugging Node.js applications. It provides an improved debugging experience by offering features like advanced code navigation, real-time code \nexecution, and integrated debugging tools. With ndb, developers can easily inspect and debug their Node.js applications in a more efficient and user-friendly manner. It is particularly useful for \ntroubleshooting complex Node.js projects and identifying issues quickly. The tool is open-source and available on GitHub for developers to use and contribute to. "
_github: https://github.com/GoogleChromeLabs/ndb
_name: ndb
_short: "ndb is a tool for debugging Node.js applications, developed by Google Chrome Labs. "
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
_short: "Nebula is an open-source, scalable overlay networking tool for connecting and securing services across different infrastructures. "
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
_short: "Nerd is a programming language that aims to be simple and powerful, designed for beginners and experts alike. "
npm: nectarjs
neofetch:
_bin: neofetch
_desc: "Neofetch is a command-line tool that displays system information in a visually appealing way. It gathers details about your system, including the operating system, kernel version, CPU, GPU, memory, and \nmore, and presents it in a customizable ASCII art or image. Neofetch supports various Linux distributions, macOS, and other Unix-like systems. It is highly customizable through configuration files and \ncommand-line options, allowing users to personalize the output to suit their preferences. Neofetch is popular among users who like to display system information in a stylish and informative manner. "
_github: https://github.com/dylanaraps/neofetch
_name: NeoFetch
_short: "Neofetch is a command-line system information tool that displays information about your system in a visually appealing way. "
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
_short: "Neovide is a Neovim GUI written in Rust for better performance and modern look. "
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
_short: "Neovim is a highly extensible text editor based on Vim, with improved performance and features for modern development workflows. "
apk: neovim
apt:
- neovim
- python3-neovim
brew: neovim
choco: neovim
dnf:
- neovim
- python3-neovim
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
_desc: "The neovim/node-client repository on GitHub is a Node.js client for Neovim, a highly extensible text editor. This client allows developers to interact with Neovim programmatically using JavaScript. It \nprovides a way to communicate with Neovim's API, enabling users to create plugins, extensions, and automation scripts for Neovim using Node.js. The repository contains code, documentation, and examples \nto help developers integrate Neovim functionality into their Node.js applications. "
_github: https://github.com/neovim/node-client
_name: Neovim Node Host
_short: "neovim/node-client is a Node.js client for Neovim, allowing communication with Neovim instances using JavaScript. "
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
_short: "nestjs/nest-cli is a command-line interface tool for NestJS applications, providing features for generating components, modules, and more to streamline development. "
npm: "@nestjs/cli"
netcat:
_bin: netcat
_desc: netcat (often abbreviated to nc) is a computer networking utility for reading from and writing to network connections using TCP or UDP.
_github: false
_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
# @file Netdata
# @brief Connects Netdata with Netdata's free cloud dashboard and applies some system optimizations, if necessary
# @description
# This script connects Netdata with Netdata Cloud if Netdata is installed, the `NETDATA_TOKEN` is provided, and the
# `NETDATA_ROOM` is defined. This allows you to graphically browse through system metrics on all your connected devices
# from a single free web application.
#
# This script installs additional alerts and enables notifications if Netdata is installed. Email notifications are configured
# using the provided primary email address. If the OS is Debian based, Netdata shows the number of CVEs in currently installed packages.
ensureNetdataOwnership() {
### Ensure /usr/local/var/lib/netdata/cloud.d is owned by user
if [ -d /usr/local/var/lib/netdata ]; then
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
elif [ -d /var/lib/netdata ]; then
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
elif [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/var/lib/netdata" ]; then
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"
else
logg warn 'No /var/lib/netdata folder found'
fi
}
### Claim the instance with Netdata Cloud
if command -v netdata-claim.sh > /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" netdata
fi
### Ensure ownership
ensureNetdataOwnership
### netdata-claim.sh must be run as netdata user
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"'
### Kernel optimizations
# These are mentioned while installing via the kickstart.sh script method. We are using Homebrew for the installation though.
# Assuming these optimizations do not cause any harm.
if [ -d /Applications ] && [ -d /System ]; then
### macOS
logg info 'System is macOS so Netdata kernel optimizations are not required'
else
### Linux
if [ -d /sys/kernel/mm/ksm ]; then
logg info 'Adding Netdata kernel optimization for /sys/kernel/mm/ksm/run'
echo 1 | sudo tee /sys/kernel/mm/ksm/run
logg info 'Adding Netdata kernel optimization for /sys/kernel/mm/ksm/sleep_millisecs'
echo 1000 | sudo tee /sys/kernel/mm/ksm/sleep_millisecs
else
logg info 'The /sys/kernel/mm/ksm directory does not exist so Netdata kernel optimizations are not being applied'
fi
fi
### Install additional alerts and enable notifications
if command -v netdata > /dev/null; then
### Copy the additional alert definitions
if [ -d /usr/local/etc/netdata ]; then
NETDATA_ETC='/usr/local/etc/netdata/'
elif [ -d /etc/netdata ]; then
NETDATA_ETC='/etc/netdata'
elif [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/netdata" ]; then
NETDATA_ETC="${HOMEBREW_PREFIX:-/opt/homebrew}/etc/netdata"
else
logg error 'No etc location found for netdata' && exit 1
fi
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"
if command -v gsed > /dev/null; then
SED_UTIL="gsed"
else
SED_UTIL="sed"
fi
### Blocky
logg info "Adding Blocky metrics collection to $NETDATA_ETC/go.d/prometheus.conf"
sudo "$SED_UTIL" -i "/jobs:/a\ - name: blocky_local \n url: 'http://127.0.0.1:4000/metrics'" "$NETDATA_ETC/go.d/prometheus.conf"
### SFTPGo
logg info "Adding SFTPGo metrics collection to $NETDATA_ETC/go.d/prometheus.conf"
sudo "$SED_UTIL" -i "/jobs:/a\ - name: sftpgo_local \n url: 'http://127.0.0.1:57500/metrics'" "$NETDATA_ETC/go.d/prometheus.conf"
# Backup current health alarm configuration and apply new one
if [ -d /usr/local/lib/netdata ]; then
NETDATA_LIB='/usr/local/lib/netdata'
elif [ -d /usr/lib/netdata ]; then
NETDATA_LIB='/usr/lib/netdata'
elif [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/lib/netdata" ]; then
NETDATA_LIB="${HOMEBREW_PREFIX:-/opt/homebrew}/lib/netdata"
else
logg error 'No lib location found for netdata' && exit 1
fi
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"
else
logg warn 'netdata is not available in the PATH or is not installed'
fi
### Ensure the apt command is available before running `debsecan` logic
if command -v apt-get > /dev/null; then
### Configure Netdata to gather information about CVEs in the installed packages
if command -v debsecan > /dev/null; then
DEBSECAN_GIT="${XDG_DATA_HOME:-$HOME/.local/share}/netdata-debsecan"
### Installing the script to generate report on CVEs in installed packages
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"
### Generate initial debsecan reports in /var/log/debsecan/
logg info 'Generating initial debsecan reports in /var/log/debsecan/' && debsecan-by-type
### Configure dpkg to refresh the file after each run
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
### Add a cron job to refresh the file every hour
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
### Install the module/configuration file
logg info 'Installing the module and configuration file'
sudo "$DEBSECAN_GIT/debsecan.chart.py" /usr/libexec/netdata/python.d/debsecan.chart.py
sudo "$DEBSECAN_GIT/debsecan.conf" /etc/netdata/python.d/debsecan.conf
else
logg warn 'apt-get is available but debsecan is not available in the PATH or is not installed'
fi
fi
### Ensure / report whether speedtest-cli is installed
if ! command -v speedtest-cli > /dev/null; then
if command -v pipx > /dev/null; then
pipx install speedtest-cli
else
logg warn 'speedtest-cli not installed and pipx is not available'
fi
fi
### Configure Netdata to gather information about Internet connection speed
if command -v speedtest-cli > /dev/null; then
### Installing the script to generate report on Internet connection speed
logg info 'Installing script to generate report on Internet connection speed'
LIBEXEC_PATH="$(netdata -W buildinfo | grep 'Configure' | sed "s/.*--libexecdir=\([^ \']*\).*/\1/")"
if [ -d /usr/libexec/netdata/charts.d ]; then
sudo cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest/speedtest.chart.sh" "/usr/libexec/netdata/charts.d/speedtest.chart.sh"
elif [ -d "$LIBEXEC_PATH/netdata/charts.d" ]; then
logg info "$LIBEXEC_PATH/netdata/charts.d present on system"
cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest/speedtest.chart.sh" "$LIBEXEC_PATH/netdata/charts.d/speedtest.chart.sh"
else
logg warn "Failed to find appropriate directory to add Netdata speedtest chart script"
fi
else
logg warn 'speedtest-cli is not available in the PATH or is not installed'
fi
### Ensure ownership again
ensureNetdataOwnership
### Restart Netdata service
if command -v systemctl > /dev/null; then
logg info 'Enabling netdata service' && sudo systemctl enable netdata
logg info 'Restarting netdata service' && sudo systemctl restart netdata
elif [ -d /Applications ] && [ -d /System ]; then
logg info 'Starting / enabling netdata service' && brew services restart netdata
else
logg warn 'systemctl is not available'
fi
else
logg info 'netdata-claim.sh is not available in the PATH'
fi
_service: netdata
_service:brew:
- name: netdata
sudo: true
_serviceEnabled: true
_short: "Netdata is an open-source real-time performance monitoring tool for system administrators and developers. "
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
_desc: "NETworkManager is an open-source network manager tool for Linux systems. It provides a user-friendly interface to manage network connections, including wired, wireless, and VPN connections. Users can \neasily configure network settings, monitor network traffic, and troubleshoot network issues through a graphical interface. It supports various network protocols and offers features like network profile \nmanagement, connection sharing, and network device information. The tool is designed to simplify network management tasks for both novice and experienced users. "
_github: https://github.com/BornToBeRoot/NETworkManager
_name: NETworkManager
_short: "NETworkManager is a powerful tool for managing network interfaces and connections on Linux systems. "
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
_short: "Newman is a command-line collection runner for Postman. "
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
_short: "Nextcloud Desktop is a client application for the Nextcloud file sharing and collaboration platform, allowing users to sync files, access, and share them across devices. "
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
_short: "nginx is a popular open-source web server known for its high performance, stability, and scalability. "
_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
_desc: "NGINX Unit is an open-source application server that supports multiple languages and frameworks, allowing you to run web applications written in Python, PHP, Go, Perl, and more. It provides a flexible \nand scalable solution for hosting web applications with its modular architecture. NGINX Unit can be configured dynamically without needing to restart the server, making it ideal for microservices and \ncontainerized environments. It offers features like process isolation, automatic application updates, and detailed logging. NGINX Unit is actively maintained by NGINX, Inc. and is available for various \nUnix-like operating systems. "
_github: https://github.com/nginx/unit
_name: NGINX Unit
_service: unit
_short: "nginx/unit is an open-source web application server that supports multiple languages and frameworks, providing a flexible and scalable solution for hosting web applications. "
brew: nginx/unit/unit
ngrok:
_bin: ngrok
_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."
_github: false
_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
_short: "ngxtop is a command-line tool for real-time monitoring of nginx log files. "
pipx: ngxtop
ninja:
_bin: ninja
_desc: "Ninja is a small build system with a focus on speed. It is designed to be fast and efficient, particularly for large projects with many dependencies. Ninja uses a simple syntax for build files and aims \nto be easy to use and understand. It is commonly used in conjunction with other build systems like CMake to accelerate the build process. Ninja is open-source and available on GitHub for users to \ncontribute to and customize according to their needs. "
_github: https://github.com/ninja-build/ninja
_name: Ninja
_short: "Ninja is a fast build system that aims to be simpler than Make. "
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
_short: "NitroShare Desktop is a cross-platform network file transfer application. "
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
_short: "Nmap is a popular open-source network scanning tool used for network discovery and security auditing. "
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
_short: "nnn is a fast and resource-friendly file manager for the terminal. "
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
_short: "Node.js is an open-source JavaScript runtime built on Chrome's V8 JavaScript engine. "
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
_short: "node-prune is a tool that removes unnecessary files from Node.js projects, helping to reduce the size of the project directory. "
github: github.com/tj/node-prune
go: github.com/tj/node-prune@latest
nodemon:
_bin: nodemon
_desc: "nodemon is a utility for Node.js that helps in automatically restarting the application when file changes in the directory are detected. It is commonly used during development to speed up the \ndevelopment process by eliminating the need to manually restart the server after every code change. nodemon monitors the files in the directory and restarts the server whenever a change is detected, \nmaking the development workflow more efficient. It can be easily installed via npm and configured to suit specific project requirements. "
_github: https://github.com/remy/nodemon
_name: Nodemon
_short: "nodemon is a tool that helps develop Node.js applications by automatically restarting the server when file changes are detected. "
npm: nodemon
nomad:
_bin: 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
_github: https://github.com/hashicorp/nomad
_home: https://www.nomadproject.io/
_name: HashiCorp Nomad
_service: nomad
_short: "Nomad is a cluster manager and scheduler designed by HashiCorp for deploying and managing containerized and non-containerized applications at scale. "
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
_short: "Nomino is a tool for generating random names. "
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
_short: "openpyn-nordvpn is a script that simplifies connecting to NordVPN servers using the OpenVPN protocol on Linux systems. "
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
_short: "normit is a command-line tool for translating text using multiple translation engines. "
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.
_short: "The Notion SDK for JavaScript is a library that allows developers to interact with the Notion API in their JavaScript applications. "
cask: notion
choco: notion
mas: 1559269364
np:
_bin: np
_desc: A better `npm publish`
_github: https://github.com/sindresorhus/np
_name: np
_short: "np is a tool for publishing npm packages. "
npm: np
npkill:
_bin: npkill
_desc: "npkill is a tool available on GitHub that helps users easily find and remove old or large node_modules directories in their projects. It provides a visual interface to select which directories to \ndelete, helping to free up disk space by removing unnecessary dependencies. This tool can be especially useful for Node.js developers who want to clean up their projects and reclaim storage space on \ntheir machines. "
_github: https://github.com/voidcosmos/npkill
_name: npkill
_short: "npkill is a tool for finding and removing old or large node_modules directories in your projects to free up disk space. "
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
_short: "npm-check is a tool for checking outdated, incorrect, and unused dependencies in a Node.js project. "
npm: npm-check
npm-check-updates:
_bin: ncu
_desc: "npm-check-updates is a tool used to check for updates of npm packages in a Node.js project. It allows you to see which packages have new versions available and helps you update your package.json file \naccordingly. This tool simplifies the process of keeping your project's dependencies up to date by providing a clear overview of available updates. It can be especially useful for projects with many \ndependencies or for ensuring compatibility with the latest versions of packages. "
_github: https://github.com/raineorshine/npm-check-updates
_name: NPM Check Updates
_short: "npm-check-updates is a tool that checks for updates to npm packages in your project and helps you update them easily. "
npm: npm-check-updates
ntfy:
_bin: nfty
_desc: "ntfy is a command-line utility that sends desktop notifications when a command finishes. It supports various notification backends like Pushbullet, Pushover, Slack, Telegram, and more. It can be used to\nkeep track of long-running commands or scripts without having to constantly check the terminal. It's easy to install and configure, making it a handy tool for system administrators and developers who \nwant to stay updated on their command executions. "
_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
_short: "ntfy is a command-line utility that sends notifications when a command finishes. "
pip3: ntfy[emoji,matrix,pid,slack]
ntl:
_bin: ntl
_desc: "ntl is a Node.js module that provides a simple way to work with numbers in various formats like integers, floats, and big numbers. It offers functions for arithmetic operations, comparisons, and \nconversions between different number types. The module is designed to handle large numbers accurately, making it useful for applications requiring precise numerical calculations. It can be installed via\nnpm and used in Node.js projects to simplify number manipulation tasks. "
_github: https://github.com/ruyadorno/ntl
_name: NTL
_short: "ntl is a Node.js module for working with large integers. "
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
_short: "Nuclear is a free music streaming program that pulls content from free sources all over the internet. "
cask: nuclear
choco: nuclear
flatpak: org.js.nuclear.Nuclear
github: github.com/nukeop/nuclear
snap: nuclear
yay: nuclear-player-bin
nugetpackageexplorer:
_bin: nugetpackageexplorer
_desc: "NuGet Package Explorer is a user-friendly application for creating, exploring, and editing NuGet packages. It provides a graphical interface to easily work with NuGet packages, allowing users to view \npackage contents, metadata, and dependencies. The tool simplifies the process of creating and managing NuGet packages, making it a valuable resource for developers working with .NET projects. It is an \nopen-source project hosted on GitHub, allowing for community contributions and enhancements to the tool. "
_github: https://github.com/NuGetPackageExplorer/NuGetPackageExplorer
_name: NuGet Package Explorer
_short: "NuGet Package Explorer is a user-friendly application for creating, exploring, and editing NuGet packages. "
choco: nugetpackageexplorer
winapp: nuget-package-explorer/9WZDNCRDMDM3
winget: NuGet Package Explorer
nushell:
_bin: nu
_desc: "NuShell is a modern shell for the GitHub community. It is a new type of shell that takes the best parts of traditional shells and combines them with the power of a programming language. NuShell allows \nusers to work with structured data effortlessly, making it easier to manipulate and transform data. It provides a rich set of commands and features for developers and system administrators, making it a \nversatile tool for various tasks. NuShell is open-source and actively developed by a community of contributors. "
_github: https://github.com/nushell/nushell
_name: Nu
_short: "NuShell is a modern shell for the GitHub community. "
apk: nushell
apt: nushell
brew: nushell
choco: nushell
dnf: nushell
pacman: nushell
port: nushell
scoop: nushell
winget: nushell
nve:
_bin: nve
_desc: "nve is a tool on GitHub created by ehmicky. It allows you to run any Node.js version with a single command, making it easier to switch between different Node.js versions for your projects. This tool \nsimplifies managing Node.js versions on your system, especially when working on multiple projects that require different versions. It's a convenient way to ensure compatibility and consistency across \nyour Node.js projects without the need for manual version switching. "
_github: https://github.com/ehmicky/nve
_name: nve
_short: "nve is a tool that allows you to run Node.js scripts with specific Node versions. "
npm: nve
nx:
_bin: nx
_desc: "Nx is a set of extensible dev tools for monorepos, which helps in managing multiple projects within a single repository. It provides tools for building, testing, and sharing code between projects \nefficiently. Nx supports various frontend frameworks like Angular, React, and Vue, along with backend technologies like Node.js. It promotes best practices like code sharing, consistent project \nstructure, and efficient dependency management. Nx also offers features like code generation, dependency graph visualization, and CI/CD integration, making it a powerful tool for large-scale development\nprojects. "
_github: https://github.com/nrwl/nx
_name: NX
_short: "nx is a set of extensible dev tools for monorepos in Angular, React, and Node.js. "
npm: nx
obs-studio:
_app: OBS.app
_bin: obs-studio
_desc: "obs-studio is an open-source software for video recording and live streaming. It is widely used by content creators, gamers, and professionals for capturing and broadcasting content. With features like \ncustomizable transitions, filters, and audio mixer, it offers a versatile platform for creating high-quality streams and recordings. The software supports various platforms including Windows, macOS, and\nLinux, making it accessible to a wide range of users. Additionally, its plugin system allows for further customization and integration with other tools, enhancing its functionality for different use \ncases. "
_github: https://github.com/obsproject/obs-studio
_name: OBS Studio
_short: "obs-studio is an open-source software for video recording and live streaming. "
cask: obs
choco: obs-studio
flatpak: com.obsproject.Studio
obsidian:
_app: Obsidian.app
_bin: null
_desc: Obsidian is the private and flexible notetaking 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
_desc: "obsidian-cli is a command-line interface tool for managing Obsidian notes. It allows users to create, edit, and search notes directly from the terminal. With obsidian-cli, you can quickly access and \nmanipulate your Obsidian vault without needing to open the Obsidian app. This tool provides a convenient way to interact with your notes using commands, making it easier to perform various tasks \nefficiently. It is a useful utility for Obsidian users who prefer working in a terminal environment or need to automate note-related tasks. "
_github: https://github.com/Yakitrak/obsidian-cli
_name: Obsidian CLI
_pre:scoop: scoop bucket add scoop-yakitrak https://github.com/yakitrak/scoop-yakitrak.git
_short: "obsidian-cli is a command-line interface for managing Obsidian notes. "
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
_short: "oclif is a Command Line Interface framework for building CLIs in Node.js. "
npm: oclif
octosql:
_bin: octosql
_desc: "OctoSQL is an open-source query tool that allows you to query multiple databases and file formats using SQL. It supports various data sources like MySQL, PostgreSQL, CSV files, and more, enabling you to\njoin and aggregate data from different sources in a single query. OctoSQL provides a unified interface for querying disparate data stores, making it easier to work with data spread across different \nsystems. It's a powerful tool for data engineers and analysts who need to access and analyze data from multiple sources using familiar SQL syntax. "
_github: https://github.com/cube2222/octosql
_name: OctoSQL
_short: "OctoSQL is a tool for querying multiple databases in a single query. "
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
_short: "oh-my-posh is a prompt theme engine for PowerShell, providing a customizable and visually appealing prompt for the shell. "
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
_short: "OnionShare is a tool that allows you to securely and anonymously share files over the Tor network. "
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
_desc: "OnlyKey-App is a GitHub repository that contains the source code for the OnlyKey desktop application. This application is designed to work with the OnlyKey hardware device, which is a secure USB \npassword manager and two-factor authentication device. The OnlyKey-App repository likely includes code for managing passwords, generating two-factor authentication codes, and configuring the OnlyKey \ndevice. It's a tool that enhances security by providing a convenient and secure way to manage passwords and authentication. "
_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
_short: "OnlyKey-App is a secure password manager and two-factor authentication tool developed by TrustCrypto. "
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
_desc: "onlykey-agent is a software tool available on GitHub developed by TrustCrypto. It is designed to work with OnlyKey, a hardware security key that provides two-factor authentication, password management, \nand encryption. The agent facilitates communication between the OnlyKey device and the computer, allowing users to securely manage their passwords and cryptographic keys. It supports various platforms \nand provides a command-line interface for interacting with the OnlyKey device. The agent enhances security by keeping sensitive information on the hardware device rather than on the computer. "
_github: https://github.com/trustcrypto/onlykey-agent
_name: OnlyKey Agent
_short: "onlykey-agent is a GitHub repository that contains code for the OnlyKey agent, a program used for managing OnlyKey devices, which are hardware security keys for encryption and authentication purposes. "
brew: onlykey-agent
pipx: onlykey-agent
onlykey-cli:
_bin: onlykey-cli
_deps:
- onlykey-cli-deps
_desc: "The repository https://github.com/trustcrypto/python-onlykey is a Python library for interacting with the OnlyKey, a hardware security key developed by Trust Digital. This library provides functions to \ncommunicate with the OnlyKey device, enabling users to manage encryption keys, generate OTPs (One-Time Passwords), and perform other security-related tasks. It allows developers to integrate OnlyKey \nfunctionality into their Python applications, enhancing security measures by leveraging the features of the OnlyKey device. "
_github: https://github.com/trustcrypto/python-onlykey
_name: OnlyKey CLI
_short: "python-onlykey is a Python library for interacting with the OnlyKey hardware device, providing secure key storage and cryptographic operations. "
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
_short: "opencommit is a tool that helps automate the process of opening GitHub issues based on commit messages. "
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
_short: "OpenInTerminal: A macOS Finder toolbar app to open the current directory in Terminal or iTerm. "
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
_short: "The https://github.com/openjdk/jdk repository contains the source code for the OpenJDK project, which is an open-source implementation of the Java Platform, Standard Edition. "
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
_short: "oc is a command-line interface tool for interacting with OpenShift clusters. "
brew: openshift-cli
choco: openshift-cli
openssh-server:
_github: false
_service: sshd
_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
_desc: "openssl-osx-ca is a script that simplifies managing a local certificate authority on macOS using OpenSSL. It helps in creating and managing SSL certificates for local development environments. This \nscript automates the process of generating a CA certificate and key, and then using them to sign server certificates. It also provides commands to install the CA certificate in the macOS system keychain\nfor trusted SSL connections. This tool is useful for developers working on projects that require SSL certificates for local testing and development purposes. "
_github: https://github.com/raggi/openssl-osx-ca
_name: OpenSSL macOS CA
_service:brew:darwin:
- name: openssl-osx-ca
sudo: true
_serviceEnabled: true
_short: "openssl-osx-ca is a script that simplifies managing SSL certificates on MacOS by using the system's keychain. "
brew:darwin: raggi/ale/openssl-osx-ca
openvpn:
_bin: openvpn
_desc: "OpenVPN is an open-source virtual private network (VPN) software that allows you to create secure point-to-point or site-to-site connections. It uses custom security protocols to ensure confidentiality,\nintegrity, and authenticity of data transmitted over the network. OpenVPN is widely used for remote access to private networks, bypassing censorship, and enhancing online security and privacy. The \nGitHub repository contains the source code, documentation, and community contributions for the OpenVPN project. "
_github: https://github.com/OpenVPN/openvpn
_name: OpenVPN
_service: openvpn
_service:brew:
- name: openvpn
sudo: true
_short: "OpenVPN is an open-source virtual private network (VPN) software that allows secure remote access to networks. "
apt: openvpn
brew: openvpn
choco: openvpn
dnf: openvpn
pacman: openvpn
opn-cli:
_bin: opn-cli
_desc: "opn-cli is a command-line tool available on GitHub at https://github.com/andeman/opn-cli. It allows you to open files, directories, and URLs using the default application on your system directly from \nthe terminal. This tool simplifies the process of opening files or websites without having to manually navigate to them. It is written in JavaScript and can be installed globally using npm. The README \non the GitHub page provides instructions on how to install and use the tool effectively. "
_github: https://github.com/andeman/opn-cli
_name: OPNSense CLI
_short: "opn-cli is a command-line tool that opens files, directories, and URLs using the default application on macOS. "
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
_short: "oq is a command-line JSON processor that allows you to extract and manipulate JSON data easily. "
brew: oq
github: github.com/Blacksmoke16/oq
snap: oq
yay: oq
orbstack:
_app: OrbStack.app
_bin: orb
_desc: "Orbstack is a GitHub repository that appears to be related to a software project named Orbstack. The repository likely contains source code, documentation, and possibly other resources related to the \nOrbstack project. To get a detailed understanding of what Orbstack is and what the repository contains, you would need to explore the repository further by checking the README file, codebase, and any \nother available documentation. "
_github: https://github.com/orbstack/orbstack
_name: OrbStack
_short: "Orbstack is a platform for building and deploying serverless applications. "
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
_short: "osquery is an open-source tool that allows you to query your operating system as if it were a database. "
cask: osquery
choco: osquery
github: github.com/osquery/osquery
yay: osquery-git
osx-sign:
_bin: electron-osx-sign
_desc: "osx-sign is a tool available on GitHub that allows developers to codesign and notarize macOS applications and disk images. It simplifies the process of signing and notarizing applications for \ndistribution on macOS. By using this tool, developers can ensure that their applications meet Apple's security requirements and can be distributed through the Mac App Store or other channels. The tool \nprovides a command-line interface for easy integration into build scripts or automation workflows. "
_github: https://github.com/electron/osx-sign
_name: macOS Code Sign
_short: "osx-sign is a tool for code-signing macOS applications using Electron. "
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
_short: "ots is a command-line tool for securely sharing secrets using one-time URLs. "
brew: ots
github: github.com/sniptt-official/ots
go: github.com/sniptt-official/ots@latest
p7zip:
_bin: p7zip
_desc: "p7zip is a port of the command-line version of the 7-Zip file archiver to Unix-like operating systems. It supports a wide range of archive formats and provides high compression ratios. The project is \nhosted on GitHub at https://github.com/p7zip-project/p7zip. Users can download, compile, and use p7zip to create, extract, and manage compressed files efficiently from the terminal. It is a popular tool\nfor managing archives on Unix-based systems. "
_github: https://github.com/p7zip-project/p7zip
_name: p7zip
_short: "p7zip is a high compression ratio file archiver with support for various archive formats, including 7z, ZIP, and TAR. It is a command-line tool available on multiple platforms, including MacOS. "
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
_short: "package-size is a tool that calculates the size of npm packages. "
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
_short: "Packer is an open-source tool for creating identical machine images for multiple platforms from a single source configuration. "
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
_short: "page-fetch is a tool by Detectify for fetching web pages and resources. "
go: github.com/detectify/page-fetch@latest
pageres:
_bin: pageres
_desc: Capture website screenshots
_github: https://github.com/sindresorhus/pageres-cli
_name: pageres
_short: "pageres-cli is a command-line interface for generating screenshots of websites in various resolutions using headless Chrome. "
npm: pageres-cli
pake:
_bin: pake
_desc: "Pake is a simple and lightweight task runner tool for Go projects, designed to simplify common tasks like building, testing, and releasing software. It allows developers to define tasks in a Pakefile.go\nusing Go code, making it easy to automate project workflows. Pake aims to be easy to use and understand, providing a flexible alternative to more complex build tools. It is particularly useful for \nprojects that require custom build processes or automation scripts. You can find more details and usage examples on its GitHub repository: tw93/Pake. "
_github: https://github.com/tw93/Pake
_name: "Pake "
_short: "Pake is a simple and lightweight task runner for Go projects, designed to simplify build and deployment processes. "
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
_short: "Pandoc is a versatile tool for converting between various document formats. "
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
_short: "papertrail-cli is a command-line interface for Papertrail, a cloud-based log management service. It allows users to search, tail, and archive log data easily from the terminal. "
gem: papertrail
parallels:
_app: Parallels Desktop.app
_bin: parallels
_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/
_github: false
_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
_github: false
_home: https://www.passwordstore.org/
_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
_short: "Pastel is a command-line tool for generating, analyzing, converting, and manipulating colors. "
brew: pastel
cargo: pastel
github: github.com/sharkdp/pastel
snap: pastel
yay: pastel
patch-package:
_bin: patch-package
_desc: "Patch Package is a tool that allows you to make changes to npm package source code without forking. It works by creating and applying patches to the node_modules directory during the npm install \nprocess. This enables you to fix bugs or add features to third-party packages without waiting for the maintainers to accept your pull requests. It's particularly useful when you need a quick fix for a \nspecific issue in a package that you are using in your project. Patch Package simplifies the process of managing custom changes to npm packages in a more maintainable way. "
_github: https://github.com/ds300/patch-package
_name: Patch Package
_short: "patch-package is a tool for making changes to npm package code without forking. "
npm: patch-package
pb:
_app: PB for Desktop.app
_bin: pushbullet
_desc: "pb-for-desktop is a project on GitHub created by Sidney San Martín that provides a simple and lightweight clipboard manager for macOS. It allows users to easily access and manage their clipboard \nhistory, making it convenient to retrieve previously copied items. The tool is designed to run in the macOS menu bar, providing quick access to clipboard history without cluttering the desktop. It is \nwritten in Swift and offers features like search functionality, customizable keyboard shortcuts, and the ability to exclude certain applications from being monitored. "
_github: https://github.com/sidneys/pb-for-desktop
_name: Pushbullet for Desktop
_short: "pb-for-desktop is a simple clipboard manager for MacOS. "
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
_short: "Peco is a interactive filtering tool for the command line. "
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
_short: "Peek is a simple screen recorder tool for Linux that allows you to easily capture and record your screen activities. "
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
_desc: "Percol is an interactive selection tool for filtering and selecting items in the terminal. It allows users to easily search, select, and manipulate text using a simple interface. It supports various \nkeybindings for navigation and selection, making it efficient for working with lists of items. Percol is highly customizable and can be integrated with other command-line tools to enhance productivity. \nIt is written in Python and is available on GitHub for users to download, install, and incorporate into their workflow. "
_github: https://github.com/mooz/percol
_name: Percol
_short: "percol is an interactive selection tool for filtering and selecting items in the terminal. "
pipx: percol
pfsense-fauxapi:
_bin: fauxapi
_desc: "The pfsense_fauxapi_client_python is a Python client library for interacting with the pfSense FauxAPI. FauxAPI is an API interface for pfSense that allows external systems to interact with pfSense \nconfigurations and settings programmatically. This client library simplifies the process of integrating pfSense with Python scripts or applications by providing easy-to-use functions for making API \ncalls to pfSense. It enables automation and customization of pfSense configurations through Python scripts. "
_github: https://github.com/ndejong/pfsense_fauxapi_client_python
_name: pfSense CLI (fauxapi)
_short: "pfsense_fauxapi_client_python is a Python client for interacting with the pfSense FauxAPI, allowing users to programmatically manage pfSense firewalls. "
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
_short: "pgcli is a command-line interface for PostgreSQL with auto-completion and syntax highlighting. "
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
_short: "The official repository for the PHP programming language source code. "
ansible: professormanhattan.php
apt: php
brew: php
choco: php
dnf: php
pacman: php
port: php
scoop: php
php-extensions:
_deps:
- postgresql
_github: false
_name: PHP Extensions
_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
_desc: "phpmon is a tool available on GitHub created by nicoverbruggen. It is designed to monitor PHP scripts and display real-time statistics about their performance. This tool can be useful for developers and\nsystem administrators to identify bottlenecks, optimize code, and improve the overall performance of PHP scripts. It provides insights into memory usage, execution time, and other relevant metrics to \nhelp users understand and enhance the efficiency of their PHP applications. "
_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
_short: "phpmon is a tool for monitoring PHP applications in real-time, providing insights into performance and errors. "
cask: nicoverbruggen/homebrew-cask/phpmon
pick:
_bin: pick
_desc: "Pick is a minimalistic command-line fuzzy finder tool for selecting items from a list interactively. It allows users to filter and select items from a list using a fuzzy search algorithm, making it easy\nto navigate through large sets of data quickly. Pick is highly customizable and can be integrated into various workflows to improve efficiency in tasks that involve selecting items from lists. It is \nwritten in C and is designed to be fast and lightweight, making it a useful tool for developers and system administrators working in terminal environments. "
_github: https://github.com/mptre/pick
_name: Pick
_short: "pick is a minimalistic fuzzy finder for the command line. "
apt: pick
brew: pick
dnf: pick
emerge: pick
pkg-freebsd: pick
pkg_add: pick
port: pick
xbps: pick
yay: pick
pidcat:
_bin: pidcat
_desc: "pidcat is a command-line tool created by Jake Wharton for viewing Android log output directly in the terminal. It filters logcat output to display only logs from a specific application package. This \ntool simplifies debugging by focusing on the logs relevant to a particular app, making it easier to track issues and monitor app behavior. It's particularly useful for developers working on Android apps\nwho want a more streamlined way to view and analyze log messages. "
_github: https://github.com/JakeWharton/pidcat
_name: PidCat
_short: "pidcat is a command-line tool that colorizes and filters logcat output from Android devices and emulators. "
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
_desc: "Pigz is a parallel implementation of gzip for modern multi-processor, multi-core machines. It compresses using multiple processors and can achieve much higher compression rates than traditional gzip. \nPigz allows for faster compression and decompression of files by utilizing multiple cores simultaneously. It is compatible with gzip and can be used as a drop-in replacement for gzip. Pigz is \nparticularly useful for compressing large files efficiently on systems with multiple cores or processors. "
_github: https://github.com/madler/pigz
_name: PIGZ
_short: "pigz is a parallel implementation of gzip for modern multi-core processors. "
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
_short: "pika is a lightweight, fast, and minimalistic web framework for Python. "
cask: pika
pinapp:
_bin: pinapp
_desc: "PinApp is a project hosted on GitHub by fabrialberio. It appears to be a repository related to a pinning application, possibly for organizing or saving important information. Without further details or \naccess to the repository, it's challenging to provide a more in-depth description. You can explore the repository on GitHub to get a better understanding of its purpose, features, and how it can be \nutilized. "
_github: https://github.com/fabrialberio/PinApp
_name: "PinApp "
_short: "PinApp is a simple command-line tool for pinning applications to the macOS dock. "
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
_short: "pip is a package installer for Python. "
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
_short: "Pipedream is a platform for building and deploying integrations and APIs quickly. "
brew: pipedreamhq/pd-cli/pipedream
pipelight:
_bin: pipelight
_desc: "Pipelight is a project that allows you to use Silverlight, Flash, and other NPAPI plugins in web browsers on Linux systems. It works by using a modified Wine version to load Windows plugins on Linux. \nThis enables you to access content that requires these plugins, such as streaming services or browser-based games, on Linux systems that do not natively support these plugins. However, please note that \nPipelight is no longer actively maintained and may not work with the latest browser versions or plugins. "
_github: https://github.com/pipelight/pipelight
_name: Pipelight
_short: "Pipelight is a project that allows you to use Silverlight in your Linux browser. "
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/
_name: "pipx "
_post:brew: |
#!/usr/bin/env bash
pipx ensurepath
_short: "pipx is a tool that allows you to install and run Python applications in isolated environments. "
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
_short: "pkg is a tool that packages Node.js projects into executable binaries for various platforms. "
npm: pkg
pkgx:
_bin: pkgx
_desc: The next-generation, crossplatform package manager
_docs: https://docs.pkgx.sh/
_github: https://github.com/pkgxdev/pkgx
_home: https://pkgx.sh/
_name: pkgx
_short: "pkgx is a tool that simplifies package management for Go projects by providing a centralized configuration file to manage dependencies. "
brew: pkgxdev/made/pkgx
platformio:
_bin: platformio
_desc: "PlatformIO Core is an open-source ecosystem for IoT development with a focus on embedded systems. It provides a unified development platform that supports multiple microcontroller architectures, \nframeworks, and IDEs. PlatformIO Core offers a command-line interface for building, managing libraries, and uploading firmware to devices. It simplifies the development process by abstracting hardware \ncomplexities and providing a consistent workflow across different platforms. It is highly extensible with support for various development platforms and tools, making it a versatile choice for embedded \nsystems development. "
_github: https://github.com/platformio/platformio-core
_name: PlatformIO
_short: "PlatformIO Core is an open-source ecosystem for IoT development with cross-platform build system, library manager, and full support for over 900 embedded boards. "
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
_short: "Playwright is a tool for automating browsers created by Microsoft. "
npm: playwright
please:
_bin: plz
_desc: "Please is a tool developed by Thought Machine that simplifies the process of running commands across multiple directories or repositories. It allows you to define tasks in a YAML file and execute them \nwith a single command. This tool is particularly useful for automating repetitive tasks, managing dependencies, and ensuring consistency across projects. It supports parallel execution, error handling, \nand can be easily integrated into existing workflows. Please is open-source and available on GitHub for anyone to use and contribute to. "
_github: https://github.com/thought-machine/please
_name: Please
_short: "Please is a tool for managing monorepos efficiently, developed by Thought Machine. It simplifies building, testing, and releasing multiple projects within a single repository. "
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 clientserver 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
_desc: "Plumber is an R package available on GitHub at https://github.com/streamdal/plumber. It allows you to create web APIs using R. With Plumber, you can turn your R code into API endpoints that can be \naccessed over HTTP. This package is useful for building interactive web applications, integrating R with other programming languages, and deploying machine learning models as APIs. It provides a simple \nand flexible way to expose your R functions as web services. "
_github: https://github.com/streamdal/plumber
_name: Plumber
_short: "Plumber is an R package that allows you to create web APIs from R functions. "
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-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
_short: "PM2 is a popular process manager for Node.js applications, providing features like process monitoring, clustering, and zero-downtime reloads. "
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
_short: "pnpm is a fast, disk space-efficient package manager for Node.js projects. "
ansible: professormanhattan.pnpm
brew: pnpm
npm: pnpm
scoop: pnpm
yay: pnpm
pnpm-lock-export:
_bin: 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
_github: https://github.com/cvent/pnpm-lock-export
_name: "pnpm-lock-export "
_short: "pnpm-lock-export is a tool that converts a pnpm lockfile to an npm-compatible package-lock.json file. "
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
_short: "pock is a customizable Touch Bar widget for macOS. "
cask: pock
podman:
_bin: podman
_desc: "Podman is a tool for managing containers on Linux systems. It provides a command-line interface to manage pods, containers, and container images. Podman is designed as a drop-in replacement for Docker, \nallowing users to run Docker-compatible container images and pods without requiring a separate daemon. It offers features like rootless containers, support for Kubernetes, and compatibility with Docker \nCompose files. Podman is open-source and actively maintained by the community. You can find more information about Podman on its GitHub repository: https://github.com/containers/podman. "
_github: https://github.com/containers/podman
_name: Podman
_short: "Podman is a daemonless container engine for developing, managing, and running Open Container Initiative (OCI) containers and container images on your system. "
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
_short: "Poetry is a Python dependency management and packaging tool that simplifies and streamlines the process of managing Python projects. "
ansible: professormanhattan.poetry
brew: poetry
yay: python-poetry-git
polybar:
_bin: polybar
_desc: "Polybar is a fast and easy-to-use status bar for Linux systems. It allows users to create highly customizable status bars for their desktop environment, displaying information such as system resources, \nworkspaces, and notifications. Polybar supports multiple desktop environments and window managers, making it a versatile choice for users looking to enhance their desktop experience. It is written in \nC++ and uses a simple configuration file to customize its appearance and functionality. With its modular design and extensive documentation, Polybar is a popular choice among Linux users for creating \nstylish and informative status bars. "
_github: https://github.com/polybar/polybar
_name: Polybar
_short: "Polybar is a fast and easy-to-use status bar for Linux. "
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
_short: "Pony is a tool for managing Docker containers and images on macOS. "
github: github.com/jessfraz/pony
go: github.com/jessfraz/pony@latest
poppler:
_desc: "pdf2image is a Python library that converts PDF files into a sequence of PIL (Python Imaging Library) images. It provides a simple interface to extract images from PDFs, making it easier to work with \nPDF content in image processing tasks. The library supports multiple backends for PDF rendering, such as Poppler and Ghostscript, giving users flexibility in choosing the rendering engine. This tool can\nbe useful for tasks like extracting images from PDF documents for further analysis or manipulation. "
_github: https://github.com/Belval/pdf2image
_name: "pdf2image "
_short: "pdf2image is a Python library that converts PDF files into images. "
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
_short: "portal is a project on GitHub by SpatiumPortae. "
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
_short: "Porter is an open-source tool for building, managing, and deploying applications using CNAB (Cloud-Native Application Bundle) technology. "
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
_short: "Portmaster is a tool for managing network connections on MacOS, allowing users to control which apps can access the internet. "
_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
_short: "Postfix is a popular open-source mail transfer agent (MTA) known for its security features and ease of configuration. "
apt: postfix
dnf: postfix
pacman: postfix
port: postfix
script:darwin: echo "Postfix is included by macOS already"
postgresql:
_bin: postgresql
_desc: "The link https://github.com/postgres/postgres leads to the official GitHub repository for the PostgreSQL database management system. PostgreSQL is a powerful, open-source relational database system \nknown for its reliability, robust feature set, and extensibility. The repository contains the source code, documentation, issue tracker, and community contributions related to PostgreSQL development. \nIt's a central hub for developers, users, and contributors to collaborate, report bugs, suggest enhancements, and stay updated on the latest developments in PostgreSQL. "
_github: https://github.com/postgres/postgres
_name: PostgreSQL
_service: postgresql
_service:brew: postgresql@14
_short: "PostgreSQL is an open-source relational database management system known for its reliability and robust features. "
apt: postgresql
brew: postgresql
choco: postgresql
dnf: postgresql
pacman: postgresql
zypper: postgresql
postman:
_app: Postman.app
_bin: postman
_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/
_github: https://github.com/postmanlabs/postman-app-support
_home: https://www.postman.com/
_name: Postman
_short: "postman-app-support is a repository for Postman app support resources. "
ansible: professormanhattan.postman
cask: postman
choco: postman
flatpak: com.getpostman.Postman
snap: postman
yay: postman-bin
powerline:
_bin: powerline
_desc: "Powerline is a statusline plugin for various applications, including Vim, zsh, bash, tmux, and more. It provides improved visual feedback for prompts, status messages, and other information in your \nterminal. Powerline enhances the look and functionality of your shell prompt by displaying information like the current working directory, git branch, exit codes, and more. It supports various themes \nand customization options to tailor the appearance to your preferences. Overall, Powerline is a popular choice for users looking to enhance their terminal experience with a stylish and informative \nstatusline. "
_github: https://github.com/powerline/powerline
_name: "powerline "
_short: "Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, and more. "
apt: powerline
dnf: powerline
pacman: powerline
pipx: powerline-status
powershell:
_app: PowerShell.app
_bin: 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
_github: https://github.com/PowerShell/PowerShell
_name: Powershell
_post:cask: |
#!/usr/bin/env bash
if ! brew list -1 | grep mono-libgdiplus > /dev/null; then
brew install mono-libgdiplus
fi
_short: "PowerShell is a cross-platform task automation and configuration management framework. "
ansible: professormanhattan.powershell
cask: powershell
snap: powershell --classic
pppc-utility:
_app: PPPC Utility.app
_bin: pppc-utility
_desc: "The PPPC-Utility is a tool provided by Jamf, a company specializing in Apple device management solutions. This utility assists in managing Privacy Preferences Policy Control (PPPC) settings on macOS \nsystems. PPPC settings control which applications have access to certain sensitive data or features on a Mac, enhancing security and privacy. The utility simplifies the process of configuring these \nsettings, making it easier for administrators to manage app permissions across their fleet of Mac devices. It is a valuable tool for organizations looking to enforce security policies and protect user \nprivacy on macOS systems. "
_github: https://github.com/jamf/PPPC-Utility
_name: Privacy Preferences Policy Control (PPPC) Utility
_short: "PPPC-Utility is a tool on GitHub by Jamf that simplifies managing Privacy Preferences Policy Control (PPPC) profiles on macOS systems. "
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
_short: "pre-commit is a tool for managing and maintaining multi-language pre-commit hooks in your repository to ensure code quality and consistency. "
brew: pre-commit
pipx: pre-commit
prefsniff:
_bin: prefsniff
_desc: "prefsniff is a tool available on GitHub at https://github.com/zcutlip/prefsniff designed to monitor and analyze macOS system preferences changes. It captures and displays changes made to system \npreferences in real-time, providing insights into what settings are being modified on the system. This tool can be useful for monitoring system changes, troubleshooting configuration issues, or \nunderstanding how certain applications interact with system preferences. "
_github: https://github.com/zcutlip/prefsniff
_name: PrefSniff
_short: "prefsniff is a tool that monitors and logs changes to macOS system preferences. "
pipx: prefsniff
prepare:
_bin: null
_desc: An Ansible Role that prepares hosts for playbook execution
_github: false
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
_short: "Prettier is a code formatter that enforces a consistent style in your codebase. "
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
_short: "prettierd is a daemon that formats code using Prettier on the fly. "
brew: fsouza/prettierd/prettierd
npm: "@fsouza/prettierd"
pretzel:
_app: Pretzel.app
_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
_short: "Pretzel is a simple, modern Mac app that lets you manage your GitHub notifications easily. "
_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
_short: "privaxy is a tool for managing privacy settings on macOS. "
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
_desc: "The SAP macOS Enterprise Privileges project on GitHub provides a set of scripts and configuration profiles to manage and enforce security settings and privileges on macOS devices within an enterprise \nenvironment. It aims to help administrators streamline the process of configuring and securing macOS systems at scale. The project covers various aspects such as managing user privileges, enforcing \nsecurity policies, and configuring system settings to meet enterprise security requirements. It is a valuable resource for organizations looking to enhance the security and manageability of their macOS \nfleet. "
_github: https://github.com/SAP/macOS-enterprise-privileges
_name: Privileges
_short: "macOS Enterprise Privileges is a repository by SAP providing scripts and configuration profiles for managing user privileges on macOS systems in enterprise environments. "
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
# @file Privoxy Configuration
# @brief This script applies the Privoxy configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config` to the system and then restarts Privoxy
# @description
# Privoxy is a web proxy that can be combined with Tor to provide an HTTPS / HTTP proxy that can funnel all traffic
# through Tor. This script:
#
# 1. Determines the system configuration file location
# 2. Applies the configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config`
# 3. Enables and restarts the Privoxy service with the new configuration
#
# ## Links
#
# * [Privoxy configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/privoxy/config)
if [ -d /Applications ] && [ -d /System ]; then
### macOS
if [ -d "/usr/local/etc/privoxy" ]; then
PRIVOXY_CONFIG_DIR=/usr/local/etc/privoxy
elif [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy" ]; then
PRIVOXY_CONFIG_DIR="${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy"
else
logg warn 'Unable to detect Privoxy configuration directory'
fi
else
### Linux
PRIVOXY_CONFIG_DIR=/etc/privoxy
fi
PRIVOXY_CONFIG="$PRIVOXY_CONFIG_DIR/config"
### Copy Privoxy configuration stored at `${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config` to the system location
if command -v privoxy > /dev/null; then
if [ -d "$PRIVOXY_CONFIG_DIR" ]; then
sudo cp -f "${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config" "$PRIVOXY_CONFIG"
sudo chmod 600 "$PRIVOXY_CONFIG"
if command -v add-usergroup > /dev/null; then
sudo add-usergroup "$USER" privoxy
fi
sudo chown privoxy:privoxy "$PRIVOXY_CONFIG" 2> /dev/null || sudo chown privoxy:$(id -g -n) "$PRIVOXY_CONFIG"
### Restart Privoxy after configuration is applied
if [ -d /Applications ] && [ -d /System ]; then
### macOS
brew services restart privoxy
else
if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then
### Linux
sudo systemctl enable privoxy
sudo systemctl restart privoxy
else
logg info 'The system is a WSL environment so the Privoxy systemd service will not be enabled / restarted'
fi
fi
else
logg warn 'The '"$PRIVOXY_CONFIG_DIR"' directory is missing'
fi
else
logg logg 'privoxy is missing from the PATH - skipping configuration'
fi
_service: privoxy
_serviceEnabled: true
_short: "Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data, and controlling access. "
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
_short: "procs is a command-line tool for macOS that displays information about processes in a convenient and user-friendly way. "
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
_short: "ProfileCreator is a tool for creating configuration profiles on macOS and iOS devices. "
cask: profilecreator
mas: 2141249187
progress:
_bin: progress
_desc: "progress is a command-line tool for tracking the progress of various tasks in the terminal. It provides a visual representation of progress bars, percentages, and estimated time remaining for tasks. \nUsers can easily integrate it into scripts or commands to monitor the progress of lengthy operations. The tool is written in Python and is compatible with various Unix-like operating systems. It's a \nhandy utility for keeping track of tasks that take time to complete, providing a more user-friendly experience in the terminal environment. "
_github: https://github.com/Xfennec/progress
_name: Progress
_short: "progress is a command-line tool that shows progress for long-running tasks in the terminal. "
apt: progress
brew: progress
dnf: progress
pacman: progress
port: progress
zypper: progress
projen:
_bin: projen
_desc: "Projen is a development tool for creating and maintaining modern software projects. It allows you to define your project structure, CI/CD, package management, and more using a familiar programming \nlanguage (TypeScript). With Projen, you can define your project's configuration in code, which helps in automating project setup and maintenance tasks. It supports various project types like Node.js, \nPython, Java, and more, making it a versatile tool for managing project configurations in a structured and consistent manner. "
_github: https://github.com/projen/projen
_name: Projen
_short: "projen is a development tool for creating and maintaining modern project configurations using code. "
npm: projen
protonmail-bridge:
_app: Proton Mail Bridge.app
_bin: protonmail-bridge
_desc: "Proton Bridge is an open-source application developed by ProtonMail that enables users to integrate their ProtonMail account with desktop email clients like Microsoft Outlook, Apple Mail, and \nThunderbird. This allows users to access their ProtonMail encrypted emails through these clients, providing a more convenient way to manage their emails. The application works by securely connecting the\nemail client to the ProtonMail servers, ensuring end-to-end encryption for all communications. It's a useful tool for those who prefer using desktop email clients while still benefiting from the \nsecurity and privacy features of ProtonMail. "
_github: https://github.com/ProtonMail/proton-bridge
_name: "proton-bridge "
_short: "Proton Bridge is a tool by ProtonMail that enables encrypted email access through email clients like Outlook and Thunderbird. "
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
_short: "ProtonVPN Linux App is an open-source application that allows users to connect to ProtonVPN servers on Linux systems. "
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
_deps:script:darwin:
- dialog
- openvpn
_desc: The ProtonVPN CLI official release for Linux along with an unofficial ProtonVPN CLI for macOS
_github: https://github.com/ProtonVPN/linux-cli
_name: ProtonVPN CLI
_short: "ProtonVPN Linux CLI is a command-line interface tool for managing ProtonVPN connections on Linux systems. "
_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:
_desc: "ProvisionQL is a Quick Look plugin for macOS that allows you to preview Provisioning Profiles (.mobileprovision files) directly in the Finder with a quick look. This plugin enhances the user experience \nby providing a convenient way to view the details of provisioning profiles without needing to open them in a separate application. It simplifies the process of managing provisioning profiles for \ndevelopers working on iOS and macOS projects. "
_github: https://github.com/ealeksandrov/ProvisionQL
_name: ProvisionQL
_short: "ProvisionQL is a Quick Look plugin for macOS that allows you to preview Provisioning Profiles. "
_when:cask: '! test -d "$HOME/Library/QuickLook/ProvisionQL.qlgenerator"'
cask: provisionql
proxyman:
_app: Proxyman.app
_bin: proxyman-cli
_desc: "Proxyman is a tool developed by ProxymanApp that acts as a modern and high-performance debugging proxy for macOS and iOS developers. It allows users to intercept and manipulate HTTP/HTTPS requests and \nresponses, inspect network traffic, and debug web apps and APIs easily. With a user-friendly interface, Proxyman offers features like SSL proxying, WebSocket support, and custom filters for efficient \ndebugging. It is a valuable tool for developers looking to analyze and troubleshoot network requests in their applications. "
_github: https://github.com/ProxymanApp/Proxyman
_name: Proxyman
_short: "Proxyman is a tool for macOS that helps developers debug HTTP/HTTPS traffic from iOS, Android, and macOS apps. "
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
_short: "psi is a tool by Google Chrome Labs for measuring website performance. "
npm: psi
psscriptanalyzer:
_bin: psscriptanalyzer
_desc: "PSScriptAnalyzer is a static code checker for PowerShell scripts. It helps to ensure best practices and coding standards are followed in PowerShell scripts. It analyzes scripts for potential issues such\nas syntax errors, naming conventions, code complexity, and more. It provides valuable feedback to improve script quality and maintainability. PSScriptAnalyzer is a useful tool for PowerShell developers \nto enhance the quality of their scripts and make them more efficient. "
_github: https://github.com/PowerShell/PSScriptAnalyzer
_name: PSScriptAnalyzer
_short: "PSScriptAnalyzer is a static code checker for PowerShell scripts. "
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
_short: "portainer-stack-utils is a tool for managing Docker stacks in Portainer. "
go: github.com/greenled/portainer-stack-utils@master
pueue:
_bin: pueue
_desc: "Pueue is a command-line task queue manager that allows you to manage long-running tasks efficiently. It provides a simple interface to add, remove, and monitor tasks, making it easier to handle multiple\ntasks simultaneously. With Pueue, you can prioritize tasks, view logs, and control the execution of tasks easily from the terminal. It is a useful tool for managing complex workflows and automating \ntasks in a systematic manner. "
_github: https://github.com/Nukesor/pueue
_name: Pueue
_service: pueue
_short: "Pueue is a command-line task queue manager for handling long-running processes. "
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
_short: "Pulumi is an open-source infrastructure as code tool that allows you to create, deploy, and manage cloud infrastructure using familiar programming languages like Python, TypeScript, and Go. "
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
_short: "pup is a command line tool for parsing HTML. "
ansible: professormanhattan.pup
brew: pup
github: github.com/ericchiang/pup
go: github.com/ericchiang/pup@latest
pushpin:
_bin: pushpin
_desc: "Pushpin is an open-source project by Fastly that acts as a reverse proxy server for real-time web services. It helps in managing long-lived connections efficiently, enabling real-time features like \nchat, live updates, and notifications in web applications. Pushpin works by offloading the handling of long-lived connections from the main application server, reducing its load and improving \nscalability. It supports various protocols like HTTP streaming, WebSockets, and Server-Sent Events. Pushpin is designed to be lightweight, easy to deploy, and integrates well with existing web \napplications. "
_github: https://github.com/fastly/pushpin
_name: Pushpin
_short: "Pushpin is an open-source proxy server for realtime web services. "
brew: pushpin
pv:
_bin: pv
_desc: "pv is a terminal-based tool for monitoring the progress of data through a pipeline. It can be used to track the progress of commands that involve data transfer, such as copying files, archiving data, or\nany other process that involves input/output. pv displays a progress bar, estimated time remaining, current throughput rate, and total data transferred. It is a handy utility for visualizing the flow of\ndata in real-time, allowing users to better understand and manage data transfer processes. "
_github: https://github.com/icetee/pv
_name: "pv "
_short: "pv is a terminal-based tool for monitoring the progress of data through a pipeline. "
apt: pv
pwnat:
_bin: pwnat
_desc: "Pwnat is a tool created by Samy Kamkar that allows for NAT traversal using a single open port. It enables two parties behind NATs to directly communicate with each other without the need for port \nforwarding or any configuration changes on the NAT devices. Pwnat works by establishing a connection through a third-party server that is not involved in the actual data transfer, making it a useful \ntool for scenarios where direct communication is not possible due to NAT restrictions. It's important to use such tools responsibly and ethically. "
_github: https://github.com/samyk/pwnat
_name: pwnat
_short: "PWNAT is a tool for NAT traversal using a single-sided connection. "
brew: pwnat
python:
_bin: python3
_desc: "CPython is the official implementation of the Python programming language. It is written in C and is maintained by the Python Software Foundation. The repository contains the source code for Python \ninterpreter, standard library, and various tools. Developers can contribute to the project by submitting bug fixes, new features, and improvements. CPython is widely used and serves as a reference \nimplementation for the Python language specification. "
_github: https://github.com/python/cpython
_name: "cpython "
_post:brew: |
#!/usr/bin/env bash
python3 -m pip install --upgrade setuptools
python3 -m pip install --upgrade pip
_short: "Official repository for the Python programming language. "
apt: python3-pip
brew: python
dnf: python3-pip
pacman: python-pip
scoop: python
python2:
_bin: python2
_github: false
apt: 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
_name: "pyWhat "
_short: "pyWhat is a Python library for detecting file types based on their binary signatures. "
brew: pywhat
pipx: pywhat
port: pywhat
pywin32:
_bin: pywin32
_desc: "Pywin32 is a Python library that provides access to many of the Windows operating system's functions through extensions. It allows Python programs to interact with components like the Windows Registry, \nEvent Logs, and more. Pywin32 is commonly used for tasks like automating Excel, interacting with COM objects, and accessing Windows-specific APIs. It's a valuable tool for Python developers working on \nWindows platforms, enabling them to leverage the full capabilities of the Windows operating system within their Python scripts. "
_github: https://github.com/mhammond/pywin32
_name: Pywin32
_short: "pywin32 is a Python library that provides access to Windows-specific functions. "
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
_short: "qBittorrent is an open-source BitTorrent client that aims to be a free alternative to µTorrent. "
ansible: professormanhattan.qbittorrent
apt: qbittorrent
cask: qbittorrent
choco: qbittorrent
dnf: qbittorrent
flatpak: org.qbittorrent.qBittorrent
pacman: qbittorrent
yay: qbittorrent-git
qlcolorcode:
_desc: "QLColorCode is a Quick Look plugin for macOS that allows you to preview the source code files with syntax highlighting directly in the Finder. It supports a wide range of programming languages and file \ntypes, making it easier to quickly glance at code files without opening them in an editor. This plugin enhances the user experience by providing a convenient way to preview code files without the need \nto open them in a separate application. "
_github: https://github.com/n8gray/QLColorCode
_name: QLColorCode
_short: "QLColorCode is a Quick Look plugin for syntax highlighting source code files on macOS. "
_when:cask: '! test -d "$HOME/Library/QuickLook/QLColorCode.qlgenerator"'
cask: qlcolorcode
qlmarkdown:
_desc: "qlmarkdown is a Quick Look plugin for macOS that allows you to preview Markdown files (.md) directly in the Finder with a quick preview. It enhances the Quick Look feature by rendering Markdown files as\nformatted text for easy viewing without needing to open them in a separate application. This plugin provides a convenient way to quickly glance through Markdown files without the need for a dedicated \nMarkdown editor, making it a handy tool for developers and writers working with Markdown documents on macOS. "
_github: https://github.com/toland/qlmarkdown
_name: QLMarkdown
_short: "qlmarkdown is a Quick Look plugin for macOS that allows you to preview Markdown files in Finder using Quick Look. "
_when:cask: '! test -d "$HOME/Library/QuickLook/ProvisionQL.qlgenerator"'
cask: qlmarkdown
qlplugins:
_bin: null
_deps:
- provisionql
- qlcolorcode
- qlmarkdown
- qlstephen
- qlvideo
- quicklook-json
- quicklookapk
- webpquicklook
_github: false
_name: null
qlstephen:
_desc: "QLStephen is a Quick Look plugin for macOS that allows you to view plain text files without a file extension. It enables you to preview files like README, CHANGELOG, or any text file that doesn't have a\nrecognized extension directly in the Quick Look feature of macOS. This plugin enhances the usability of Quick Look by providing support for a wider range of file types, making it easier to quickly \nglance through text-based files without needing to open them in a separate application. "
_github: https://github.com/whomwah/qlstephen
_name: QLStephen
_short: "qlstephen is a Quick Look plugin for macOS that lets you view plain text files without needing to open them in a separate application. "
_when:cask: '! test -d "$HOME/Library/QuickLook/QLStephen.qlgenerator"'
cask: qlstephen
qlvideo:
_desc: "QLVideo is a Quick Look plugin for macOS that allows you to preview video files directly in the Finder without needing to open them in a separate application. This plugin supports various video formats,\nmaking it convenient for quickly previewing video content without the need for a dedicated video player. It enhances the user experience by providing a seamless way to preview video files within the \nmacOS Finder interface. "
_github: https://github.com/Marginal/QLVideo
_name: QLVideo
_short: "QLVideo is a Quick Look plugin for macOS that allows you to preview video files directly in the Finder without opening them in a separate application. "
_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
_short: "Quark Engine is an open-source, cross-platform, and powerful C++ game engine designed for modern game development. "
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
_short: "Quasar is a Vue.js framework for building responsive websites, PWAs, SSR apps, mobile apps, and more. "
ansible:windows: professormanhattan.quasar
quickemu:
_bin: quickemu
_desc: "Quickemu is a project hosted on GitHub that provides a simple script to set up and run virtual machines using QEMU on Linux. It aims to make running virtual machines quick and easy by automating the \nprocess of creating and launching VMs. Users can specify various options like disk size, memory, CPU cores, and more in a configuration file. Quickemu simplifies the setup of virtual machines for \ntesting, development, or any other purpose where virtualization is needed. "
_github: https://github.com/quickemu-project/quickemu
_name: "quickemu "
_pre: |
#!/usr/bin/env bash
sudo apt-add-repository ppa:flexiondotorg/quickemu && sudo apt update
_short: "quickemu is a tool for running virtual machines quickly and easily on Linux using QEMU and KVM. "
apt:ubuntu: quickemu
quickgui:
_desc: "quickgui is a graphical user interface (GUI) for quickemu, a tool that simplifies managing virtual machines using QEMU on Linux. quickgui provides a user-friendly way to create, manage, and run virtual \nmachines without needing to use the command line. It offers features like creating new VMs, editing existing ones, and launching VMs with various options. This GUI makes it easier for users to interact \nwith quickemu and manage their virtual machines efficiently. "
_github: https://github.com/quickemu-project/quickgui
_name: "quickgui "
_pre: |
#!/usr/bin/env bash
sudo add-apt-repository ppa:yannick-mauray/quickgui && sudo apt update
_short: "quickgui is a graphical user interface for QuickEMU, a tool that simplifies running virtual machines on Linux using QEMU. "
apt:ubuntu: quickgui
quicklook-json:
_github: false
_name: QLJSON
_when:cask: '! test -d "$HOME/Library/QuickLook/QuickLookJSON.qlgenerator"'
cask: quicklook-json
quicklookapk:
_desc: "QuickLookAPK is a tool that allows you to preview the contents of Android APK files directly in macOS Finder using Quick Look. This tool enhances the user experience by providing a quick way to view the\ncontents of APK files without needing to extract them. It is a useful utility for developers and users who frequently work with APK files and want to quickly glance at their contents without opening \nthem in an Android emulator or decompiling them. "
_github: https://github.com/hezi/QuickLookAPK
_name: QLAPK
_short: "QuickLookAPK is a plugin for macOS that allows you to preview Android APK files using Quick Look. "
_when:cask: '! test -d "$HOME/Library/QuickLook/QuickLookAPK.qlgenerator"'
cask: quicklookapk
quicktype:
_bin: quicktype
_desc: "Quicktype is an open-source tool available on GitHub that helps developers generate types and serialization code from JSON, JSON Schema, and GraphQL queries. It supports multiple programming languages \nlike TypeScript, Java, C#, and more. Quicktype aims to simplify the process of working with complex data formats by automatically generating code that accurately represents the data structure. It is \nparticularly useful for projects where dealing with data serialization and deserialization is a common task. The tool is actively maintained and has a growing community of users contributing to its \ndevelopment. "
_github: https://github.com/quicktype/quicktype
_name: Quicktype
_short: "quicktype is a tool that infers types from data. "
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
_short: "ramda-cli is a command-line interface for Ramda, a functional programming library for JavaScript. It allows you to use Ramda functions directly in the terminal. "
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
_short: "Rancher CLI is a command-line tool for interacting with Rancher, a container management platform. "
brew: rancher-cli
github: github.com/rancher/cli
yay: rancher-cli-bin
rancher-desktop:
_desc: "Rancher Desktop is an open-source project hosted on GitHub under the repository https://github.com/rancher-sandbox/rancher-desktop/. It is a tool designed to simplify the setup and management of \nKubernetes clusters on desktop environments. Rancher Desktop provides a user-friendly interface for creating, running, and interacting with Kubernetes clusters locally. It aims to streamline the \ndevelopment and testing of containerized applications by offering an easy-to-use solution for running Kubernetes on developers' machines. The project is maintained by Rancher Labs, a company known for \nits contributions to the Kubernetes ecosystem. "
_github: https://github.com/rancher-sandbox/rancher-desktop/
_name: "rancher-desktop "
_short: "Rancher Desktop is a tool that simplifies running Kubernetes and containerized applications on your local machine. "
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
_short: "rpi-imager is a tool for easily flashing operating system images onto SD cards for Raspberry Pi devices. "
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
_short: "Raycast Extensions is a collection of productivity tools and scripts for the Raycast app, designed to enhance workflow efficiency on MacOS. "
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 <<EOT
# INSTALL DOCTOR MANAGED S3 START
[User-{{ .user.username}}]
access_key_id = {{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_ID_USER")) }}{{- includeTemplate "secrets/CLOUDFLARE_R2_ID_USER" | decrypt | trim -}}{{ else }}{{- env "CLOUDFLARE_R2_ID_USER" -}}{{ end }}
acl = private
endpoint = {{ .user.cloudflare.r2 }}.r2.cloudflarestorage.com
provider = Cloudflare
region = auto
secret_access_key = {{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_SECRET_USER")) }}{{- includeTemplate "secrets/CLOUDFLARE_R2_SECRET_USER" | decrypt | trim -}}{{ else }}{{- env "CLOUDFLARE_R2_SECRET_USER" -}}{{ end }}
type = s3
# INSTALL DOCTOR MANAGED S3 END
EOT
{{- end }}
sudo chown -f root "$CONFIG_FILE"
sudo chmod -f 600 "$CONFIG_FILE"
logg info 'Ensuring /var/cache/rclone exists'
sudo mkdir -p /var/cache/rclone
sudo chmod 750 /var/cache/rclone
### 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
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" ] && [ ! -f "/Library/LaunchDaemons/rclone.user.plist" ]; then
logg info "Adding /Volumes/User-$USER as S3 bucket mount, enabled at boot"
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/rclone.user.plist" '/Library/LaunchDaemons/rclone.user.plist'
sudo launchctl load '/Library/LaunchDaemons/rclone.user.plist' && logg success '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
_short: "rclone is a command-line program to manage files on cloud storage. "
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
_short: "RecoverPy is a Python script that helps recover deleted files from a storage device. "
_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
_short: "RedisDesktopManager is a cross-platform GUI tool for managing Redis databases. "
ansible:linux: professormanhattan.rdm
flatpak: app.resp.RESP
snap: redis-desktop-manager
redis-insight:
_app: RedisInsight.app
_bin: redis-insight
_desc: "RedisInsight is a graphical user interface (GUI) tool for Redis, a popular in-memory data structure store. It provides a user-friendly way to interact with Redis databases, allowing users to visualize \nand manage their data easily. RedisInsight offers features like real-time monitoring, data exploration, and performance analysis, making it a valuable tool for developers and administrators working with\nRedis databases. It is open-source and actively maintained by the Redis community, providing a powerful solution for working with Redis data. "
_github: https://github.com/RedisInsight/RedisInsight
_name: Redis Insight
_short: "RedisInsight is a GUI for Redis, providing a visual interface to manage and monitor Redis databases efficiently. "
cask: redisinsight
flatpak: com.redis.RedisInsight
mas: 2142946629
reek:
_bin: reek
_desc: "Reek is a code smell detector for Ruby programming language. It helps identify potential issues in your codebase such as complex methods, duplicated code, long parameter lists, and more. By analyzing \nyour code, Reek can suggest improvements to make your code cleaner, more maintainable, and easier to understand. It is a useful tool for Ruby developers to ensure code quality and adherence to best \npractices. You can find more information and usage instructions on its GitHub repository: https://github.com/troessner/reek. "
_github: https://github.com/troessner/reek
_name: Reek
_short: "Reek is a code smell detector for Ruby. "
gem: reek
remmina:
_bin: 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
_github: https://github.com/FreeRDP/Remmina
_home: https://remmina.org/
_name: Remmina
_short: "Remmina is an open-source remote desktop client for Linux-based systems. "
apt: remmina
dnf: remmina
flatpak: org.remmina.Remmina
pacman: remmina
snap: remmina
yay: remmina-git
remote-desktop:
_deps:
- gnome-boxes
- microsoft-remote-desktop
- remmina
- xrdp
_github: false
repo:
_bin: repo
_github: false
_name: Repo
apt: repo
brew: repo
dnf: repo
pacman: repo
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
_short: "Responsively App is a tool for web developers that allows them to preview how a website looks on different devices and resolutions simultaneously. "
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
_short: "restic is an open-source backup program that is fast, secure, and efficient. "
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
_short: "resume-cli is a command-line tool for creating and managing resumes in JSON format on GitHub. "
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
_short: "ripgrep is a fast, line-oriented search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. "
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
_name: "ripgrep-all "
_short: "ripgrep-all is a tool that combines the power of ripgrep and fd to search files in a directory tree. It's fast, efficient, and highly customizable for searching text content. "
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
_github: false
_home: https://rkhunter.sourceforge.net/
_name: rkhunter
_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)
_short: "rip is a tool for macOS that simplifies the process of uninstalling applications. "
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
_short: "Robot Framework is an open-source test automation framework for acceptance testing and robotic process automation. "
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
_short: "Rofi is a window switcher, application launcher, and dmenu replacement for Unix-like systems. "
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
_short: "rsync is a fast and versatile file synchronization tool for Unix-like systems. "
apt: rsync
brew: rsync
choco: rsync
dnf: rsync
rsyslog:
_bin: rsyslogd
_desc: "rsyslog is an open-source software that provides a flexible and scalable logging system for Unix systems. It allows for high-performance log processing, message forwarding, and database logging. rsyslog\ncan be used to collect logs from various sources, filter and process them, and then store or forward them to different destinations. It supports a wide range of logging protocols and formats, making it \na versatile tool for managing logs in a centralized and efficient manner. "
_github: https://github.com/rsyslog/rsyslog
_name: RSyslog
_ports:
- port: 514
proto: tcp
_service: rsyslog
_short: "rsyslog is an open-source logging software that provides a flexible and scalable solution for processing and managing log messages in Unix and Unix-like systems. "
apt: rsyslog
brew: rsyslog
dnf: rsyslog
pacman: rsyslog
rtop:
_bin: rtop
_desc: "rtop is a remote system monitoring tool that allows you to monitor server resources in real-time through a web interface. It provides information on CPU usage, memory usage, network activity, and disk \nI/O. rtop is written in Go and is designed to be lightweight and efficient. It can be useful for monitoring multiple servers from a central location, making it easier to keep track of system performance\nacross your network. "
_github: https://github.com/rapidloop/rtop
_name: rtop
_short: "rtop is a remote system monitoring tool for Unix systems, providing real-time information on system resources like CPU, memory, and network usage. "
go: github.com/rapidloop/rtop@latest
rubocop:
_bin: rubocop
_desc: "RuboCop is a popular Ruby static code analyzer and code formatter tool available on GitHub at https://github.com/rubocop/rubocop. It enforces a consistent coding style and helps to identify and correct \ncommon programming errors in Ruby code. RuboCop is highly configurable and can be integrated into various editors and continuous integration pipelines to ensure code quality and adherence to best \npractices. It is widely used in the Ruby community to maintain clean, readable, and standardized codebases. "
_github: https://github.com/rubocop/rubocop
_name: Rubocop
_short: "RuboCop is a Ruby static code analyzer and code formatter. "
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
_short: "Ruby is an open-source programming language known for its simplicity and productivity. "
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
_short: "ruff is a lightweight, fast, and flexible web framework for building web applications in Rust. "
apk: ruff
brew: ruff
pacman: ruff
pipx: ruff
runitor:
_bin: runitor
_desc: "Runitor is a tool available at https://github.com/bdd/runitor designed for monitoring and restarting processes. It allows you to define processes in a configuration file and then monitors them, \nrestarting any that exit unexpectedly. This can be useful for ensuring critical processes stay running without manual intervention. Runitor is written in Go and provides a simple yet effective way to \nmanage process monitoring and restarting tasks. "
_github: https://github.com/bdd/runitor
_name: Runitor
_short: "Runitor is a tool for running commands and scripts concurrently in a structured way. "
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
_short: "RunJS is a lightweight and portable JavaScript playground that allows you to quickly test and run JavaScript code in a clean and simple interface. "
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
_short: "rust-lang/rust is the official Rust programming language repository on GitHub. "
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
_short: "RustDesk is an open-source remote desktop software written in Rust. "
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
_short: "RustScan is a fast port scanner written in Rust. "
brew: rustscan
yay: rustscan
rusty:
_bin: rusty
_desc: "rusty \n\n • Description: A GitHub repository named \"rusty\" created by user zahidkhawaja. \n • Purpose: The purpose of this repository is not specified in the description. \n • Language: It might be related to Rust programming language based on the name. \n • Activity: The last commit was made on [date], indicating the activity level. \n • License: Check the repository for licensing information. \n • Contributors: It may have contributors listed on the repository page. \n • Readme: Refer to the README file for more detailed information about the project. "
_github: https://github.com/zahidkhawaja/rusty
_name: Rusty AI CLI
_short: "rusty is a tool for managing Rust projects efficiently. "
_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
_short: "s is a command-line utility for macOS that allows for quick navigation of directories using a fuzzy search algorithm. "
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
_short: "s5cmd is a command-line utility for managing Amazon S3 storage. It provides fast and efficient operations for uploading, downloading, and managing objects in S3 buckets. "
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
_name: "sad "
_short: "SAD is a fast, lightweight alternative to fzf for zsh shell. "
brew: ms-jpq/sad/sad
pacman: sad
safe-rm:
_bin: safe-rm
_desc: "shell-safe-rm is a tool on GitHub created by kaelzhang that aims to prevent accidental deletion of important files by enhancing the rm command in Unix-like systems. It adds a safety net by moving files \nto a trash directory instead of permanently deleting them. This can help prevent data loss by allowing users to easily recover files that were mistakenly deleted. The tool provides options to configure \nthe behavior of the rm command, making it a useful addition for users who want an extra layer of protection when managing their files. "
_github: https://github.com/kaelzhang/shell-safe-rm
_name: safe-rm
_short: "shell-safe-rm is a safer alternative to the rm command in Unix-like systems, designed to prevent accidental deletion of important files by moving them to a trash directory instead of permanently \ndeleting them. "
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
_short: "Sake is a simple task runner for Swift projects. "
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
_short: "Samba is an open-source software suite that provides file and print services for various Microsoft Windows clients. "
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
_short: "Sanoid is a tool for creating and managing ZFS snapshots. "
_when:linux: command -v zfs > /dev/null && ! zfs list
ansible:linux: professormanhattan.sanoid
apt:
- libcapture-tiny-perl
- libconfig-inifiles-perl
- libdata-dump-perl
- 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
_short: "Santa is a macOS application whitelisting/blacklisting tool developed by Google for enforcing security policies on macOS systems. "
cask: santa
sapling:
_bin: sl
_desc: "Sapling is a tool developed by Facebook that helps in managing and automating the process of creating and updating configuration files across multiple repositories. It allows users to define templates \nfor configuration files and then apply those templates to different repositories, ensuring consistency and reducing manual errors. Sapling also supports versioning of configuration files, making it \neasier to track changes and roll back if needed. It is designed to streamline the configuration management process for large-scale projects. "
_github: https://github.com/facebook/sapling
_name: Sapling
_short: "Sapling is a tool by Facebook for automatically generating code from tree-based models. "
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
_desc: "ComplianceAsCode/content is a GitHub repository that contains content for various compliance benchmarks, including CIS (Center for Internet Security) benchmarks. It provides configuration baselines for \ndifferent operating systems and applications to help users ensure their systems are compliant with industry standards. The repository includes scripts, documentation, and tools to assist in automating \ncompliance checks and remediation tasks. It is a valuable resource for organizations looking to enhance their security posture and meet regulatory requirements. "
_github: https://github.com/ComplianceAsCode/content
_name: OpenSCAP
_short: "ComplianceAsCode/content is a GitHub repository containing security compliance content for various platforms and tools. "
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
_short: "Description: \nThe Confbase/schema repository on GitHub contains schemas for various configuration file formats. "
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
_short: "scrcpy is a free and open-source tool that allows you to display and control Android devices connected via USB or TCP/IP. "
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
_short: "scrcpy-gui is a graphical user interface for scrcpy, a tool that allows you to display and control Android devices from your computer. "
flatpak: in.srev.guiscrcpy
sd:
_bin: sd
_desc: Intuitive find & replace CLI (sed alternative)
_github: https://github.com/chmln/sd
_name: sd
_short: "sd is a fast, intuitive find & replace tool for the command line. "
apk: sd
brew: sd
cargo: sd
choco: sd-cli
dnf:fedora: sd
github: github.com/chmln/sd
pacman: sd
pkg: sd
sddm:
_bin: sddm
_desc: "SDDM (Simple Desktop Display Manager) is a display manager for X11 and Wayland windowing systems. It is designed to be lightweight, fast, and customizable, making it a popular choice for managing user \nsessions on Linux desktop environments. SDDM supports multiple user sessions, themes, and greeters, allowing for a personalized login experience. It is written in C++ and QML, making it highly \ncustomizable and extensible. SDDM is widely used in various Linux distributions as the default display manager due to its simplicity and flexibility. "
_github: https://github.com/sddm/sddm
_name: SDDM
_post: |
#!/usr/bin/env bash
sudo systemctl set-default graphical.target
_service: sddm
_short: "sddm is a modern display manager for X11 and Wayland aiming to be fast, simple, and beautiful. "
apt: sddm
dnf: sddm
pacman: sddm
zypper: sddm
sdkman-cli:
_bin: sdk
_desc: "SDKMAN! is a tool that helps with managing software development kits (SDKs) and package dependencies for various programming languages. It simplifies the process of installing, switching between, and \nmanaging multiple versions of SDKs like Java, Kotlin, Groovy, and more. The SDKMAN! CLI provides commands to install, list, use, and manage SDKs effortlessly. It's a popular choice among developers for \nmaintaining different versions of SDKs on their systems. The project is open-source and actively maintained on GitHub. "
_github: https://github.com/sdkman/sdkman-cli
_name: SDKMan
_short: "sdkman-cli is a command-line tool for managing software development kits (SDKs) on Unix-based systems. It simplifies the installation, management, and switching between different SDK versions for \nlanguages like Java, Kotlin, and more. "
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
_bin: seafile-client
_desc: "Seafile Client is an open-source file synchronization and collaboration tool that allows users to easily sync files and folders between devices. It provides end-to-end encryption for secure file sharing\nand supports features like file versioning, selective sync, and sharing links. The client is available for various platforms including Windows, macOS, and Linux. It integrates well with Seafile server \nfor seamless file management and collaboration. Users can manage their files both online and offline, making it a versatile solution for individuals and teams looking to securely sync and share files. "
_github: https://github.com/haiwen/seafile-client
_name: "seafile-client "
_short: "Seafile Client is an open-source file synchronization and collaboration tool for securely storing, accessing, and sharing files across devices. "
_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
_desc: "search-gpt is a GitHub repository created by Tobias Bueschel. It appears to be a project related to utilizing GPT (Generative Pre-trained Transformer) models for search-related tasks. The repository \nlikely contains code, documentation, and possibly pre-trained models for implementing and experimenting with GPT-based search functionalities. For more detailed information, you can explore the \nrepository directly on GitHub. "
_github: https://github.com/tobiasbueschel/search-gpt
_name: Search GPT
_short: "search-gpt is a tool that allows you to search through a large corpus of text using GPT models for natural language processing. "
npm: search-gpt
secretive:
_app: Secretive.app
_bin: null
_desc: Store SSH keys in the Secure Enclave
_github: https://github.com/maxgoedjen/secretive
_name: "Secretive "
_short: "Secretive is a macOS app that securely stores and manages your SSH keys in the Secure Enclave of your Mac. "
cask: secretive
security:
_bin: null
_desc: This role turns on auto-updates and configures sudo, for instance.
_github: false
_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
_short: "semantic-release is a tool for automating versioning and package publishing based on commit messages. "
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
_short: "sentry-cli is a command-line interface for interacting with the Sentry error tracking service. "
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
_short: "vercel/serve is a simple, zero-configuration command-line tool to serve static sites quickly. "
npm: serve
serverless:
_bin: serverless
_desc: Build applications with serverless architectures
_docs: https://www.serverless.com/framework/docs
_github: https://github.com/serverless/serverless
_home: https://www.serverless.com/
_name: serverless
_short: "Serverless Framework is a popular open-source tool that simplifies deploying and managing serverless applications on various cloud platforms. "
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
_short: "sftpgo is an open-source SFTP server written in Go. "
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
_short: "sftpgo-plugin-auth is a plugin for SFTPGo that allows custom authentication methods to be used with the SFTP server. "
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
_short: "share-cli is a command-line tool for sharing files and directories securely using a temporary URL. "
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
_short: "ShareX is an open-source tool for screen capture, file sharing, and productivity on Windows. "
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
_short: "sharp-cli is a command-line interface for the popular image processing module Sharp in Node.js. "
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
_short: "shc is a shell script compiler that converts shell scripts into C code for faster execution. "
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
_short: "shdoc is a tool for generating documentation from shell scripts. "
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}
_desc: "Sheldon is a command-line tool for managing macOS preferences. It allows users to easily view, set, and remove macOS system and application preferences using a simple command-line interface. With \nSheldon, users can manage preferences for various system components like Dock, Finder, Safari, and more, making it convenient for system administrators and power users to customize and automate macOS \nsettings. It simplifies the process of managing preferences without needing to navigate through multiple settings menus, providing a more efficient way to handle macOS configurations. "
_github: https://github.com/rossmacarthur/sheldon
_name: Sheldon
_short: "sheldon is a macOS shell configuration framework that aims to make your shell experience more efficient and enjoyable. "
brew: sheldon
cargo: sheldon
shell-gpt:
_bin: sgpt
_desc: "The repository at https://github.com/TheR1D/shell_gpt appears to be a project related to a ShellGPT, which is likely a shell-based implementation of OpenAI's GPT (Generative Pre-trained Transformer) \nmodel. It seems to be a tool or script that leverages the power of GPT for shell scripting purposes. The README file in the repository might provide more detailed information on how to use it and what \nfunctionalities it offers. "
_github: https://github.com/TheR1D/shell_gpt
_name: Shell GPT
_short: "shell_gpt is a repository containing scripts and tools for enhancing shell productivity and automation. "
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
_short: "ShellCheck is a static analysis tool for shell scripts, helping to identify and fix common issues and improve script quality. "
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
_short: "mvdan/sh is a shell parser and formatter written in Go. "
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
_desc: "shml is a shell framework for faster and easier script development, allowing you to create command-line interfaces with color and style. It provides functions for outputting text in various colors, \nstyles, and layouts, making your scripts more visually appealing and easier to read. With shml, you can create tables, progress bars, and other interactive elements in your shell scripts. It simplifies \nthe process of creating professional-looking command-line interfaces in the terminal. "
_github: https://github.com/odb/shml
_name: SHML
_short: "shml is a shell framework for faster and easier script development with rich styling and formatting options. "
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
_short: "Shotcut is an open-source video editing software that offers a range of features for creating and editing videos. "
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
_short: "Shotwell is an open-source photo manager for Linux systems, developed by GNOME. "
ansible:linux: professormanhattan.shotwell
apt: shotwell
dnf: shotwell
flatpak: org.gnome.Shotwell
pacman: shotwell
shuttle:
_bin: cargo-shuttle
_desc: "Shuttle is an open-source, self-hosted project management tool that allows teams to collaborate on projects. It provides features like issue tracking, code reviews, and a wiki. It is built using Ruby on\nRails and supports integrations with services like GitHub, GitLab, and Slack. Shuttle aims to streamline project management processes and improve team communication and productivity. It is customizable \nand can be tailored to suit different team workflows and requirements. "
_github: https://github.com/shuttle-hq/shuttle
_name: Shuttle
_short: "Shuttle is a command-line tool for managing SSH connections and configurations efficiently. "
cargo: cargo-shuttle
pacman: cargo-shuttle
script: curl -sSfL https://www.shuttle.rs/install | bash
shx:
_bin: shx
_desc: "shx is a utility that wraps around Node.js's built-in fs module, providing a more concise and user-friendly way to interact with the file system in shell scripts. It allows you to run shell commands \nlike cp, rm, mkdir, etc., directly in Node.js scripts. This can be particularly useful for automating tasks in Node.js projects or for those who prefer using JavaScript for scripting. The shx library \nsimplifies file system operations and makes it easier to work with files and directories in Node.js applications. "
_github: https://github.com/shelljs/shx
_name: shx
_short: "shx is a wrapper around Node.js's child_process module and cross-platform commands for easier shell scripting in JavaScript. "
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
_short: "Signal-Desktop is an open-source messaging application that allows secure communication with end-to-end encryption. "
cask: signal
choco: signal
flatpak: org.signal.Signal
scoop: signal
skaffold:
_bin: skaffold
_desc: "Skaffold is a command-line tool that facilitates continuous development for Kubernetes applications. It automates the workflow for building, pushing, and deploying applications, making it easier for \ndevelopers to focus on writing code. Skaffold supports various build tools and container registries, allowing for flexibility in the development process. It also provides features like hot reloading, \nresource optimization, and integration with CI/CD pipelines. Overall, Skaffold streamlines the development process for Kubernetes applications, making it a valuable tool for teams working on \ncontainerized projects. "
_github: https://github.com/GoogleContainerTools/skaffold
_name: Skaffold
_short: "Skaffold is a command-line tool that facilitates continuous development for Kubernetes applications. "
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 youd like—even binary data. Its 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
_short: "Skate is a terminal-based visual layout tool for creating interactive user interfaces in Go. "
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
_short: "skhd is a simple hotkey daemon for macOS. "
brew:darwin: koekeishiya/formulae/skhd
skm:
_bin: skm
_desc: A simple and powerful SSH keys manager
_github: https://github.com/TimothyYe/skm
_name: skm
_short: "skm is a command-line tool for managing SSH keys. "
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
_short: "$'Not open-source' is a string enclosed in single quotes preceded by a dollar sign and is typically used in Unix-like systems to enable escape sequences like \\n for new lines. "
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
_short: "SlackTextViewController is a library for iOS that provides a chat interface similar to 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
_short: "slack-term is a terminal-based Slack client that allows you to chat on Slack from the command line. "
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
_short: "maaslalani/slides is a tool for creating terminal-based presentations using Markdown. "
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
_short: "Sloth is a macOS tool that shows all open files and sockets in use by all running processes on your system. "
cask: sloth
snapcraft:
_bin: snapcraft
_deps:
- snapd
_desc: "Snapcraft is a tool developed by Canonical for building and packaging software as snaps, which are universal Linux packages that work across different distributions. It simplifies the process of \ncreating snaps by providing a clean and easy-to-use interface. Snapcraft allows developers to define the build process in a single YAML file, making it easier to automate and reproduce builds. It \nsupports various programming languages and frameworks, making it a versatile tool for packaging applications on Linux systems. Overall, Snapcraft streamlines the packaging process and helps developers \ndistribute their software efficiently. "
_github: https://github.com/canonical/snapcraft
_name: Snapcraft
_short: "Snapcraft is a tool used to build and package software as snaps for various Linux distributions. "
brew: snapcraft
snap: snapcraft --classic
snapd:
_bin: snap
_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."
_github: https://github.com/snapcore/snapd
_home: https://snapcraft.io/
_name: Snap
_service: snapd
_short: "snapd is a package manager for Linux distributions, developed by Canonical. "
snitch:
_app: Little Snitch.app
_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
_short: "OpenSnitch is a firewall application for Linux that provides network activity monitoring and control, allowing users to manage and control the connections made by their applications. "
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
_short: "social-analyzer is a tool for analyzing social media accounts. "
pipx: social-analyzer
soduto:
_app: Soduto.app
_desc: "Soduto is a GitHub repository that contains the source code for the Soduto app. This app allows users to easily share Wi-Fi passwords with their contacts. It provides a convenient way to share Wi-Fi \nnetwork details securely. The repository likely includes code for the app's functionality, user interface, and any other related components. Users can contribute to the project, report issues, or \nsuggest improvements through the repository on GitHub. "
_github: https://github.com/soduto/Soduto
_name: Soduto
_short: "Soduto is a tool for managing and syncing clipboard content across multiple devices. "
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
_short: "soft-serve is a command-line tool for generating colorful and customizable ASCII art in Go. "
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
_short: "Solargraph is a Ruby language server that provides intellisense, code completion, and other IDE features for Ruby development. "
brew: solargraph
gem: solargraph
solidity:
_bin: solcjs
_desc: Javascript bindings for the Solidity compiler
_github: https://github.com/ethereum/solc-js
_name: solcjs
_short: "solc-js is a JavaScript binding for the Solidity compiler, allowing developers to compile Solidity smart contracts within JavaScript applications. "
npm: solc
spacedrive:
_bin: spacedrive
_app: Spacedrive.app
_github: https://github.com/spacedriveapp/spacedrive
_name: Spacedrive
appimage: https://www.spacedrive.com/api/releases/desktop/stable/linux/x86_64
cask: spacedrive
msi: https://www.spacedrive.com/api/releases/desktop/stable/windows/x86_64
sparkleshare:
_app: SparkleShare.app
_bin: sparkleshare
_desc: "SparkleShare is an open-source file synchronization and collaboration tool that uses Git as its storage backend. It allows users to easily share and collaborate on files by automatically syncing changes\nto a central Git repository. Users can host their own server or use services like GitHub or GitLab. SparkleShare supports version control, encryption, and file history. It is designed to be simple to \nuse and is available for various platforms including macOS, Windows, and Linux. "
_github: https://github.com/hbons/SparkleShare
_name: Sparkle Share
_short: "SparkleShare is an open-source file synchronization and collaboration tool that uses Git under the hood. It allows users to easily share and collaborate on files and folders across multiple devices. "
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
_short: "speed-test is a command-line tool for testing internet speed using speedtest.net. "
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
_short: "speedtest-cli is a command-line interface for testing internet bandwidth using speedtest.net. "
pipx: speedtest-cli
sphinx:
_bin: sphinx-build
_desc: "Sphinx is a popular documentation generator tool written in Python. It allows you to create high-quality documentation for your projects in various formats such as HTML, PDF, and ePub. Sphinx uses \nreStructuredText as its markup language and provides features like automatic indexing, cross-referencing, and support for extensions. It is widely used in the Python community and beyond for creating \nwell-structured and easily navigable documentation. Sphinx is highly customizable and can be integrated with version control systems like Git, making it a powerful tool for managing project \ndocumentation. "
_github: https://github.com/sphinx-doc/sphinx
_name: Sphinx
_short: "Sphinx is a documentation generator tool that makes it easy to create intelligent and beautiful documentation for Python projects. "
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
_short: "spotify-downloader is a tool that allows users to download music from Spotify for offline listening. "
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
_short: "sql-language-server is a GitHub repository maintained by joe-re that provides a language server for SQL. "
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
_short: "sqlectron-gui is a simple and lightweight SQL client with a clean interface for various databases. "
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
_short: "SQLite is a lightweight, self-contained, serverless, zero-configuration, transactional SQL database engine. "
apt: sqlite3
brew: sqlite
choco: sqlite
dnf: sqlite
pacman: sqlite
port: sqlite3
scoop: sqlite
squid:
_bin: squid
_desc: "Squid is a widely-used caching proxy server that supports HTTP, HTTPS, FTP, and more. It helps improve web server performance by caching frequently accessed content, reducing bandwidth usage, and \nproviding access control features. Squid is open-source and highly configurable, making it popular for improving web browsing speeds and security. It is compatible with various operating systems and is \nknown for its stability and extensibility through plugins. The project is actively maintained and has a large community of users and developers contributing to its ongoing development. "
_github: https://github.com/squid-cache/squid
_name: Squid
_preload: true
_service: squid
_short: "Squid is a caching proxy server that supports HTTP, HTTPS, FTP, and more. "
apt: squid
brew: squid
dnf: squid
pacman: squid
ssh:
_bin: null
_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
_github: false
_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
_short: "ssh-vault is a tool for encrypting and decrypting secrets using SSH keys. "
ansible: professormanhattan.sshvault
brew: ssh-vault
github: github.com/ssh-vault/ssh-vault
sshfs:
_bin: sshfs
_desc: "SSHFS (SSH File System) is a network file system that allows you to mount remote directories over an SSH connection. It enables you to access and interact with files on a remote server as if they were \nlocal files on your own system. This tool is particularly useful for securely accessing and transferring files between systems over a secure SSH connection. The GitHub repository \nhttps://github.com/libfuse/sshfs contains the source code for SSHFS, which is built on top of FUSE (Filesystem in Userspace) to provide a seamless file system integration. "
_github: https://github.com/libfuse/sshfs
_name: SSHFS
_short: "SSHFS is a file system client based on the SSH File Transfer Protocol. It allows you to mount remote directories over an SSH connection as if they were local. "
apt: sshfs
brew:linux: sshfs
choco: sshfs
dnf: sshfs
pacman: sshfs
port: sshfs
scoop: sshfs-np
sshpass:
_bin: 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.
_github: https://github.com/kevinburke/sshpass
_home: https://sourceforge.net/projects/sshpass/
_name: sshpass
_short: "sshpass is a tool that allows non-interactive SSH password authentication. "
apt: sshpass
brew: hudochenkov/sshpass/sshpass
dnf: sshpass
sshs:
_bin: sshs
_desc: "sshs is a tool available at https://github.com/quantumsheep/sshs that aims to simplify SSH configuration management. It provides a command-line interface for managing SSH configurations, making it \neasier to switch between different SSH configurations and manage multiple SSH keys. This tool can be useful for users who frequently work with multiple SSH connections and need a more efficient way to \nhandle their SSH configurations. "
_github: https://github.com/quantumsheep/sshs
_name: SSHS
_short: "sshs is a simple SSH server for macOS. "
brew: sshs
choco: sshs
sshuttle:
_bin: sshuttle
_desc: "sshuttle is a transparent proxy server that works as a VPN over SSH. It allows you to create a secure connection between your local machine and a remote server using SSH, redirecting all network traffic\nthrough the SSH connection. This tool is useful for bypassing restrictive firewalls, accessing internal network resources securely, and encrypting your internet traffic. It is written in Python and is \navailable on GitHub at https://github.com/sshuttle/sshuttle. "
_github: https://github.com/sshuttle/sshuttle
_name: SShuttle
_short: "sshuttle is a transparent proxy server that works as a VPN over SSH. It allows you to create a secure connection to a remote server and route all your network traffic through it. "
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
_short: "ssl-proxy is a tool for transparently intercepting and logging SSL/TLS traffic. "
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
_short: "Stacer is a GUI-based system optimizer and monitoring tool for Linux systems. "
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
_short: "Standard Notes App is an open-source, end-to-end encrypted note-taking application for privacy-conscious users. "
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
_short: "starred is a tool that helps you manage your starred repositories on GitHub. "
pipx: starred
starship:
_bin: null
_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."
_github: https://github.com/starship/starship
_name: Starship
_short: "Starship is a customizable, fast, and minimal prompt for any shell. "
ansible: professormanhattan.starship
statcode:
_bin: statcode
_desc: "statcode is a command-line tool available on GitHub at https://github.com/shobrook/statcode. It allows you to quickly view HTTP status codes and their definitions. By providing a status code as an \nargument, it returns the corresponding status code along with a brief description. This tool can be handy for developers and system administrators to quickly reference HTTP status codes without needing \nto search online. It simplifies the process of understanding and working with HTTP status codes in a terminal environment. "
_docs: Man pages for HTTP status codes
_github: https://github.com/shobrook/statcode
_name: "statcode "
_short: "statcode is a command-line tool that displays HTTP status codes with their definitions. "
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
_short: "go-tools is a collection of tools for working with Go code, providing static analysis, formatting, and more. "
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
_short: "stats is a command-line tool that provides system statistics in real-time for macOS. "
cask: stats
steam:
_app: Steam.app
_bin: steam
_github: false
_name: steam
cask: steam
choco: steam
flatpak: com.valvesoftware.Steam
steampipe:
_bin: steampipe
_desc: "Steampipe is an open-source DevOps tool that allows you to query, analyze, and interact with cloud infrastructure using SQL. It provides a unified way to access and manage data across multiple cloud \nproviders like AWS, Azure, Google Cloud, and more. With Steampipe, you can write SQL queries to retrieve information about your cloud resources, automate compliance checks, and perform various tasks \nefficiently. It offers a plugin-based architecture, making it easy to extend its functionality to support different cloud services and custom use cases. "
_github: https://github.com/turbot/steampipe
_name: Steampipe
_short: "Steampipe is an open-source DevOps tool that allows you to query, analyze, and monitor cloud infrastructure using SQL. "
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
_short: "Stegcloak is a tool for hiding secrets within text using steganography techniques. "
npm: stegcloak
storybook:
_bin: storybook
_desc: "Storybook is an open-source tool for developing UI components in isolation for React, Vue, Angular, and other frontend frameworks. It allows developers to showcase components in different states and \nvariations without the need to navigate the entire application. Storybook provides a clean and interactive UI for organizing and browsing components, making it easier to develop, test, and showcase UI \nelements. It's widely used in the frontend development community to improve component-driven development workflows. "
_github: https://github.com/storybookjs/storybook
_name: Storybook
_short: "Storybook is a tool for developing UI components in isolation for React, Vue, and Angular. It helps in building and testing components independently from the rest of the application. "
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
_short: "sttr is a tool for terminal recording and playback. "
brew: abhimanyu003/sttr/sttr
go: github.com/abhimanyu003/sttr@latest
snap: sttr
yay: sttr-bin
stubby:
_bin: stubby
_desc: DNS privacy enabled stub resolver service based on getdns
_docs: https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Daemon+-+Stubby
_github: https://github.com/getdnsapi/stubby
_name: Stubby
_post:brew:darwin: |
#!/usr/bin/env bash
bash "$(brew --prefix stubby)/sbin/stubby-setdns-macos.sh"
_service: stubby
_short: "Stubby is a DNS privacy tool that encrypts DNS queries to enhance online privacy and security. "
brew:darwin: stubby
supervisor:
_bin: supervisord
_desc: "Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems. It is written in Python and provides an easy way to manage \nprocesses, such as starting, stopping, and restarting them. Supervisor also offers a web-based interface for monitoring the processes it manages. It is commonly used to manage processes in production \nenvironments to ensure they are running smoothly. "
_github: https://github.com/Supervisor/supervisor
_name: Supervisor
_service: supervisor
_short: "Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems. "
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
_short: "Surge is a static web publishing tool for front-end developers. "
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
_short: "SVGO is a tool for optimizing SVG files, reducing their size without affecting quality. "
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
_short: "swarmkit is a toolkit for orchestrating distributed systems at any scale. "
ansible: professormanhattan.swarm
swiftbar:
_app: SwiftBar.app
_desc: "SwiftBar is a macOS menu bar customization tool that allows users to add custom scripts, widgets, and plugins to their menu bar. It is highly customizable and extensible, enabling users to display \nvarious information such as system stats, weather, calendar events, and more directly in the menu bar. SwiftBar supports scripting in languages like Shell, Python, Ruby, and JavaScript, making it \nversatile for users with different scripting preferences. It provides a simple yet powerful way to enhance the functionality and appearance of the macOS menu bar. "
_github: https://github.com/swiftbar/SwiftBar
_name: SwiftBar
_short: "SwiftBar is a macOS menu bar customization tool that allows users to add custom scripts, widgets, and information to their menu bar. "
cask: swiftbar
swiftformat:
_bin: swiftformat
_desc: "SwiftFormat is a tool for formatting Swift code to meet a consistent style. It can be used to automatically format code according to predefined rules, making it easier to maintain a clean and readable \ncodebase. It supports a wide range of formatting options and can be integrated into Xcode as a build phase script or used from the command line. SwiftFormat helps developers adhere to coding standards, \nimproves code consistency, and reduces time spent on manual formatting. It is a valuable tool for Swift developers looking to streamline their workflow and ensure code quality. "
_github: https://github.com/nicklockwood/SwiftFormat
_name: SwiftFormat
_short: "SwiftFormat is a tool for formatting Swift code to maintain consistent style and readability. "
brew: swiftformat
swifty:
_app: Swifty.app
_bin: swifty
_desc: "swifty \n\nDescription: swifty is a GitHub repository belonging to the organization swiftyapp. It likely contains code related to a project or application named Swifty. Without further access to the repository, \nit's challenging to provide specific details on its contents. You can visit the repository link to explore its code, documentation, and any other resources shared by the developers. "
_github: https://github.com/swiftyapp/swifty
_name: Swifty
_short: "swifty is a GitHub repository for the Swifty app. "
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
_short: "Swimat is a tool for automatically formatting Swift code in Xcode projects. "
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
_short: "SwitchHosts is a tool for managing and switching between multiple hosts files on macOS. "
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
_short: "sync-ssh-keys is a tool for synchronizing SSH keys across multiple servers. "
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
_short: "syncpack is a tool that keeps dependencies in sync between multiple package.json files in a project. "
npm: syncpack
syncthing:
_bin: syncthing
_desc: "Syncthing is an open-source continuous file synchronization program that allows you to securely sync files between multiple devices. It is designed to be decentralized, giving you control over your data\nwithout relying on a central server. Syncthing uses end-to-end encryption to ensure your files are transferred securely. It supports various operating systems, including Darwin/MacOS, making it a \nversatile solution for keeping your files in sync across different devices. You can find more information about Syncthing on its GitHub page: Syncthing GitHub Repository. "
_github: https://github.com/syncthing/syncthing
_name: Syncthing
_service: syncthing
_serviceEnabled: true
_short: "Syncthing is an open-source continuous file synchronization program. "
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
_short: "synp is a tool for synchronizing directories. "
npm: synp
sysbench:
_bin: sysbench
_desc: System performance benchmark tool
_github: https://github.com/akopytov/sysbench
_name: sysbench
_short: "sysbench is a versatile benchmark tool for evaluating system performance on Linux and other Unix-like systems. "
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
_short: "draios is a GitHub repository belonging to a company that specializes in system monitoring and troubleshooting tools. "
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
_short: "sysget is a package manager for Unix-like systems, designed to simplify software installation and management through a unified interface. "
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
_short: "sysz is a tool for live kernel tracing on macOS. "
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
_name: "t "
_short: "t is a command-line power tool for Twitter. "
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
_short: "t-rec-rs is a terminal-based screen recorder written in Rust. "
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
_short: "Tabby is a terminal-based table viewer for MacOS. "
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
_short: "Tailscale is a secure mesh VPN that makes it easy to connect your devices securely. "
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
_desc: "talksheet is a tool available on GitHub created by danthelion. It appears to be a command-line utility written in Python for managing notes and tasks in a simple text-based format. Users can create, \nedit, and organize their notes and tasks using this tool. It seems to offer a straightforward way to keep track of information without the need for a complex interface. For more detailed information and\nusage instructions, you can refer to the repository on GitHub: talksheet. "
_github: https://github.com/danthelion/talksheet
_name: Talksheet
_short: "talksheet is a tool for creating and managing structured notes in Markdown format, designed for easy organization and sharing on GitHub. "
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
_short: "taplo is a TOML parser and serializer written in Rust. "
cargo: taplo-cli --locked
npm: "@taplo/cli"
tart:
_bin: tart
_desc: "Tart is a tool developed by Cirrus Labs that allows you to run shell commands in a Docker container. It provides a simple way to isolate and execute commands in a controlled environment, which can be \nuseful for testing, building, or running commands without affecting your local system. Tart simplifies the process of running commands in a consistent environment, making it easier to reproduce results \nacross different systems. It can be particularly handy for tasks that require specific dependencies or configurations that may not be present on your local machine. "
_github: https://github.com/cirruslabs/tart
_name: "tart "
_short: "Tart is a tool for running shell commands in parallel. "
_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
_short: "Task is a simple task runner / build tool for Go projects. "
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
_desc: "Taskwarrior is an open-source command-line task management tool. It allows users to manage tasks, deadlines, priorities, tags, and more efficiently. Taskwarrior provides features like task scheduling, \ndue dates, dependencies, and custom reports. It is highly customizable and extensible through various plugins and extensions. Taskwarrior helps users stay organized and focused by providing a simple yet\npowerful interface for managing tasks effectively. "
_github: https://github.com/GothenburgBitFactory/taskwarrior
_name: Task Warrior
_short: "Taskwarrior is an open-source task management tool for the command line. "
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
_short: "$'Not open-source' is a string enclosed in single quotes preceded by a dollar sign and is typically used in Unix-like systems to enable escape sequences like \\n for new lines. "
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
_bin: telegram
_desc: "Telegram Desktop is an open-source messaging app that allows users to securely communicate with others. It is based on the Telegram API and is available for various platforms, including macOS. Users can\nsend messages, photos, videos, and files, as well as create groups and channels. The app also supports voice and video calls. The source code for Telegram Desktop is hosted on GitHub at \nhttps://github.com/telegramdesktop/tdesktop, allowing developers to contribute to its development and customize the app as needed. "
_github: https://github.com/telegramdesktop/tdesktop
_name: Telegram
_short: "Telegram Desktop is an open-source messaging app that allows users to securely communicate through text, voice, and video. "
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
_short: "Teleport is an open-source tool for securely accessing SSH servers and Kubernetes clusters. "
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
_short: "teller is a tool for managing secrets securely in a GitOps workflow. "
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
_short: "temps is a simple temperature converter tool created by jackd248 on GitHub. "
github: github.com/jackd248/temps
terminal-notifier:
_bin: terminal-notifier
_desc: "Terminal Notifier is a command-line tool for sending macOS notifications. It allows you to display notifications from the terminal or scripts, providing a way to alert users about events or tasks. It \nsupports customizing notification titles, messages, icons, and more. This tool is useful for automating tasks, creating reminders, or providing feedback to users in a non-intrusive way. It's a handy \ntool for developers, system administrators, or anyone looking to enhance their macOS workflow with notifications. "
_github: https://github.com/julienXX/terminal-notifier
_name: Terminal Notifier
_short: "terminal-notifier is a command-line tool for sending macOS notifications. "
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
_short: "Terminalizer is a tool for recording your terminal sessions into animated GIFs or videos. "
npm: terminalizer
termius:
_bin: termius
_desc: "[Termius](https://www.termius.com/) is the SSH client that works on Desktop and Mobile."
_github: false
_home: https://www.termius.com/
_name: Termius
_post:binary:windows: |
# TODO
ansible: professormanhattan.termius
binary:windows: https://autoupdate.termius.com/windows/Termius.exe
brew: termius
pipx: termius
snap: termius-app
yay: termius
terraform:
_deps:
- tfenv
_desc: "Terraform is an open-source infrastructure as code software tool created by HashiCorp. It allows users to define and provision data center infrastructure using a high-level configuration language. With \nTerraform, you can manage resources across various cloud providers, on-premises infrastructure, and services. It provides a way to create, update, and version infrastructure safely and efficiently. \nTerraform uses a declarative syntax to describe the desired state of your infrastructure, making it easy to understand and maintain. It supports a wide range of providers, making it a versatile tool for\nmanaging infrastructure. "
_github: https://github.com/hashicorp/terraform
_name: "terraform "
_short: "Terraform is an open-source infrastructure as code software tool created by HashiCorp. It allows users to define and provision data center infrastructure using a high-level configuration language. "
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
_short: "terraform-ls is a language server for Terraform that provides IDE support for editing Terraform configuration files. "
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
_short: "textql is a tool that allows you to run SQL queries on structured text data stored in CSV or TSV files. "
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
_short: "tfenv is a tool for managing multiple versions of Terraform. "
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
_short: "tflint is a Terraform linter that helps in detecting errors in Terraform configurations. "
ansible: professormanhattan.tflint
brew: tflint
choco: tflint
github: github.com/terraform-linters/tflint
tfsec:
_bin: tfsec
_desc: "tfsec is an open-source static analysis tool for detecting potential security issues in Terraform code. It scans Terraform configurations to identify security vulnerabilities, misconfigurations, and \nother potential issues that could lead to security breaches. By integrating tfsec into your CI/CD pipeline or development workflow, you can proactively identify and address security issues early in the \ndevelopment process. It provides a set of rules based on best practices and common security pitfalls to help improve the overall security posture of your infrastructure managed with Terraform. "
_github: https://github.com/aquasecurity/tfsec
_name: Aqua TFSec
_short: "tfsec is a security scanner for your Terraform code, helping you identify potential security issues and best practices violations. "
brew: tfsec
choco: tfsec
scoop: tfsec
tgpt:
_bin: tgpt
_desc: "tgpt is a GitHub repository created by user aandrew-me. It likely contains code related to a Transformer-based Generative Pre-trained Transformer (GPT) model. The repository may include scripts for \ntraining, fine-tuning, or using the model for text generation tasks. To get more detailed information about the contents and purpose of the repository, you can visit the GitHub link provided. "
_github: https://github.com/aandrew-me/tgpt
_name: Terminal GPT
_short: "tgpt is a GitHub repository for a text-based AI model trained on the GPT architecture by the user aandrew-me. "
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
_short: "thefuck is a command-line tool that corrects your previous console command typos. "
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
_short: "tig is a text-mode interface for Git, allowing you to browse and interact with your Git repositories using a terminal-based interface. "
brew: tig
nix: tig
pkg: tig
tigervnc:
_bin: tigervncpasswd
_desc: "TigerVNC is an open-source remote desktop software that allows users to interact with graphical applications on remote machines. It provides a client-server architecture where the server shares the \ndesktop and the client displays it. TigerVNC supports various platforms like Linux, Windows, and macOS, making it versatile for remote desktop access. It offers features like encryption for secure \nconnections, multiple authentication methods, and efficient compression algorithms for better performance. Overall, TigerVNC is a reliable tool for remote desktop access and administration. "
_github: https://github.com/TigerVNC/tigervnc
_name: TigerVNC Server
_ports:
- port: 5900-5904
proto: tcp
_short: "TigerVNC is an open-source remote desktop software that allows you to view and interact with the desktop of a remote machine. "
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
_short: "Tilt is a tool for local development with Kubernetes. "
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
_short: "Timeshift is a system restore utility for Linux that creates and restores snapshots of the system. "
apt: timeshift
dnf:fedora: timeshift
yay: timeshift
timewarrior:
_bin: timew
_desc: "Timewarrior is a command-line time tracking application that helps users track and manage their time effectively. It allows users to record tasks, track time spent on each task, and generate reports to \nanalyze productivity. Timewarrior supports various features like tagging tasks, setting priorities, and creating custom reports. It is highly customizable and can be integrated with other tools through \nits extensive set of command-line options. Timewarrior is open-source and actively maintained by the Gothenburg Bit Factory community. "
_github: https://github.com/GothenburgBitFactory/timewarrior
_name: Time Warrior
_short: "Timewarrior is a command-line time tracking tool for managing tasks and tracking time spent on them. "
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
_short: "tinypng-cli is a command-line interface for compressing images using the TinyPNG service. "
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
_short: "tldr is a simplified and community-driven man pages repository for common commands, providing concise and practical examples for quick reference. "
brew: tldr
npm: tldr
tmate:
_bin: tmate
_desc: "TMate is a terminal sharing tool that allows multiple users to access and collaborate in the same terminal session remotely. It provides a secure way to share command-line access with others, making it \nuseful for pair programming, troubleshooting, and providing remote support. TMate supports various platforms and encryption methods to ensure secure communication. It is based on the tmux terminal \nmultiplexer, offering features like session sharing, text-based chat, and the ability to invite users with a unique URL. "
_github: https://github.com/tmate-io/tmate
_name: tmate
_short: "tmate is a terminal sharing tool that allows multiple users to access and collaborate in the same terminal session remotely. "
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
_short: "tmux is a terminal multiplexer for Unix-like operating systems that allows multiple terminal sessions to be accessed and controlled from a single window. "
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
_short: "Tmuxinator is a tool for managing complex tmux sessions easily through simple YAML configuration files. "
brew: tmuxinator
tokei:
_bin: tokei
_desc: Tokei is a program that displays statistics about the code
_github: https://github.com/XAMPPRocky/tokei
_name: tokei
_short: "Tokei is a simple, fast code line counter for various programming languages. "
apk: tokei
brew: tokei
cargo: tokei
dnf:fedora: tokei
github: github.com/XAMPPRocky/tokei
pacman: tokei
pkg: tokei
scoop: tokei
tomcat:
_bin: catalina
_desc: "Apache Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages, Java Expression Language, and WebSocket technologies. It provides a web server environment for Java code to run in, \nallowing developers to serve Java-based web applications. Tomcat is widely used for deploying Java web applications and is known for its reliability and scalability. It is maintained by the Apache \nSoftware Foundation and is available for free under the Apache License. You can find more information about Apache Tomcat on its GitHub repository: https://github.com/apache/tomcat. "
_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
_short: "Apache Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages, Java Expression Language, and WebSocket technologies. "
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
_short: "toml-sort is a tool that sorts TOML files alphabetically. "
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
_short: "TheTorProject is a nonprofit organization that develops privacy tools to help people stay safe online, including the Tor Browser for anonymous web browsing. "
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
_short: "gettorbrowser is a project by The Tor Project that provides a way to download the Tor Browser in regions where access to the official website is restricted. "
cask: tor-browser
choco: tor-browser
flatpak: com.github.micahflee.torbrowser-launcher
tradingview:
_app: TradingView.app
_bin: tradingview
_desc: "Lightweight Charts is a financial lightweight charting library for creating interactive financial charts on websites. It is designed by TradingView and is optimized for high performance and user \nexperience. The library supports various chart types, technical indicators, drawing tools, and customization options. It is easy to integrate into web applications and provides a responsive and visually\nappealing way to display financial data. The library is open-source and can be accessed on GitHub at https://github.com/tradingview/lightweight-charts. "
_github: https://github.com/tradingview/lightweight-charts
_name: Trading View
_short: "lightweight-charts is a simple and lightweight financial charting library for displaying financial data on the web. "
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
_short: "translate-shell is a command-line tool for translating text using various translation services like Google Translate. "
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
_short: "trayscale is a tool for adjusting the brightness of external monitors on macOS. "
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."
_github: https://github.com/MrRaindrop/tree-cli
_name: tree-cli
_short: "tree-cli is a command-line tool that generates directory trees in a visually appealing way. "
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
_short: "tree-sitter-cli is a command-line interface for interacting with the Tree-sitter parsing library. "
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
_short: "Trellis CLI is a command-line interface tool for managing WordPress sites using the Trellis stack. "
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
_short: "Trivy is a comprehensive vulnerability scanner for containers and other artifacts. "
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
_short: "Trufflehog is a tool used for finding sensitive data in git repositories. "
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
_short: "ts2c is a tool that converts TypeScript code to C code. "
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
_short: "Tunnelblick is an open-source VPN client for macOS. "
cask: tunnelblick
turbo:
_bin: turbo
_desc: "Turbo is a framework developed by Vercel that aims to improve the performance of server-rendered React applications. It focuses on enhancing the user experience by reducing loading times and providing \ninstant navigations without full page reloads. Turbo achieves this by leveraging partial hydration, which allows only the necessary parts of a page to be re-rendered when navigating between pages. This \nresults in faster transitions and a smoother browsing experience for users. Turbo is designed to work seamlessly with Next.js, a popular React framework, making it easier for developers to implement \nthese performance optimizations in their applications. "
_github: https://github.com/vercel/turbo
_name: Turbo
_short: "turbo is a tool by Vercel that speeds up your development workflow by automatically reloading your browser when files change. "
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
_short: "TypeScript is a superset of JavaScript that adds static typing to the language, making it easier to build and maintain large-scale applications. "
brew: typescript
npm: tsc
typescript-to-lua:
_bin: tstl
_desc: "TypeScriptToLua is a tool that transpiles TypeScript code into Lua code, allowing developers to write TypeScript and have it run on a Lua runtime environment. It provides a way to leverage TypeScript's \nstatic typing and modern features while targeting Lua, which is commonly used in game development and embedded systems. This tool can be useful for projects that require compatibility with Lua or need \nto interface with existing Lua codebases. It simplifies the process of integrating TypeScript and Lua, offering a seamless development experience for those working with both languages. "
_github: https://github.com/TypeScriptToLua/TypeScriptToLua
_name: TypeScript to Lua Converter
_short: "TypeScriptToLua is a tool that transpiles TypeScript code to Lua code, enabling developers to write TypeScript and run it on Lua runtimes. "
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
_short: "ugm is a tool for managing Git repositories. "
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
_short: "Ulauncher is a fast application launcher for Linux with a minimal design and customizable features. "
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
_short: "Ultra-runner is a tool for running multiple commands in parallel, designed for developers and system administrators to improve workflow efficiency. "
npm: ultra-runner
unbuffer:
_bin: unbuffer
_github: false
_name: Unbuffer
apt: unbuffer
brew: expect
dnf: unbuffer
pacman: unbuffer
unikraft:
_bin: kraft
_desc: "Unikraft is an open-source project on GitHub that aims to simplify the process of building specialized, lightweight, and efficient software stacks for virtualized environments. It provides a framework \nfor creating customized operating systems tailored to specific applications, enabling developers to optimize performance and resource usage. Unikraft supports various platforms and targets, including \ncloud environments and IoT devices. By leveraging Unikraft, developers can streamline the development of lightweight and secure software stacks, enhancing the efficiency and performance of their \napplications in virtualized environments. "
_github: https://github.com/unikraft/unikraft
_name: Unikraft
_short: "Unikraft is a lightweight and efficient system for building specialized unikernels. "
brew: unikraft/cli/kraftkit
script: curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh
unison:
_bin: unison
_desc: "Unison is a file-synchronization tool that allows you to keep two directories of files and folders in sync on different machines. It works across different operating systems and can handle changes made \non both sides by merging them intelligently. Unison uses a combination of a client-server architecture and a peer-to-peer protocol to synchronize files efficiently. It's particularly useful for keeping \nbackups, working on multiple machines, or collaborating with others on shared projects. The tool is open-source and actively maintained, making it a reliable choice for file synchronization needs. "
_github: https://github.com/bcpierce00/unison
_name: Unison
_short: "Unison is a file-synchronization tool for Unix and Windows. "
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)
_short: "up is a tool for writing command-line applications in pure Bash, without external dependencies. "
ansible: professormanhattan.up
brew: up
github: github.com/akavel/up
pkg: up
yay: up
upscayl:
_bin: upscayl
_desc: "upscayl is a GitHub repository belonging to the user upscayl. Without further details or access to the repository, it is not possible to provide a detailed description of its contents. To learn more \nabout the repository, you can visit the link provided and explore the code, documentation, and any other resources available there. "
_github: https://github.com/upscayl/upscayl
_name: Upscayl
_short: "upscayl is a GitHub repository. "
_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
_short: "upt is a lightweight uptime monitor written in Go. "
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
_short: "UPX is a versatile executable packer for various platforms. "
ansible: professormanhattan.upx
apt: upx
brew: upx
choco: upx
dnf:fedora: upx
pacman: upx
port: upx
scoop: upx
usql:
_bin: usql
_desc: "usql is a universal command-line interface for SQL databases. It supports various databases like PostgreSQL, MySQL, SQLite, and more, allowing users to interact with different databases using a single \ntool. It provides features like auto-completion, syntax highlighting, and multi-line editing. usql is written in Go and is open-source, making it easy for developers and system administrators to work \nwith different databases efficiently from the command line. "
_github: https://github.com/xo/usql
_name: Universal SQL CLI
_short: "usql is a universal command-line interface for SQL databases. "
brew: xo/xo/usql
choco: usql
go: github.com/xo/usql@latest
scoop: usql
util-linux:
_bin:
- cal
- chmem
- hexdump
_github: false
apt: util-linux
dnf: util-linux
pacman: util-linux
utm:
_app: UTM.app
_bin: utm
_desc: "UTM is an open-source virtual machine emulator for macOS. It allows users to run various operating systems like Windows, Linux, and others on their Mac machines. UTM provides a user-friendly interface \nfor managing virtual machines and supports features like snapshots, virtual disk management, and networking configurations. It is actively maintained and supports a wide range of guest operating \nsystems, making it a versatile tool for developers, testers, and anyone needing to run multiple OS environments on their Mac. "
_github: https://github.com/utmapp/UTM
_name: UTM
_short: "UTM is an open-source virtual machine emulator for macOS. "
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
_short: "Vagrant is an open-source tool for building and managing virtual machine environments in a single workflow. "
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
_short: "Vagrant Manager is a GUI tool for managing Vagrant environments on macOS. "
cask: vagrant-manager
choco: vagrant-manager
vagrant-vmware-utility:
_bin: false
_desc: "vagrant-vmware-desktop \n\nThis is a plugin for Vagrant, a tool for building and managing virtual machine environments. The vagrant-vmware-desktop plugin allows Vagrant to work with VMware Fusion and VMware Workstation on macOS. \nIt provides additional functionality and compatibility for using VMware products with Vagrant, enhancing the virtualization capabilities for developers and system administrators working on macOS \nsystems. This plugin enables users to create and manage VMware virtual machines seamlessly within Vagrant workflows. "
_github: https://github.com/hashicorp/vagrant-vmware-desktop
_name: Vagrant VMWare Utility
_post:cask: |
#!/usr/bin/env bash
if [ ! -f /usr/local/bin/vagrant-vmware-utility ] && [ -f /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility ]; then
sudo ln -s /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility /usr/local/bin/vagrant-vmware-utility
fi
_short: "vagrant-vmware-desktop is a plugin for Vagrant that allows users to manage VMware Desktop virtual machines. "
_when:cask: "! test -f /opt/vagrant-vmware-desktop/bin/vagrant-vmware-utility"
ansible: professormanhattan.vmware
cask: vagrant-vmware-utility
choco: vagrant-vmware-utility
script: rm -rf /tmp/vagrant-vmware-utility_1.0.21_linux_amd64.zip && curl https://releases.hashicorp.com/vagrant-vmware-utility/1.0.21/vagrant-vmware-utility_1.0.21_linux_amd64.zip -o /tmp/vagrant-vmware-utility_1.0.21_linux_amd64.zip && unzip /tmp/vagrant-vmware-utility_1.0.21_linux_amd64.zip && sudo mv -f /tmp/vagrant-vmware-utility /usr/local/bin/vagrant-vmware-utility && sudo chmod +x /usr/local/bin/vagrant-vmware-utility
vale:
_bin: vale
_desc: "Vale is a tool for checking and maintaining consistent writing style in your documents. It uses a customizable style guide to analyze text files for errors, inconsistencies, and style issues. It \nsupports various file formats like Markdown, HTML, and LaTeX. Vale can be integrated into your workflow through the command line or as part of a continuous integration process. It helps ensure that your\nwriting follows specific guidelines and standards, making it useful for technical writers, developers, and anyone who values clear and consistent writing. "
_github: https://github.com/errata-ai/vale
_name: Vale
_short: "Vale is a syntax-aware linter for prose. "
brew: vale
choco: vale
go: github.com/errata-ai/vale@latest
vault:
_bin: vault
_desc: "[HashiCorp Vault](https://www.vaultproject.io/) secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. Basically, it is a tool for managing any data that you want to tightly control access to. It also has some advanced integrations with systems like AWS."
_docs: https://developer.hashicorp.com/vault/docs
_github: https://github.com/hashicorp/vault
_home: https://vaultproject.io/
_name: HashiCorp Vault
_service: vault
_service:brew: hashicorp/tap/vault
_short: "Vault is a tool for securely accessing secrets. "
ansible: professormanhattan.vault
brew: hashicorp/tap/vault
yay: vault-cli
vdirsyncer:
_bin: vdirsyncer
_desc: "vdirsyncer is a command-line tool for synchronizing calendars and address books between various servers. It supports syncing between CalDAV/CardDAV servers and local files, making it useful for keeping \nyour calendars and contacts up to date across different platforms. It uses a configuration file to define the sync pairs and can be automated with cron jobs. vdirsyncer is written in Python and is \nactively maintained on GitHub. It's a handy tool for managing your personal information across different devices and services. "
_github: https://github.com/pimutils/vdirsyncer
_name: vdirsyncer
_short: "vdirsyncer is a command-line tool for synchronizing calendars and address books. "
_todo: echo "TODO - Implement the following command after automating the process of setting up contact groups / calendars to sync" && echo "vdirsyncer discover contacts" && echo "vdirsyncer sync contacts" && echo "TODO - Add to cron" && echo "*/30 * * * * /usr/local/bin/vdirsyncer sync > /dev/null" && echo "This should be in _post instead of _pre - it is here for testing purposes"
pipx: vdirsyncer
vector:
_bin: vector
_desc: Vector is a lightweight, ultra-fast tool for building observability pipelines that lets you collect, transform, and route all your logs and metrics with one simple tool.
_docs: https://vector.dev/docs
_github: https://github.com/vectordotdev/vector
_home: https://vector.dev/
_name: Vector
_service: vector
_short: "Vector is an open-source observability data router. "
brew: vectordotdev/brew/vector
helm: https://helm.vector.dev
pacman: vector
script:darwin: curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash
script:linux: curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash
velero:
_bin: velero
_desc: "[Velero](https://velero.io/) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes"
_docs: https://velero.io/docs/
_github: https://github.com/vmware-tanzu/velero
_home: https://velero.io/
_name: velero
_short: "Velero is an open-source tool to back up, recover, and migrate Kubernetes cluster resources and persistent volumes. "
brew: velero
choco: velero
github: github.com/vmware-tanzu/velero
yay: velero-bin
vermin:
_bin: vermin
_desc: "Vermin is a tool available on GitHub at https://github.com/mhewedy/vermin designed for managing virtual machines on macOS using Hypervisor.framework. It allows users to create, start, stop, and manage \nvirtual machines directly from the command line. Vermin simplifies the process of working with virtual machines on macOS by providing a convenient interface for managing VMs without the need for \nthird-party virtualization software. It is a useful tool for developers and system administrators who need to work with virtual environments on macOS. "
_github: https://github.com/mhewedy/vermin
_name: Vermin
_short: "Vermin is a tool that helps manage and clean up unused Docker images and containers on your system, freeing up disk space efficiently. "
go: github.com/mhewedy/vermin@latest
vhs:
_bin: vhs
_desc: Your CLI home video recorder
_docs: https://github.com/charmbracelet/vhs
_github: https://github.com/charmbracelet/vhs
_home: https://charm.sh/
_name: VHS
_short: "vhs is a terminal-based VHS tape player simulator for nostalgic fun on the command line. "
brew: vhs
go: github.com/charmbracelet/vhs@latest
nix-env: nixpkgs.vhs
pacman: vhs
port: vhs
scoop: vhs
xbps: vhs
vidmerger:
_bin: vidmerger
_deps:
- ffmpeg
_desc: Merge video & audio files via CLI
_docs: https://github.com/tgotwig/vidmerger
_github: https://github.com/tgotwig/vidmerger
_home: https://github.com/tgotwig/vidmerger
_name: VidMerger
_short: "vidmerger is a tool on GitHub created by tgotwig for merging video files. "
brew: tgotwig/vidmerger/vidmerger
choco: vidmerger
vim:
_bin: vim
_desc: "[Vim](https://www.vim.org/) is a greatly improved version of the good old UNIX editor Vi"
_docs: https://www.vim.org/docs.php
_github: https://github.com/vim/vim
_home: https://www.vim.org/
_name: VIM
_post: |
#!/usr/bin/env bash
logg info "Installing VIM plugins" && vim +'PlugInstall --sync' +qall
# @description This script installs the extensions defined in `${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions/package.json`
# which should correlate to the Coc extensions defined in `${XDG_CONFIG_HOME:-$HOME/.config}/vim/vimrc`.
installCocExtensions() {
if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions/package.json" ]; then
logg info "Running npm i --no-package-lock in ${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions"
cd "${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions" && npm i --no-package-lock
logg info "Running vim +CocUpdateSync +qall" && vim +CocUpdateSync +qall
else
logg info "Skipping Coc extension installation because ${XDG_CONFIG_HOME:-$HOME/.config}/coc/extensions/package.json is missing"
fi
}
logg info "Updating VIM coc extensions" && installCocExtensions
_short: "Vim is a highly configurable text editor built for efficiency and speed, with a focus on keyboard shortcuts for navigation and editing. "
ansible: professormanhattan.vim
apt: vim
brew: vim
choco: vim
dnf: vim
pacman: vim
port: vim
scoop: vim
virtualbox:
_app: VirtualBox.app
_bin: null
_desc: "[VirtualBox](https://www.virtualbox.org/) is a free and open-source hosted hypervisor for x86 virtualization, developed by Oracle Corporation. Created by Innotek, it was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010. VirtualBox may be installed on Windows, macOS, Linux, Solaris and OpenSolaris."
_docs: https://www.virtualbox.org/wiki/Documentation
_github: https://github.com/mirror/vbox
_home: https://www.virtualbox.org/
_name: VirtualBox
_post: |
#!/usr/bin/env bash
# @file VirtualBox Extension Pack
# @brief Ensures the VirtualBox extension pack is installed.
# @description
# This script ensures the VirtualBox extension pack that corresponds with VirtualBox's version is properly installed.
### Run logic if VirtualBox is installed
if command -v VirtualBox > /dev/null; then
### Install VirtualBox extension pack if it is not installed already
if [ ! -d /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack ] && [ ! -d /Applications/VirtualBox.app/Contents/MacOS/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack ]; then
logg info 'Acquiring VirtualBox version information'
VBOX_VERSION="$(VirtualBox --help | head -n 1 | cut -f 6 -d' ')"
VBOX_VERSION="${VBOX_VERSION//v}"
### Set up folders
# Check for macOS installation before creating ExtensionPacks folder on Linux machines
if [ ! -d /Applications/VirtualBox.app ]; then
sudo mkdir -p /usr/lib/virtualbox/ExtensionPacks
fi
mkdir -p /tmp/vbox
cd /tmp/vbox
### Download extension pack
logg info 'Downloading VirtualBox extension pack'
curl -sSL https://download.virtualbox.org/virtualbox/$VBOX_VERSION/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack -o /tmp/vbox/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack || logg error 'Failed to download the VirtualBox extension pack so the extension pack installation will be skipped'
### Install extension pack
if [ -f /tmp/vbox/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack ]; then
logg info 'Installing VirtualBox extension pack'
echo 'y' | sudo VBoxManage extpack install --replace /tmp/vbox/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack
logg success 'Successfully installed VirtualBox extension pack'
fi
else
logg info 'VirtualBox Extension pack is already installed'
fi
else
logg info 'VirtualBox is not installed so VirtualBox Extension pack will not be installed'
fi
_post:choco: |
# TODO
# TODO
# TODO
# TODO
cd C:/Program Files/Oracle/VirtualBox/
# TODOFigure out how to get version without Ansible here and download / install the extpack
wget https://download.virtualbox.org/virtualbox/' + vbox_version + '/Oracle_VM_VirtualBox_Extension_Pack-' + vbox_version + '.vbox-extpack'
echo y | VBoxManage extpack install --replace ./Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack
_pre:dnf: >
#!/usr/bin/env bash
. /etc/os-release
cat <<EOF | sudo tee /etc/yum.repos.d/virtualbox.repo
[virtualbox]
name=Fedora $releasever - $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/$ID/$VERSION_ID/\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
EOF
sudo dnf -y install @development-tools
sudo dnf -y install kernel-headers kernel-devel dkms elfutils-libelf-devel qt5-qtx11extras
_short: "mirror/vbox is a mirror of the VirtualBox repository on GitHub. "
_todo: Add support for arm64 - currently brew install --cask virtualbox requires intel 64 bit
ansible: professormanhattan.virtualbox
apt: virtualbox
cask: virtualbox
choco: virtualbox
dnf: virtualbox
pacman: virtualbox
virtualenv:
_bin: virtualenv
_desc: Tool for creating isolated virtual python environments
_docs: https://virtualenv.pypa.io/en/latest/
_github: https://github.com/pypa/virtualenv
_name: virtualenv
_short: "virtualenv is a tool to create isolated Python environments. "
brew: virtualenv
pipx: virtualenv
visual-studio:
_app: Visual Studio.app
_bin: null
_desc: "[Microsoft Visual Studio](https://visualstudio.microsoft.com/) is an integrated development environment from Microsoft. It is used to develop computer programs, as well as websites, web apps, web services and mobile apps."
_docs: https://docs.microsoft.com/en-us/visualstudio/windows/?view=vs-2022
_github: Not open-source
_home: https://visualstudio.microsoft.com/
_name: Visual Studio
_short: "$'Not open-source' is a string enclosed in single quotes preceded by a dollar sign and is typically used in Unix-like systems to enable escape sequences like \\n for new lines. "
ansible:windows: professormanhattan.visualstudio
cask: visual-studio
choco: visualstudio2022community
vlc:
_app: VLC.app
_bin: vlc
_desc: "[VLC](https://www.videolan.org/) media player is a free and open-source, portable, cross-platform media player software, and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems, and mobile platforms, such as Android, iOS, iPadOS, Tizen, Windows 10 Mobile, and Windows Phone."
_docs: https://www.videolan.org/doc/
_github: https://github.com/videolan/vlc
_home: https://www.videolan.org/vlc/
_name: VLC Media Player
_short: "VLC Media Player: Open-source multimedia player that supports various audio and video formats, streaming protocols, and more. "
ansible: professormanhattan.vlc
apt: vlc
cask: vlc
choco: vlc
flatpak: org.videolan.VLC
snap: vlc
vmware:
_app: VMware Fusion.app
_bin: vmware
_bin:cask: vmware-id
_desc: "[VMWare Workstation](https://www.vmware.com/products/workstation-pro.html) (or [VMWare Fusion](https://www.vmware.com/products/fusion.html) in the case of macOS) is a hosted hypervisor that runs on x64 versions of Windows and Linux operating systems. It enables users to set up virtual machines on a single physical machine and use them simultaneously along with the host machine. It is similar to [VirtualBox](https://gitlab.com/megabyte-labs/ansible-roles/virtualbox)."
_docs: https://docs.vmware.com/
_github: false
_home: https://www.vmware.com/
_name: VMWare
_post: |
#!/usr/bin/env bash
# @file VMWare Configuration
# @brief Installs VMWare Workstation Pro on Linux devices, applies a "publicly-retrieved" license key (see disclaimer), and automatically accepts the terms and conditions
# @description
# This script ensures the user included `vmware` in their software installation list. It then checks for presence of the `vmware` utility. If it is not present, then the script:
#
# 1. Downloads the [VMWare Workstation Pro](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html) Linux installer
# 2. Installs VMWare Workstation Pro
# 3. Passes options to the installation script that automatically apply a publicly retrived license key and accept the Terms & Conditions
#
# This script first checks if `vagrant`, `vmware`, and `vagrant-vmware-utility` are available in the `PATH`. If they are present, then the script
# configures the [`vagrant-vmware-utility`](https://developer.hashicorp.com/vagrant/docs/providers/vmware/vagrant-vmware-utility) by generating the required security certificates and enabling the service.
# This system package enables the capability of controlling both VMWare Workstation and VMWare Fusion with Vagrant.
#
# Since this script runs only when `vagrant`, `vmware`, and `vagrant-vmware-utility` are in the `PATH`, this means that it will run
# when you use an installation template that includes all three pieces of software in the software list defined in
# `home/.chezmoidata.yaml`.
#
# **DISCLAIMER:** If you plan on using VMWare Workstation for anything but evaluation purposes, then we highly suggest purchasing a copy
# of VMWare Workstation. The "publicly-retrived" license keys are scattered throughout GitHub and we are not exactly
# sure why they work. You can pass in your own key by utilizing the `VMWARE_WORKSTATION_LICENSE_KEY` environment variable. More details on
# using environment variables or repository-housed encrypted secrets can be found in our [Secrets documentation](https://install.doctor/docs/customization/secrets).
#
# ## VMWare on macOS
#
# This script only installs VMWare Workstation on Linux. The macOS-variant titled VMWare Fusion can be installed using a Homebrew
# cask so a "work-around" script does not have to be used.
#
# ## VMWare vs. Parallels vs. VirtualBox vs. KVM vs. Hyper-V
#
# There are a handful of VM virtualization providers you can choose from. VMWare is a nice compromise between OS compatibility and performance.
# Parallels, on the hand, might be better for macOS since it is designed specifically for macOS. Finally, VirtualBox is a truly free,
# open-source option that does not come with the same optimizations that VMWare and Parallels provide.
#
# Other virtualization options include KVM (Linux / macOS) and Hyper-V (Windows). These options are better used for headless
# systems.
#
# ## Links
#
# * [VMWare Workstation homepage](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html)
# * [Vagrant VMWare Utility on GitHub](https://github.com/hashicorp/vagrant-vmware-desktop)
# * [`home/.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoidata.yaml)
# * [Default license key gist](https://gist.github.com/PurpleVibe32/30a802c3c8ec902e1487024cdea26251)
### Run logic if VMware is installed
if command -v vmware > /dev/null; then
### Build kernel modules if they are not present
if [ ! -f "/lib/modules/$(uname -r)/misc/vmmon.ko" ] || [ ! -f "/lib/modules/$(uname -r)/misc/vmnet.ko" ]; then
### Build VMWare host modules
logg info 'Building VMware host modules'
if sudo vmware-modconfig --console --install-all; then
logg success 'Built VMWare host modules successfully with sudo vmware-modconfig --console --install-all'
else
logg info 'Acquiring VMware version from CLI'
VMW_VERSION="$(vmware --version | cut -f 3 -d' ')"
mkdir -p /tmp/vmw_patch
cd /tmp/vmw_patch
logg info 'Downloading VMware host module patches' && curl -sSL "https://github.com/mkubecek/vmware-host-modules/archive/workstation-$VMW_VERSION.tar.gz" -o /tmp/vmw_patch/workstation.tar.gz
tar -xzf /tmp/vmw_patch/workstation.tar.gz
cd vmware*
logg info 'Running sudo make and sudo make install'
sudo make
sudo make install
logg success 'Successfully configured VMware host module patches'
fi
### Sign VMware host modules if Secure Boot is enabled
if [ -f /sys/firmware/efi ]; then
logg info 'Signing host modules'
mkdir -p /tmp/vmware
cd /tmp/vmware
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
"/usr/src/linux-headers-$(uname -r)/scripts/sign-file" sha256 ./MOK.priv ./MOK.der "$(modinfo -n vmmon)"
"/usr/src/linux-headers-$(uname -r)/scripts/sign-file" sha256 ./MOK.priv ./MOK.der "$(modinfo -n vmnet)"
echo '' | mokutil --import MOK.der
logg success 'Successfully signed VMware host modules. Reboot the host before powering on VMs'
fi
### Patch VMware with Unlocker
if [ ! -f /usr/lib/vmware/isoimages/darwin.iso ]; then
logg info 'Acquiring VMware Unlocker latest release version'
UNLOCKER_URL="$(curl -sSL 'https://api.github.com/repos/DrDonk/unlocker/releases/latest' | jq -r '.assets[0].browser_download_url')"
mkdir -p /tmp/vmware-unlocker
cd /tmp/vmware-unlocker
logg info 'Downloading unlocker.zip'
curl -sSL "$UNLOCKER_URL" -o unlocker.zip
unzip unlocker.zip
cd linux
logg info 'Running the unlocker'
echo "y" | sudo ./unlock
logg success 'Successfully unlocked VMware for macOS compatibility'
else
logg info '/usr/lib/vmware/isoimages/darwin.iso is already present on the system so VMware macOS unlocking will not be performed'
fi
if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then
### Start / enable VMWare service
logg info 'Ensuring vmware.service is enabled and running'
sudo systemctl enable vmware.service
sudo systemctl restart vmware.service
### Start / enable VMWare Workstation Server service
logg info 'Ensuring vmware-workstation-server.service is enabled and running'
sudo systemctl enable vmware-workstation-server.service
sudo systemctl restart vmware-workstation-server.service
### Start / enable VMWare USB Arbitrator service
if command -v vmware-usbarbitrator.service > /dev/null; then
logg info 'Ensuring vmware-usbarbitrator.service is enabled and running'
sudo systemctl enable vmware-usbarbitrator.service
sudo systemctl restart vmware-usbarbitrator.service
else
logg warn 'vmware-usbarbitrator does not exist in the PATH'
fi
fi
else
logg info 'VMware host modules are present'
fi
else
logg warn 'VMware Workstation is not installed so the VMware Unlocker will not be installed'
fi
# @description Only run logic if both Vagrant and VMWare are installed
if command -v vagrant > /dev/null && command -v vmware-id > /dev/null; then
# @description Vagrant VMWare Utility configuration
if command -v vagrant-vmware-utility > /dev/null; then
if [ -f /usr/local/bin/certificates/vagrant-utility.key ]; then
logg info 'Assuming Vagrant VMWare Utility certificates have been properly generated since /usr/local/bin/certificates/vagrant-utility.key is present'
else
logg info 'Generating Vagrant VMWare Utility certificates'
sudo vagrant-vmware-utility certificate generate
logg success 'Generated Vagrant VMWare Utility certificates via vagrant-vmware-utility certificate generate'
fi
logg info 'Ensuring the Vagrant VMWare Utility service is enabled'
sudo vagrant-vmware-utility service install || EXIT_CODE=$?
if [ -n "$EXIT_CODE" ]; then
logg info 'The Vagrant VMWare Utility command vagrant-vmware-utility service install failed. It is probably already setup.'
fi
fi
else
logg info 'Vagrant is not installed so the Vagrant plugins will not be installed'
logg info 'Vagrant or VMWare is not installed so the Vagrant VMWare utility will not be configured'
fi
ansible: professormanhattan.vmware
cask: vmware-fusion
script:linux: >
if ! command -v vmware > /dev/null; then
### Download VMWare Workstation
VMWARE_WORKSTATION_URL=https://www.vmware.com/go/getworkstation-linux
VMWARE_WORKSTATION_DIR=/tmp/workstation-downloads
mkdir -p "$VMWARE_WORKSTATION_DIR"
logg info 'Downloading VMware Workstation Installer' && curl -sSLA "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20220101 Firefox/102.0" "$VMWARE_WORKSTATION_URL" -o "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh"
### Register product key / license
if [ -n "$VMWARE_WORKSTATION_LICENSE_KEY" ]; then
logg info 'Registering VMware Workstation Pro license with serial number' && sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required --set-setting vmware-workstation serialNumber "$VMWARE_WORKSTATION_LICENSE_KEY"
else
logg info 'Agreeing to VMWare Workstation Pro license (without serial number)' && sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required
fi
logg success 'VMware Workstation installed successfully'
else
logg info 'VMware Workstation is already installed'
fi
volta:
_bin: volta
_desc: "[Volta](https://volta.sh/) is a hassle-free Javascript Tool Manager. It is a fast, reliable and universal tool manager. It supports multiple package managers and provides extensibility hooks for site-specific customization."
_docs: https://docs.volta.sh/
_github: https://github.com/volta-cli/volta
_home: https://volta.sh
_name: volta-vm
_post: |
#!/usr/bin/env bash
export VOLTA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/volta"
export PATH="$VOLTA_HOME/bin:$PATH"
volta setup
volta install node@latest
volta install yarn@latest
_short: "Volta is a tool for managing JavaScript command-line tools. "
ansible: professormanhattan.volta
brew: volta
scoop: volta
vpn:
_bin: null
_desc: You can populate a configuration to power this role. When configured properly, the system's built-in VPN client will be configured with your desired settings.
_github: false
_name: System VPN
ansible: professormanhattan.vpn
vscode:
_app: Visual Studio Code.app
_bin: code
_desc: "[Visual Studio Code](https://code.visualstudio.com/) is a freeware source-code editor made by Microsoft for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git."
_docs: https://code.visualstudio.com/api/references/vscode-api
_github: https://github.com/microsoft/vscode
_home: https://code.visualstudio.com/
_name: Visual Studio Code
_post: |
#!/usr/bin/env bash
# @file VSCode Extensions / Global NPM Modules Fallback
# @brief Installs all of the Visual Studio Code extensions specified in the [`home/dot_config/Code/User/extensions.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/extensions.json) file and installs NPM packages to the system `/` directory as a catch-all for tools that recursively search upwards for shared NPM configurations.
# @description
# This script loops through all the extensions listed in the [`home/dot_config/Code/User/extensions.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/extensions.json)
# file. It installs the extensions when either Visual Studio Code or VSCodium is installed. If both are installed, then both will
# have the plugins automatically installed.
#
# The `extensions.json` file is used to house the plugin list so that if you decide to remove this auto-installer script then
# VSCode will retain some functionality from the file. It will show a popover card that recommends installing any plugins in the
# list that are not already installed.
#
# ## Plugin Settings
#
# Most of the plugin settings have been configured and optimized to work properly with the other default settings
# included by Install Doctor. These settings can be found in the [`home/dot_config/Code/User/settings.json` file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/settings.json).
# If you manage to come up with an improvement, please open a pull request so other users can benefit from your work.
#
# ## Default Extensions
#
# The default plugins in the `extensions.json` list are catered mostly towards full-stack web development. The technologies
# that are catered to by the default extensions relate to TypeScript, JavaScript, Go, Python, Rust, and many more technologies.
# Most of the plugins are not language-specific.
#
# ## Global NPM Modules Fallback
#
# This script makes fallback linter and code auto-fixer configurations globally available. Normally, configurations, like
# the ones used for ESLint, are installed at the project level by specifying the NPM package configuration
# in the `package.json` file (or via an `.eslintrc` file). However, whenever no configuration is present, IDEs like
# Visual Studio Code will recursively search upwards in the directory tree, trying to find an ESLint configuration.
#
# This script addresses this issue by installing a set of shared NPM packages that enhance the functionality of tools like ESLint
# by placing a `package.json` with all the necessary settings into the highest directory possible and then installing the package's
# modules. This normally results in a `package.json` file and `node_modules/` folder at the root of the system.
#
# ## NPM Packages Included
#
# To reduce clutter, all the configurations are mapped out in the `package.json` file. Our default `package.json` file includes
# the following configuration:
#
# ```json
# <!-- AUTO-GENERATED:START (REMOTE:url=https://gitlab.com/megabyte-labs/install.doctor/-/raw/master/home/dot_config/Code/User/package.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"
# },
# ...
# }
# <!-- AUTO-GENERATED:END -->
# ```
#
# ## Strict Lint
#
# More details on the shared configurations can be found at [StrictLint.com](https://strictlint.com).
# Strict Lint is another brand maintained by Megabyte Labs that is home to many of the well-crafted
# shared configurations that are included in our default NPM configuration fallback settings.
#
# ## Notes
#
# * If the system root directory is not writable (even with `sudo`), then the shared modules are installed to the provisioning user's `$HOME` directory
#
# ## Links
#
# * [`package.json` configuration file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/package.json)
# * [StrictLint.com documentation](https://strictlint.com/docs)
# * [Visual Studio Code settings folder](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User)
# * [Visual Studio Code `extensions.json`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/Code/User/extensions.json)
### Hides useless error during extension installations
# Error looks like:
# (node:53151) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
# (Use `Electron --trace-deprecation ...` to show where the warning was created)
export NODE_OPTIONS=--throw-deprecation
# @description Install Visual Studio Code extensions if they are not already installed (by checking the `code --list-extensions` output)
if command -v code > /dev/null; then
EXTENSIONS="$(code --list-extensions)"
jq -r '.recommendations[]' "${XDG_CONFIG_HOME:-$HOME/.config}/Code/User/extensions.json" | while read EXTENSION; do
if ! echo "$EXTENSIONS" | grep -iF "$EXTENSION" > /dev/null; then
logg info 'Installing Visual Studio Code extension '"$EXTENSION"'' && code --install-extension "$EXTENSION"
logg success 'Installed '"$EXTENSION"''
else
logg info ''"$EXTENSION"' already installed'
fi
done
else
logg info 'code executable not available - skipping plugin install process for it'
fi
if command -v code > /dev/null && command -v npm > /dev/null && [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/vscode/package.json" ]; then
### Install linter fallback node_modules / package.json to system or home directory
if sudo cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/vscode/package.json" /package.json; then
logg info 'Successfully copied linter fallback configurations package.json to /package.json'
logg info 'Installing system root directory node_modules'
cd / && sudo npm i --quiet --no-package-lock || EXIT_CODE=$?
else
logg warn 'Unable to successfully copy linter fallback configurations package.json to /package.json'
logg info 'Installing linter fallback configurations node_modules to home directory instead'
cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/vscode/package.json" "$HOME/package.json"
cd ~ && npm i --quiet --no-package-lock || EXIT_CODE=$?
fi
### Log message if install failed
if [ -n "$EXIT_CODE" ]; then
logg warn 'Possible error(s) were detected while installing linter fallback configurations to the home directory.'
logg info "Exit code: $EXIT_CODE"
else
logg info 'Installed linter fallback configuration node_modules'
fi
else
logg info 'Skipping installation of fallback linter configurations because one or more of the dependencies is missing.'
fi
_short: "Visual Studio Code is a free source-code editor made by Microsoft for Windows, Linux, and macOS. "
ansible: professormanhattan.vscode
cask: visual-studio-code
choco: vscode
flatpak: com.visualstudio.code
snap: code --classic
yay: visual-studio-code-bin
vscodium:
_app: VSCodium.app
_bin: codium
_desc: "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's Visual Studio Code. It is essentially Visual Studio Code without Microsoft branding, telemetry, and licensing. VSCodium\nprovides a more open-source alternative for developers who prefer a version of Visual Studio Code that is free from Microsoft's proprietary features. Users can find the source code, releases, and \ndocumentation on the GitHub repository at https://github.com/VSCodium/vscodium. "
_github: https://github.com/VSCodium/vscodium
_name: "VSCodium "
_post: |
#!/usr/bin/env bash
# @brief See `_post` entry for `vscode` for a description
export NODE_OPTIONS=--throw-deprecation
# @description Check for the presence of the `codium` command in the `PATH` and install extensions for VSCodium if it is present
if command -v codium > /dev/null; then
EXTENSIONS="$(codium --list-extensions)"
jq -r '.recommendations[]' "${XDG_CONFIG_HOME:-$HOME/.config}/Code/User/extensions.json" | while read EXTENSION; do
if ! echo "$EXTENSIONS" | grep -iF "$EXTENSION" > /dev/null; then
logg info 'Installing VSCodium extension '"$EXTENSION"'' && codium --install-extension "$EXTENSION" && logg success 'Installed '"$EXTENSION"''
else
logg info ''"$EXTENSION"' already installed'
fi
done
else
logg info 'codium executable not available - skipping plugin install process for it'
fi
_short: "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's Visual Studio Code. "
appimage: vscodium/vscodium
cask: vscodium
choco: vscodium
flatpak: com.vscodium.codium
nix: nixpkgs.vscodium
scoop: vscodium
snap: codium --classic
winget: vscodium
yay: vscodium-bin
vup:
_bin: vup
_desc: "vup is a tool available on GitHub at https://github.com/vup-app/vup. It is a version updater for Node.js projects that simplifies the process of updating dependencies in package.json files. This tool \nautomatically checks for available updates for dependencies and devDependencies in your project and provides a simple command-line interface to update them. It helps in keeping your Node.js projects \nup-to-date with the latest package versions, ensuring better security, performance, and compatibility. "
_github: https://github.com/vup-app/vup
_name: "vup "
_short: "vup is a tool for updating macOS applications from the command line. "
flatpak: app.vup.Vup
w3m:
_bin: w3m
_desc: w3m is a pager/text-based WWW browser. You can browse local documents and/or documents on the WWW using a terminal emulator.
_docs: https://w3m.sourceforge.net/MANUAL
_github: https://github.com/tats/w3m
_home: https://tracker.debian.org/pkg/w3m
_name: w3m
_short: "w3m is a text-based web browser for Unix-like systems. "
apt: w3m
brew: w3m
dnf: w3m
pacman: w3m
port: w3m
zypper: w3m
wails:
_bin: wails
_desc: "[Wails](https://github.com/wailsapp/wails) offers a different approach to providing web interfaces to Go programs: it provides the ability to wrap both Go code and a web frontend into a single binary."
_github: https://github.com/wailsapp/wails
_name: Wails
_short: "Wails is a framework for building desktop apps using Go and Web technologies. "
ansible: professormanhattan.wails
go: github.com/wailsapp/wails/cmd/wails@latest
wallpaper-cli:
_bin: wallpaper
_desc: "wallpaper-cli is a command-line interface tool created by Sindre Sorhus for setting the desktop wallpaper on macOS. It allows users to easily change their wallpaper from the terminal using various \noptions like setting a specific image, choosing a random image, or restoring the wallpaper to the default one. The tool supports both local and remote images, making it convenient for users to customize\ntheir desktop background quickly and efficiently. It's a handy utility for those who prefer managing their wallpaper through the command line interface. "
_github: https://github.com/sindresorhus/wallpaper-cli
_name: Wallpaper CLI
_short: "wallpaper-cli is a command-line interface for setting the desktop wallpaper on macOS. "
npm: wallpaper-cli
warp:
_app: Cloudflare WARP.app
_bin: warp-cli
_desc: "[Cloudflare WARP Client](https://cloudflarewarp.com/) is a free app that makes your Internet safer"
_github: false
_home: https://cloudflarewarp.com/
_name: Cloudflare WARP Client
_post: |
#!/usr/bin/env bash
# @file CloudFlare WARP
# @brief Installs CloudFlare WARP, ensures proper security certificates are in place, and connects the device to CloudFlare WARP.
# @description
# This script is intended to connect the device to CloudFlare's Zero Trust network with nearly all of its features unlocked.
# Homebrew is used to install the `warp-cli` on macOS. On Linux, it can install `warp-cli` on most Debian systems and some RedHat
# systems. CloudFlare WARP's [download page](https://pkg.cloudflareclient.com/packages/cloudflare-warp) is somewhat barren.
#
# ## MDM Configuration
#
# If CloudFlare WARP successfully installs, it first applies MDM configurations (managed configurations). If you would like CloudFlare
# WARP to connect completely headlessly (while losing some "user-posture" settings), then you can populate the following three secrets:
#
# 1. `CLOUDFLARE_TEAMS_CLIENT_ID` - The ID from a CloudFlare Teams service token. See [this article](https://developers.cloudflare.com/cloudflare-one/identity/service-tokens/).
# 2. `CLOUDFLARE_TEAMS_CLIENT_SECRET` - The secret from a CloudFlare Teams service token.
# 3. `CLOUDFLARE_TEAMS_ORG` - The ID of your Zero Trust organization. This variable must be passed in as an environment variable and is housed in the `home/.chezmoi.yaml.tmpl` file. If you do not want to pass an environment variable, you can change the default value in `home/.chezmoi.yaml.tmpl` on your own fork.
#
# The two variables above can be passed in using either of the methods described in the [Secrets documentation](https://install.doctor/docs/customization/secrets).
#
# ## Headless CloudFlare WARP Connection
#
# Even if you do not provide the two variables mentioned above, the script will still headlessly connect your device to the public CloudFlare WARP
# network, where you will get some of the benefits of a VPN for free. Otherwise, if they were passed in, then the script
# finishes by connecting to CloudFlare Teams.
#
# ## Application Certificates
#
# This script applies the techniques described on the [CloudFlare Zero Trust Install certificate manually page](https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert/)
# to configure the following utilities that leverage seperate certificate authorities:
#
# * Python
# * NPM
# * Git
# * Google Cloud SDK
# * AWS CLI
# * Google Drive for desktop
#
# Settings used to configure Firefox are housed inside of the Firefox configuration files stored as seperate configuration files
# outside of this script. **Note: The scripts that enable CloudFlare certificates for all these programs are currently commented out
# in this script.**
#
# ## Notes
#
# According to CloudFlare Teams [documentation on MDM deployment](https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/),
# on macOS the `com.cloudflare.warp.plist` file gets erased on reboot. Also, according to the documentation, the only way around this is to leverage
# an MDM SaaS provider like JumpCloud.
#
# ## Links
#
# * [Linux managed configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/warp/private_mdm.xml.tmpl)
# * [macOS managed configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/Library/Managed%20Preferences/private_com.cloudflare.warp.plist.tmpl)
SSL_CERT_PATH="/etc/ssl/cert.pem"
### Install CloudFlare WARP (on non-WSL *nix systems)
if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then
if [ -d /System ] && [ -d /Applications ]; then
### Install on macOS
if [ ! -d "/Applications/Cloudflare WARP.app" ]; then
brew install --cask --no-quarantine --quiet cloudflare-warp
else
logg info 'Cloudflare WARP already installed'
fi
elif [ '{{ .host.distro.id }}' = 'debian' ]; then
### Add CloudFlare WARP desktop app apt-get source
if [ ! -f /etc/apt/sources.list.d/cloudflare-client.list ]; then
logg info 'Adding CloudFlare WARP keyring'
curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
logg info 'Adding apt source reference'
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
fi
### Update apt-get and install the CloudFlare WARP CLI
sudo apt-get update && sudo apt-get install -y cloudflare-warp
elif [ '{{ .host.distro.id }}' = 'ubuntu' ]; then
### Add CloudFlare WARP desktop app apt-get source
if [ ! -f /etc/apt/sources.list.d/cloudflare-client.list ]; then
logg info 'Adding CloudFlare WARP keyring'
curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
logg info 'Adding apt source reference'
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
fi
### Update apt-get and install the CloudFlare WARP CLI
sudo apt-get update && sudo apt-get install -y cloudflare-warp
elif command -v dnf > /dev/null && command -v rpm > /dev/null; then
### This is made for CentOS 8 and works on Fedora 36 (hopefully 36+ as well) with `nss-tools` as a dependency
sudo dnf instal -y nss-tools || NSS_TOOL_EXIT=$?
if [ -n "$NSS_TOOL_EXIT" ]; then
logg warn 'Unable to install nss-tools which was a requirement on Fedora 36 and assumed to be one on other systems as well.'
fi
### According to the download site, this is the only version available for RedHat-based systems
sudo rpm -ivh https://pkg.cloudflareclient.com/cloudflare-release-el8.rpm || RPM_EXIT_CODE=$?
if [ -n "$RPM_EXIT_CODE" ]; then
logg error 'Unable to install CloudFlare WARP using RedHat 8 RPM package'
fi
fi
fi
### Ensure certificate is installed
# Source: https://developers.cloudflare.com/cloudflare-one/static/documentation/connections/Cloudflare_CA.crt
# Source: https://developers.cloudflare.com/cloudflare-one/static/documentation/connections/Cloudflare_CA.pem
if [ -d /System ] && [ -d /Applications ] && command -v warp-cli > /dev/null; then
### Ensure certificate installed on macOS
if [ -z "$SSH_CONNECTION" ]; then
# if [ -z "$HEADLESS_INSTALL" ]; then
# logg info '**macOS Manual Security Permission** Requesting security authorization for Cloudflare trusted certificate'
# sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.crt"
# fi
logg info 'Updating the OpenSSL CA Store to include the Cloudflare certificate'
echo | sudo tee -a "$SSL_CERT_PATH" < "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" > /dev/null
echo "" | sudo tee -a "$SSL_CERT_PATH"
else
logg warn 'Session is SSH so adding Cloudflare encryption key to trusted certificates via the security program is being bypassed since it requires Touch ID / Password verification.'
fi
if [ -f "/usr/local/opt/openssl@3/bin/c_rehash" ]; then
# Location on Intel macOS
logg info 'Ensuring /usr/local/etc/openssl@3/certs directory exists' && mkdir -p /usr/local/etc/openssl@3/certs
logg info 'Adding Cloudflare certificate to /usr/local/etc/openssl@3/certs/Cloudflare_CA.pem'
echo | sudo cat - "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" >> /usr/local/etc/openssl@3/certs/Cloudflare_CA.pem
logg info 'Running /usr/local/opt/openssl@3/bin/c_rehash'
/usr/local/opt/openssl@3/bin/c_rehash > /dev/null && logg info 'OpenSSL certificate rehash successful'
elif [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/opt/openssl@3/bin/c_rehash" ]; then
# Location on arm64 macOS and custom Homebrew locations
logg info "Ensuring ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs directory exists" && mkdir -p "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs"
logg info "Adding Cloudflare certificate to ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs/Cloudflare_CA.pem"
echo | sudo cat - "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" >> "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/openssl@3/certs/Cloudflare_CA.pem"
logg info "Running ${HOMEBREW_PREFIX:-/opt/homebrew}/opt/openssl@3/bin/c_rehash"
"${HOMEBREW_PREFIX:-/opt/homebrew}/opt/openssl@3/bin/c_rehash" > /dev/null && logg info 'OpenSSL certificate rehash successful'
else
logg warn 'Unable to add Cloudflare_CA.pem because /usr/local/etc/openssl@3/certs and /opt/homebrew/etc/openssl@3/certs do not exist!'
fi
elif command -v warp-cli > /dev/null; then
# System is Linux
if command -v dpkg-reconfigure > /dev/null; then
if [ -d /usr/local/share/ca-certificates ]; then
logg info 'Copying CloudFlare Teams PEM file to /usr/local/share/ca-certificates/Cloudflare_CA.crt'
sudo cp -f "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" /usr/local/share/ca-certificates/Cloudflare_CA.crt
logg info 'dpkg-reconfigure executable detected so using Debian/Ubuntu method of updating system trusted certificates to include CloudFlare Teams certificate'
sudo dpkg-reconfigure ca-certificates -p high
SSL_CERT_PATH="/etc/ssl/certs/ca-certificates.crt"
else
logg warn 'No /usr/local/share/ca-certificates folder present'
fi
elif command -v update-ca-trust > /dev/null; then
if [ -d /etc/pki/ca-trust/source/anchors ]; then
logg info 'Copying CloudFlare Teams certificates to /etc/pki/ca-trust/source/anchors'
sudo cp -f "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.crt" "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" /etc/pki/ca-trust/source/anchors
logg info 'update-ca-trust executable detected so using CentOS/Fedora method of updating system trusted certificates to include CloudFlare Teams certificate'
sudo update-ca-trust
SSL_CERT_PATH="/etc/pki/tls/certs/ca-bundle.crt"
else
logg warn '/etc/pki/ca-trust/source/anchors does not exist so skipping the system certificate update process'
fi
fi
fi
if command -v warp-cli > /dev/null; then
### Application certificate configuration
# Application-specific certificate authority modification is currently commented out because
# it is merely for traffic inspection and `npm install` fails when configured to use the CloudFlare
# certificate and the WARP client is not running.
### Git
if command -v git > /dev/null; then
logg info "Configuring git to use $SSL_CERT_PATH"
git config --global http.sslcainfo "$SSL_CERT_PATH"
fi
### NPM
if command -v npm > /dev/null; then
logg info "Configuring npm to use $SSL_CERT_PATH"
npm config set cafile "$SSL_CERT_PATH"
fi
### Python
if command -v python3 > /dev/null; then
### Ensure Certifi package is available globally
if ! pip3 list | grep certifi > /dev/null; then
if command -v brew > /dev/null; then
logg info 'Ensuring Python certifi is installed via Homebrew'
brew install --quiet python-certifi
else
logg info 'Ensuring certifi is installed globally for Python 3'
pip3 install certifibrew link --overwrite python-certifi
fi
fi
### Copy CloudFlare PEM file to Python 3 location
logg info "Configuring python3 / python to use "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem""
echo | cat - "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" >> $(python3 -m certifi)
fi
### Google Cloud SDK
if command -v gcloud > /dev/null; then
logg info "Configuring gcloud to use "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" and "$HOME/.local/etc/ssl/gcloud/ca.pem""
mkdir -p "$HOME/.local/etc/ssl/gcloud"
cat "$HOME/.local/etc/ssl/curl/cacert.pem" "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" > "$HOME/.local/etc/ssl/gcloud/ca.pem"
gcloud config set core/custom_ca_certs_file "$HOME/.local/etc/ssl/gcloud/ca.pem"
fi
### Google Drive for desktop (macOS)
if [ -d "/Applications/Google Drive.app" ]; then
if [ -d "/Applications/Google Drive.app/Contents/Resources" ]; then
logg info "Combining Google Drive roots.pem with CloudFlare certificate"
mkdir -p "$HOME/.local/etc/ssl/google-drive"
cat "$HOME/.local/etc/ssl/cloudflare/Cloudflare_CA.pem" "/Applications/Google Drive.app/Contents/Resources/roots.pem" >> "$HOME/.local/etc/ssl/google-drive/roots.pem"
sudo defaults write /Library/Preferences/com.google.drivefs.settings TrustedRootsCertsFile -string "$HOME/.local/etc/ssl/google-drive/roots.pem"
else
logg warn 'Google Drive.app installed but roots.pem is not available yet'
fi
fi
### Ensure MDM settings are applied (deletes after reboot on macOS)
### TODO: Ensure `.plist` can be added to `~/Library/Managed Preferences` and not just `/Library/Managed Preferences`
# Source: https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/
# Source for JumpCloud: https://developers.cloudflare.com/cloudflare-one/static/documentation/connections/CloudflareWARP.mobileconfig
if [ -d /System ] && [ -d /Applications ]; then
sudo cp -f "$HOME/Library/Managed Preferences/com.cloudflare.warp.plist" '/Library/Managed Preferences/com.cloudflare.warp.plist'
sudo plutil -convert binary1 '/Library/Managed Preferences/com.cloudflare.warp.plist'
### Enable CloudFlare WARP credentials auto-populate (since file is deleted when not managed with MDM)
if [ -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" ] && [ ! -f "/Library/LaunchDaemons/com.cloudflare.warp.plist" ]; then
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" '/Library/LaunchDaemons/com.cloudflare.warp.plist'
sudo launchctl load "/Library/LaunchDaemons/com.cloudflare.warp.plist"
fi
elif [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/warp/mdm.xml" ]; then
sudo mkdir -p /var/lib/cloudflare-warp
sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/warp/mdm.xml" /var/lib/cloudflare-warp/mdm.xml
fi
### Register CloudFlare WARP
if warp-cli --accept-tos status | grep 'Registration missing' > /dev/null; then
logg info 'Registering CloudFlare WARP'
warp-cli --accept-tos register
else
logg info 'Either there is a misconfiguration or the device is already registered with CloudFlare WARP'
fi
### Connect CloudFlare WARP
if warp-cli --accept-tos status | grep 'Disconnected' > /dev/null; then
logg info 'Connecting to CloudFlare WARP'
warp-cli --accept-tos connect > /dev/null && logg success 'Connected to CloudFlare WARP'
else
logg info 'Either there is a misconfiguration or the device is already connected with CloudFlare WARP'
fi
else
logg warn 'warp-cli was not installed so CloudFlare WARP cannot be joined'
fi
# Needs tuning - possibly unrelated, but internet wasn't working on Ubuntu after installing this and removed it during debugging
# ansible: professormanhattan.warp
apt: cloudflare-warp
cask: cloudflare-warp
choco: warp
warp-terminal:
_app: Warp.app
_bin: warp
_desc: Warp is a blazingly-fast modern Rust based GPU-accelerated terminal built to make you and your team more productive.
_docs: https://docs.warp.dev/getting-started/readme
_env:
WARP_TERMINAL_APPDATA:
cask: $HOME/Library/Application Support/dev.warp.Warp-Stable
_github: https://github.com/warpdotdev/Warp
_home: https://www.warp.dev/
_name: Warp Terminal
_short: "Warp is a tool that simplifies the development workflow by providing a unified interface for managing multiple development environments. "
appimage: https://app.warp.dev/get_warp?linux=true&package=appimage
apt: https://app.warp.dev/get_warp?package=deb
cask: warp
dnf: https://app.warp.dev/get_warp?package=rpm
pacman: https://app.warp.dev/get_warp?linux=true&package=pacman
warp-transfer:
_bin: warp-transfer
_github: false
flatpak: app.drey.Warp
watchexec:
_bin: watchexec
_desc: Executes commands in response to file modifications.
_docs: https://watchexec.github.io/docs/glob-patterns.html
_github: https://github.com/watchexec/watchexec
_home: https://watchexec.github.io/
_name: Watchexec
_short: "watchexec is a tool that watches files and runs a command when they change. "
apk: watchexec
baulk: watchexec
brew: watchexec
cargo: watchexec-cli
choco: watchexec
emerge: watchexec
nix: watchexec
pacman: watchexec
scoop: watchexec
xbps: watchexec
watchman:
_bin: watchman
_desc: "[Watchman](https://github.com/facebook/watchman), an open-source Facebook product, can be used to watch files and record when they change. It can also trigger actions when matching files change."
_github: https://github.com/facebook/watchman
_name: Watchman
_short: "Watchman is a tool by Facebook for watching changes in the filesystem. "
ansible: professormanhattan.watchman
brew: watchman
choco: watchman
port: watchman
scoop: watchman
waypoint:
_bin: waypoint
_desc: "[HashiCorp Waypoint](https://www.waypointproject.io/) allows developers to deploy, manage, and observe their applications through a consistent abstraction of underlying infrastructure. Waypoint works with Kubernetes, ECS and many other platforms."
_docs: https://developer.hashicorp.com/waypoint/docs
_github: https://github.com/hashicorp/waypoint
_home: https://www.waypointproject.io/
_name: HashiCorp Waypoint
_short: "Waypoint is a tool by HashiCorp for building, deploying, and releasing applications across any platform. "
ansible: professormanhattan.waypoint
brew: hashicorp/tap/waypoint
scoop: waypoint
wazuh:
_bin: wazuh-agentd
_desc: "[Wazuh](https://wazuh.com/) is a free, open source and enterprise-ready security monitoring solution for threat detection, integrity monitoring, incident response and compliance."
_docs: https://documentation.wazuh.com/current/index.html
_github: https://github.com/wazuh/wazuh
_home: https://wazuh.com/
_name: Wazuh
_service:linux: wazuh-agent
_service:windows: wazuh-agent
_short: "Wazuh is an open-source security monitoring platform that can be used for threat detection, integrity monitoring, and incident response. "
_when:darwin: "csrutil status | grep enabled > /dev/null && ! test -f /Library/Ossec/bin/agent-auth"
_when:linux: "! test -f /var/ossec/bin/agent-auth"
_when:windows: '! test -f "C:\Program Files (x86)\ossec-agent\agent-auth.exe"'
choco: wazuh-agent
script:darwin: if ! csrutil status | grep enabled > /dev/null; then cd /tmp && curl -sSL https://packages.wazuh.com/4.x/macos/wazuh-agent-4.4.4-1.pkg > wazuh-agent.pkg && sudo launchctl setenv WAZUH_MANAGER "$WAZUH_MANAGER" && sudo installer -pkg wazuh-agent.pkg -target / && sudo chmod 755 /Library/Ossec && sudo chmod 755 /Library/Ossec/bin && rm /tmp/wazuh-agent.pkg && sudo wazuh-control start; else echo "WARNING - Skipping Wazuh Agent installation because System Integrity Protection is enabled. Disabling it requires booting into recovery and running csrutil disable, installing Wazuh Agent normally, and then re-enabling it again in recovery mode."; fi
script:linux: if command -v apt-get > /dev/null; then curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && sudo chmod 644 /usr/share/keyrings/wazuh.gpg && echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee -a /etc/apt/sources.list.d/wazuh.list && sudo apt-get update && sudo apt-get install -y wazuh-agent; elif command -v dnf > /dev/null; then echo "[wazuh]" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "enabled=1" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "name=EL-\$releasever - Wazuh" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "baseurl=https://packages.wazuh.com/4.x/yum/" | sudo tee -a /etc/yum.repos.d/wazuh.repo && echo "protect=1" | sudo tee -a /etc/yum.repos.d/wazuh.repo && sudo rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH && sudo dnf install -y wazuh-agent; elif command -v zypper > /dev/null; then echo "[wazuh]" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "gpgcheck=1" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "enabled=1" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "name=EL-$releasever - Wazuh" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "baseurl=https://packages.wazuh.com/4.x/yum/" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && echo "protect=1" | sudo tee -a /etc/zypp/repos.d/wazuh.repo && sudo rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH && sudo zypper install -y wazuh-agent; elif command -v apk > /dev/null; then sudo wget -O /etc/apk/keys/alpine-devel@wazuh.com-633d7457.rsa.pub https://packages.wazuh.com/key/alpine-devel%40wazuh.com-633d7457.rsa.pub && echo "https://packages.wazuh.com/4.x/alpine/v3.12/main" | sudo tee -a /etc/apk/repositories && sudo apk update && sudo apk add wazuh-agent; fi
web-ext:
_bin: web-ext
_desc: "web-ext is a command-line tool provided by Mozilla for developing, testing, and packaging WebExtensions for Firefox. It simplifies the process of creating and testing extensions by providing commands to\nrun, build, and package extensions. It supports features like hot reloading for quick testing, linting for code quality checks, and the ability to run tests in multiple Firefox versions. This tool is \nuseful for developers working on Firefox extensions as it streamlines the development workflow and helps ensure compatibility with different Firefox versions. "
_github: https://github.com/mozilla/web-ext
_name: Web Extension CLI by Mozilla
_short: "web-ext is a command-line tool for developing web extensions for Firefox. "
npm: web-ext
web-font-generator:
_bin: web-font-generator
_desc: "webfont-kit-generator is a tool available on GitHub created by Rafael Mardojai that allows users to easily generate web font kits. This tool simplifies the process of converting fonts into various web \nfont formats like WOFF, WOFF2, EOT, and TTF, making it convenient for web developers to integrate custom fonts into their projects. It provides a straightforward way to create font kits by uploading \nfont files and then downloading the generated web font kit containing all the necessary font formats for web usage. "
_github: https://github.com/rafaelmardojai/webfont-kit-generator
_name: "webfont-kit-generator "
_short: "webfont-kit-generator is a tool on GitHub by rafaelmardojai for generating web font kits. "
flatpak: com.rafaelmardojai.WebfontKitGenerator
webpquicklook:
_desc: "WebPQuickLook is a QuickLook plugin for macOS that enables previewing WebP image files in Finder. This plugin allows users to view WebP images without having to open them in a separate application, \nproviding a convenient way to quickly glance at the contents of WebP files. It enhances the user experience by seamlessly integrating WebP file previews into the macOS Finder interface. "
_github: https://github.com/emin/WebPQuickLook
_name: QLWebP
_short: "WebPQuickLook is a Quick Look plugin for macOS that enables previewing WebP image files in Finder. "
_when:cask: '! test -d "$HOME/Library/QuickLook/WebpQuickLook.qlgenerator"'
cask: webpquicklook
websocat:
_bin: websocat
_desc: CLI for interacting with web sockets
_github: https://github.com/vi/websocat
_name: websocat
_short: "websocat is a command-line tool that provides a bidirectional bridge between WebSockets and standard input/output in Unix-like systems. "
brew: websocat
cargo: websocat
github: github.com/vi/websocat
pkg: websocat
port: websocat
webtorrent:
_app: WebTorrent.app
_bin: webtorrent
_desc: Streaming torrent app for Mac, Windows, and Linux
_github: https://github.com/webtorrent/webtorrent-desktop
_home: webtorrent.io/desktop
_name: WebTorrent Desktop
_short: "webtorrent-desktop is a streaming torrent client for the web browser and the desktop. "
cask: webtorrent
choco: webtorrent-desktop
flatpak: io.webtorrent.WebTorrent
github: github.com/webtorrent/webtorrent-desktop
yay: webtorrent-desktop
wego:
_bin: wego
_desc: "wego is a weather client for the terminal. It provides current weather conditions and forecasts in a simple and visually appealing way. It supports various backends for weather data retrieval and can \ndisplay information like temperature, wind speed, humidity, and more. Users can customize the output to suit their preferences and even view weather maps. It's a lightweight and convenient tool for \nchecking the weather directly from the command line. "
_github: https://github.com/schachmat/wego
_name: WeGo
_short: "wego is a terminal weather app for the terminal. "
brew: wego
go: github.com/schachmat/wego@latest
wetty:
_bin: wetty
_desc: "Wetty is a web-based terminal emulator that allows users to access a terminal session through a web browser. It is particularly useful for remote administration tasks or providing terminal access to \nusers without needing to install additional software. Wetty is based on Node.js and uses WebSockets to communicate between the browser and the server. It provides a simple and lightweight way to access \na terminal interface over the web securely. "
_github: https://github.com/butlerx/wetty
_name: Wetty
_short: "Wetty is a web-based terminal emulator that allows users to access a terminal session through a web browser. "
npm: wetty
wget:
_bin: wget
_desc: The [wget](https://www.gnu.org/software/wget/) command is a command line utility for downloading files from the Internet. It supports downloading multiple files, downloading in the background, resuming downloads, limiting the bandwidth used for downloads and viewing headers.
_github: false
_home: https://www.gnu.org/software/wget/
_name: wget
ansible: professormanhattan.wget
apk: wget
apt: wget
brew: wget
dnf: wget
whalebrew:
_bin: whalebrew
_desc: Homebrew, but with Docker images (see https://github.com/whalebrew/whalebrew-packages for available packages)
_docs: https://github.com/whalebrew/whalebrew#usage
_github: https://github.com/whalebrew/whalebrew
_home: https://github.com/whalebrew/whalebrew
_name: Whalebrew
_short: "Whalebrew is a tool that allows you to create and run Docker containers as if they were native commands. "
brew: whalebrew
script:darwin: curl -L "https://github.com/whalebrew/whalebrew/releases/download/0.4.0/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew
script:linux: curl -L "https://github.com/whalebrew/whalebrew/releases/download/0.4.0/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew
what-ip:
_bin: whatip
_github: false
_gitlab: https://gitlab.gnome.org/GabMus/whatip
flatpak: org.gabmus.whatip
whereami:
_bin: whereami
_desc: "whereami is a command-line tool for macOS that retrieves your current location using Apple's CoreLocation framework. It provides latitude, longitude, and a human-readable address. This tool can be \nuseful for scripting or automation tasks that require location-based information on a macOS system. It's a simple and lightweight utility that can be easily integrated into various workflows. "
_github: https://github.com/rafaelrinaldi/whereami
_name: Where Am I?
_short: "whereami is a command-line tool that displays your current location using Apple's CoreLocation framework. "
npm: "@rafaelrinaldi/whereami"
wifi-password:
_bin: wifi-password
_desc: Get the password of the wifi you're on
_github: https://github.com/rauchg/wifi-password
_name: wifi-password
_short: "wifi-password is a simple command-line tool for retrieving the current WiFi password on macOS. "
bpkg: rauchg/wifi-password
brew:darwin: wifi-password
npm: wifi-password-cli
windows-adk:
_bin: null
_desc: "[Windows ADK](https://www.microsoft.com/en-us/windows-server/windows-admin-center) was unveiled by Microsoft on September 14, 2017 as the necessary evolution of the Windows Server graphical user interface. Windows ADK offers a flexible, locally-deployed, browser-based management platform and tools. The idea behind this project is to help simplify the management of servers by placing a majority of the frequently referenced tools used by system administrators in one spot. You can run it on both Windows 10 and Windows Server."
_docs: https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install
_github: false
_home: https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install
_name: Windows ADK
ansible:windows: professormanhattan.windowsadk
choco: windows-adk
windows-admin-center:
_bin: null
_desc: "[Windows Admin Center](https://www.microsoft.com/en-us/windows-server/windows-admin-center) was unveiled by Microsoft on September 14, 2017 as the necessary evolution of the Windows Server graphical user interface. Windows Admin Center offers a flexible, locally-deployed, browser-based management platform and tools. The idea behind this project is to help simplify the management of servers by placing a majority of the frequently referenced tools used by system administrators in one spot. You can run it on both Windows 10 and Windows Server."
_docs: https://github.com/MicrosoftDocs/windowsserverdocs/blob/main/WindowsServerDocs/manage/windows-admin-center/overview.md
_github: false
_home: https://www.microsoft.com/en-us/windows-server/windows-admin-center
_name: Windows Admin Center
ansible:windows: professormanhattan.windowsadmincenter
choco: windows-admin-center
windows-power-toys:
_bin: null
_desc: "[Microsoft PowerToys](https://docs.microsoft.com/en-us/windows/powertoys/) is a set of utilities for Windows power-users to tune and streamline their Windows 10 experience for greater productivity. It includes tools like a Color Picker, File Explorer add-ons, Keyboard Manager, Shortcut Guide, and more."
_docs: https://learn.microsoft.com/en-us/windows/powertoys/
_github: https://github.com/microsoft/PowerToys
_home: https://learn.microsoft.com/en-us/windows/powertoys/
_name: Microsoft PowerToys
_short: "PowerToys is a set of utilities for power users to tune and streamline their Windows experience. "
ansible:windows: professormanhattan.windowspowertoys
choco: powertoys
scoop: powertoys
winrm-cli:
_bin: winrm-cli
_desc: Command-line tool to remotely execute commands on Windows machines through WinRM
_docs: https://github.com/masterzen/winrm-cli
_github: https://github.com/masterzen/winrm-cli
_home: https://github.com/masterzen/winrm-cli
_name: winrm-cli
_short: "winrm-cli is a command-line tool for interacting with Windows Remote Management (WinRM) services. "
go: github.com/masterzen/winrm-cli@latest
yay: winrm-cli-git
winui-gallery:
_desc: "WinUI-Gallery is a repository on GitHub maintained by Microsoft that showcases the capabilities of WinUI, a user interface framework for Windows apps. It contains sample code, demos, and examples to \nhelp developers understand and utilize WinUI features effectively. The gallery provides a visual representation of different UI components and controls available in WinUI, making it a valuable resource \nfor developers looking to create modern and responsive Windows applications. "
_github: https://github.com/microsoft/WinUI-Gallery
_name: WinUI Gallery
_short: "WinUI-Gallery is a showcase of Microsoft's Windows UI Library controls and features for building modern Windows apps. "
winapp: winui-3-gallery/9P3JFPWWDZRC
wipe-modules:
_bin: wipe-modules
_desc: "wipe-modules is a tool available on GitHub at https://github.com/bntzio/wipe-modules. It is designed to help clean up and remove node_modules directories from your projects. This can be useful for \nsaving disk space or starting fresh with dependencies. The tool provides options to selectively remove node_modules directories based on criteria like size, last accessed time, or a combination of both.\nIt's a handy utility for managing dependencies in Node.js projects efficiently. "
_github: https://github.com/bntzio/wipe-modules
_name: wipe-modules
_short: "wipe-modules is a tool that removes all node_modules directories from your project, helping to clean up unnecessary files and save disk space. "
npm: wipe-modules
wireguard-client:
_app: WireGuard.app
_bin: wireguard-client
_deps:
- wireguard-tools
_desc: "The repository https://github.com/WireGuard/wireguard-monolithic-historical contains the historical development of the WireGuard VPN protocol in a monolithic format. It includes the entire history of \nthe project in a single repository, making it easier to track changes and revisions over time. This repository is useful for developers and researchers who want to explore the evolution of WireGuard \nfrom its inception to its current state. "
_github: https://github.com/WireGuard/wireguard-monolithic-historical
_name: WireGuard Client
_short: "WireGuard is a fast, modern VPN that utilizes state-of-the-art cryptography. The repository wireguard-monolithic-historical contains historical snapshots of the WireGuard codebase. "
choco: wireguard
mas: 1451685025
scoop: wireguard-np
wireguard-tools:
_bin: wg
_desc: "WireGuard Tools Repository \n\nThe WireGuard Tools repository is the official collection of tools for the WireGuard VPN protocol. It includes utilities for configuring and managing WireGuard tunnels on various platforms. The tools \nare designed to be lightweight, secure, and easy to use, making them popular for setting up secure VPN connections. The repository is actively maintained by the WireGuard development team and is open \nsource, allowing users to contribute, report issues, and stay up to date with the latest developments in the WireGuard ecosystem. "
_github: https://github.com/WireGuard/wireguard-tools
_name: WireGuard Tools
_post: |
#!/usr/bin/env bash
# @file macOS WireGuard Profiles
# @brief Installs WireGuard VPN profiles on macOS devices
# @description
# This script installs WireGuard VPN profiles on macOS. It scans `${XDG_CONFIG_HOME:-$HOME/.config}/vpn` for all the `*.conf` files
# and then copies those profiles to `/etc/wireguard`. It also performs a couple preparation tasks like ensuring the target
# WireGuard system configuration file directory exists and is assigned the proper permissions.
#
# ## Creating VPN Profiles
#
# More details on embedding your VPN profiles into your Install Doctor fork can be found by reading the [Secrets documentation](https://install.doctor/docs/customization/secrets#vpn-profiles).
#
# ## TODO
#
# * Populate Tunnelblick on macOS using the VPN profiles located in `${XDG_CONFIG_HOME:-$HOME/.config}/vpn`
# * For the Tunnelblick integration, ensure the username / password is populated from the `OVPN_USERNAME` and `OVPN_PASSWORD` variables
#
# ## Links
#
# * [VPN profile folder](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/vpn)
# * [VPN profile documentation](https://install.doctor/docs/customization/secrets#vpn-profiles)
# TODO - Populate Tunnelblick on macOS using the .ovpn profiles located in $HOME/.config/vpn (execpt in the `openvpn` entry of software.yml)
# along with the secrets for the protonVPN OpenVPN (check vpn-linux.tmpl)
### Backs up previous network settings to `/Library/Preferences/com.apple.networkextension.plist.old` before applying new VPN profiles
if [ -f /Library/Preferences/com.apple.networkextension.plist ] && [ ! -f "/Library/Preferences/com.apple.networkextension.plist.old" ]; then
logg info 'Backing up /Library/Preferences/com.apple.networkextension.plist to /Library/Preferences/com.apple.networkextension.plist.old'
sudo cp -f /Library/Preferences/com.apple.networkextension.plist /Library/Preferences/com.apple.networkextension.plist.old
else
logg info 'The /Library/Preferences/com.apple.networkextension.plist does not exist or is already backed up to com.apple.networkextension.plist.old'
fi
### Ensures the `/etc/wireguard` directory exists and has the lowest possible permission-level
if [ ! -d /etc/wireguard ]; then
logg info 'Creating /etc/wireguard since it does not exist yet'
sudo mkdir -p /etc/wireguard
sudo chmod 600 /etc/wireguard
fi
### TODO - Should adding the .conf files to /etc/wireguard only be done on macOS or is this useful on Linux as well?
### Cycles through the `*.conf` files in `${XDG_CONFIG_HOME:-$HOME/.config}/vpn` and adds them to the `/etc/wireguard` folder
find "${XDG_CONFIG_HOME:-$HOME/.config}/vpn" -mindepth 1 -maxdepth 1 -type f -name "*.conf" | while read WG_CONF; do
WG_FILE="$(basename "$WG_CONF")"
logg info 'Adding '"$WG_FILE"' to /etc/wireguard'
sudo cp -f "$WG_CONF" "/etc/wireguard/$WG_FILE"
done
_short: "WireGuard Tools is a set of utilities for configuring and managing the WireGuard VPN protocol. "
apk: wireguard-tools
apt: wireguard
brew: wireguard-tools
dnf: wireguard-tools
emerge: wireguard-tools
nix: nixpkgs.wireguard-tools
opkg: wireguard
pacman: wireguard-tools
port: wireguard-tools
slackpkg: wireguard-tools
zypper: wireguard-tools
wireshark:
_app: Wireshark.app
_bin: wireshark-gui
_desc: "[Wireshark](https://www.wireshark.org/) is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, the project was renamed Wireshark in May 2006 due to trademark issues."
_docs: https://www.wireshark.org/docs/
_github: https://github.com/wireshark/wireshark
_home: https://www.wireshark.org/
_name: Wireshark
_pre:cask: |
#!/usr/bin/env bash
if command -v idl2wrs > /dev/null; then brew uninstall wireshark; fi
_short: "Wireshark is a popular network protocol analyzer used for troubleshooting, analysis, development, and education in the networking field. "
apt: wireshark
cask: wireshark
choco: wireshark
dnf:
- wireshark
- wireshark-cli
flatpak: org.wireshark.Wireshark
pacman:
- wireshark-cli
- wireshark-qt
wishlist:
_bin: wishlist
_desc: TUI for listing definitions defined in the SSH directory
_docs: https://github.com/charmbracelet/wishlist
_github: https://github.com/charmbracelet/wishlist
_home: https://charm.sh
_name: Wishlist
_short: "wishlist is a command-line utility for managing wishlists in a simple and efficient manner. "
brew: charmbracelet/tap/wishlist
nix-env: nixpkgs.wishlist
scoop: wishlist
yay: wishlist-bin
wkhtmltopdf:
_bin: wkhtmltopdf
_desc: "[wkhtmltopdf](https://github.com/wkhtmltopdf/wkhtmltopdf) is a command line tool to render HTML into PDF and various image formats using the QT Webkit rendering engine."
_github: https://github.com/wkhtmltopdf/wkhtmltopdf
_name: wkhtmltopdf
_short: "wkhtmltopdf is a command line tool to convert HTML to PDF using WebKit rendering engine. "
apt: wkhtmltopdf
cask: wkhtmltopdf
choco: wkhtmltopdf
github: github.com/wkhtmltopdf/wkhtmltopdf
pacman: wkhtmltopdf
wordops:
_bin: wo
_desc: Install and manage a high performance WordPress stack with a few keystrokes
_docs: https://docs.wordops.net/
_github: https://github.com/WordOps/WordOps
_home: https://wordops.net/
_name: WordOps
_short: "WordOps is a high-performance server stack for WordPress sites, designed to simplify and automate server management tasks. "
script:debian: wget -qO wo wops.cc && sudo bash wo
wordpresscom:
_bin: wordpresscom
_github: false
_name: WordPress Jetpack Desktop Client
_notes: TODO - Add options for Linux installations. A .deb is available officially but was behind login screen on the official website https://wordpress.com/me/get-apps. A .tar.gz is available for other Linux platforms that should be added as a _script.
cask: wordpresscom
choco: wordpress-com-for-desktop
wordpressify:
_bin: wordpressify
_desc: A build system designed to automate your WordPress development workflow
_docs: https://www.wordpressify.co/docs
_github: https://github.com/luangjokaj/wordpressify
_home: https://www.wordpressify.co/
_name: wordpressify
_short: "wordpressify is a tool for quickly setting up WordPress development environments. "
npm: wordpressify
wp-cli:
_bin: wp
_desc: "[WP-CLI](https://wp-cli.org/) is the command-line interface for [WordPress](https://wordpress.org/). You can update plugins, configure multisite installations and much more. You can do all this without using a web browser."
_github: https://github.com/wp-cli/wp-cli
_home: https://wp-cli.org/
_name: WP-CLI
_short: "WP-CLI is a command-line interface for WordPress, allowing users to manage WordPress installations from the terminal. "
ansible:darwin: professormanhattan.wpcli
ansible:linux: professormanhattan.wpcli
brew: wp-cli
wpfui:
_desc: "lepoco/wpfui is a GitHub repository that contains code for a WPF (Windows Presentation Foundation) UI library. It likely includes components, styles, and utilities for building user interfaces in WPF \napplications. The repository may provide pre-built UI elements or templates to help developers create visually appealing and functional interfaces for their WPF projects. It's a resource that can save \ntime and effort in designing and implementing UI elements in WPF applications. "
_github: https://github.com/lepoco/wpfui
_name: WPF UI
_short: "lepoco/wpfui is a repository containing WPF (Windows Presentation Foundation) UI controls for creating desktop applications in C#. "
winapp: wpf-ui/9N9LKV8R9VGM
winget: WPF UI
wrangler:
_bin: wrangler
_desc: wrangler is a CLI tool designed for folks who are interested in using Cloudflare Workers. Deploy serverless code instantly across the globe to give it exceptional performance, reliability, and scale.
_docs: https://developers.cloudflare.com/workers/
_github: https://github.com/cloudflare/wrangler
_home: https://workers.cloudflare.com/
_name: wrangler
_short: "Wrangler is a tool for building, deploying, and managing Cloudflare Workers, allowing developers to run their code on Cloudflare's global network. "
brew: cloudflare-wrangler2
npm: wrangler
wrk:
_bin: wrk
_desc: "[wrk](https://github.com/reconquest/wrk) is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and kqueue"
_docs: https://github.com/blangel/wrk
_github: https://github.com/wg/wrk
_home: https://github.com/blangel/wrk
_name: wrk
_short: "wrk is a modern HTTP benchmarking tool designed for high performance. "
ansible: professormanhattan.wrk
apt: wrk
brew: wrk
pacman: wrk
port: wrk
xbps: wrk
wsl:
_bin: null
_desc: Sets up Windows Subsystem For Linux
_github: false
_name: wsl
ansible: professormanhattan.wsl
x64dbg:
_bin: x64dbg
_desc: An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.
_docs: https://github.com/x64dbg/x64dbg/wiki
_github: https://github.com/x64dbg/x64dbg
_home: https://x64dbg.com/
_name: x64dbg
_short: "x64dbg is an open-source debugger for Windows, supporting both x86 and x64 architectures. "
choco: x64dbg.portable
scoop: extras/x64dbg
xcode:
_app: Xcode.app
_bin: xcode
_deps:script:darwin:
- xcodeinstall
_desc: "[Xcode](https://developer.apple.com/xcode/) is Apple's integrated development environment for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS."
_docs: https://developer.apple.com/documentation/xcode
_github: false
_home: https://developer.apple.com/xcode/
_name: XCode
_post: |
#!/usr/bin/env bash
sudo xcodebuild -license accept && sudo xcodebuild -runFirstLaunch
mas: 497799835
xcodeinstall:
_bin: xcodeinstall
_desc: "xcodeinstall is a tool available on GitHub at https://github.com/sebsto/xcodeinstall that simplifies the installation and management of Xcode on macOS systems. It allows users to easily download and \ninstall different versions of Xcode from the command line, which can be useful for developers who need to switch between Xcode versions for compatibility testing or other purposes. The tool provides a \nconvenient way to automate the process of managing Xcode installations on macOS systems. "
_github: https://github.com/sebsto/xcodeinstall
_name: Xcode Install
_short: "xcodeinstall is a tool for installing Xcode command line tools and simulators without needing to install the full Xcode IDE. "
brew: sebsto/macos/xcodeinstall
xcodes:
_bin: xcodes
_desc: CLI utility to download, install, and switch to alternate versions of Xcode
_docs: https://github.com/XcodesOrg/xcodes
_github: https://github.com/XcodesOrg/xcodes
_home: https://github.com/XcodesOrg/xcodes
_name: Xcodes
_short: "Xcodes is a tool that simplifies the installation and management of Xcode versions on macOS systems. "
brew:darwin: xcodesorg/made/xcodes
xcodes-app:
_app: Xcodes.app
_bin: null
_desc: macOS desktop app that allows you to download, install, and switch to alternate versions of Xcode
_docs: https://github.com/XcodesOrg/XcodesApp
_github: https://github.com/XcodesOrg/XcodesApp
_home: https://github.com/XcodesOrg/XcodesApp
_name: Xcodes App
_short: "XcodesApp is a GitHub repository for XcodesOrg, likely related to Xcode development tools for MacOS/iOS. "
cask: xcodes
xcpretty:
_bin: xcpretty
_desc: "xcpretty is a fast and flexible tool for formatting Xcode build output. It processes the output of xcodebuild and makes it more readable by colorizing and formatting it. This tool helps developers to \neasily spot warnings, errors, and other important information during the build process. It can be integrated into Continuous Integration systems to improve the visibility of build logs. Additionally, \nxcpretty supports plugins for further customization. Overall, xcpretty enhances the developer experience by providing a cleaner and more organized build output. "
_github: https://github.com/xcpretty/xcpretty
_name: xcpretty
_short: "xcpretty is a fast and flexible tool for formatting Xcode build output. "
gem:darwin: xcpretty
xdotool:
_bin: xdotool
_desc: "xdotool is a command-line tool for simulating keyboard input and mouse activity. It allows you to automate tasks by sending keystrokes, mouse clicks, and window manipulation commands. This tool is \nuseful for scripting repetitive tasks, creating macros, or controlling GUI applications from the command line. It can be particularly handy for automating interactions with graphical user interfaces on \nLinux systems. You can find more information and usage examples on its GitHub page: xdotool on GitHub. "
_github: https://github.com/jordansissel/xdotool
_name: xdotool
_post:brew:darwin: |
#!/usr/bin/env bash
defaults write org.x.X11 enable_test_extensions -boolean true
_short: "xdotool is a command-line tool for simulating keyboard input and mouse activity. "
apt: xdotool
brew: xdotool
dnf: xdotool
pacman: xdotool
pkg-freebsd: xdotool
port: xdotool
zypper: xdotool
xh:
_bin: xh
_desc: "xh is a command-line HTTP client written in Rust. It aims to be a more user-friendly alternative to curl and HTTPie. It supports features like syntax highlighting, JSON/XML parsing, and interactive \nmode. It is designed to be fast, lightweight, and easy to use for making HTTP requests and inspecting responses. The project is hosted on GitHub at https://github.com/ducaale/xh for further exploration \nand contribution. "
_github: https://github.com/ducaale/xh
_name: XH
_short: "xh is a fast and friendly tool for sending HTTP requests from the command line. "
apk: xh
apt: xh
brew: xh
cargo: xh
choco: xh
nix-env: nixpkgs.xh
pacman: xh
pkg-android: xh
pkg-freebsd: xh
scoop: xh
xhyve:
_bin: xhyve
_desc: "xhyve is a lightweight virtualization solution for macOS based on the Hypervisor.framework. It allows you to run Linux and other operating systems on a macOS host without the need for a full-fledged \nvirtual machine software like VirtualBox or VMware. xhyve provides a simple command-line interface for managing virtual machines and supports features like networking, file sharing, and snapshots. It is\ncommonly used by developers and system administrators for testing and development purposes. "
_github: https://github.com/machyve/xhyve
_name: xhyve
_notes: Has not been modified for several years and has been disabled on Homebrew
_short: "xhyve is a lightweight virtualization solution for macOS, allowing users to run Linux and other operating systems on their Mac machines. "
brew:darwin: xhyve
port: xhyve
xpanes:
_bin: xpanes
_desc: "tmux-xpanes is a tool that allows you to open multiple panes in a tmux window and send the same input to all of them simultaneously. It's useful for tasks like running the same command across multiple \nservers or monitoring multiple log files at once. With tmux-xpanes, you can easily create and manage layouts of tmux panes, making it a handy tool for improving productivity when working in terminal \nenvironments. "
_github: https://github.com/greymd/tmux-xpanes
_name: xpanes
_short: "tmux-xpanes is a Tmux plugin that allows you to create multiple panes in Tmux easily. "
apt: https://github.com/greymd/tmux-xpanes/releases/download/v4.1.4/tmux-xpanes_v4.1.4.deb
brew: tmux-xpanes
dnf: xpanes
script: curl -sSL --compressed https://raw.githubusercontent.com/greymd/tmux-xpanes/v4.1.4/bin/xpanes > /tmp/xpanes && sudo mv /tmp/xpanes /usr/local/bin/xpanes
xpra:
_app: Xpra.app
_bin: xpra
_desc: "Xpra is an open-source tool for remote desktop access, allowing users to run applications on a remote machine and display them on their local machine. It provides features like seamless windows, session\nsuspension, and more. Xpra supports various platforms and protocols, making it versatile for different use cases. The project is actively maintained on GitHub at https://github.com/Xpra-org/xpra, where \nusers can find the source code, documentation, and community support. "
_github: https://github.com/Xpra-org/xpra
_name: xpra
_short: "xpra is a tool for screen sharing and remote desktop control. "
cask: xpra
choco: xpra
exe: https://xpra.org/dists/windows/Xpra-x86_64_Setup.exe
flatpak: org.xpra.xpra
msi: https://xpra.org/dists/windows/Xpra-x86_64.msi
xrdp:
_bin: xrdp
_desc: "xrdp is an open-source remote desktop protocol (RDP) server that allows users to connect to a Linux machine using a Windows Remote Desktop client. It provides a graphical interface for remote access, \nenabling users to interact with their Linux system as if they were physically present. xrdp is commonly used for remote administration, accessing graphical applications, and desktop sharing. It is \ncompatible with various Linux distributions and offers features like session management, encryption, and customizability. The project is actively maintained by neutrinolabs on GitHub. "
_github: https://github.com/neutrinolabs/xrdp
_home: http://www.xrdp.org/
_name: xrdp
_note: Should work like professormanhattan.remotedesktop
_ports:
- port: 3389
proto: tcp
_post: |
#!/usr/bin/env bash
sudo adduser xrdp ssl-cert
_service: xrdp
_service:yay:
- xrdp
- xrdp-sesman
_short: "xrdp is an open-source remote desktop protocol (RDP) server for Linux. "
apt: xrdp
dnf: xrdp
pacman: xrdp
yay: xrdp
zypper: xrdp
xsv:
_bin: xsv
_desc: "xsv is a fast CSV command line toolkit written in Rust by BurntSushi. It allows for indexing, slicing, analyzing, splitting, and joining CSV files. With xsv, you can perform various operations on CSV \ndata efficiently from the command line. It is designed to handle large CSV files quickly and is useful for tasks like data cleaning, transformation, and analysis. The tool provides a range of commands \nfor working with CSV data, making it a handy utility for anyone working with CSV files in their workflow. "
_github: https://github.com/BurntSushi/xsv
_name: xsv
_short: "xsv is a fast CSV command line toolkit written in Rust. "
brew: xsv
cargo: xsv
nix-env: xsv
port: xsv
xurls:
_bin: xurls
_desc: Extract urls from text
_github: https://github.com/mvdan/xurls
_name: xurls
_short: "xurls is a Go library for extracting URLs from text. "
brew: xurls
go: mvdan.cc/xurls/v2/cmd/xurls@latest
xxh:
_bin: xxh
_desc: "xxh is a tool that allows you to bring your favorite shell to any host. It enables you to use your shell configurations, plugins, and aliases on remote machines without any dependencies on the remote \nhost. With xxh, you can easily connect to a remote host, run your shell, and have all your familiar settings available. It supports various shells like zsh, bash, fish, and more. This tool simplifies \nthe process of working on different machines by providing a consistent shell environment across all your connections. "
_github: https://github.com/xxh/xxh
_name: xxh
_short: "xxh is a tool for shell users to bring their favorite shell with them to any host. "
brew: xxh
pipx: xxh-xxh
port: xxh
xz:
_bin: xz
_desc: "xz is a compression utility that provides high compression ratios and fast decompression. It supports various compression formats like LZMA and LZMA2, and it can compress single files or whole \ndirectories. The utility is commonly used to compress files for distribution or archival purposes. It is open-source and available on GitHub at https://github.com/xz-mirror/xz for users to download, \ncontribute, or report issues. "
_github: https://github.com/xz-mirror/xz
_name: xz
_short: "xz is a compression utility that provides high compression ratios and fast decompression. "
apk: xz
apt: xz
brew: xz
choco: xz
dnf: xz
pacman: xz
port: xz
scoop: xz
yamllint:
_bin: yamllint
_desc: A linter for YAML files. yamllint does not only check for syntax validity, but also for weirdnesses like key repetition and cosmetic problems such as lines length, trailing spaces, indentation, etc.
_github: https://github.com/adrienverge/yamllint
_name: yamllint
_service: null
_short: "yamllint is a tool for checking YAML files for syntax errors and adherence to best practices. "
brew: yamllint
pipx: yamllint
yank:
_bin: yank
_bin:apt: yank-cli
_desc: "[yank](https://github.com/mptre/yank) is a terminal agnostic solution which allows copying output from Termial easily, without the need to use Terminal multiplexers."
_github: https://github.com/mptre/yank
_name: yank
_short: "Yank is a tool that allows you to copy text from your terminal to your clipboard. "
ansible: professormanhattan.yank
apt: yank
brew: yank
choco: win32yank
dnf: yank
nix: yank
pacman: yank
pkg-freebsd: yank
pkg_add: yank
port: yank
scoop: win32yank
zypper: yank
yapf:
_bin: yapf
_desc: A formatter for Python files maintained by Google
_docs: false
_github: https://github.com/google/yapf
_home: false
_name: YAPF
_short: "YAPF is a Python formatter that automatically formats code to adhere to the PEP 8 style guide. "
pipx: yapf
yarn:
_bin: yarn
_desc: "[Yarn](https://yarnpkg.com/) is a relatively new and open source JavaScript package manager developed by Facebook. Yarn is fully compatible with the npm registry (i.e. [npmjs.com](https://www.npmjs.com/)) and can work alongside npm, but it's aim it to be a safer, more secure and more reliable alternative."
_docs: https://yarnpkg.com/getting-started
_github: https://github.com/yarnpkg/berry
_home: https://yarnpkg.com/
_name: Yarn
_preload: true
_short: "Yarn Berry is a next-generation package manager for JavaScript that aims to improve performance and reliability. "
ansible: professormanhattan.yarn
brew: yarn
choco: yarn
npm: yarn
pacman: yarn
port: yarn
scoop: yarn
script: curl -o- -L https://yarnpkg.com/install.sh | bash
yarnhook:
_bin: yarnhook
_desc: yarnhook keeps your node_modules up-to-date when your yarn.lock, package-lock.json or shrinkwrap.yaml changes due to git operations like checkout, merge, rebase, pull etc.
_github: https://github.com/frontsideair/yarnhook
_name: Yarnhook
_short: "yarnhook is a GitHub repository that contains a tool for managing Yarn package dependencies in a project. "
npm: yarnhook
yj:
_bin: yj
_desc: CLI program that allows you to convert between YAML, TOML, JSON, and HCL.
_docker: docker run sclevine/yj
_docs: https://github.com/sclevine/yj
_github: https://github.com/sclevine/yj
_home: https://github.com/sclevine/yj
_name: YJ
_short: "yj is a command-line tool for parsing and manipulating YAML and JSON data easily. "
brew: yj
go: github.com/sclevine/yj/v5@v5.1.0
you-get:
_bin: you-get
_desc: "You-Get is a command-line tool that allows users to download media content from various websites like YouTube, Vimeo, and others. It supports downloading videos, audio, and images by simply providing \nthe URL of the content. You-Get is written in Python and is open-source, making it easy to customize and extend its functionality. It is a handy tool for users who prefer downloading media content for \noffline viewing or archiving purposes. "
_github: https://github.com/soimort/you-get
_name: You-Get
_short: "you-get is a command-line tool that downloads media content from the web, supporting various websites like YouTube, Vimeo, and more. "
brew: you-get
pipx: you-get
pkg-freebsd: you-get
youtube-dl:
_bin: youtube-dl
_desc: "[youtube-dl](https://github.com/ytdl-org/youtube-dl) is an open-source download manager for video and audio from YouTube and over 1000 other video hosting websites. It is released under the Unlicense software license and is one of the most popular projects on GitHub."
_docs: https://github.com/ytdl-org/youtube-dl/blob/master/README.md#readme
_github: https://github.com/ytdl-org/youtube-dl
_home: https://youtube-dl.org/
_name: youtube-dl
_short: "youtube-dl is a command-line tool for downloading videos from YouTube and other websites. "
ansible: professormanhattan.youtubedl
brew: youtube-dl
pipx: youtube-dl
port: youtube-dl
youtube-music:
_app: YouTube Music.app
_desc: YouTube Music desktop app bundled with custom plugins (and built-in ad blocker / downloader)
_github: https://github.com/th-ch/youtube-music
_home: https://th-ch.github.io/youtube-music/
_name: "youtube-music "
_short: "youtube-music is a command-line tool for downloading music from YouTube. "
_todo: Might have to add _post cask xattr -cr /Applications/YouTube\ Music.app to fix permissions
appimage: th-ch/youtube-music
apt: https://github.com/th-ch/youtube-music/releases/download/v1.19.0/youtube-music_1.19.0_amd64.deb
exe: https://github.com/th-ch/youtube-music/releases/download/v1.19.0/YouTube-Music-Setup-1.19.0.exe
scoop: extras/youtube-music
script:darwin: >
DL_URL="https://github.com/th-ch/youtube-music/releases/download/v1.20.0/YouTube-Music-1.20.0.dmg"
if [ $(arch) = 'arm64' ]; then
DL_URL="https://github.com/th-ch/youtube-music/releases/download/v1.20.0/YouTube-Music-1.20.0-arm64.dmg"
fi
echo "Downloading YouTube Music" && curl -sSL "$DL_URL" > /tmp/YouTube-Music.dmg
echo "Attaching volume" && sudo hdiutil attach /tmp/YouTube-Music.dmg
echo "Copying to /Applications"
if [ -d "/Volumes/YouTube Music 1.20.0" ]; then
sudo cp -R "/Volumes/YouTube Music 1.20.0/YouTube Music.app" /Applications
echo "Detaching" && sudo hdiutil detach "/Volumes/YouTube Music 1.20.0"
elif [ -d "/Volumes/YouTube Music 1.20.0-arm64" ]; then
sudo cp -R "/Volumes/YouTube Music 1.20.0-arm64/YouTube Music.app" /Applications
echo "Detaching" && sudo hdiutil detach "/Volumes/YouTube Music 1.20.0-arm64"
fi
echo "Removing /tmp/YouTube-Music.dmg" && rm -f /tmp/YouTube-Music.dmg
winget: th-ch.YouTubeMusic
yay: youtube-music-bin
yq:
_bin: yq
_desc: "[yq](https://github.com/mikefarah/yq) is a free, open-source command-line YAML processor. It aims to be like [jq](https://gitlab.com/megabyte-labs/ansible-roles/jq) except for YAML files. It can read and write values to YAML files."
_docs: https://mikefarah.gitbook.io/yq/how-it-works
_github: https://github.com/mikefarah/yq
_home: https://mikefarah.gitbook.io/yq/
_name: yq
_preload: true
_short: "yq is a lightweight and portable command-line YAML processor. "
ansible: professormanhattan.yq
apk: yq
brew: yq
choco: yq
github: github.com/stedolan/jq
go: github.com/mikefarah/yq/v4@latest
snap: yq
yt-dlp:
_bin: yt-dlp
_desc: "To install yt-dlp, a fork of youtube-dl, you can follow these steps: \n\n 1 Clone the Repository: Use git clone https://github.com/yt-dlp/yt-dlp.git to download the repository. \n 2 Navigate to the Directory: Move into the yt-dlp directory using cd yt-dlp. \n 3 Install yt-dlp: Run sudo python3 setup.py install to install yt-dlp system-wide. \n 4 Verify Installation: To confirm the installation, run yt-dlp --version. \n\nThese steps will help you install yt-dlp on your system. "
_github: https://github.com/yt-dlp/yt-dlp/wiki/Installation
_name: YouTube Download
_short: "To install yt-dlp, visit the GitHub page and follow the installation instructions provided in the wiki section. "
brew: yt-dlp
choco: yt-dlp
pacman: yt-dlp
pipx: yt-dlp
port: yt-dlp
scoop: yt-dlp
winget: yt-dlp
yubikey-agent:
_bin: yubikey-agent
_desc: "YubiKey Agent is a project on GitHub created by Filippo Valsorda. It is a seamless way to use a YubiKey for SSH authentication without the need for manually handling keys. The agent acts as a bridge \nbetween your YubiKey and SSH, providing a secure and convenient method for authentication. It supports multiple YubiKeys and can be integrated into your existing SSH setup easily. The project is \nactively maintained and is a popular choice for enhancing SSH security with YubiKeys. "
_docs: https://github.com/FiloSottile/yubikey-agent
_github: https://github.com/FiloSottile/yubikey-agent
_home: https://github.com/FiloSottile/yubikey-agent
_name: OpenSSL
_service: yubikey-agent
_short: "yubikey-agent is a minimalistic PIV/GPG agent for YubiKeys on macOS. "
_todo: Experiment with this to see if it is worthwhile adding to the stack
brew: yubikey-agent
yubikey-authenticator:
_app: Yubico Authenticator.app
_bin: yubioath
_desc: "Yubioath-flutter is a Flutter plugin developed by Yubico that allows developers to integrate Yubico's OATH functionality into their Flutter applications. This plugin enables two-factor authentication \nusing OATH TOTP and HOTP algorithms, making it easier to secure user accounts in Flutter apps. It provides features like adding, deleting, and generating OATH credentials, as well as verifying OATH \ncodes. Developers can leverage this plugin to enhance the security of their Flutter applications by incorporating Yubico's OATH functionality seamlessly. "
_docs: The Yubico Authenticator app works across Windows, macOS, Linux, iOS and Android. Get the same set of codes across all Yubico Authenticator apps for desktops as well as for all leading mobile platforms. Portable credentials across devices.
_github: https://github.com/Yubico/yubioath-flutter
_home: https://www.yubico.com/products/yubico-authenticator/
_name: Yubico Authenticator
_short: "yubioath-flutter is a Flutter plugin for Yubico's OATH functionality, allowing integration of two-factor authentication into Flutter apps. "
cask: yubico-authenticator
choco: yubico-authenticator
flatpak: com.yubico.yubioath
mas: 1497506650
script:darwin: curl -sSL https://developers.yubico.com/yubioath-flutter/Releases/yubico-authenticator-latest-mac.dmg > "/tmp/Yubico Authenticator.dmg" && hdiutil attach "/tmp/Yubico Authenticator.dmg" && sudo cp -R "/Volumes/Yubico Authenticator/Yubico Authenticator.app" /Applications && sudo hdiutil detach "/Volumes/Yubico Authenticator" && rm -f "/tmp/Yubico Authenticator.dmg"
yubikey-manager:
_bin: ykman
_desc: Use the YubiKey Manager to configure FIDO2, OTP and PIV functionality on your YubiKey on Windows, macOS, and Linux operating systems.
_github: https://github.com/Yubico/yubikey-manager
_home: https://www.yubico.com/support/download/yubikey-manager/
_name: Yubikey Manager
_short: "YubiKey Manager is a tool for configuring and managing YubiKeys, which are hardware security keys used for two-factor authentication. "
brew: ykman
dnf:fedora: yubikey-manager
pacman: yubikey-manager
pipx: yubikey-manager
yubikey-manager-qt:
_app: YubiKey Manager.app
_bin: yubikey-manager-qt
_desc: Cross-platform application for configuring any YubiKey over all USB interfaces.
_github: https://github.com/Yubico/yubikey-manager-qt
_home: https://developers.yubico.com/yubikey-manager-qt/
_name: YubiKey Manager
_short: "YubiKey Manager Qt is a graphical user interface for configuring YubiKeys, developed by Yubico. "
appimage: Yubico/yubikey-manager-qt
cask: yubico-yubikey-manager
choco: yubikey-manager
dnf:fedora: yubikey-manager-qt
pacman: yubikey-manager-qt
scoop: yubikey-manager-qt
zap:
_bin: zap
_desc: Delightful AppImage package manager
_docs: https://zap.srev.in/
_github: https://github.com/srevinsaju/zap
_home: https://zap.srev.in/
_name: Zap
_preload: true
_short: "Zap is a fast and lightweight cross-platform package manager for macOS. "
ansible:linux: professormanhattan.zap
binary:linux: https://github.com/srevinsaju/zap/releases/download/continuous/zap-amd64
script:linux: curl https://raw.githubusercontent.com/srevinsaju/zap/main/install.sh | sudo bash -s
zaproxy:
_app: ZAP.app
_bin: zaproxy
_desc: The worlds most widely used web app scanner. Free and open source. Actively maintained by a dedicated international team of volunteers. A GitHub Top 1000 project.
_docs: https://www.zaproxy.org/docs/
_github: https://github.com/zaproxy/zaproxy
_home: https://www.zaproxy.org/
_name: OWASP ZAP
_short: "ZAP (Zed Attack Proxy) is an open-source web application security scanner used for finding vulnerabilities in web applications. "
cask: zap
choco: zap
flatpak: org.zaproxy.ZAP
pkg-freebsd: zaproxy
scoop: zaproxy
snap: zaproxy --classic
zenity:
_bin: zenity
_desc: "Zenity is a program that allows you to create simple graphical user interfaces (GUIs) for shell scripts using GTK. It provides a set of dialog boxes for various purposes like displaying information, \nasking for user input, or showing progress. Zenity is often used in shell scripts to enhance user interaction and make scripts more user-friendly. It is a handy tool for creating basic GUI elements \nwithout the need for a full-fledged GUI framework. You can find more information and examples on its GitHub page: Zenity GitHub Repository. "
_github: https://github.com/ncruces/zenity
_name: Zenity
_short: "Zenity is a program that allows you to create simple graphical user interfaces for shell scripts in Linux. "
brew: ncruces/tap/zenity
go: github.com/ncruces/zenity/cmd/zenity@latest
scoop: https://ncruces.github.io/scoop/zenity.json
zola:
_bin: zola
_desc: A static site generator built with Rust
_github: https://github.com/getzola/zola
_name: "Zola "
_short: "Zola is a fast static site generator written in Rust. "
apk: zola
brew: zola
choco: zola
flatpak: org.getzola.zola
pacman: zola
pkg-freebsd: zola
pkg_add: zola
pkgin: zola
port: zola
scoop: zola
snap: zola
xbps: zola
zoom:
_app: zoom.us.app
_bin: zoom
_desc: "[Zoom](https://zoom.us/) is a videotelephony software program developed by Zoom Video Communications. This role installs Zoom on nearly any platform. The Zoom free plan provides a video chatting service that allows up to 100 participants concurrently, with a 40-minute time restriction."
_docs: https://support.zoom.us/hc/en-us/categories/200101697-Getting-Started-with-Zoom
_github: Not open-source
_home: https://zoom.us/
_name: Zoom
_short: "$'Not open-source' is a string enclosed in single quotes preceded by a dollar sign and is a way to represent special characters in zsh shell. "
ansible: professormanhattan.zoom
cask: zoom
choco: zoom
flatpak: us.zoom.Zoom
snap: zoom
yay: zoom
zoxide:
_bin: zoxide
_desc: "[zoxide](https://github.com/ajeetdsouza/zoxide) is a blazing fast replacement for your cd command, inspired by z and autojump"
_github: https://github.com/ajeetdsouza/zoxide
_name: zoxide
_preload: true
_short: "zoxide is a blazing fast replacement for cd, allowing you to navigate your filesystem with ease using fuzzy matching and tracking your most used directories. "
ansible: professormanhattan.zoxide
brew: zoxide
zsh:
_bin: zsh
_desc: "[Oh My Zsh](https://ohmyz.sh/) is a delightful, open source, community-driven framework for managing your Zsh configurations. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout oh my zsh! This role also installs some CLI tools that accompany Oh My Zsh! to make it even more amazing."
_github: https://github.com/zsh-users/zsh
_name: Zsh
_preload: true
_short: "zsh is a powerful shell for Unix-like operating systems, offering advanced features and customization options for command-line users. "
ansible:darwin: professormanhattan.zsh
ansible:linux: professormanhattan.zsh
apt: zsh
brew: zsh
dnf: zsh
pacman: zsh
port: zsh
zsh-completions:
_desc: "zsh-completions is a repository on GitHub maintained by the zsh-users organization. It provides a collection of completion scripts for various commands and utilities to enhance auto-completion \ncapabilities in the zsh shell. These completion scripts help users by suggesting and completing command options, arguments, and file paths as they type commands in the terminal. The repository is \nregularly updated to support new commands and improve existing completions, making it a valuable resource for zsh users looking to streamline their command-line experience. "
_github: https://github.com/zsh-users/zsh-completions
_name: ZSH Completions
_short: "zsh-completions is a repository that provides additional completion definitions for the Zsh shell, enhancing auto-completion capabilities for various commands and utilities. "
brew: zsh-completions
zx:
_bin: zx
_desc: Bash is great, but when it comes to writing more complex scripts, many people prefer a more convenient programming language. JavaScript is a perfect choice, but the Node.js standard library requires additional hassle before using. The zx package provides useful wrappers around child_process, escapes arguments and gives sensible defaults.
_github: https://github.com/google/zx
_name: zx
_preload: true
_short: "ZX is a tool for writing better scripts with JavaScript on macOS and Linux. "
brew: zx
npm: zx