Migration from Linux on Macbook 16″

One of the biggest things that happened to me last year was the move to Mac. After dozens of years of working with Windows, then Linux, many customizations, and convenient software that allowed me to work almost at the speed of thought, I was a little afraid that it would take a long time before I could achieve the same comfort and speed. After two months, I can confidently say that life on the mac is existing. Not always, however, this life is simple and intuitive, and I will tell you about the difficulties I encountered, how I solved them, and what I have achieved so far.

What I liked most about my Macbook Pro 16″:

  • First and foremost, it’s the hardware. The ergonomic, lightweight and beautiful, and ergonomic aluminum enclosure. A bundle of software and hardware designed to work together.
  • Huge monitor with a 4K matrix (as for laptop). It covers almost the entire plane of the lid, and a small “edge” webcam does not interfere. I especially like it when the wallpaper on top is black, and the “edge” blends in with the menu. I also prefer to hide uninformative application icons at the bottom, and then 100% of the screen can be used for my needs (Turn Hiding Off in the dock context menu).
  • M1 Processor. The combination of low power consumption and high performance is the apotheosis of engineering magic. In my reality, something is always given for something. Higher performance means less battery life, more heat output. But in two months, I’ve never once heard the fans running, and only a few times have I noticed that the case is slightly warm. The battery life is enough not to have to think about charging at all if you went to, say, the office and left it at home. If you’re wondering how exactly Apple engineers achieved this, I can recommend [an excellent article written in simple, non-technical language] (https://debugger.medium.com/why-is-apples-m1-chip-so-fast-3262b158cba2).
  • Performance. The combination of the processor, fast memory, and M1 make it blazing fast for work with video production. My old laptop took minutes for a rendering preview, with M1 previews with all the transformations just working in real-time. You start or see the preview when you hover over it.
  • Touchpad. I’ve heard a lot about the magic of the Apple touchpad, but I’ve never fully understood what it’s all about. The connection between the hardware and the software is very smooth and consistent. The text I’m scrolling on the screen feels like an extension of my hand. It’s a fantastic feeling. You start working, and everything works “properly,” but after a week of work with the Mac touchpad, I had to go back to the old laptop and was amazed at how big the difference was.
  • The keyboard – even though it’s a classic “butterfly” keyboard, the tactile pleasure of working with it is immense. It just makes you want to type. And of course, I like the absence of the touch bar very much. It was a cool, innovative thing, but not for me: a nice feature – a software control the brightness of the keyboard’s backlight.
  • Audio. As someone who has devoted almost a year to choosing a HiFi system, I can say that I had no expectations of sound in a laptop at all. I was surprised when I heard a natural “surround sound” and “panorama.” Six speakers, of which four are mini-subwoofers, produce a dense and deep sound. What is impressive to me is that on laptop speakers in this sound quality test, I guessed 4 out of 6 correctly.
  • MagSafe is convenient and technological. It feels like Apple purposely removed it to bring it back.
  • Huge amount of software that “just works.” On Linux, working with photos, video, or sound is painful. For doing even simple operations, you have to do a lot of actions and “exercises.” Every time I run the gimp, I feel an inner existential pain. The same story with editing video, music, converting raw files. It’s much easier on the mac.

Problems I encountered on macOS in the first month

Surprisingly, Linux did not crash even once in several years of uninterrupted work when macOS crashed twice in the first month. However, have to admit, the second month passed without crashes. 

Below, I will list the main difficulties I had during my migration and how I solved them.

Keyboard

Probably the biggest pain of the first weeks was the keyboard layout. Lack of Del, Home, End, PgUp, PgDown significantly slowed down my performance at begin. For some reason, Apple engineers and designers decided that these are pretty rare operations, and they can be replaced by fn⌦, ⌘←, ⌘→, ⌘↑, ⌘↓, but a separate button for the symbol §. You could live with this, but when you run the standard Terminal, suddenly ⌘← and ⌘→ shortcuts do not work anymore. In iTerm2, do not work ⌥← and ⌥→ (word transitions) what works fine in Terminal. In some JVM applications, it doesn’t work either. This inconsistency makes me think about how to do the same repetitive actions in different applications. 

The solution: I switched completely to iTerm2 (mainly because of native tmux support) and re-mapped shortcuts in iTerm – Preferences – Profiles – Default – Keys – Keymappings as follows:

  • ⌥⌦ – Send Hex Code: 0x1B 0x08 – delete last word
  • ⌘← – Send Hex Code: 0x01 – move cursor one word to the left
  • ⌘→ – Send Hex Code: 0x05 – move cursor to the word to the right

In the Ukrainian layout, dot, comma, and colon are in their usual places, but in the Russian layout they are mixed up. The solution is to choose the Russian – PC layout.

Even since the Linux days, I’ve been used to switching keyboard layouts via shortcuts. I didn’t have to think which language was on: just press buttons and write in the right one. Getting used to typing in this mode, I’m not even used to looking at what language is on. To solve this problem, there is an excellent application [MLSwitcher] (https://apps.apple.com/us/app/mlswitcher/id422365812?mt=12).

A few more hacks related to shortcuts on macOS:

  • Discovered a shortcut to insert Emoji: ⌘ + ^ + Space
  • Using fastscripts and small script, I set up a global shortcut for mute/unmute in Google Meet
  • To learn new shortcuts and speed up my work, I tried CheatSheet. This program shows you shortcuts to the active application if you press and hold ⌘.

Some inconvenience and frustration related to the keyboard and “friendliness” of the interface. I mean often touchpad is the only way to make an action, press button, etc. Changing the focus of the control with arrows or Tab is slowly going out of fashion, and it makes me sad. On Mac as well as Linux, this is pretty bad. In Windows, it was the best: almost every action could be done with the keyboard, but it gets worse from version to version.

NTFS

Support for NTFS for external USB storage on macOS. I have USB Storage, which I’ve never had a problem with, on any device.

Suddenly, but on mac, to write to a device with NTFS, you have to go through a quest with booting the mac into safe mode, disabling security, and installing the kernel extension, after which, with macFUSE you can read and write to the NTFS partition, remembering to mash it in advance like this:

> sudo ntfs-3g /dev/disk5s1 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache

Well, not forgetting to check beforehand what to mount with diskutil list command. If you do not think that life is not short to safely disconnect external devices, unmount the device with sudo diskutil unmount /dev/disk5s1.

After playing FreeBSD admin for a week, I formatted the external storage in extfat, which was the end of the adventure.

A later, I found a few additional ways to deal with NTFS: one and two.

VirtualBox & Docker & Linux tooling

Yes, no VirtualBox means at least no Vagrant. Docker can be installed and run, but there is a concern that not every container will work as well on Linux.

I was pleasantly surprised that brew works as well as apt or yum.

Another problem I have not gotten around to is the lack of strace. On Linux it was very easy to connect to any process and find out what was wrong with it. On Mac we have dtruss and dtrace, but have to figure out how security policies work on Mac and learn how to use them properly.

Security

Overall, it’s pretty cool that processes can be given different permissions at the operating system level. A password is mostly not required, TouchID is enough.

But there are a few curiosities. For example, in order to make Google Chrome start downloading files from the computer, it must be started like this:

open /Applications/Google\ Chrome.app --args --allow-file-access-from-files

I wonder how non-technical users should solve this problem.

Also, after installing OBS, it became the default camera in Chrome, and to change that, you had to go to chrome://settings/content/camera. Which is also somewhat non-trivial, but I think it would occur on any platform.

Software I use

A few words about the software I have tried and actively use. Most of the programs moved with me from Linux and Windows and so far it covers all my needs.

  • vscode – undoubtedly, it still loses to IntelliJ in introspection and refactoring, great database client, but wins in speed and community. Mastering Zettelkasten, I started using foam. After a year of active use, I accumulated several thousand notes and found my approach to analysing and structuring information. Considering that I write all sorts of texts much often than code, this was the critical factor in choosing the IDE.
  • I installed Sublime automatically cause I used to use it for a long time, but apparently ran it only a few times when I needed to format a huge JSON or XML
  • Monosnap – for screenshots, writing, painting on it, and sharing.
  • Freemind is an application for mindmaps. I use it a lot, and I do a lot of automation and scripting around the XML, where it stores mindmaps. A convenient tool, which, as it turned out, does not work on macOS Monterey. Fortunately, a fork of it was found, Freeplane, which works almost fine on macOS.
  • Anki is a memory application. I’ve been using it for almost ten years, working with Anki is part of my daily routine.
  • I installed Davinchi Resolve for video processing but do not use it since standard iMovies covers all my needs.
  • Dropbox – the most convenient way to synchronise and share files.
  • Keepass – I have been using it for many years and see no reason to change to something else.
  • MiKTeX – for working with LaTeX
  • Numi – A user-friendly and handy calculator for everything you can’t calculate in Spotlight. It has an alternative: Soulver.
  • Rectangle – Move and resize windows by shortcuts.
  • OmniFocus – Task management application, due to the lack of MLO for Mac and running Wine, I decided to try an alternative. It’s a long way to my dream application but using OmniFocus made me think a lot about what makes the software usable and the magic of MLO (from which I was using at best 30% of its functionality).
  • itsycal – small calendar in tray bar. Handy, minimalistic, but with my amount of events in calendar, after using it for a month, I decided to replaced it with a permanently open tab with Google Calendar.
  • Numbers as alternative to Excel. For doing simple tasks, I found it quite handy, for something more complicated, you’ll probably have to install Microsoft Excel.
  • Transmission – free torrent client
  • VLC – for watching videos

For the work in the iTerm2 I have installed my favorite font FiraCode, and the tools I used to use on Linux: ohmyzsh, fzf into zsh, mc, htop, ncdu, jq.

Comments

comments

Leave a reply:

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Site Footer

Sliding Sidebar

About Me

About Me

Для кого этот блог?

Для тех кого интересуют современные интернет технологи, IT бизнес, стартапы, менеджмент, контроль качества, личная эффективность, мотивация. Здесь я буду писать о том, что в первую очередь будет интересно мне, о проблемах и решениях. О том что пригодилось мне, и возможно будет интересно Вам.

Что заставило меня создать его?

Желание совершенствоваться. Достигать успеха. Находить людей со схожими проблемами и задачами, вместе искать выходы и решения.

Немного о себе.

Мой первый серьезный опыт в IT это работа над desktop приложениями в компании «Эксперт-Софт». У истоков её стояли несколько амбициозных и талантливых молодых людей, с огнем в глазах и желанием работать «как майкрософт». То чем мы там занимались вполне могли бы сегодня назвать «стартапом». Рук было откровенно мало, поэтому приходилось заниматься всем: кодированием на Delphi, написанием скриптов на VBA, дизайном, вёрсткой и поддержкой вебсайта, работой над рекламной полиграфией, проектированием интерфейсов и БД. Работы было много, но запал был велик, команда очень разношерстная, гармонично дополняя друг-друга в решении нетривиальных задач. Благодаря тому что пришлось попробовать многое, постепенно вырисовалось понимание того чем хочется заниматься, и как. Софтверным программированием я был сыт по горло. Массы проблем десктопного софта в вебе просто не было, по определению. Зато был четкий фокус на дизайне, юзабилити, скорости. Поэтому когда пришла пора уходить из «Эксперт-Софт», я без всякого сожаления стал искать работу как разработчик для web. Поскольку городишко у нас не очень большой, выбор был практически предопределен. Так я стал работать в «Оникс-Системз», где и продолжаю работать поныне. За время работы в компании я как разработчик принимал участие в работе над несколькими десятками проектов. Несколько десятков проектов было сделано мною как фрилансером. Самым большим проектом в котором я сыграл роль менеджера, считаю свою семью. Также довольно большой проект мы сейчас поднимаем с командой разработчиков (на данный момент команда состоит из четырех php разработчиков, одного flex кодера и тестировщика). Отсюда, большой интерес к современным практикам и методологиям, разным подходам в управлении командой, повышению эффективности и качества работы. По мере сил, вдохновения и свободного времени, я буду писать об этом.

Если у Вас возникли какие-то вопросы ко мне лично, буду рад если Вы свяжетесь со мной:

e-mail:
skype: denis.sheremetov
Старый сайт, с музычкой и флешом

Прочая онлайновая деятельность: