diff options
Diffstat (limited to 'content/blog/2021-02-19-macos.md')
-rw-r--r-- | content/blog/2021-02-19-macos.md | 171 |
1 files changed, 79 insertions, 92 deletions
diff --git a/content/blog/2021-02-19-macos.md b/content/blog/2021-02-19-macos.md index 26fdaa7..bcdf698 100644 --- a/content/blog/2021-02-19-macos.md +++ b/content/blog/2021-02-19-macos.md @@ -7,79 +7,74 @@ draft = false # Diving into macOS -After spending nearly 15 years working with Windows and 8 years on -Linux, I have experienced macOS for the first time. By chance, my spouse -happened to buy a new MacBook and gifted me their 2013 model. Of course, -I still consider my Linux desktop to be my daily driver and keep Windows -around for gaming needs, but over the past week I\'ve found myself using -the MacBook more and more for things that don\'t require gaming specs or -advanced dev tools. +After spending nearly 15 years working with Windows and 8 years on Linux, I have +experienced macOS for the first time. By chance, my spouse happened to buy a new +MacBook and gifted me their 2013 model. Of course, I still consider my Linux +desktop to be my daily driver and keep Windows around for gaming needs, but over +the past week I've found myself using the MacBook more and more for things that +don't require gaming specs or advanced dev tools. # Initial Thoughts -Before I move on to the technical aspects of my set-up, I want to take -some time and express my thoughts on the overall OS. +Before I move on to the technical aspects of my set-up, I want to take some time +and express my thoughts on the overall OS.  -As expected, the initial computer setup is a breeze with Mac\'s guided -GUI installer. - -The desktop itself reminds me of GNOME more than anything else I\'ve -seen: even Pantheon from [ElementaryOS](https://elementary.io/), which -people commonly refer to as the closest Linux distro to macOS. The -desktop toolbar is great and far surpasses the utility of the GNOME -toolbar due to the fact that the extensions and icons *actually work*. I -launch macOS and immediately see my shortcuts for Tresorit, Bitwarden, -and Mullvad pop up as the computer loads. - -Even further, the app dock is very useful and will be yet another -familiarity for GNOME users. I know many people like panels instead of -docks, but I\'ve always found docks to have a more pleasing UI. However, -I had to disable the \"Show recent applications in Dock\" preference; I -can\'t stand items taking up precious screen space if I\'m not currently -using them. On that same note, it\'s taking me some time to get use to -the fact that I have to manually quit an app or else it will still stay -open/active in the dock, even if I\'ve closed out all windows for that -app (e.g. Firefox). - -Overall, I\'m having a lot of fun and for users who spend a large -majority of their time performing basic tasks like web browsing, -writing, watching media, etc., macOS is a fantastic option. +As expected, the initial computer setup is a breeze with Mac's guided GUI +installer. + +The desktop itself reminds me of GNOME more than anything else I've seen: even +Pantheon from [ElementaryOS](https://elementary.io/), which people commonly +refer to as the closest Linux distro to macOS. The desktop toolbar is great and +far surpasses the utility of the GNOME toolbar due to the fact that the +extensions and icons *actually work*. I launch macOS and immediately see my +shortcuts for Tresorit, Bitwarden, and Mullvad pop up as the computer loads. + +Even further, the app dock is very useful and will be yet another familiarity +for GNOME users. I know many people like panels instead of docks, but I've +always found docks to have a more pleasing UI. However, I had to disable the +"Show recent applications in Dock" preference; I can't stand items taking up +precious screen space if I'm not currently using them. On that same note, it's +taking me some time to get use to the fact that I have to manually quit an app +or else it will still stay open/active in the dock, even if I've closed out all +windows for that app (e.g. Firefox). + +Overall, I'm having a lot of fun and for users who spend a large majority of +their time performing basic tasks like web browsing, writing, watching media, +etc., macOS is a fantastic option. The rest of this post explains the technicalities of how I set up my CLI -environment to make me feel more at-home, similar to the environments I -set up on Fedora, Ubuntu, etc. +environment to make me feel more at-home, similar to the environments I set up +on Fedora, Ubuntu, etc. # Making it Feel Like Home -If you\'re someone who uses Linux primarily, no doubt your first thought -when booting macOS will be the same as mine was: \"Where is the terminal -and how do I set up my favorite utilities?\" +If you're someone who uses Linux primarily, no doubt your first thought when +booting macOS will be the same as mine was: "Where is the terminal and how do I +set up my favorite utilities?" -Luckily, macOS hasn\'t completely hidden away the development tools from -the average user. You can easily find the Terminal app in the Launchpad -area, but it\'s probably not what you\'re used to. I was surprised (and -happy) to see that the default shell is `zsh`, the shell I -use on all of my Linux distros. However, the commands are not the same - -even the ones you may think are native to the shell. Commands like -`dir` do not exist, so other native commands like -`ls -la` or `pwd` are more useful here. +Luckily, macOS hasn't completely hidden away the development tools from the +average user. You can easily find the Terminal app in the Launchpad area, but +it's probably not what you're used to. I was surprised (and happy) to see that +the default shell is `zsh`, the shell I use on all of my Linux distros. However, +the commands are not the same - even the ones you may think are native to the +shell. Commands like `dir` do not exist, so other native commands like `ls -la` +or `pwd` are more useful here. -With only a few minutes of installing and tweaking a few packages, I was -able to recreate a terminal environment that I feel very comfortable -using. See the image below for a preview of the iTerm2 app with a split -view between my macOS desktop shell and an SSH session into my server. +With only a few minutes of installing and tweaking a few packages, I was able to +recreate a terminal environment that I feel very comfortable using. See the +image below for a preview of the iTerm2 app with a split view between my macOS +desktop shell and an SSH session into my server.  # Xcode -My first step was to search the web for any hints on how to get -`zsh` back up to the state I like, with extensions, themes, -etc. My first step was to install the CLI tools for -[Xcode](https://developer.apple.com/xcode/), Apple\'s suite of +My first step was to search the web for any hints on how to get `zsh` back up to +the state I like, with extensions, themes, etc. My first step was to install the +CLI tools for [Xcode](https://developer.apple.com/xcode/), Apple's suite of development tools. ```sh @@ -92,8 +87,8 @@ sudo xcode-select --install # Homebrew -Next up is to install [Homebrew](https://brew.sh), a nifty package -manager for macOS. +Next up is to install [Homebrew](https://brew.sh), a nifty package manager for +macOS. ```sh /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" @@ -107,10 +102,9 @@ Error: Failed to link all completions, docs and manpages: Failed during: /usr/local/bin/brew update --force --quiet ``` -I found that the following permission modification worked like a charm. -However, I noted that some users online discussed the fact that this -solution may not work if your system has multiple users who use -Homebrew. +I found that the following permission modification worked like a charm. However, +I noted that some users online discussed the fact that this solution may not +work if your system has multiple users who use Homebrew. ```sh sudo chown -R $(whoami) $(brew --prefix)/* @@ -128,17 +122,16 @@ brew cleanup # iTerm2 -Now that I\'ve installed the basic utilities for development, I moved -onto installing iTerm2, a much better terminal than the default. +Now that I've installed the basic utilities for development, I moved onto +installing iTerm2, a much better terminal than the default. ```sh brew install --cask iterm2 ``` -I also used the `Make iTerm2 Default Term` and -`Install Shell Integration` options in the iTerm2 application -menu to make sure I don\'t run into any issues later on with different -terminals. +I also used the `Make iTerm2 Default Term` and `Install Shell Integration` +options in the iTerm2 application menu to make sure I don't run into any issues +later on with different terminals. We will also install `zsh` so we can use it in iTerm2. @@ -148,9 +141,9 @@ brew install zsh # Oh-My-Zsh -I\'ve shown the great aspects of [Oh My Zsh](https://ohmyz.sh) in other -blog posts, so I\'ll skip over that speech for now. Simply install it -and run an update. +I've shown the great aspects of [Oh My Zsh](https://ohmyz.sh) in other blog +posts, so I'll skip over that speech for now. Simply install it and run an +update. ```sh sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" @@ -160,41 +153,36 @@ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/mas omz update ``` -Finally, restart the iTerm2 application to ensure all changes go into -effect. +Finally, restart the iTerm2 application to ensure all changes go into effect. # Oh-My-Zsh Themes -Let\'s change the theme of the terminal to make it a little more -friendly. +Let's change the theme of the terminal to make it a little more friendly. ```sh open ~/.zshrc ``` -The third section of this file should contain a line like the code -below. Change that theme to [any theme you -want](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes), save the file, -and exit. +The third section of this file should contain a line like the code below. Change +that theme to [any theme you +want](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes), save the file, and exit. ```sh ZSH_THEME="af-magic" ``` -After changing the `.zshrc` file, you\'ll need to close your -terminal and re-open it to see the changes. Optionally, just open a new -tab if you\'re using iTerm2, and you\'ll see the new shell config. +After changing the `.zshrc` file, you'll need to close your terminal and +re-open it to see the changes. Optionally, just open a new tab if you're using +iTerm2, and you'll see the new shell config. # Oh-My-Zsh Plugins -Of course, my customization of `zsh` would not be complete -without -[zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions). -This will bring up commands you\'ve run in the past as you type them. -For example, if you\'ve run `ssh user@192.168.1.99` before, -the terminal will show this command as soon as you start typing it (e.g. -`zsh u`), and you can hit the right arrow to autocomplete the -command. +Of course, my customization of `zsh` would not be complete without +[zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions). This +will bring up commands you've run in the past as you type them. For example, if +you've run `ssh user@192.168.1.99` before, the terminal will show this command +as soon as you start typing it (e.g. `zsh u`), and you can hit the right arrow +to autocomplete the command. ```sh git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions @@ -209,7 +197,6 @@ open ~/.zshrc plugins=(git zsh-autosuggestions) ``` -Remember: After changing the `.zshrc` file, you\'ll need to -close your terminal and re-open it to see the changes. Optionally, just -open a new tab if you\'re using iTerm2, and you\'ll see the new shell -config. +Remember: After changing the `.zshrc` file, you'll need to close your terminal +and re-open it to see the changes. Optionally, just open a new tab if you're +using iTerm2, and you'll see the new shell config. |