aboutsummaryrefslogtreecommitdiff
path: root/content/blog/2021-02-19-macos.md
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2024-03-04 22:34:28 -0600
committerChristian Cleberg <hello@cleberg.net>2024-03-04 22:34:28 -0600
commit797a1404213173791a5f4126a77ad383ceb00064 (patch)
treefcbb56dc023c1e490df70478e696041c566e58b4 /content/blog/2021-02-19-macos.md
parent3db79e7bb6a34ee94935c22d7f0e18cf227c7813 (diff)
downloadcleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.gz
cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.bz2
cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.zip
initial migration to test org-mode
Diffstat (limited to 'content/blog/2021-02-19-macos.md')
-rw-r--r--content/blog/2021-02-19-macos.md214
1 files changed, 0 insertions, 214 deletions
diff --git a/content/blog/2021-02-19-macos.md b/content/blog/2021-02-19-macos.md
deleted file mode 100644
index e446fbf..0000000
--- a/content/blog/2021-02-19-macos.md
+++ /dev/null
@@ -1,214 +0,0 @@
-+++
-date = 2021-02-19
-title = "macOS: Testing Out A New OS"
-description = "A retrospective on my migration from Linux to macOS."
-+++
-
-## 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.
-
-## 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.
-
-![macOS
-Desktop](https://img.cleberg.net/blog/20210219-macos-testing-out-a-new-os/macos-desktop.png)
-
-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.
-
-## 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?"
-
-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.
-
-![iTerm2](https://img.cleberg.net/blog/20210219-macos-testing-out-a-new-os/iterm2.png)
-
-## 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
-development tools.
-
-```sh
-sudo xcode-select -r
-```
-
-```sh
-sudo xcode-select --install
-```
-
-## Homebrew
-
-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)"
-```
-
-I ran into a permission error when installing Homebrew:
-
-```sh
-Error: Failed to link all completions, docs and manpages:
- Permission denied @ rb_file_s_symlink - (../../../Homebrew/completions/zsh/_brew, /usr/local/share/zsh/site-functions/_brew)
-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.
-
-```sh
-sudo chown -R $(whoami) $(brew --prefix)/*
-```
-
-Next up is to ensure Homebrew is updated and cleaned.
-
-```sh
-brew update
-```
-
-```sh
-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.
-
-```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.
-
-We will also install `zsh` so we can use it in iTerm2.
-
-```sh
-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.
-
-```sh
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
-```
-
-```sh
-omz update
-```
-
-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.
-
-```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.
-
-```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.
-
-## 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.
-
-```sh
-git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-```
-
-```sh
-open ~/.zshrc
-```
-
-```sh
-# Scroll down the script and edit this line to add zsh-autosuggestions
-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.