Configuring PureOS for a macOS user
NOTE: This entry wasn’t ever fully completed, but I had a request to publish it and wanted to get it out there. I have since switched back to macOS as the subtle differences were hurting my productivity much more than I expected. However, I am hopeful this information is useful to someone… NAB
I’ve now been running PureOS on my MacBook Pro for about two months. I’d like to share how I went about getting my configuration setup to be as quickly productive as possible by matching what I was used to in macOS.
First things first: let’s get the Mac setup so you no longer need to have the USB drive with you for booting:
- Open the Disks application.
- Make sure you are on your Apple disk, then mount the EFI partition.
- Copy the
BOOT
folder from the Grub file package I created to theEFI
folder within theEFI
disk you now have mounted. - Restart without your external disk connected, and you should come right back into PureOS. To boot into macOS, simply hold down the
option
key on your keyboard on boot and choose it from the list.
For general OS config:
- Modify the keyboard shortcuts in Settings/Device/Keyboard:
Setting name | Keyboard Shortcut |
---|---|
Hide all normal windows | Ctrl+D |
Switch applications | Ctrl+Tab |
Switch windows directly | Disabled |
Switch window of an app directly | Ctrl+` |
Switch windows of an application | Disabled |
Copy a screenshot of a window to clipboard | Alt+Super+Space |
Copy a screenshot of an area to clipboard | Alt+Super+4 |
Copy a screenshot to clipboard | Alt+Super+3 |
Save a screenshot of a window to Pictures | Shift+Ctrl+Space |
Save a screenshot of an area to Pictures | Shift+Ctrl+$ |
Save a screenshot to Pictures | Shift+Ctrl+# |
Focus the active notification | Disabled |
Lock screen | Disabled |
Log out | Shift+Ctrl+Q |
Open the application menu | Disabled |
Restore the keyboard shortcuts | Disabled |
Show all application | Shift+Ctrl+A |
Show the activities overview | LaunchA |
Show the notification list | Disabled |
Show the overview | Ctrl+Space |
Show the run command prompt | Disabled |
Switch to next input source | Disabled |
Switch to previous input source | Disabled |
Decrease text size | Ctrl+- |
Turn zoom on or off | Shift+Ctrl+* |
Zoom in | Shift+Ctrl++ |
Zoom out | Shift+Ctrl+_ |
Close window | Disabled |
Hide window | Ctrl+H |
Maximize window | Shift+Ctrl+M |
Move window | Disabled |
Resize window | Disabled |
Restore window | Disabled |
Toggle maximization state | Disabled |
View split on left | Ctrl+Alt+Super+Left |
View split on right | Ctrl+Alt+Super+Right |
- Change the way
ls
works with an alias:alias ls='LC_COLLATE=C ls --color=auto'
- Disable the left super bringing up “Activities” (acting sort of like a windows key):
gsettings set org.gnome.mutter overlay-key ''
- Disable auto brightness in Settings/Power
- Add Super key for typing accented and other special chars: Tweaks app: Keyboard & Mouse:
Compose Key
, click onDisabled
and set as desired: I usedRight Super
so the right command key + shift + tilde then type the lettern
gives youñ
- Have close, min, max on the left: Tweaks app: Window Titlebars: Titlebar Buttons: Placement: Left
PureBrowser config:
- Single click to highlight address/search bar: https://www.askvg.com/hack-single-click-select-all-feature-in-mozilla-firefox-addressbar/
- Allow Firefox extensions to be easily installed: https://tracker.pureos.net/w/troubleshooting/firefox_compat_mode/
- Use Ctrl-fn-up and down to switch between tabs
- No, this sucks: Use Shortkeys to enable ctrl+shift+[ and ctrl+shift+] to move between tabs: https://addons.mozilla.org/en-US/firefox/addon/shortkeys/
- Set PureBrowser to
Show your windows and tabs from last time
on startup: - Using isolated containers and other privacy settings!
Thunderbird config:
- Send in background with these three settings:
mailnews.show_send_progress false
mailnews.sendInBackground true
offline.send.unsent_messages 1
- See https://www.summet.com/blog/2015/11/16/making-thunderbird-send-messages-in-the-background-like-outlook/
- Password for iCloud & Thunderbird
- Disable weird forced wrapping in email (not sure why this is default, I guess it’s old-school cool)
mailnews.wraplength 0
- add this key as bool:
mail.compose.wrap_to_window_width true
General Observations
- Not having the application menus (File, Edit, etc.) at the top forces more space to be taken up within applications. Would be nice to get that normalized for Wayland.
- Touchpad: The default touchpad settings are incredibly difficult to get precise movements. I haven’t had time yet to really dig into changing these settings and seeing how close to my macOS config I can get with it.
- kworker: randomly takes over an entire CPU, usually after waking from sleep. Found no solutions to this problem whatsoever, even restarting kept this thing cranking at 100% of one of my CPUs. A full shut down and power back on would finally make it stop.
- At some point, PureOS decided to change Grub management, and I could no longer boot with the configuration I had stored in the EFI partition. I always got some terribly ugly grub menu at startup with a 10-second delay, regardless of the settings I would change.
- Essentially, you are in a constant state of Beta testing, which I just don’t have the energy for.
- Searching within calendar/events requires opening the Events & Tasks search bar, which is huge. Ctrl+F does not work.
My dev environment configuration
- WebStorm install
- bring over
.idea/
folders from projects - export the settings from the File menu so you can import them into pureos –> actually, don’t do this! everything is now mapped to Meta instead of Ctrl
sudo chown nabeards:nabeards /usr/bin/WebStorm/
or you can’t update WebStorm
- bring over
- git:
git config --global core.editor "vi"
- nodejs packages
yarn install
- postgresql install, proper user config to add a password to
postres
user in db, https://stackoverflow.com/questions/7695962/postgresql-password-authentication-failed-for-user-postgres - Tilix
- keyboard shortcuts: ctrl+{ and ctrl+} for moving between sessions
- capture the settings I have since I changed other things that I don’t remember
- Install g++, cmake
- Install Filezilla, convert my ssh key to a PPK key (make sure you use the file extension!!)
Other settings
- Other environment configs
- General System:
- Touchpad config: https://williambharding.com/blog/linux-to-macbook/linux-with-a-macbook-touchpad-feel-pt-2/
- Terminal using ctrl keys: https://gist.github.com/ipmcc/5f1f17a7b0107f165f72608882a7657f
- Need to match my touchpad much better!
- Spectacle replacement: https://github.com/ssokolow/quicktile
- Backup similar to Time Machine: https://www.nuxified.org/blog/easy-linux-backup-software-time-machine-functionality/
- Passwords:
- Master Password required package install:
sudo apt install openjdk-11-jre
- Also setup Keepass for password I don’t create: https://keepass.info/help/base/importexport.html#genericcsv
- Master Password required package install:
- General System:
- Setup Bluetooth keyboard:
- bluetoothctl
- devices
- scan on
- pair 34:88:5D:51:5A:95 (34:88:5D:51:5A:95 is my device code,replace it with yours)
- trust 34:88:5D:51:5A:95
- connect 34:88:5D:51:5A:95
- Installing VLC nightly
sudo nano /etc/apt/sources.list
add a deb-src line with the same info as first linesudo apt build-dep vlc
- install nightly by downloading it from
./configure --disable-xcb