From eea896bf314e76546d125ff93baece5fda856273 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sun, 25 Sep 2022 16:46:16 +0100 Subject: [PATCH 1/2] Adds docs on configuring system preferences --- .github/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/README.md b/.github/README.md index 65f1f99..58aeecd 100644 --- a/.github/README.md +++ b/.github/README.md @@ -20,6 +20,7 @@ - [Aliases](#aliases) - [Utilities](#utilities) - [Packages](#packages) + - [System Preferences](#system-preferences) - [ZSH](#zsh) - [Vim](#vim) - [Tmux](#tmux) @@ -636,6 +637,28 @@ You will be prompted before anything is installed. Be sure to remove / comment o --- +### System Preferences + +The installation script can also prompt you to confiture system settings and user preferences. This is useful for setting up a completely fresh system in just a few seconds. + +#### MacOS + +MacOS includes a utility named [`defaults`](https://real-world-systems.com/docs/defaults.1.html), which lets you configure all system and app preferences programatically through the command line. This is very powerful, as you can write a script that configures every aspect of your system enabling you to setup a brand new machine in seconds. + +All settings are then updated in the `.plist` files stored in `~/Library/Preferences`. This can also be used to configure preferences for any installed app on your system, where the application is specified by its domain identifier - you can view a full list of your configurable apps by running `defaults domains`. + + +In my dotfiles, the MacOS preferences will configure everything from system security to launchpad layout. The Mac settings are located in [`system-specific/macos/system-settings/`](https://github.com/Lissy93/dotfiles/tree/master/system-specific/macos/system-settings), and are split into three files: +- [`macos-security.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-security.sh) - Sets essential security settings, disables telementry, disconnects unused ports, enforces signing, sets logout timeouts, and much more +- [`macos-preferences.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-preferences.sh) - Configures all user preferences, including computer name, highlight color, finder options, spotlight settings, hardware preferences and more +- [`macos-apps.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-apps.sh) - Applies preferences to any installed desktop apps, such as Terminal, Time Machine, Photos, Spotify, and many others + +Upon running each script, a summary of what will be changed will be shown, and you'll be prompted as to weather you'd like to continue. Each script also handles permissions, compatibility checking, and graceful fallbacks. Backup of original settings will be made, and a summary of all changes made will be logged as output when the script is complete. + +If you choose to run any of these scripts, take care to read it through first, to ensure you understand what changes will be made, and optionally update or remove anything as you see fit. + +--- + ### ZSH // TODO From 667c83bd71fb317761dc957f425bea896ae168a7 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sun, 25 Sep 2022 20:28:09 +0100 Subject: [PATCH 2/2] Adds CLI tools to Brewfile --- installs/Brewfile | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/installs/Brewfile b/installs/Brewfile index 14e32b6..4182f1d 100644 --- a/installs/Brewfile +++ b/installs/Brewfile @@ -16,6 +16,7 @@ tap 'homebrew/services' tap 'espanso/espanso' tap 'koekeishiya/formulae' tap 'blacktop/tap' +tap 'jesseduffield/lazygit' # CLI Essentials brew 'git' @@ -27,23 +28,38 @@ brew 'tmux' brew 'ctags' # Indexing of file info + headers brew 'exa' # Better ls brew 'fzf' # Fuzzy file finder -brew 'glances' # top app, with web interface + API -brew 'gotop' # Better htop app, resource monitoring brew 'iproute2mac' # MacOS port of netstat and ifconfig brew 'jq' # JSON parser -brew 'lazydocker' # CLI Docker management app brew 'scc' # Code counter, like cloc brew 'tldr' # Community-maintained man pages brew 'tree' # Directory listings as tree brew 'xsel' # Copy paste access to X clipboard brew 'thefuck' # Auto-correct miss-typed commands +# CLI Monitoring and Performance Apps +brew 'bandwhich' # Bandwidth utilization monitor +brew 'bpytop' # Resource monitoring, like htop +brew 'glances' # Resource monitor, web interface + API +brew 'gping' # Interactive ping tool, with graph +brew 'speedtest-cli'# Command line speed test utility + +# CLI Productivity Apps +brew 'buku' # Bookmark manager app +brew 'khal' # Calendar app +brew 'mutt' # Email client app +brew 'task' # Todo and task management app + # CLI Fun -brew 'cowsay' # Have an ASCII cow say your message -brew 'figlet' # Output text as big ASCII art text -brew 'lolcat' # Make console output raibow colored -brew 'neofetch' # Show system data and ditstro info brew 'pv' # Pipe viewer, with animation options +brew 'neofetch' # Show system data and ditstro info +brew 'lolcat' # Make console output raibow colored +brew 'figlet' # Output text as big ASCII art text +brew 'cowsay' # Have an ASCII cow say your message + +# CLI Development Suits +brew 'httpie' # HTTP / API testing testing client +brew 'lazydocker' # Full Docker management app +brew 'lazygit' # Full Git managemtne app # Development Apps cask 'android-studio' # IDE for Android development @@ -93,7 +109,6 @@ brew 'lynis' # Scan system for common security issues brew 'clamav' # Open source virus scanning suite brew 'rkhunter' # Search / detect potential root kits - # Fonts tap 'homebrew/cask-fonts' cask 'font-fira-code'