AS93

108
23
MIT
61 KB
Oct, 2022
1 year ago
Ruby

Lissy93/Brewfile

My list of *nix packages to be installed on MacOS via Homebrew, for the ultimate dev setup

Getting Started

To get started, install Homebrew, then just download the Brewfile to ~/.Brewfile, make any desired changes, and run brew bundle --global to install the listed packages. Done 🍻


Alternatively, there's a guided install process, which can be initiated with:

bash <(curl -s https://lissy93.github.io/Brewfile/install.sh)

Brewfile automated installation script

[!NOTE] To keep track of your own personal package list fork this repo
And don't forget to replace [lissy93] with your own username!


About Homebrew

Homebrew is an unofficial package manager for MacOS, that makes installing, updating and managing user applications easier.

It only ever installs packages within it's prefix, but then symlinks them to the appropriate place on disk. And since it's just Git and Ruby underneath, it's easy to modify to your liking, and roll back changes if necissary.

Homebrew is used via the terminal, with the brew command, but there is an unofficial GUI, Cakebrew. For more infomation, take a look at the Documentation.


Understanding the Brewfile

The Brewfile defines a list of packages, that you'd like to install on your system.

It includes several keywords, like brew, cask, tap, mas, etc - this is explained in detail in the terminology section of the docs. But in short: Lines which start with brew are packages that are installed via their pre-compiled binaries. Where as casks are applications that require an installer (typically GUI apps). Taps just add additional repositories, and are used when an app's formula isn't published to the main Homebrew repo. And mas is a plugin that enables you to install apps from the Apple App Store from within your Brewfile.


Package List

The following packages will be installed, with the aim to setup a fully-featured development machine.

Click to expand full package list ↕️

Note: Be sure to remove anything that you do not need before installing.

Command Line

CLI Essentials
  • git - Version controll
  • neovim - Text editor
  • ranger - Directory browser
  • tmux - Term multiplexer
CLI Basics
  • aria2 - Resuming download util (better wget)
  • bat - Output highlighting (better cat)
  • ctags - Indexing of file info + headers
  • diff-so-fancy - Readable file compares (better diff)
  • entr - Run command whenever file changes
  • duf - Get info on mounted disks (better df)
  • exa - Listing files with info (better ls)
  • exiftool - Reading and writing exif metadata
  • fdupes - Duplicate file finder
  • fzf - Fuzzy file finder and filtering
  • hyperfine - Benchmarking for arbitrary commands
  • jq - JSON parser
  • most - Multi-window scroll pager (better less)
  • procs - Advanced process viewer (better ps)
  • ripgrep - Searching within files (better grep)
  • rsync - Fast, incremental file transfer
  • scc - Count lines of code (better cloc)
  • sd - RegEx find and replace (better sed)
  • thefuck - Auto-correct miss-typed commands
  • tldr - Community-maintained docs (better man)
  • tree - Directory listings as tree
  • trash-cli - Record + restore removed files
  • watch - Run commands periorically
  • xsel - Copy paste access to X clipboard
  • zoxide - Easy navigation (better cd)
CLI Monitoring and Performance Apps
  • bandwhich - Bandwidth utilization monitor
  • ctop - Container metrics and monitoring
  • bpytop - Resource monitoring (like htop)
  • glances - Resource monitor + web and API
  • gping - Interactive ping tool, with graph
  • ncdu - Disk usage analyzer and monitor (better du)
  • speedtest-cli - Command line speed test utility
CLI Productivity Apps
  • browsh - CLI web browser
  • buku - Bookmark manager
  • cmus - Music browser / player
  • khal - Calendar client
  • mutt - Email client
  • newsboat - RSS / ATOM news reader
  • rclone - Manage cloud storage
  • task - Todo + task management
CLI Dev Suits
  • httpie - HTTP / API testing testing client
  • lazydocker - Full Docker management app
  • lazygit - Full Git managemtne app
CLI External Sercvices
  • ngrok - Reverse proxy for sharing localhost
  • tmate - Share a terminal session via internet
  • asciinema - Recording + sharing terminal sessions
  • navi - Browse, search, read cheat sheets
CLI Fun
  • cowsay - Have an ASCII cow say your message
  • figlet - Output text as big ASCII art text
  • lolcat - Make console output raibow colored
  • neofetch - Show system data and ditstro info

Software Development

Development Apps
Development Langs, Compilers, Package Managers and SDKs
  • docker - Containers
  • gcc - GNU C++ compilers
  • go - Compiler for Go Lang
  • gradle - Build tool for Java
  • lua - Lua interpreter
  • luarocks - Package manager for Lua
  • node - Node.js
  • nvm - Switching node versions
  • openjdk - Java development kit
  • python - Python interpriter
  • rust - Rust language
  • android-sdk - Android software dev kit
Development Utils
  • gh - Interact with GitHub PRs, issues, repos
  • scrcpy - Display and control Andrdroid devices
  • terminal-notifier - Trigger Mac notifications from terminal (MacOS Only)
  • tig - Text-mode interface for git
  • ttygif - Generate GIF from terminal commands + output
Network and Security Testing
Security Utilities
  • bcrypt - Encryption utility, using blowfish
  • clamav - Open source virus scanning suite
  • git-crypt - Transparent encryption for git repos
  • lynis - Scan system for common security issues
  • openssl - Cryptography and SSL/TLS Toolkit
  • rkhunter - Search / detect potential root kits
  • veracrypt - File and volume encryption

Desktop Applications

Creativity
  • Audacity - Multi-track audio editor and recording
  • Blender - 3D modelling, rendering and sculpting
  • Cura - 3D Printing software, for slicing models
  • DarkTable - Organize and bulk edit photos (similar to Lightroom)
  • Dia - Versatile diagramming tool, useful for UML
  • Gimp - Image and photo editing application
  • HandBrake - For converting video from any format to a selection of modern codecs
  • InkScape - Digital drawing/ illustration
  • OBS Studio - Streaming and screencasting
  • Shotcut - Video editor
  • Synfig Studio - 2D animation
Media
Personal Applications
Browsers

MacOS Apps

MacOS Mods and Imrovments
  • alt-tab - Much better alt-tab window switcher
  • anybar - Custom programatic menubar icons
  • copyq - Clipboard manager (cross platform)
  • espanso - Live text expander (cross-platform)
  • finicky - Website-specific default browser
  • hiddenbar - Hide / show annoying menubar icons
  • iproute2mac - MacOS port of netstat and ifconfig
  • lporg - Backup and restore launchpad layout
  • m-cli - All in one MacOS management CLI app
  • mjolnir - Util for loading Lua automations
  • openinterminal - Finder button, opens directory in terminal
  • popclip - Popup options for text on highlight
  • raycast - Spotlight alternative
  • shottr - Better screenshot utility
  • skhd - Hotkey daemon for macOS
  • stats - System resource usage in menubar
  • yabai - Tiling window manager

Bigger Picture

The Brewfile is really useful to incorporate into your dotfiles, or for quickly setting up new machines. You can see how I am using this in Lissy93/Dotfiles. Other package managers have similar features. For example, here's the scripts I use to manage my package list for Arch, Debian, Alpine and MacOS.


Contributing

Contributions are welcome :) If you're new to GitHub, see the documentation for a step-by-step guide on how to submit edits to projects.

Changes to the Brewfile should be made up-stream, directly into Lissy93/Dotfiles (in Brewfile), which will then be automatically synced to this repo.


License

[!NOTE]

For licenses for each package listed here, see their websites (linked to above).

Lissy93/Brewfile is licensed under MIT © Alicia Sykes 2022.
For information, see TLDR Legal > MIT

Expand License
The MIT License (MIT)
Copyright (c) Alicia Sykes <[email protected]> 

Permission is hereby granted, free of charge, to any person obtaining a copy 
of this software and associated documentation files (the "Software"), to deal 
in the Software without restriction, including without limitation the rights 
to use, copy, modify, merge, publish, distribute, sub-license, and/or sell 
copies of the Software, and to permit persons to whom the Software is furnished 
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included install 
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

© Alicia Sykes 2022-23
Licensed under MIT

Thanks for visiting :)