Commit ad2d187f18

ad2d187f18db6ca0163e8ae5a8ab2bf0cae7c3c5

parent: 260376a5df

Unsigned

cmc <hello@cleberg.net> · 2024-01-09 17:08 UTC

feat: add macOS customization post

Layout: unified · split

content/blog/2024-01-09-macos-customization.md added +124
@@ -0,0 +1,124 @@
1+++
2date = 2024-01-09
3title = "Customizing macOS"
4description = "Learn how to customize macOS beyond the standard, built-in options provided by Apple."
5+++
6
7I have been using macOS instead of my Linux machine more and more lately, so I wanted to write a post on simple ways to customize macOS beyond the normal built-in settings menu.
8
9While not all-encompassing, the options below should be a good start for anyone looking to dive down the rabbit hole.
10
11## Basics
12
13### Package Management
14
15To install a lot of software on macOS, you will need [Homebrew](https://brew.sh/). You can use their installation script to get started. Simply open the `Terminal` application and paste the following snippet:
16
17```sh
18/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
19```
20
21This will allow you to easily install and manage applications and other software easily through the `brew` command.
22
23### Terminal
24
25If you're serious about customizing your macOS system, I highly recommend installing a terminal emulator that you like and if you're not comfortable on the command line yet, start learning. A lot of customization options require you to edit hidden files, which is easiest in a terminal.
26
27There are options like iTerm2, Kitty, Alacritty, Hyper, Warp, or the built-in Terminal app.
28
29I use [iTerm2](https://iterm2.com/), which can be installed with Homebrew:
30
31```sh
32brew install iterm2
33```
34
35![iTerm2](https://img.cleberg.net/blog/20240109-macos-customization/iterm2.png "iTerm2")
36
37To install color schemes, such as the Gruvbox Dark scheme shown in the screenshot above, you visit [iTerm Themes](https://iterm2colorschemes.com/) and follow their installation instructions to install any of the themes.
38
39## Desktop
40
41### Window Management
42
43[yabai](https://github.com/koekeishiya/yabai) is a tiling window manager for macOS. While other window managers exist, I found that most of them struggled to create logical layouts and to allow me to easily move windows around the screen.
44
45Some advanced settings for yabai are only available if partially disable System Integrity Protection (SIP). However, I chose not to do this and it hasn't affected my basic usage of yabai at all.
46
47Refer to the [yabai wiki](https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)) for installation instructions. You will need to ensure that yabai is allowed to access the accessibility and screen recording APIs.
48
49You can see a basic three-pane layout atuomatically configured by yabai for me as I opened the windows below.
50
51![yabai window manager](https://img.cleberg.net/blog/20240109-macos-customization/yabai.png "yabai window manager")
52
53### Keyboard Shortcuts
54
55[skhd](https://github.com/koekeishiya/skhd) is a simple hotkey daemon that allows you to define hotkeys in a file for usage on your system.
56
57Installation is simple:
58
59```sh
60brew install koekeishiya/formulae/skhd
61skhd --start-service
62```
63
64After installation, be sure to allow `skhd` access to the accessibility API in the macOS privacy settings.
65
66You can configure your hotkeys in the `~/.config/skhd/skhdrc` file:
67
68```sh
69nano ~/.config/skhd/skhdrc
70```
71
72For example, I have hotkeys to open my browser and terminal:
73
74```conf
75# Terminal
76cmd - return : /Applications/iTerm.app/Contents/MacOS/iTerm2
77
78# Browser
79cmd + shift - return : /Applications/LibreWolf.app/Contents/MacOS/librewolf
80```
81
82### Widgets
83
84[uebersicht](https://github.com/felixhageloh/uebersicht/) is a handy desktop-based widget tool with a plethora of community-made widgets available in the [widgets gallery](https://tracesof.net/uebersicht-widgets/). You can also write your own widgets with this tool.
85
86To install, simply download the latest release from the [uebersicht website](https://tracesof.net/uebersicht/) and copy it to the Applications folder.
87
88See below for an example of the [Mond](https://tracesof.net/uebersicht-widgets/#Mond) widget in action.
89
90![uebersicht desktop widgets](https://img.cleberg.net/blog/20240109-macos-customization/uebersicht.png "uebersicht desktop widgets")
91
92### Status Bar
93
94[SketchyBar](https://github.com/FelixKratz/SketchyBar) is a customizable replacement for the macOS status or menu bar.
95
96You can browse a discussion where various users shared their [configurations](https://github.com/FelixKratz/SketchyBar/discussions/47?sort=top) for inspiration or to copy their dotfiles.
97
98See below for a quick (& slightly broken) copy of [zer0yu's](https://github.com/zer0yu/dotfiles) SketchyBar configuration.
99
100![SketchyBar](https://img.cleberg.net/blog/20240109-macos-customization/sketchybar.png "SketchyBar")
101
102### Dock
103
104The easiest way to customize the dock is to install [uBar](https://ubarapp.com/), which uses a Windows-like menu bar as the default style.
105
106However, the built-in macOS dock cannot be disabled and can only be set to "always hidden". This can be annoying as it will pop out any time your mouse cursor passes closely to the dock edge of the screen. Because of this, I simply use the built-in dock instead of customizing it with third-party software.
107
108Regardless, see below for the default installation style of uBar.
109
110![uBar](https://img.cleberg.net/blog/20240109-macos-customization/ubar.png "uBar")
111
112### Application Icons
113
114You can also customize the icon of any application in macOS, which will show up in Finder, the Dock, Launchpad, search results, etc. I recommend using [macOSicons](https://macosicons.com/) to download icons you want, and then apply them by following this process:
115
1161. Open the Finder application.
1172. Navigate to the `Applications` folder.
1183. Right-click an application of your choice, and select `Get Info`.
1194. Drag the image you downloaded on top of the application's icon at the top of information window (you will see a green "plus" symbol when you're hovering over it).
1205. Release the new icon on top of the old icon and it will update!
121
122You can see an example of me dragging a new `signal.icns` file onto my Signal.app information window to update it below:
123
124![replace macOS icons](https://img.cleberg.net/blog/20240109-macos-customization/replace_icon.png "replace macOS icons")