Предисловие

Что ж, перед тем, как перейти к содержательной части, обозначу, в чем я вижу здесь проблему, стоящую упоминания. Компьютер - довольно сложное в управлении устройство. Если вам кажется, что это не так, попробуйте вспомнить свое первое знакомство с клавиатурой, когда вам надо на ней что-то напечатать, а где буквы - вы еще не выучили. Я вот помню, что у нас это была целая лабораторная работа - набрать на компьютере короткое стихотворение Пушкина из трех строф, и на это отводился весь академический час - 45 минут. И этого еще не хватало, потому что все время, отведенное на выполнение задания, занимал поиск "да где же тут эта чертова буква на этой чертовой клавиатуре".

Это понимали люди, стоявшие у истоков тех рек, чье мощное течение создало ландшафт IT-экосистемы в том виде, в котором мы имеем честь наблюдать его в настоящее время. Одним из таких людей был специалист по UI-UX интерфейсам, одно время возглавлявший данное направление в корпорации Apple, а также летчик-любитель Джеф Раскин. Именно он сформулировал основной принцип проектирования эргономичных (удобных для использования) интерфейсов, применимый равно как для взаимодействия людей и самолетов, так и людей и компьютеров  - принцип монотонности.

Этот принцип, хотя и расшифровывается достаточно просто и понятно (Раскин раскрывал его как "одинаковое действие всегда должно вести к одинаковому результату", а, в качестве пояснения использовал примеры из авиации, вроде тех, что "представьте, что вы пилот самолета, и потянули штурвал на себя, а самолет, вместо того, чтобы пойти вверх, начал пикировать, и на таком самолете вы могли бы нормально летать только после очень долгого переучивания"), имеет несколько следствий.  Например, таких:

  • переучиваться больно и тяжело

  • выгоды от переучивания должны превышать затраченный на переучивание труд

  • лучше сразу учиться делать правильно (эргономично и экономно), чтобы не пришлось переучиваться

Что ж, купив макбук и, попробовав на нем поработать, я почти сразу осознал, что либо мне придется переучиваться под принятые в этой экосистеме правила, либо я попытаюсь как-то настроить систему, чтобы она вела себя так, как я привык, и как мне надо. Ну, я почему-то решил попробовать второй вариант, и у меня в общем и целом получилось, хотя не полностью и не окончательно. Вот, что я предпринял.

Часть 1. Что не так и что с этим можно сделать?

  • Штатный Alt-Tab не работает (так, как должен). Решилось установкой бесплатной опенсорсной программы AltTab.

  • Непривычные (для виндузятника) хоткеи. Решается тем, что в штатных настойках клавиатуры отключаются почти все хоткеи, назначенные по умолчанию, а потом постепенно, по мере использования, перенастраиваются на привычные.

  • Штатное в Windows и в Ubuntu переключение на самые нужные приложения по Win-1, Win-2, Win-3 и т.д. не работает. Решилось установкой бесплатной программы Snap (спасибо за совет коллеге Алексею. Алексей, привет!)

  • Штатное переключение РУС/ЛАТ по Caps Lock есть и работает, но в моём специальном случае (надо часто подключаться по RDP к машинам с Windows) очень быстро задолбало его включать и отключать. Решилось созданием клавиатурной раскладки ruscaps в бесплатной программе Ukelele (точно такое же концептуально решение я использую и на Windows, которое подсмотрел в статье Ассемблер/дизассемблер клавиатурных раскладок Windows с помощью flat assembler здесь же на Хабре. Работает этот способ хорошо как на маке, так и на винде, по сути это оказался и там и там самый безглючный способ использовать переключение языка по Caps Lock. В Приложении техническая инструкция, как настроить[1]).

  • При использовании такого способа переключения клавиатурных раскладок очень хочется иметь наглядный индикатор, какая именно сейчас раскладка активна, а штатного индикатора состояния Caps Lock, которое и служит индикатором активной раскладки, в menu bar нет. Решилось установкой бесплатной программы Captin (программа работает хорошо, хотя по таймеру состояние Caps (нажато или нет) не опрашивает, отчего иногда кажется, что она зависла)

  • Как семантический эквивалент клавиши Ctrl в системе используется специфичная для маков клавиша Command, которой ни на каких других компьютерах нет. Тут пользователю надо либо переучиться, изменив свои десятилетиями наработанные клавиатурные привычки, либо попытаться настроить систему под себя.  Второй путь сложнее, но я пошел по нему, потому что Vim (для мака это будет MacVim, один из основных моих инструментов) ничего не знает про клавишу Command, и по умолчанию использует клавиатурные комбинации с клавишей Control.

  • Idea в клавиатурной раскладке по умолчанию на маках использует Command вместо Ctrl, но это решается перенастройкой клавиатурной схемы, что требует много телодвижений, но хотя бы работает  (скорее всего, она, как и MacVim, ловит скан-коды, и поэтому может использовать любую клавиатурную раскладку, но почему-то в комплект не положили схему "Idea classic как в Windows", где вместо Command был бы Control, и ее пришлось городить самостоятельно).

  • Очень непривычно себя ведут операции манипулирования с текстом в обычных текстовых полях и редакторах, в частности, при вводе текста в textarea в браузерах, и т.п. Сочетания Ctrl-Home, Ctrl-End, Shift-Ctrl-Home, Shift-Ctrl-End, и аналогичные сочетания с кнопками курсора делают не совсем то (или совсем не то), что они делают в Windows и в Ubuntu. Это приводит просто к ужасному дискомфорту, когда Idea и Vim ведут себя как надо (ну, почти), а редактирование текста в браузерной форме (набить заметку в Evernote) или штатном редакторе вроде TextEdit использует совершенно другие сочетания клавиш для тех же самых действий. Так жить совершенно точно нельзя и не нужно, и, к счастью, это можно почти полностью исправить с помощью настроек: DefaultKeyBinding (в Приложении инструкция, как настроить[2]).

  • горячие клавиши в Chrome (Ctrl-T, Ctrl-W, Ctrl-L, Ctrl-F, F3) не работают по дефолту, потому что вместо Ctrl тут для них нужно использовать Command. Решилось штатными настройками горячих клавиш в System Settings - Keyboard - Application hotkeys (заменить Command на Ctrl, и клавиатурное управление наиболее частыми действиями в Chrome становится консистентным с Windows).

  • Аналог "ножниц" (сделать скриншот части экрана) есть, но сочетание клавиш для его активации не такое, как в Windows. Решилось назначением хоткея Win-Shift-S (такой же, как в Windows) при помощи штатных средств (системные настройки хоткеев)

  • Некоторого привычного софта нету, а есть только аналоги. Решается тем, что приобретается новый опыт, как использовать эти аналоги для решения задач, справляться с которыми ранее помогал привычный софт. (привычный Tortoise Git или DBForge не поставишь, но в Idea есть почти вся нужная функциональность, которую нужно освоить, попутно освоив способы, как обходить присущие этой функциональности баги и шероховатости. Idea хорошая программа, и JetBrains хорошая корпорация, но UX дизайнеров уровня Раскина там нет ни одного, и, кажется, не будет никогда).

  • вместо Far Manager тут Midnight Commander. Некоторой функциональности в нем все равно нет, но базовые вещи (вроде пользовательского меню с пунктами "Отправить в MacVim", "Показать в Finder", "Скопировать путь" и т.п.) настроить вроде получилось (в Приложении инструкция, как именно [3]). Также есть возможность сделать список с самыми часто используемыми директориями, и SFTP-подключения (которые умеют использовать ключи из ssh-agent). В настройках программы Terminal нужно включить галку "Use Option as Meta key", и тогда оно станет реагировать на клавиатурные сочетания, включающие Meta key (это Alt на обычной клавиатуре), а их там немало.

  • кое-где всё равно используются только маковские хоткеи. Вставить текст из буфера в терминале получается только по Command-V. Решилось... никак не решилось, но таких мест мало, и я решил, что пока с ними можно смириться. Возможно, по мере обживания конфигов найдется способ что-то подправить и там.

  • Концепция "рабочих простанств" (Spaces) оказалась сравнительно удобной для использования вместе с виртуальными машинами, но пришлось немного подкрутить: - штатный хоткей для перемещения туда-сюда между пространствами это Ctrl-Left и Ctrl-Right, который использовать совершенно невозможно, потому что в моем представлении это сочетание клавиш должно использоваться для перемещения курсора между словами при редактировании текста. Это довольно просто перенастраивается штатными средствами (я сделал Ctrl-Alt-Shift-(Left | Right). Второй нюанс в том, что мне нужно, чтобы виртуальная машина ловила все хоткеи, в том числе те, для которых назначено действие в хост-системе (Alt-Tab, Win-1, Win-2, Win-3, ...). И этого можно достичь, если в настройках Parallels включить пункт "Send macOs system shortcuts = Always". Но побочным следствием такого будет то, что по Ctrl-Alt-Shift-Right войти в виртуальную машину можно, а выйти из нее по Ctrl-Alt-Shift-Left уже нельзя! К счастью, нашелся workaround - если двинуть мышь вверх, чтобы показалось системное меню Parallels, то Ctrl-Alt-Shift-Left обработается хост-системой. Ну и еще одно, что надо упомянуть - по умолчанию macOs использует поведение "Automatically rearrange spaces based on most recent use", что, возможно, иногда оправдано, но нарушает вышеупомянутый принцип монотонности совершенно явным образом (Раскин бы не одобрил), и чаще всего лучше эту опцию выключить.

  • Еще часто критикуют Макось за ее "недостаточные" возможности, предназначенные для тайлинга (расположения окон приложений по рабочему пространству одного или нескольких мониторов). Тут ничего толкового сказать не могу, потому что мой сценарий использования - это окно приложения, распахнутое на весь экран и переход к этому окну "монотонным" способом - Vim: Win-1, Chrome: Win-2, Far (Terminal): Win-3 и так далее.  Однако в комментариях к предыдущей статье был упомянут проект https://github.com/ianyh/Amethyst - на первый взгляд его возможностей должно быть достаточно для тех, кто привык раскладывать из окон красивую мозаику (автор вдохновлялся xmonad, когда его делал). Я, возможно, когда-нибудь попробую его поюзать.

Часть 2.  Субъективные реплики к пунктам статей этой своеобразной серии.

Читайте только если занудства в первой части вам показалось маловато, и надо бы добавить еще.

Тут попробую записать свое восприятие проблем, которые при переходе на Mac испытали авторы двух перечисленных статей. Начну с более старой опытной "7 причин почему вам не стоит переходить на Mac, или как справиться с этой демонической машиной"

  • Бестолковый Dock Bar

Мне он не показался бестолковым, потому что я, пользуясь Windows с версии Windows 95, еще помню, как эволюционировал Task Bar там. Раньше он выглядел так:

но, начиная с Windows Vista, стал выглядеть очень похоже на Mac-версию. В Windows 7 иконки приложений стали более квадратными (чтобы их помещалось по горизонтали больше) - как и в Mac, добавились визуальные элементы индикации, отображающие текущий статус приложения (запущено, не запущено, сколько окон - как и в Маке, скачивает / занято процессом - лучше, чем в Маке), но в целом никаких неудобств докбар не вызвал, потому что этот элемент управления работает и ведет себя почти так же, как и в Windows. Здесь мы видим пример процесса, когда UI-элементы из разных систем эволюционируют, перенимая друг у друга лучшие черты, и превращаются плюс-минус в одно и то же. Мое имхо: докбар - хорошо сделано, еще и выглядит eye-candy.  Доставить программу Snap, и оно еще и на клавиши начинает реагировать монотонно.

  • Планшетный LaunchPad

Это просто второстепенное приложение для запуска других приложений, которое использует метафоры UI, принятые на планшетах - вроде "перетащите Pages на Numbers, чтобы сделать Productivity", и т.п. Никаких проблем это не вызывает, потому что этим можно пользоваться точно так же, как на iPad, если привык к такому UI-решению, либо не пользоваться вовсе, если оно не нужно (как мне). А вот облегчить переходный период пользователю iPad, который впервые купил себе Макбук зачем-то, такое приложение может.

  • Активные углы

Тут пока воздержусь от комментария, потому что не пользовался, и не имею hands-on experience, как оно. Но в теории, эта штука обладает свойством монотонности, то есть бросок мыши в конкретный угол экрана должен приводить к одинаковому результату. Поэтому, вероятно, если настроить эту фичу правильно, то она скорее полезна, чем вредна.

  • Окна - боль

Тут сценарии использования тоже могут отличаться, но по моим многолетним наблюдениям за собой и за окружающими, основной сценарий использования - это окно приложения, распахнутое на весь экран, и переключение между несколькими  такими "максимизированными" окнами по мере того, какое приложение нужно. История с тайловыми менеджерами, призванными городить хитрую мозаику из окон запущенных приложений, почти никогда не находит применений в практике (исключения - двухпанельный интерфейс файловых менеджеров вроде Far, mc, Total Commander - но и там удобнее оказалось это сделать в виде двух панелей внутри одного приложения, и дашборды мониторинга, где надо одновременно выводить много метрик (визуально оформленных как градусники, спидометры, энцефалограммы, и т.п.) в реальном времени - но и там оказалось удобнее сделать это в чем-то вроде Графаны). В результате эти кнопки светофорных цветов оказались не особо нужны, поэтому и не особо мешают (хотя то, что они ведут себя по разному для разных приложений - это стыд, позор и нарушение принципа монотонности Раскина - например, красная кнопка может просто "свернуть" приложение, а может отправить виртуальную машину в сон, что, хотя концептуально и похоже на "свернуть", а все же значительно отличается, потому что при отправке в сон, в отличие от свертывания, порвутся открытые сокетные соединения).

  • Full Screen — выбор между плохим и ужасным

Вообще в теории Full Screen режим - это хорошо, потому что вспомогательные элементы управления прячутся и не отвлекают внимания, а нужное в данный момент приложение занимает всё доступное место. На практике же это оказывается неудобным, потому что прячутся не только ненужные элементы интерфейса, но и нужные тоже (menu bar вверху, где нужно обычно не само меню, а часы, календарь, текущая раскладка, статус клавиши CapsLock), докбар (где нужна иконка System Monitor с текущей загрузкой процессора), и подобные мелочи. Эту информацию о текущем статусе системы наверняка можно реализовать как дополнительное приложение, которое будет показывать ее и в полноэкранном режиме тоже, в виде какого-нибудь полупрозрачного окна, но такое приложение надо либо искать, либо писать. Кстати, это мысль.

  • Trackpad

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

  • Touch Bar

Про Touch Bar либо хорошо, либо ничего. Его убрали в новых макбуках, и правильно сделали.

Теперь про статью "Перейти с Linux на macOS и не сойти с ума".

Проблема: Dock занимает много места, принося минимальную пользу.

Решение: убрать влево, включить автоскрытие.

Почти согласен. Тоже убрал влево, но автоскрытие выключил, потому что от него (имхо) больше вреда, чем пользы. Автоскрытие было и есть и в таскбаре Windows тоже уже очень давно, и там оно тоже приносит больше вреда, чем пользы, по причинам, перечисленным выше.

Проблема: Command + Tab (аналог Alt + Tab в других ОС) показывает все приложения со всех рабочих столов, непригоден для переключения между несколькими окнами одного приложения.

Решение: использовать альтернативный переключатель окон AltTab, использовать жесты тачпада.

Тут благодарность автору за наводку на бесплатную опенсорсную программу Alt-Tab. Работает очень хорошо, хотя и не совсем так как в Windows, но в чем-то даже лучше.

Проблема: Тайлинг окон, нормальное разворачивание окна на весь экран.

Решение: Rectangle.

Для меня это не оказалось проблемой, потому что окно разворачивается на весь экран двойным кликом по заголовку (как и в Windows) и дальше остается в этом состоянии до перезагрузки. Еще можно зажать Alt на клавиатуре и мышкой нажать на зеленую кнопку - это, оказалось, как раз разворачивание окна на весь экран.

Проблема: Переключение раскладки клавиатуры по CapsLock для тех, кто быстро печатает и часто переключает раскладки.

Решение: Использование Karabiner-Elements.

А вот тут мне пришлось почесать репу. Я тоже быстро печатаю, и тоже привык использовать CapsLock для переключения РУС/ЛАТ. В Макоси есть для этого штатная функция (Use CapsLock to switch to and from US, что-то такое), и, сначала показалось, что это прямо то, что нужно. Оно действительно работает хорошо, пока не надо использовать странные сценарии, вроде таких как "подключиться по RDP к Windows-машине", где клавиатурную раскладку тоже нужно переключать по CapsLock. TL;DR: рабочим решением оказалось сделать то же самое, что и под Windows, а именно - сконструировать кастомную клавиатурную раскладку. На Маке это оказалось сделать (с помощью программы Ukelele) даже проще, потому что клавиатурная раскладка здесь - это файл в xml-формате, а на Windows - это полноценная DLL в формате PE, который еще разный под 32, 64 и ARM архитектуру должен быть. Под ARM (aarch64) у меня пока не получилось такую DLL собрать. Пичалька.

Проблема: Непривычная русская раскладка.

Решение: Использование раскладки «Russian - PC».

Для меня это не оказалось проблемой, потому что я сразу последовал этому совету, и поставил Russian - PC. И, хотя потом пришлось городить свою раскладку, русские буквы я разложил в ней именно так, как в Russian - PC, которая была взята за основу. Спасибо автору за хороший совет.

Проблема: Autocomplete в терминале.

Решение: Fig.

Тут я это решение использовать пока не стал, потому что мне настолько хитрое решение пока не нужно, а автодополнение названий веток в Git по Tab как-то само заработало (то ли после установки Homebrew, то ли сразу было).  Терминал (zsh) можно подвергнуть настройке, чтобы показывал текущую ветку git. Для этого в ~/.zshrc нужно дописать примерно такое (честно утянуто со StackOverflow):

Hidden text
parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}
COLOR_DEF='%f'
COLOR_USR='%F{243}'
COLOR_DIR='%F{197}'
COLOR_GIT='%F{39}'
NEWLINE=$'\n'
setopt PROMPT_SUBST
export PROMPT='${COLOR_USR}%n@%M ${COLOR_DIR}%d ${COLOR_GIT}$(parse_git_branch)${COLOR_DEF}%% '

Проблема: Docker-контейнеры тормозят.

Решение: нет.

Тут промолчу, ибо сам еще не налаживал и не запускал, но, говорят, что если надо запустить что-то x64, то придется использовать какое-то странное решение, в котором одновременно встречаются слова "docker" и "qemu", и оно вроде как еще потребляет много оперативы. (A work around is to spin up an x86 container using Colima, https://oralytics.com/2022/09/22/running-oracle-database-on-docker-on-apple-m1-chip/)

Проблема: Виртуальная машина с Windows и Linux.

Решение: UTM или QEMU.

Там автору подсказали, что "более лучшее" решение - это Parallels. Работает очень хорошо, Microsoft совсем недавно (февраль 2023) что-то даже официально сертифицировала, что Parallels для запуска Windows на макбуках с процессором Apple Silicon - это ОК, но все же Windows работает в режиме виртуальной машины там. То есть софт, который не лезет в ядро, вроде как работает весь, и с отличной, почти native, скоростью, но драйвера не запустятся, даже сравнительно безопасные, типа виртуальных сетевых интерфейсов для openconnect.

Часть 3.  Минусы и плюсы.

Начну с субъективных минусов (которых достаточно), чтобы закончить субъективными плюсами (которых тоже немало).

Сильнее всего не понравилось - это поведение курсора и системы выделения текста в штатных полях редактирования текста. Как-будто специально сделано, чтобы виндузятники не лезли на мак, и наоборот, с целью огораживания. Это оказалось возможным преодолеть (не полностью), но сама необходимость этим заниматься (гуглить нетривиальный способ настройки, а затем еще тюнить его под мои потребности) - создало достаточное количество предвзятости, немного даже переходящей в негатив. При этом в GUI линуксов, сколько их помню, редактирование текста вело себя так же, как в Windows, либо очень похоже.

Еще напрягло (и напрягает до сих пор) скроллинг по колесу внешней (не эппловской, а логитековской) мыши: он то слишком быстрый, то слишком медленный, и нельзя настроить, чтоб было привычно, как в Windows.

Не понравилось, что частота сканирования внешней клавиатуры совсем уж мала (внутренняя работает без нареканий), и с нее Caps иногда не включается или не выключается, когда жмешь его слишком быстро. "А вы просто не жмите так, а жмите помедленнее, с чувством, с толком, с расстановкой", - ну, что ж, такой совет помогает. Но вот в Windows никогда не крохоборничали на этой частоте, и оно всегда, сколько помню, отрабатывало моментально (с одним исключением - когда у Windows забивается дисковая очередь - вот тогда даже ядро начинает тормозить в базовых функциях реагирования на мышь и клавиатуру)

Что еще? Ну, непривычное и неконсистентное поведение кнопок управления размером окна... но это не воспринималось, как напряг, просто местная особенность.

Остальное же плюс-минус точно такое же, как и в других компьютерах. Процессор с регистрами, память, прерывания, планировщик, тред, файл, диск, сокет, пайп, GUI с реактивной моделью, что тут еще можно придумать... [место для смайлика с разведенными руками ¯_(ツ)_/¯ ]

Теперь про плюсы.

  • не глючит (не глючит сама ОС, приложения, к сожалению, еще как глючат и вылетают, в том числе даже системный WindowServer)

  • не тормозит (заставить тормозить не удалось)

  • не греется и не жужжит вентиляторами (заставить греться и жужжать получилось, но для этого надо было выключить режим low power mode, запустить виртуалку с виндой и в ней запустить GPU Stress Test системы "волосатый бублик", при этом включив еще опции "cpu burner", и запустить этот cpu burner параллельно с бубликом)

  • производительный (10 ядер, быстрая оперативка, можно запустить виртуальную машину с виндой и в ней упомянутый "волосатый бублик", и он будет показывать 60 FPS на FullHD. Не знаю, умеет ли так какой-либо ноутбук на Windows).

  • почти все нужные тулзы тут есть сразу (ssh, openssl, base64, md5, curl, split, xmllint, вот это вот все) - на винде сейчас приходится доустанавливать даже банальный telnet. Git, как я понял, ставится вместе с Homebrew, и потом тоже доступен везде.

  • чего нету - обычно легко доустанавливается через Homebrew (типа jq для форматирования JSON или nginx, тоже бывает нужен, хотя бы захостить статику)

  • обнаружил, что MacVim довольно тесно интегрируется с шеллом (zsh), и может исполнять команды шелла прямо если написать непосредственно в текущем документе (а не в режиме командной строки), причем это корректно отрабатывает даже с sudo-командами, когда надо вводить пароль, или ping, которые выдают строку за строкой. Это повышает удобство использования CLI-утилит просто в разы, и на Винде такой тесной интеграции мне достичь не удалось, хотя дёргать CLI-утилиты таким способом можно и там тоже (см. Приложение [4]).

  • долго держит батарейку (не проверял, потому что у меня компьютер практически всегда подключен к сети, и мне это не очень актуально)

  • умеет подзаряжаться даже от старых и слабых телефонных зарядок. Как-то у меня не было нормального мощного зарядного устройства, и пришлось подключить разряженный макбук к тому, что было (телефонное зарядное устройство, 5В, 2А). Часов за 9 он набрал полный заряд. Не видел, чтобы виндобуки так умели делать.

  • есть Spotlight Search (тот самый, который по Command-Space) - вот он работает быстро и принцип монотонности соблюдает как раз просто канонически. Хотя, справедливости ради, похожий по назначению Everything Search Engine под Windows работает не хуже, если не считать, что функциональность последнего ограничена поиском только по именам файлов и каталогов.

  • вроде как не кряхтит даже под нагрузкой (две виртуальных машины, Ubuntu и Windows 11, Идея,  запущенный java-проект и запущенный dev server под node, запущенный Хром и остальное по мелочи) - и оно не демонстрирует никаких подтормаживаний, хотя график Memory Pressure в мониторе ресурсов уже устойчиво уходит в желтую зону. Это у меня с 16 Gb RAM конфигурация, а бывают и с 32.

  • экран и встроенная клавиатура, говорят, хороши, но я пользуюсь нормальной внешней клавиатурой со стандартной раскладкой, к которой приспособлен мой навык десятипальцевой слепой печати, и, по возможности, внешним монитором тоже (4K 60 Hz без проблем работает через HDMI), так что тут оценить в полной мере не могу.

  • Имеется rosetta2 (которую надо, сначала, доустановить с помощью sudo softwareupgrade rosetta2), которая позволяет запускать собранные (для Макоси, конечно) бинарники с архитектурой x86_64. Помогает, если нужно запустить что-то, что под aarch64 еще не успели пересобрать.

  • Как Ubuntu, так и ARM-версия Windows 11 запускаются в Parallels, причем работают почти что с native-производительностью. При этом Windows с помощью какой-то магии умеет запускать exe-шники всех трех архитектур: x86, x86_64 и ARM (hint: чтобы посмотреть, что это за exe-шник, можно использовать встроенную в макбук программу file). Однако полного чуда все равно не происходит, и кое-что все равно не работает: некоторые драйверы (у меня не завелся openconnect под Windows, потому что он не смог установить tap/tun драйвер, или что-то такое), а также не смогла загрузиться DLL с клавиатурной раскладкой, предназначенной для переключения по Caps Lock, собранная под x86_64, причем система ее видит и показывает в списке доступных клавиатурных раскладок, но не может использовать. Даже Microsoft Keyboard Layout Creator, запущенный под ARM-виндой, собирает DLL под архитектуру x86_64, и она под этой виндой оказывается неюзабельной.

  • красиво и престижно иметь красивый и престижный компьютер с яблоком (ну, тут, как бы да, но как бы и не совсем)

Эпилог. "И как тебе макбук"?

Скорее стал нравиться,  после полугодовой доработки напильником, но фэнбойства никакого не появилось и близко. Как-то так. У этого компьютера есть ощутимые плюсы, которые, может быть, перевешивают минусы, но минусы никуда не деваются, а устранить их могут только в корпорации Apple, потому что это вопросы идеологии. "Является ли такое поведение системы багом или фичей", вот в чем вопрос.

Стоило ли оно того (полгода не очень больших, но всё же усилий, чтобы сконфигурировать этот макбук под мои потребности виндузятника)? Вопрос почти риторический. В моем случае - скорее это было не оправдано. На Винде у меня уже всё было готовое (не только набор софта, но и клавиатурные привычки и наработанные способы решения задач), а тут мне пришлось многое заново изучать, настраивать и конфигурировать. Но с другой стороны, любим же мы компьютерщину не за то, что все настроено и работает, а именно за то, что можно возиться и все настраивать и улучшать :). По принципу "put the fun back into computing - use Linux, BSD..." Поэтому с одной стороны у меня присутствует ощущение потраченных не таких уж маленьких денег и затраченного не такого уж маленького времени, чтобы настроить этот компьютер до состояния, что я могу на нем работать (а при этом он работает плюс-минус с той же отзывчивостью, скоростью и безглючностью, что и хороший виндобук), а с другой стороны, есть и ощущение некоторого удовлетворения, что я смог разобраться и настроить как мне надо, и, в процессе этого, наверное, узнал какие-то новые нюансы взаимодействия с nix-системами.  От которых мы в ближайшем обозримом будущем никуда не денемся, потому что сейчас уже понятно, что мало-мальски важную инфраструктуру будут впредь выстраивать именно на открытых, а не на проприетарных решениях.

Короче, компьютер действительно тихий и быстрый, имеет запас прочности по производительности (я так и не смог его нагрузить своими текущими задачами по-полной), и, по сути, предлагает производительность хорошего десктопа в форм-факторе ноутбука, который еще и работает обычно абсолютно бесшумно (последнее для меня весьма важно).

Еще некоторое удовлетворение приносит факт, что я осилил дописать эту статью :)

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

Приложение. Как конкретно настроить то, сё, пятое, десятое. Технические подробности.

Мои конфиги для макоси, которые описываю ниже, я разместил в репозитории https://github.com/konstlvov/macos.

  1. Переключение РУС/ЛАТ по CapsLock. Решается с помощью создания кастомной клавиатурной раскладки "ruscaps" с помощью программы Ukelele для Макоси. Эта программа предоставляет графический интерфейс, с помощью нажимания на кнопки в котором в конце концов получается примерно такой файл:

Hidden text
<?xml version="1.1" encoding="UTF-8"?>
<!DOCTYPE keyboard SYSTEM "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">
<!--Created by Ukelele version 359 on 2023-02-24 at 13:05 (GMT+3)-->
<!--Last edited by Ukelele version 359 on 2023-02-26 at 13:38 (GMT+3)-->
<keyboard group="126" id="-5618" name="ruscaps" maxout="1">
    <layouts>
        <layout first="0" last="17" mapSet="ANSI" modifiers="Modifiers"/>
        <layout first="18" last="18" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="21" last="23" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="30" last="30" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="33" last="33" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="36" last="36" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="194" last="194" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="197" last="197" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="200" last="201" mapSet="JIS" modifiers="Modifiers"/>
        <layout first="206" last="207" mapSet="JIS" modifiers="Modifiers"/>
    </layouts>
    <modifierMap id="Modifiers" defaultIndex="10">
        <keyMapSelect mapIndex="0">
            <modifier keys=""/>
        </keyMapSelect>
        <keyMapSelect mapIndex="1">
            <modifier keys="anyShift"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="2">
            <modifier keys="anyOption"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="3">
            <modifier keys="anyShift caps? anyOption"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="4">
            <modifier keys="caps"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="5">
            <modifier keys="command"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="6">
            <modifier keys="anyShift command"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="7">
            <modifier keys="anyOption command"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="8">
            <modifier keys="anyShift anyOption command"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="9">
            <modifier keys="caps command"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="10">
            <modifier keys="anyControl"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="11">
            <modifier keys="caps anyControl"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="12">
            <modifier keys="anyShift caps"/>
        </keyMapSelect>
    </modifierMap>
    <keyMapSet id="ANSI">
        <keyMap index="0">
            <key code="0" output="a"/>
            <key code="1" output="s"/>
            <key code="2" output="d"/>
            <key code="3" output="f"/>
            <key code="4" output="h"/>
            <key code="5" output="g"/>
            <key code="6" output="z"/>
            <key code="7" output="x"/>
            <key code="8" output="c"/>
            <key code="9" output="v"/>
            <key code="10" output="§"/>
            <key code="11" output="b"/>
            <key code="12" output="q"/>
            <key code="13" output="w"/>
            <key code="14" output="e"/>
            <key code="15" output="r"/>
            <key code="16" output="y"/>
            <key code="17" output="t"/>
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <key code="26" output="7"/>
            <key code="27" output="-"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="]"/>
            <key code="31" output="o"/>
            <key code="32" output="u"/>
            <key code="33" output="["/>
            <key code="34" output="i"/>
            <key code="35" output="p"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="l"/>
            <key code="38" output="j"/>
            <key code="39" output="&#x0027;"/>
            <key code="40" output="k"/>
            <key code="41" output=";"/>
            <key code="42" output="\"/>
            <key code="43" output=","/>
            <key code="44" output="/"/>
            <key code="45" output="n"/>
            <key code="46" output="m"/>
            <key code="47" output="."/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="`"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output="."/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="1">
            <key code="0" output="A"/>
            <key code="1" output="S"/>
            <key code="2" output="D"/>
            <key code="3" output="F"/>
            <key code="4" output="H"/>
            <key code="5" output="G"/>
            <key code="6" output="Z"/>
            <key code="7" output="X"/>
            <key code="8" output="C"/>
            <key code="9" output="V"/>
            <key code="10" output="±"/>
            <key code="11" output="B"/>
            <key code="12" output="Q"/>
            <key code="13" output="W"/>
            <key code="14" output="E"/>
            <key code="15" output="R"/>
            <key code="16" output="Y"/>
            <key code="17" output="T"/>
            <key code="18" output="!"/>
            <key code="19" output="@"/>
            <key code="20" output="#"/>
            <key code="21" output="$"/>
            <key code="22" output="^"/>
            <key code="23" output="%"/>
            <key code="24" output="+"/>
            <key code="25" output="("/>
            <key code="26" output="&#x0026;"/>
            <key code="27" output="_"/>
            <key code="28" output="*"/>
            <key code="29" output=")"/>
            <key code="30" output="}"/>
            <key code="31" output="O"/>
            <key code="32" output="U"/>
            <key code="33" output="{"/>
            <key code="34" output="I"/>
            <key code="35" output="P"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="L"/>
            <key code="38" output="J"/>
            <key code="39" output="&#x0022;"/>
            <key code="40" output="K"/>
            <key code="41" output=":"/>
            <key code="42" output="|"/>
            <key code="43" output="&#x003C;"/>
            <key code="44" output="?"/>
            <key code="45" output="N"/>
            <key code="46" output="M"/>
            <key code="47" output="&#x003E;"/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="~"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output="."/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="2">
            <key code="0" output=""/>
            <key code="1" output=""/>
            <key code="2" output=""/>
            <key code="3" output=""/>
            <key code="4" output=""/>
            <key code="5" output=""/>
            <key code="6" output=""/>
            <key code="7" output=""/>
            <key code="8" output=""/>
            <key code="9" output=""/>
            <key code="10" output=""/>
            <key code="11" output=""/>
            <key code="12" output=""/>
            <key code="13" output=""/>
            <key code="14" output=""/>
            <key code="15" output=""/>
            <key code="16" output=""/>
            <key code="17" output=""/>
            <key code="18" output=""/>
            <key code="19" output=""/>
            <key code="20" output=""/>
            <key code="21" output=""/>
            <key code="22" output=""/>
            <key code="23" output=""/>
            <key code="24" output=""/>
            <key code="25" output=""/>
            <key code="26" output=""/>
            <key code="27" output=""/>
            <key code="28" output=""/>
            <key code="29" output=""/>
            <key code="30" output=""/>
            <key code="31" output=""/>
            <key code="32" output=""/>
            <key code="33" output=""/>
            <key code="34" output=""/>
            <key code="35" output=""/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output=""/>
            <key code="38" output=""/>
            <key code="39" output=""/>
            <key code="40" output=""/>
            <key code="41" output=""/>
            <key code="42" output=""/>
            <key code="43" output=""/>
            <key code="44" output=""/>
            <key code="45" output=""/>
            <key code="46" output=""/>
            <key code="47" output=""/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=""/>
            <key code="50" output=""/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output=""/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output=""/>
            <key code="69" output=""/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output=""/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output=""/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output=""/>
            <key code="82" output=""/>
            <key code="83" output=""/>
            <key code="84" output=""/>
            <key code="85" output=""/>
            <key code="86" output=""/>
            <key code="87" output=""/>
            <key code="88" output=""/>
            <key code="89" output=""/>
            <key code="91" output=""/>
            <key code="92" output=""/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="3">
            <key code="0" output=""/>
            <key code="36" output="&#x000D;"/>
            <key code="48" output="&#x0009;"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="66" output="&#x001D;"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="4">
            <key code="0" output="ф"/>
            <key code="1" output="ы"/>
            <key code="2" output="в"/>
            <key code="3" output="а"/>
            <key code="4" output="р"/>
            <key code="5" output="п"/>
            <key code="6" output="я"/>
            <key code="7" output="ч"/>
            <key code="8" output="с"/>
            <key code="9" output="м"/>
            <key code="10" output="ё"/>
            <key code="11" output="и"/>
            <key code="12" output="й"/>
            <key code="13" output="ц"/>
            <key code="14" output="у"/>
            <key code="15" output="к"/>
            <key code="16" output="н"/>
            <key code="17" output="е"/>
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <key code="26" output="7"/>
            <key code="27" output="-"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="ъ"/>
            <key code="31" output="щ"/>
            <key code="32" output="г"/>
            <key code="33" output="х"/>
            <key code="34" output="ш"/>
            <key code="35" output="з"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="д"/>
            <key code="38" output="о"/>
            <key code="39" output="э"/>
            <key code="40" output="л"/>
            <key code="41" output="ж"/>
            <key code="42" output="\"/>
            <key code="43" output="б"/>
            <key code="44" output="."/>
            <key code="45" output="т"/>
            <key code="46" output="ь"/>
            <key code="47" output="ю"/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="ё"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output="."/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="5">
            <key code="0" output="a"/>
            <key code="1" output="s"/>
            <key code="2" output="d"/>
            <key code="3" output="f"/>
            <key code="4" output="h"/>
            <key code="5" output="g"/>
            <key code="6" output="z"/>
            <key code="7" output="x"/>
            <key code="8" output="c"/>
            <key code="9" output="v"/>
            <key code="10" output=""/>
            <key code="11" output="b"/>
            <key code="12" output="q"/>
            <key code="13" output="w"/>
            <key code="14" output="e"/>
            <key code="15" output="r"/>
            <key code="16" output="y"/>
            <key code="17" output="t"/>
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <key code="26" output="7"/>
            <key code="27" output="-"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="]"/>
            <key code="31" output="o"/>
            <key code="32" output="u"/>
            <key code="33" output="["/>
            <key code="34" output="i"/>
            <key code="35" output="p"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="l"/>
            <key code="38" output="j"/>
            <key code="39" output="&#x0027;"/>
            <key code="40" output="k"/>
            <key code="41" output=";"/>
            <key code="42" output="\"/>
            <key code="43" output=","/>
            <key code="44" output="/"/>
            <key code="45" output="n"/>
            <key code="46" output="m"/>
            <key code="47" output="."/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="`"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output=""/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="6">
            <key code="0" output="A"/>
            <key code="1" output="S"/>
            <key code="2" output="D"/>
            <key code="3" output="F"/>
            <key code="4" output="H"/>
            <key code="5" output="G"/>
            <key code="6" output="Z"/>
            <key code="7" output="X"/>
            <key code="8" output="C"/>
            <key code="9" output="V"/>
            <key code="11" output="B"/>
            <key code="12" output="Q"/>
            <key code="13" output="W"/>
            <key code="14" output="E"/>
            <key code="15" output="R"/>
            <key code="16" output="Y"/>
            <key code="17" output="T"/>
            <key code="18" output="!"/>
            <key code="19" output="@"/>
            <key code="20" output="#"/>
            <key code="21" output="$"/>
            <key code="22" output="^"/>
            <key code="23" output="%"/>
            <key code="24" output="+"/>
            <key code="25" output="("/>
            <key code="26" output="&#x0026;"/>
            <key code="27" output="_"/>
            <key code="28" output="*"/>
            <key code="29" output=")"/>
            <key code="30" output="}"/>
            <key code="31" output="O"/>
            <key code="32" output="U"/>
            <key code="33" output="{"/>
            <key code="34" output="I"/>
            <key code="35" output="P"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="L"/>
            <key code="38" output="J"/>
            <key code="39" output="&#x0022;"/>
            <key code="40" output="K"/>
            <key code="41" output=":"/>
            <key code="42" output="|"/>
            <key code="43" output="&#x003C;"/>
            <key code="44" output="?"/>
            <key code="45" output="N"/>
            <key code="46" output="M"/>
            <key code="47" output="&#x003E;"/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="~"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="7">
            <key code="0" output=""/>
            <key code="36" output="&#x000D;"/>
            <key code="48" output="&#x0009;"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="66" output="&#x001D;"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="8">
            <key code="0" output=""/>
            <key code="36" output="&#x000D;"/>
            <key code="48" output="&#x0009;"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="66" output="&#x001D;"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="9">
            <key code="0" output="A"/>
            <key code="1" output="S"/>
            <key code="2" output="D"/>
            <key code="3" output="F"/>
            <key code="4" output="H"/>
            <key code="5" output="G"/>
            <key code="6" output="Z"/>
            <key code="7" output="X"/>
            <key code="8" output="C"/>
            <key code="9" output="V"/>
            <key code="10" output=""/>
            <key code="11" output="B"/>
            <key code="12" output="Q"/>
            <key code="13" output="W"/>
            <key code="14" output="E"/>
            <key code="15" output="R"/>
            <key code="16" output="Y"/>
            <key code="17" output="T"/>
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <key code="26" output="7"/>
            <key code="27" output="-"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="]"/>
            <key code="31" output="O"/>
            <key code="32" output="U"/>
            <key code="33" output="["/>
            <key code="34" output="I"/>
            <key code="35" output="P"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="L"/>
            <key code="38" output="J"/>
            <key code="39" output="&#x0027;"/>
            <key code="40" output="K"/>
            <key code="41" output=";"/>
            <key code="42" output="\"/>
            <key code="43" output=","/>
            <key code="44" output="/"/>
            <key code="45" output="N"/>
            <key code="46" output="M"/>
            <key code="47" output="."/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="`"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output=""/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="10">
            <key code="0" output="&#x0001;"/>
            <key code="1" output="&#x0013;"/>
            <key code="2" output="&#x0004;"/>
            <key code="3" output="&#x0006;"/>
            <key code="4" output="&#x0008;"/>
            <key code="5" output="&#x0007;"/>
            <key code="6" output="&#x001A;"/>
            <key code="7" output="&#x0018;"/>
            <key code="8" output="&#x0003;"/>
            <key code="9" output="&#x0016;"/>
            <key code="10" output="0"/>
            <key code="11" output="&#x0002;"/>
            <key code="12" output="&#x0011;"/>
            <key code="13" output="&#x0017;"/>
            <key code="14" output="&#x0005;"/>
            <key code="15" output="&#x0012;"/>
            <key code="16" output="&#x0019;"/>
            <key code="17" output="&#x0014;"/>
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <key code="26" output="7"/>
            <key code="27" output="&#x001F;"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="&#x001D;"/>
            <key code="31" output="&#x000F;"/>
            <key code="32" output="&#x0015;"/>
            <key code="33" output="&#x001B;"/>
            <key code="34" output="&#x0009;"/>
            <key code="35" output="&#x0010;"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="&#x000C;"/>
            <key code="38" output="&#x000A;"/>
            <key code="39" output="&#x0027;"/>
            <key code="40" output="&#x000B;"/>
            <key code="41" output=";"/>
            <key code="42" output="&#x001C;"/>
            <key code="43" output=","/>
            <key code="44" output="/"/>
            <key code="45" output="&#x000E;"/>
            <key code="46" output="&#x000D;"/>
            <key code="47" output="."/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=""/>
            <key code="50" output="`"/>
            <key code="51" output="&#x0008;"/>
            <key code="52" output="&#x0003;"/>
            <key code="53" output="&#x001B;"/>
            <key code="65" output="."/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="102" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="104" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="108" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="110" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="112" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="11">
            <key code="0" output="&#x0001;"/>
            <key code="1" output="&#x0013;"/>
            <key code="2" output="&#x0004;"/>
            <key code="3" output="&#x0006;"/>
            <key code="4" output="&#x0008;"/>
            <key code="5" output="&#x0007;"/>
            <key code="6" output="&#x001A;"/>
            <key code="7" output="&#x0018;"/>
            <key code="8" output="&#x0003;"/>
            <key code="9" output="&#x0016;"/>
            <key code="10" output="0"/>
            <key code="11" output="&#x0002;"/>
            <key code="12" output="&#x0011;"/>
            <key code="13" output="&#x0017;"/>
            <key code="14" output="&#x0005;"/>
            <key code="15" output="&#x0012;"/>
            <key code="16" output="&#x0019;"/>
            <key code="17" output="&#x0014;"/>
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <key code="26" output="7"/>
            <key code="27" output="&#x001F;"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="&#x001D;"/>
            <key code="31" output="&#x000F;"/>
            <key code="32" output="&#x0015;"/>
            <key code="33" output="&#x001B;"/>
            <key code="34" output="&#x0009;"/>
            <key code="35" output="&#x0010;"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="&#x000C;"/>
            <key code="38" output="&#x000A;"/>
            <key code="39" output="&#x0027;"/>
            <key code="40" output="&#x000B;"/>
            <key code="41" output=";"/>
            <key code="42" output="&#x001C;"/>
            <key code="43" output=","/>
            <key code="44" output="/"/>
            <key code="45" output="&#x000E;"/>
            <key code="46" output="&#x000D;"/>
            <key code="47" output="."/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=""/>
            <key code="50" output="`"/>
            <key code="51" output="&#x0008;"/>
            <key code="52" output="&#x0003;"/>
            <key code="53" output="&#x001B;"/>
            <key code="65" output="."/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="102" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="104" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="108" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="110" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="112" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
        <keyMap index="12">
            <key code="0" output="Ф"/>
            <key code="1" output="Ы"/>
            <key code="2" output="В"/>
            <key code="3" output="А"/>
            <key code="4" output="Р"/>
            <key code="5" output="П"/>
            <key code="6" output="Я"/>
            <key code="7" output="Ч"/>
            <key code="8" output="С"/>
            <key code="9" output="М"/>
            <key code="10" output="Ё"/>
            <key code="11" output="И"/>
            <key code="12" output="Й"/>
            <key code="13" output="Ц"/>
            <key code="14" output="У"/>
            <key code="15" output="К"/>
            <key code="16" output="Н"/>
            <key code="17" output="Е"/>
            <key code="18" output="!"/>
            <key code="19" output="&#x0022;"/>
            <key code="20" output="№"/>
            <key code="21" output=";"/>
            <key code="22" output=":"/>
            <key code="23" output="%"/>
            <key code="24" output="+"/>
            <key code="25" output="("/>
            <key code="26" output="?"/>
            <key code="27" output="_"/>
            <key code="28" output="*"/>
            <key code="29" output=")"/>
            <key code="30" output="Ъ"/>
            <key code="31" output="Щ"/>
            <key code="32" output="Г"/>
            <key code="33" output="Х"/>
            <key code="34" output="Ш"/>
            <key code="35" output="З"/>
            <key code="36" output="&#x000D;"/>
            <key code="37" output="Д"/>
            <key code="38" output="О"/>
            <key code="39" output="Э"/>
            <key code="40" output="Л"/>
            <key code="41" output="Ж"/>
            <key code="42" output="/"/>
            <key code="43" output="Б"/>
            <key code="44" output=","/>
            <key code="45" output="Т"/>
            <key code="46" output="Ь"/>
            <key code="47" output="Ю"/>
            <key code="48" output="&#x0009;"/>
            <key code="49" output=" "/>
            <key code="50" output="Ë"/>
            <key code="51" output="&#x0008;"/>
            <key code="53" output="&#x001B;"/>
            <key code="64" output="&#x0010;"/>
            <key code="65" output="."/>
            <key code="66" output="&#x001D;"/>
            <key code="67" output="*"/>
            <key code="69" output="+"/>
            <key code="70" output="&#x001C;"/>
            <key code="71" output="&#x001B;"/>
            <key code="72" output="&#x001F;"/>
            <key code="75" output="/"/>
            <key code="76" output="&#x0003;"/>
            <key code="77" output="&#x001E;"/>
            <key code="78" output="-"/>
            <key code="79" output="&#x0010;"/>
            <key code="80" output="&#x0010;"/>
            <key code="81" output="="/>
            <key code="82" output="0"/>
            <key code="83" output="1"/>
            <key code="84" output="2"/>
            <key code="85" output="3"/>
            <key code="86" output="4"/>
            <key code="87" output="5"/>
            <key code="88" output="6"/>
            <key code="89" output="7"/>
            <key code="91" output="8"/>
            <key code="92" output="9"/>
            <key code="96" output="&#x0010;"/>
            <key code="97" output="&#x0010;"/>
            <key code="98" output="&#x0010;"/>
            <key code="99" output="&#x0010;"/>
            <key code="100" output="&#x0010;"/>
            <key code="101" output="&#x0010;"/>
            <key code="103" output="&#x0010;"/>
            <key code="105" output="&#x0010;"/>
            <key code="106" output="&#x0010;"/>
            <key code="107" output="&#x0010;"/>
            <key code="109" output="&#x0010;"/>
            <key code="111" output="&#x0010;"/>
            <key code="113" output="&#x0010;"/>
            <key code="114" output="&#x0005;"/>
            <key code="115" output="&#x0001;"/>
            <key code="116" output="&#x000B;"/>
            <key code="117" output="&#x007F;"/>
            <key code="118" output="&#x0010;"/>
            <key code="119" output="&#x0004;"/>
            <key code="120" output="&#x0010;"/>
            <key code="121" output="&#x000C;"/>
            <key code="122" output="&#x0010;"/>
            <key code="123" output="&#x001C;"/>
            <key code="124" output="&#x001D;"/>
            <key code="125" output="&#x001F;"/>
            <key code="126" output="&#x001E;"/>
        </keyMap>
    </keyMapSet>
    <keyMapSet id="JIS">
        <keyMap index="0" baseMapSet="ANSI" baseIndex="0">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="1" baseMapSet="ANSI" baseIndex="1">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="2" baseMapSet="ANSI" baseIndex="2">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="3" baseMapSet="ANSI" baseIndex="3">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="4" baseMapSet="ANSI" baseIndex="4">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="5" baseMapSet="ANSI" baseIndex="5">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="6" baseMapSet="ANSI" baseIndex="6">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="7" baseMapSet="ANSI" baseIndex="7">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="8" baseMapSet="ANSI" baseIndex="8">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="9" baseMapSet="ANSI" baseIndex="9">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="10" baseMapSet="ANSI" baseIndex="10">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="11" baseMapSet="ANSI" baseIndex="11">
            <key code="512" output=""/>
        </keyMap>
        <keyMap index="12" baseMapSet="ANSI" baseIndex="12">
            <key code="512" output=""/>
        </keyMap>
    </keyMapSet>
</keyboard>

Потом этот файл помещается в /Users/konst/Library/Keyboard Layouts/  ,  в настройках системы он становится виден как новая клавиатурная раскладка с названием ruscaps, и, когда ее выбрать, в режиме, когда включен Caps, набираются русские буквы, а когда выключен - латинские. Система же думает, что язык и клавиатурная раскладка никогда не переключается.

  1. Стандартное (почти) поведение Ctrl, Shift, Home, End, PgUp, PgDown и стрелочных клавиш в режиме редактирования текста достигается созданием файла Users/konst/Library/KeyBindings/DefaultKeyBinding.dict

в котором написано примерно следующее:

Hidden text
{ 
  "^\UF72B"  = "moveToEndOfDocument:";                         /* Ctrl-End */ 
  "^$\UF72B" = "moveToEndOfDocumentAndModifySelection:";       /* Ctrl + Shift + End */ 
  "^\UF729"  = "moveToBeginningOfDocument:";                   /* Ctrl  + Home  */ 
  "^$\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; /* Shift + Ctrl  + Home */ 
  "\UF729"   = "moveToBeginningOfLine:";                       /* Home         */ 
  "$\UF729"  = "moveToBeginningOfLineAndModifySelection:";     /* Shift + Home */ 
  "\UF72B"   = "moveToEndOfLine:";                             /* End          */ 
  "$\UF72B"  = "moveToEndOfLineAndModifySelection:";           /* Shift + End  */ 
  "\UF72C"   = "pageUp:";                                      /* PageUp       */ 
  "\UF72D"   = "pageDown:";                                    /* PageDown     */ 
  "^\U007F"  = "deleteWordBackward:";                          /* Ctrl  + Backspace */ 
  "^c"       = "copy:";                                        /* Ctrl  + C */ 
  "^v"       = "paste:";                                       /* Ctrl  + V */ 
  "^x"       = "cut:";                                         /* Ctrl  + X */ 
  "^z"       = "undo:";                                        /* Ctrl  + Z */ 
  "^с"       = "copy:";                                        /* Ctrl  + C in Russian keyboard layout */ 
  "^м"       = "paste:";                                       /* Ctrl  + V in Russian keyboard layout */ 
  "^ч"       = "cut:";                                         /* Ctrl  + X in Russian keyboard layout */ 
  "^я"       = "undo:";                                        /* Ctrl  + Z in Russian keyboard layout */ 
   
  "^\UF702" = moveWordLeft:; 
  "^\UF703" = moveWordRight:; 
  "^$\UF702" = moveWordLeftAndModifySelection:; 
  "^$\UF703" = moveWordRightAndModifySelection:; 
}

  1. Далее приведены страшные символы, создающие полезные пункты в пользовательском меню Midnight Commander, которое вызывается по F2. Придумать их невозможно, можно только нагуглить из интернета.

Итак, для начала создаем файл ~/mc.menu и в нем дописываем, кому что надо. Мне сразу понадобилось такое:

+ ! t t
v       Edit with MacVim
        /Applications/MacVim.app/Contents/MacOS/Vim --remote-tab-silent %f
+ ! t t
@       Set full path to current file to flist
        echo %d/%f >> ~/flist 
+ ! t t
l       Launch file (with finder)
        open %f
+ ! t t
o       Open and show file in Finder
        open -R %f
+ ! t t
@       Do something bad on the current file
        CMD=%{Enter command}
        $CMD %f
  1. Интеграция Vim и терминала (zsh) у меня выглядит примерно так (фрагмент из моего .vimrc):

" Отформатировать JSON
vnoremap ,j :! /opt/homebrew/bin/jq . <CR>

" Отформатировать XML
vnoremap ,f :!xmllint --format -<CR>

" Исполнить текущую строку в bash (например, вызвать curl на api endpoint)
" точка перед w означает, что использовать надо конкретную строку
nnoremap ,e :.w !bash<CR>:echo('...done.')<CR>

" то же самое, но вставить вывод команды в текущий буфер
nnoremap ,E :exec 'r!'.getline('.')<CR>

" Исполнить текущее выделение (range of lines) в bash
vnoremap ,e :w !bash<CR>

Комментарии (254)


  1. Zuy
    00.00.0000 00:00
    +74

    Когда работаешь сразу в Mac/Win/Linux ничего особо не настраивая, а тут целая статья выходит о том, что все плохо


    1. Breathe_the_pressure
      00.00.0000 00:00
      +11

      Перенастройте Мак как Win, Win как Линукс и т.п. Живут не для радости, а для совести. (с)



    1. SamaRazor
      00.00.0000 00:00
      +1

      У людей разная кривая обучения. Тот же command/ctrl. Я когда начал под ios разрабатывать тоже дико плевался. Потом начал плеваться в момент переключения с рабочей машины на домашнюю виндовую. Сейчас это вообще seamless, но потребовалось несколько лет.


      1. den_rad
        00.00.0000 00:00

        А после покупки макбука забросил рабочую машину под Linux и стал работать на своем ноутбуке. Не хотелось мучаться с раскладками и хоткеями.


      1. Perfecti-ist
        00.00.0000 00:00

        А а чем была проблема в системных настройках поменять control и command местами?


        1. klvov Автор
          00.00.0000 00:00

          1) мне не сразу это пришло в голову, 2) Vim скорее всего такого бы не понял, а мне он нужен. А с Idea такое бы прокатило, ее клавиатурную схему не пришлось бы перенастраивать.


        1. SamaRazor
          00.00.0000 00:00

          Проблема в том, что изменение подобных настроек чревато выстрелами в ногу и громкими ругательствами при смене устройства.


  1. auresio
    00.00.0000 00:00
    +8

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

    Боюсь вас расстроить, все уже не так https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z . Это просто мы с вами олды и привыкли к порядку.
    Если я раньше удивлялся как так многое в винде стало или выпиленным или ограниченным, то теперь не удивляюсь, ребята просто подстраиваются под стремительно деградируещего в плане компьютерной грамотности пользователя.


    1. MAXH0
      00.00.0000 00:00
      +5

      Поразительная статья, особенно для учителя информатики. Особенно пугает появление "интеллектуальных" помощников, скрывающих внутреннее устройство данных. Конечно, «Любая достаточно развитая технология неотличима от магии», но не понимая внутренней структуры люди возвращаются к шаманизму.


      1. PsihXMak
        00.00.0000 00:00
        +1

        Забавно, я много лет встречаюсь с концепцией, что мы должны манипулировать ярлыками, а не файлами. У нас появился сначала рабочий стол, куда помещались ярлыки. Потом возникли программы, которые позволяли работать с файлами, сортируя и показывая ссылки. Затем вообще часть исполняемых файлов переехало в облака.

        В итоге новое поколение пришло уже на готовое, зашло с другой стороны и не видит всего того, что скрыто под капотом огромной обёртки из ярлыков и ссылок.


        1. TimsTims
          00.00.0000 00:00
          +1

          В итоге новое поколение пришло уже на готовое, зашло с другой стороны и не видит всего того, что скрыто под капотом огромной обёртки из ярлыков и ссылок.

          Со временем придет человек, который скажет, что работать с файлами локально оказывается в 100 раз быстрее, чем в облаке. Всё новое - хорошо забытое старое (с).


          1. PsihXMak
            00.00.0000 00:00
            +1

            Кстати, вы невероятно правы. Порой мелькают заметки о том, как кто-то в очередной раз развернул у себя свой файловый сервер/другой сервис, и выяснил, как оказывается легко и быстро это работает.

            Тот, кто придумает, как монетизировать и просто доносить до массового пользователя локальные сервисы, будет купаться в бассейне из золота.


            1. PereslavlFoto
              00.00.0000 00:00
              +2

              Вы хотите сказать — кто придумает продавать лицензии на ПО, работающее локально?


              1. PsihXMak
                00.00.0000 00:00

                Я имею в виду сервисы, которые работают в облаке, хотя могли бы работать локально у пользователей. Типа почты, файловых хранилищ, мессенджеров и т.д.
                Сейчас, что бы поднять такой сервис, нужны мощные знания администрирования. Но, по факту, их можно сконфигурировать так, что бы для запуска требовалась одна кнопка.


                1. PereslavlFoto
                  00.00.0000 00:00

                  Главный недостаток локальной почты — умер диск и почта пропала.


                  Второй недостаток локальной почты — нужен доступ извне, причём защищённый от взломщиков.


                  1. PsihXMak
                    00.00.0000 00:00
                    -1

                    Главный недостаток локальной почты — умер диск и почта пропала.

                    Решается простым рейд-массивом. Кроме того, вместо дисков можно использовать, к примеру, sd карты.
                    Я себе представляю это в виде небольшого устройства-сервера, которое бы стояло у каждого пользователя подобно тому, как стоит wifi роутер или тв-приставка.

                    Второй недостаток локальной почты — нужен доступ извне, причём защищённый от взломщиков.

                    Не вижу проблемы. Сейчас почти каждый локальный сервис имеет достаточно безопасную веб мордочку. При этом, по сравнению с облачными решениями, безопасность даже выше, т.к. есть возможность контролировать свои данные физически.


                    1. PereslavlFoto
                      00.00.0000 00:00
                      +1

                      У рейда аж два недостатка. Первый в том, что рейд просто очень дорогой. Второй в том, что ноутбуки с рейдами — редчайший случай.

                      вместо дисков можно использовать, к примеру, sd карты.

                      Говорят, SD-карты внезапно смертны.

                      устройства-сервера… подобно… wifi роутер или тв-приставка.

                      Они очень внезапно смертны. Роутеры ценою меньше тысячи принято считать ненадёжным материалом.

                      локальный сервис имеет достаточно безопасную веб мордочку.

                      Достаточно безопасную, чтобы она сама регулярно обновляла сертификат? И даже после того, как поставщик сертификата откажется работать с Россией по политической причине?

                      есть возможность контролировать свои данные физически.

                      Однако нет умения их контролировать. Мне доводилось видеть многих людей, которые не умеют контролировать домашний роутер, и немало людей, которые не умеют подключить DVD-проигрыватель к телеприставке.


                      1. PsihXMak
                        00.00.0000 00:00
                        -1

                        Первый в том, что рейд просто очень дорогой. Второй в том, что ноутбуки с рейдами — редчайший случай.

                        В линуксе можно развернуть рейд хоть на паре подключенных флэшек. Не вижу тут дороговизны.

                        Говорят, SD-карты внезапно смертны.

                        По личным ощущениям, примерно равно смертны, как и SSD диски. У меня есть карточки, которым уже почти десяток лет и они прекрасно работают.

                        Роутеры ценою меньше тысячи принято считать ненадёжным материалом.

                        Об этом вообще впервые слышу. Не видел в своей жизни ни одного сдохшего роутера. Да и я говорю в целом о платформах типа raspberry, которые зарекомендовали себя как достаточно надёжные.

                        И даже после того, как поставщик сертификата откажется работать с Россией по политической причине?

                        Безопасность сертификатов - это вообще отдельная проблема. Думаю, у пользователей в стране будут проблемы посерьезнее, если с ними перестанут работать поставщики сертификатов.

                        Однако нет умения их контролировать

                        Об этом я и говорю. Это основная проблема, которую нужно решить. Необходимо заменить огромную монотонную работу специалиста устройством с одной кнопкой, которое можно включить и забыть. И я вижу, что эта проблема решаема.
                        При установке локального сервиса, обычно требуется несколько десятков шагов по его установке и настройке. При этом, каждый шаг - это огромное количество избыточных настроек. Можно начать с того, что бы сократить и обобщить эти настройки.


                      1. TimsTims
                        00.00.0000 00:00
                        +1

                        Можно начать с того, что бы сократить и обобщить эти настройки.

                        Тогда люди будут ставить пароли на свой сервер "12345" чтобы не забыть. Там где простота - часто появляется изъян в безопасности.

                        локальный сервис имеет достаточно безопасную веб мордочку.

                        Она будет безопасна до тех пор, пока не выйдет какой-нибудь вариант взлома такой ещё-вчера-безопасной-веб-мордочки. И дело не только в самой веб-мордочки, и буквально любого софта, который установлен на этом облаке. Как обработка файлов, так и сервер почты, работа с шифрованием итд итп. Достаточно одной уязвимости из десятков этих модулей - и сервер окажется под угрозой.

                        Не видел в своей жизни ни одного сдохшего роутера.

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

                        Я себе представляю это в виде небольшого устройства-сервера, которое бы стояло у каждого пользователя

                        Но действительно, кому это надо? У тебя дома железка, которую ты не умеешь готовить, и которая тебе даёт тоже самое (почта/мессенжер), что и другие бесплатные сервисы. Которая в любой момент может сдохнуть, интернет в твоём доме может сдохнуть, электричество в твоём доме/районе может отрубиться. В любой момент ты остаешься без этой железки, которой месте не дома, а в ДЦ.


                      1. PsihXMak
                        00.00.0000 00:00

                        Тогда люди будут ставить пароли на свой сервер "12345" чтобы не забыть. Там где простота - часто появляется изъян в безопасности.

                        Проблема спокойно решается добавлением 2FA.

                        Достаточно одной уязвимости из десятков этих модулей - и сервер окажется под угрозой.

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

                        Точнее он вроде бы работает, но нихера не может передавать данные со сколь вменяемой скоростью или стабильностью.

                        Звучит как банальная ошибка в софте...

                        Но действительно, кому это надо?

                        Людям, которые ценят приватность, стабильность и безопасность. Очень многие хотели бы держать свои данные при себе - под рукой. Облачный провайдер в любой момент может потерять файлы/удалить их по своим политическим причинам или вообще закрыться.
                        Кроме того, облака дорогие - постоянно нужно продлевать подписку, если хочется хранить больше чем пару десятков гигабайт.
                        Облака ограничены в функционале. Личный сервер даёт огромный простор для различных расширений. От торрент-качалки до умного дома.
                        Ну и это просто надёжно. Что угодно может случиться с интернетом/электричеством/мировой сетью, но файлы никуда не денутся.


                      1. PereslavlFoto
                        00.00.0000 00:00

                        Проблема спокойно решается добавлением 2FA.

                        Звучит очень разумно. Я пытался найти способ, чтобы добавить 2FA, однако не смог найти бесплатного способа. Может быть, вы подскажете?

                        Спасибо!


                    1. BugM
                      00.00.0000 00:00
                      +1

                      Я себе представляю это в виде небольшого устройства-сервера, которое бы стояло у каждого пользователя подобно тому, как стоит wifi роутер или тв-приставка.

                      А потом вас затопили соседи. И весь рейд утонул сразу. Облако понадежнее выглядит.


                      1. auresio
                        00.00.0000 00:00

                        https://habr.com/ru/news/t/656949/
                        https://m.roem.ru/01-02-2017/241987/sisadmin-uronil-gitlab/
                        Угу..а если поискать...а если почитать правила и выяснить что в случае потери всех ваших данных компенсация составит стоимость месячной подписки..как то не очень заманчиво облако выглядит.


                      1. BugM
                        00.00.0000 00:00

                        И вы готовы показать примеры когда крупные ребята теряли данные пользователей? Гугл, MS и тому подобные.


                      1. auresio
                        00.00.0000 00:00

                        https://learn.microsoft.com/ru-ru/microsoft-365/troubleshoot/sign-in/office-365-azure-intune-sign-in-issue
                        Беды с логином
                        https://www.ixbt.com/live/games/sboi-v-produktah-microsoft.html
                        Поламался собственный стор и облако
                        https://www.ferra.ru/news/computers/ogon-po-svoim-obnovlenie-windows-10-slomalo-oblako-onedrive-29-10-2022.htm
                        Поломка облака обновой
                        https://www.ixbt.com/news/2021/11/06/windows-microsoft-onedrive.html
                        Отключение от облака из-за того что сидите на рассово неправильной операционке..
                        https://www.cnews.ru/news/top/2022-03-24_ushedshaya_iz_rossii_microsoft_slomala
                        Еще один вендор лок
                        https://www.robotx.ru/blog/articles/pochemu-nado-sdelat-rezervnuyu-kopiyu-office-365-pri-izmenenie-tarifnogo-plana/
                        Потеря данных от жадности
                        https://qna.habr.com/q/193209
                        Внезапный выстрел в ногу
                        Продолжать я могу долго..гугл большой.

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


                      1. BugM
                        00.00.0000 00:00

                        Так а потеря данных где? Использовать рекомендованный софт, не использовать нерекомендованный, не пользоваться всякими хаками, обращать внимание на то что пишут. Это вроде основы.

                        Ломается иногда все. Дома у вас ломаться будет заметно чаще. Как обессилить еще пару девяток доступности известно. Дома эти рецепты неприменимы.

                        ВК прям красавцы. Их совершенно точно предупреждали заранее. Они забили.


                      1. VADemon
                        00.00.0000 00:00

                        > примеры когда крупные ребята теряли данные пользователей? Гугл, MS и тому подобные.

                        Безвозвратная потеря EC2 инстанса, EBS томов и всех снэпшотов. Всякое быввает. Вон даже AWS потребовал NDA, чтобы рассказать, что у них с его данными случилось.

                        Только поиск в интернете стал настолько ужасным, что такое без закладок не найти.


                      1. BugM
                        00.00.0000 00:00

                        Во. Хоть что-то. Неделя это тоже неприятно и нехорошо, но в общем не сильно критично в среднем. Тем более что это компьют инстансы.

                        Сравните вот этот факап Амазона с вероятностью и разрушительными последствиями потопа/пожара/не своевременной замены диска в домашнем рейде и вылета второго диска. Мне кажется что дома рисков заметно больше. Для типичного домашнего пользователя.


                      1. VADemon
                        00.00.0000 00:00

                        Соглашусь. Но думаю, типичному домашнему пользователю острее всего стоит вопрос денег, а не сохранности данных (пока фото впервые не пропадут). Т.е. даже при таком раскладе, если бы существовало доступное в-один-клик домашнее облако с доступом отовсюду (например старый ноут, 2 диска по USB), то оно могло бы хорошо выстрелить. Потом уже каждый выбирает, доверять облаку данные или нет. Для большинства сотни гигов в Dropbox за условную десятку в месяц хватает.

                        Я скорее отношусь к тем, кто облаку свои данные не отдаст. Есть энтузиасты, которые у мам/друзей/родных бэкап хостят, но таких единицы. Тут еще вопрос, помимо технических сбоев, от Маски Шоу на дому защищаться или нет? У политически активных отбирают все устройства на дому и... держат месяцами, если не годами. На данный момент я сомневаюсь, что полиция наобум рассылает notice хостинг-провайдерам. Да и не факт, что при ордере на обыск засылают запрос тому же Гуглу и иным. Разные все-таки вещи. То есть даже с этой точки зрения, при определенных обстоятельствах, облако может стать альтернативой.


                  1. vconst
                    00.00.0000 00:00

                    Главный недостаток локальной почты — умер диск и почта пропала

                    Да если только это


                    Локально может случиться любой косяк, вплоть до банального — отрублися свет или сосед отперфоратил витую пару шедшую к вам в квартиру. Это не считая косяков локального оборудования, которое, в отличии от серверов, не приспособлено для работы 24/7/365


      1. anatolius
        00.00.0000 00:00

        эмодзи как новые иероглифы :)


    1. rehci
      00.00.0000 00:00
      +1

      Хоть я сам и из старой школы, но предпочитаю сочетать оба подхода. Развесистая иерархия -- это такой же мусор, как и "все в одной папке".

      Наиболее эффективный подход -- это сочетания не сильно широкой/глубокой иерархии директорий, хороший удобный поиск и правильное название файлов/директорий.

      Причем последнее -- чуть ли не самое важное, т.к. дает возможность найти нужное в любой мусорке.

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

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


      1. alan008
        00.00.0000 00:00
        +1

        Тоже придерживаюсь концепции именования каталогов и файлов "как бы тегами", а ищу потом по ним программой Everything


    1. NibiruanChild
      00.00.0000 00:00

      А разве компьютер - это цель., а не инструмент?

      - Чтобы водить машину не надо знать как работает двигатель внутреннего сгорания
      - Чтобы ездить на машине, не обязательно уметь ее водить
      итп.

      Да, в одних местах мы деградируем, но приобретаем в других. Сейчас люди, которые ни строчки на ASM не напишут, а многие и на C++, пишут искуственные интеллекты, потому что им не нужно бороться с компьютером и языком программирования, они его просто используют для своих целей. И это тоже не последний шаг.
      При этом часть людей стало потребителями компьютеров (но "умны" в других сферах), а часть наоборот активно развивает сами технологии, языки, софт и прочее. То есть люди не сталу глупее, а разделились и пошли разными дорожками.

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


  1. MatVL
    00.00.0000 00:00
    +61

    Статья о том, как на маке сложно переучиваться бывшим пользователям виндовс, поэтому переучиваться не надо, надо притащить на мак свой опыт юзания венды. Зачем тогда вообще покупать мак?


    1. OKyJIucT
      00.00.0000 00:00
      +9

      А ещё лучше поставить на него винду!))

      Переучился буквально за неделю, на все эти телодвижения с настройкой надо потратить наверняка не меньше времени.


      1. aamonster
        00.00.0000 00:00
        +6

        Лично мне трудней всего было привыкнуть, что в приложении можно закрыть все окна, а оно продолжит работать, как ни в чём бывало: меню есть, на клавиатуру реагирует... Зато когда привык – кажется абсолютно логичным.


        1. NowebNolife
          00.00.0000 00:00
          +3

          cmd + q


        1. Akuma
          00.00.0000 00:00

          На самом деле это редкие приложения. Почти все так же завершаются с последним окном.


          1. aamonster
            00.00.0000 00:00
            +3

            Примерно все, в которых может быть больше одного окна. Есть же guide lines, по которым положено так делать (и мне это давно уже кажется удобным).

            Хром. Pages. Finder. Notes. XCode. Safari. Терминал. Большинство других. Из завершающихся навскидку вспомню только System Settings, у них окно одно.


            1. rubero
              00.00.0000 00:00

              Так, а в чем удобство то? На других платформах условная точка под приложением обозначает что у него открыты какие-то окна и там велась работа, а знать, что приложение не до конца закрылось в принципе бесполезно, если по нажатию все так же открывается новое окно.


              1. aamonster
                00.00.0000 00:00

                Я могу привести доводы (простейший: cmd-W cmd-N всегда даст ожидаемый результат), но проще считать это вкусовщиной (мне тоже казалось крайне странным, когда пересел).

                А, ну и я обычно переключаюсь между приложениями с клавиатуры (да и вообще многое предпочитаю делать клавишами, не мышью), так что окна у меня неожиданно не появляются.


              1. vadimr
                00.00.0000 00:00

                Идея в том, что в macOS пользователь вообще не должен задумываться о том, закрыто или открыто приложение. Он работает с окнами. Ни для каких действий с приложением не важно, было ли оно запущено перед этим.

                То же самое в более явном виде – на айфоне.


                1. sergeaunt
                  00.00.0000 00:00
                  +4

                  Как и все абстракции, эта - дырявая. Запущенный Хром жрет памяти сколько найдет. Незапущенный не жрет.


                  1. vadimr
                    00.00.0000 00:00

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

                    Сейчас у меня аптайм 8 дней, Safari использует 223 мегабайта памяти.

                    Интересно, что у меня самая прожорливая до памяти программа, кроме Finder – это иконка SAS контроллера ATTO в строке меню, которая потребляет 600 мегабайт. Притом, что контроллер вообще выключен. 600 мегов оперативной памяти занимает программка, дело которой – показать маленькую ненужную иконку и выдать окошко при ошибке. Искусство программирования 21 века.


                1. aamonster
                  00.00.0000 00:00

                  Наоборот же. Выходит из него не неявно закрытием окна (т.е. выйдет или нет – зависит от того, есть ли другие окна, причём они могут быть и минимизированы), а явно по cmd-Q или меню.


                  1. vadimr
                    00.00.0000 00:00

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


                    1. aamonster
                      00.00.0000 00:00

                      Ну, тут я бы выделил другое: NSUserNotification и прочие API, которые должны однотипно обрабатываться приложением как при запуске, так и во время работы. Но это, конечно, с другой стороны, не юзера, а программиста.

                      И ещё – обязанность приложения сохранять своё состояние на выходе и восстанавливать на старте (благо, помощь в этом от системы есть).

                      И туда же – часто используемый подход "в диалогах действия пользователя обрабатываются сразу" (в отличие от типичного для винды применения по кнопкам Ok/Apply). Тоже, кстати, требует некоторого привыкания после смены системы.



        1. magdavius
          00.00.0000 00:00

          Очень сильно это бесит. В чем, кстати, "абсолютная логичность" этого?


          1. aamonster
            00.00.0000 00:00

            В том, что действия, не завязанные на текущее окно, работают одинаково, когда у вас 1-2-3 окна и когда 0 окон (типичная ситуация для меня: cmd-W, затем cmd-N или cmd-T). И состояние программа запущена/не запущена задаётся явно (запуск программы и cmd-Q).

            Впрочем, это дело вкуса.


    1. auresio
      00.00.0000 00:00
      +4

      Зачем тогда вообще покупать мак?

      Хах..ну вы видимо купили для того что бы менять свои привычки в попытках подстроится под ОС. :)


      1. KVentz
        00.00.0000 00:00
        +15

        Я его купил много-много лет назад, чтобы эффективнее выполнять нужные мне задачи и не испытывать от этого дискомфорт. А это достигается при использовании системы на полную и так, как было задумано создателями. Если делать из Макоси Винду, то зачем тогда вообще Мак?


        1. MadeByFather
          00.00.0000 00:00

          Мне мак не нужен - на работе заставляют работать только с рабочей станции, поэтому приходится шаманить, чтобы он был не таким плохим в UX


    1. Djeux
      00.00.0000 00:00
      +6

      или не надо никуда переучиваться, просто привыкнуть и уметь переключаться.


      Рабочий macbook, дома win11


    1. merlex
      00.00.0000 00:00
      -1

      Мыши плакали, кололись, но продолжали грызть кактус)


  1. markoni
    00.00.0000 00:00
    +13

    Так используйте win, раз все так сложно. Или это какой-то опыт, чтобы написать статью, купив супруге нижний macbook air? Да, 3/4 из того, что вы написали - изначально на mac работает не так, как на win десяток лет. Но вы же представляли, куда идете, не? В чем смысл еще раз переписать отличия, которые уже перхотью покрылись?


  1. NowebNolife
    00.00.0000 00:00
    +7

    Так повелось, что последние 12 лет работаю исключительно на mac. Пару раз возникало острое желание вернуться к окнам (в частности после выхода маков 2016-го года), но каждый раз терпения хватало максимум на пару месяцев.

    Удивительно, что камнем преткновения всегда становились многие из изложенных выше пунктов, но уже со стороны win/


  1. alchemist666
    00.00.0000 00:00
    +7

    Да было долгое привыкание перехода на другую ось, а потом ещё совмещать с другой осью, а потом оказалось, что как научился и стал и там и там ещё быстрее всё делать, а не вот это вот всё.
    На счёт переключение внутри 1 приложения АльтТабом, человек видимо забыл про то, что у клавиатуры есть стрелочки их тоже можно использовать в переключении. А ещё крутая вещь, которой нет в форточках, это Control Left/Right. и переключение между фулскринами проходит просто мгновенно и очень удобно.

    Очень видимо ценное качество для разработчика, чтобы вместо изучения мануала сделать пару костылей в системе )))


    1. KReal
      00.00.0000 00:00

      В 11й винде появились Ctrl-Win-Left/Right. Правда распихивать приходится во виртуальным рабочим столам вручную) А в макоси еще и свайпы по тачпаду работаю (ну и я на трекбол навесил биндингов на переключени и expose). Но в целом 11я винда как-то чем-то немного стала похожа.


      А вообще последние 7 лет живу с макбуком для серфинга/музыки и виндой для работы, полёт весьма нормальный.


      1. BeardedBeaver
        00.00.0000 00:00

        Ctrl+Win+стрелки были еще в десятке, постоянно пользуюсь, штук по пять рабочих столов обычно открыто. Печалит что как минимум в десятке их нельзя поменять местами. А на маке наоборот они самопроизвольно перемешиваются))


        1. ris58h
          00.00.0000 00:00
          +3

          А на маке наоборот они самопроизвольно перемешиваются))

          Automatically rearrange spaces based on most recent use в System Settings > Desktop & Dockили в прошлых версиях ОС в System Preferences > Mission Control.


          1. BeardedBeaver
            00.00.0000 00:00

            Спасибо, действительно. Не настолько раздражало чтобы начать искать решение


      1. mad_god
        00.00.0000 00:00

        Уже можно настроить свои ярлыки для каждого рабочего стола?


    1. val-ka
      00.00.0000 00:00

      А ещё крутая вещь, которой нет в форточках, это Control Left/Right. и переключение между фулскринами проходит просто мгновенно и очень удобно.

      Не менее удобный вариант отключить автоматическое изменение порядка Spaces, закрепить самые часто используемые приложения за конкретными пространствами и переключаться между ними по Ctrl + N (в настройках горячих клавиш появляются галки активации для каждого созданного пространства). Получается быстрее, если постоянно открытых приложений больше 2-3. У меня, например, браузер всегда Ctrl + 2 , а терминал всегда Ctrl + 4. И что с первого рабочего пространства, что с восьмого, я в них попадаю с первой попытки.

      Да, приложения при этом не в системном фуллскрине, но это чаще даже удобнее. И часы/раскладку/нотификации всегда видно, и поверх временные приложения можно легко открыть. У меня Системные настройки, Мониторинг активности, мессенджер и т.д. привязаны сразу ко всем Spaces и не требуют переключения.


  1. joffer
    00.00.0000 00:00
    +13

    # захотелось чего-то нового

    # покупаем дорогой ноутбук "как у всех"

    # тратим время, настраиваем так же, как старый

    # copy|past не работает, "ничего, привыкнем"

    # клавиатуру и мышь используем свои, монитор подключаем внешний

    # docker засунем в parallels - ну а чо, железо топовое, оператива есть

    не глючит

    не тормозит

    не греется

    производительный

    (да попробовало бы оно за уплаченные деньги через полгода в чём-то из этого лажать)

    почти все нужные тулзы тут есть сразу

    те, которых нету, можно доустановить

    (просто невероятно, есть ли какая-то другая ОС, которая хотя бы немного приблизилась к недостижимому идеалу?)

    tl.dr:

    красиво и престижно иметь красивый и престижный компьютер с яблоком

    п.с автору:

    1) без негатива, но весь этот текст немного всё же похож на "мама, я купил";

    2) вы прошлий долгий путь, чтобы макОС стал юзабелен пользователю винОС и залогировали этот процесс - кому-то пригодится;

    3) "активные углы" - попробуйте, удобно, повесьте на левый верхний - "показать все запущенные окна", на левый нижний - "свернуть активное приложение". Правые не трогайте;

    4) док с автоскрытием всё же хорош - попробуйте привыкнуть или дать ещё шанс этой опции;

    шуточный п.п.с:

    "канонично" было бы купить макбук и накатить поверху убунту или винду)


    1. warhamster
      00.00.0000 00:00
      +5

      да попробовало бы оно за уплаченные деньги через полгода в чём-то из этого лажать

      Макбук образца 2019 года на i9 лажал по всем пунктам прямо из коробки, например. Это известная хохма: простое подключение внешнего дисплея заставляло его греться и тротлить по-черному.

      С новыми на ARM таких проблем нет, но хватает других. Например, адекватно подключить его к телевизору, чтобы банально нетфликс в браузере смотреть - неразрешимая задача: по AppleTV почему-то не транслируется собственно видео (подозреваю, что из-за копирастии), по проводу - неадекватный скейлинг и невозможность отключить интерполяцию видео.

      Как рабочая машина - сойдет (есть даже плюсы - габариты и энергопотребление). За свои деньги страдать - да ну нафиг.


      1. NowebNolife
        00.00.0000 00:00
        +2

        Макбук образца 2019 года на i9 лажал по всем пунктам прямо из коробки, например. Это известная хохма: простое подключение внешнего дисплея заставляло его греться и тротлить по-черному.

        Все верно, но язык не поворачивается называть модели 2016 - 2019 гг (RIP) ноутбуками.
        В 19-м на старте приобрел почти макс комплектацию на i9 - просто провал.

        Горело так, что вернулся к старичку 2015-го.


        1. LuigiVampa
          00.00.0000 00:00
          +2

          Тоже плюсану. Считаю все модели с тачбарами - крайне неудачными, особенно 2019 года с черезчур "горячими" процессорами. В целом, жить с тачбаром ругаясь и плюясь можно, но вот от большого тачпада и неестественного положения рук напрягались кисти во время работы и заработал неприятное ощущение - постоянно болели руки. Самое невыносимое, к чему я так и не смог привыкнуть - это ужасный перегрев процессора, от этого было невозможно работать держа ноутбук на коленях, к части корпуса над тачпадом было невозможно прикасаться, плюс шум вентиляторов - я во время билдов принудительно выкручивал вентиляторы на 100% через MacFanControl, без этого был очень существенный тротлинг и ещё более неприятные температуры.

          Сейчас вернулся на старый макбук 2015 года с нормальными F-клавишами и понимаю что он значительно более эргономичный и приятный в использовании, жаль что производительности на серьёзные задачи уже маловато


      1. maxood
        00.00.0000 00:00
        +4

        Вот не надо, макбук образца 2019 года на i9 - был лучшим из всего, что я встречал до выхода M2 Max 16 


        1. AndreKanevski
          00.00.0000 00:00
          +1

          У меня был рабочий на i9 2018-го, грелся всегда. Если подключить внешний монитор FullHD - уже гудел, если два - руками больно трогать. Я уже молчу, если запустить и развернуть все везде нормально. От этого, кстати, еще и тротлил беспощадно.
          Сейчас MB Pro на M1 Pro, жалоб нет, за исключением совместимости с ARM некоторых пакетов.


        1. FailErrorr
          00.00.0000 00:00

          Ага, включаешь 4к видео в хроме и на этой штуке уже можно жарить яичницу. Постоянно горячий, постоянно шумный.


          1. isden
            00.00.0000 00:00

            Да ладно, постоянно смотрю на таком же (почти таком, только про 16") аппарате ютуб в 4к, и ничего такого нет.


    1. Vadiok
      00.00.0000 00:00
      +3

      шуточный п.п.с:

      "канонично" было бы купить макбук и накатить поверху убунту или винду)

      Что тут шуточного? Именно так и сделал на 2 ноутах, моделях 2015-го, только Linux Mint Cinnamon. Мне нравится их автономность и экран, б/у сейчас они продаются недорого. А ОС - штука на любителя, необязательно макбуки рассматривать как единый аппаратно-программный комплекс.


      1. joffer
        00.00.0000 00:00
        +1

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


  1. soymiguel
    00.00.0000 00:00
    +52

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

    «Привет, я Петя, я только что счастливо переехал в Испанию и сейчас я вам расскажу, где купить настоящие астраханские помидоры, потому что испанские помидоры это боль и говно; как купить квартиру по воронежским стандартам, потому что испанские квартиры это боль и говно; и как отправить детей в русскую школу, потому что испанские школы боль и говно». Ну вот один в один.


    1. Zuy
      00.00.0000 00:00
      +2

      И творог обязательно надо делать дома, потому что даже в русских магазинах, для них он боль и говно


    1. engine9
      00.00.0000 00:00
      +10

      Радикализм всегда ущербен. Зачем человеку выбрасывать на помойку его многолетний интеллектуальный капитал (заключенный в виде нейронных ассоциаций в его мозге) позволяющий ему работать быстро и уверенно. Ради того, чтобы вкатиться в ОС, которая по сути своей — инструмент, обслуга.

      К чему-то стоит адаптироваться, что-то нужно адаптировать под себя.


    1. Breathe_the_pressure
      00.00.0000 00:00
      +3

      Ну чего вы так сразу реакционируете? Человек не может переучиться моментально, нужно наладить нейронные связи, со временем и помидоры пойдут на ура и фахитос и ин пэбло юнидо, амас сера винсидо. Статья норм, по мне так лучше чем изменять прошлое из будущего, хотябы технической прикладной направленности.


  1. mortadella372
    00.00.0000 00:00
    +7

    FAR, в некотором смысле, есть. far2l можно втащить на Мак.


    1. vitminc
      00.00.0000 00:00
      +1

      Far не просто есть, его можно собрать самому под силикон. Делал по инструкции на github. Там же есть уже готовый пакет под Intel платформу. Проблема с последним, что работает в Rosetta2 и как результат если устанавливать с него пакеты, то тянет тоже под ту же Intel платформу.


    1. KReal
      00.00.0000 00:00
      +1

      Вроде через брю ставится)


    1. aamonster
      00.00.0000 00:00

      У меня почему-то не зашёл при всей его прекрасности под виндой (первое, что накатываю на новом компе). Так и пользую на маке mc (сильно уступающий фару), а на винде far.


  1. Flux
    00.00.0000 00:00
    +5

    Так а о чем в итоге статья? О том что макось от винды отличается? Ну, да, так и есть. Но и макось и винда консистентны в пределах самих себя, так что страдать от того что на маке хоткеи другие и альт-таб работает не так — странно.
    Есть мнение что все дело в том что вам 42 и вы буквально пол жизни (или даже дольше) пользуетесь виндой и уже не воспринимаете ничего другого в плане UX.


    Я вот тоже считал UX десятки великолепным (и до сих пор считаю), но когда на работе выдали мак — освоился в нем примерно за две недели. Потом так же легко перешел обратно на винду. А потом еще раз на мак. И всё что менял на маке — переключение раскладки по alt(cmd) + shift, это единственная привычка которую я тащу в любую систему.


    Изменения — это полезно, изменения не дают мозгам засохнуть а человеку превратиться в бурчащего деда. Так что рекомендую сделать сброс системы и таки переучиться под макось.


  1. engine9
    00.00.0000 00:00
    +3

    Системность и глубина проработки вызывает уважение. Мне макось показалась неинтуитивной: странный докбар, шизофреническая система "максимизации" окон, всё оказалось совсем не так восторженно, как о ней рассказывают адепты.

    Линукс (конкретно mint + cinnamon), по сравнению с виндой много UI концепций повторяет и к нему не пришлось мучительно адаптироваться. Проводил эксперименты над знакомыми, которые просили "переустановить винду" на ноутбуке, предлагал им поставить "систему на которой не поймаешь вирус". В итоге они даже не замечали особой разницы при работе с офисными приложениями, почтой, браузером. И пользовались "минтом" без особых затруднений.

    Но справедливости ради, нужно заметить, что минт стало клонить в сторону модных молодёжных UI примочек и эта тенденция начинает меня напрягать. Возможно буду с него сваливать.


  1. alexander222
    00.00.0000 00:00
    +5

    Имею в целом схожий опыт- купил макбук чуть больше года назад, раньше использовал мак вторым компьютером только для сборки под айфон, но решил что везти с собой два ноутбука перебор, лучше купить один мощный мак и делать на нем всё. В отличии от автора не сторонник перенастройки системы под себя- считаю что правильнее везде пользоваться по максимуму дефолтными настройками что бы не страдать при смене оборудования. в итоге привык достаточно быстро, из клавиатурных сокращения поменял только переключение языка с contro+space на option+space так как вызов кододополнения на control+space въелся слишком глубоко в мозг.

    из минусов макоси что больше всего мешало/мешает:

    • Finder ужасен. так и не неучился им пользоваться эффективно, в итоге все почти все операции с файлами стал делать через консоль

    • по Command+Tab переключение ведется только между приложениями, но не между окнами внутри приложения. с этим более-меннее смирился, частично начав разносить окна на разные десктопы, частично переключая просто через значек в доке

    • Как ни странно говорить это про Unix- систему, но далек от линукс. Под Windows много делал в WSL который является нативным линуксом при этом неплохо интегрирован в систему. Тут вроде все сложнее- с одной стороны вот она, нативная unix система- с другой прост так нативные linux бинарник не запустишь.

    В целом UX не нравится, но привыкнуть можно. Само железо очень неплохо, радует и производительность, и автономность, в этом плане пользовательский опыт очень улучшился.


    1. OKyJIucT
      00.00.0000 00:00
      +1

      по Command+Tab переключение ведется только между приложениями, но не между окнами внутри приложения. с этим более-меннее смирился, частично начав разносить окна на разные десктопы, частично переключая просто через значек в доке

      После нескольких лет работы на MacOS в одной из подобных статей здесь на Хабре узнал, что между окнами одной программы можно переключаться по cmd+` (кавычка слева от единицы)


      1. ris58h
        00.00.0000 00:00

        между окнами одной программы можно переключаться по cmd+`

        Только в пределах одного space.


    1. aamonster
      00.00.0000 00:00
      +4

      Finder ужасен

      Наверное, так положено :-D. На винде ведь Проводник тоже ужасен.


      1. alexander222
        00.00.0000 00:00

        Проводник имхо неплох, возможно просто привычен, но основные действия с файлами в нем делать вполне удобно. Файндер не осилил вообще. либо слишком сложная и не интуитивная, либо не логичная система из трех разных вариантов представленя, которые так и не понял зачем нужны. пытался им пользоваться, но промучавшись какое-то время теперь запускаю только для того что бы открыть файл, например из загрузок


        1. KoCMoHaBT61
          00.00.0000 00:00
          +6

          У меня обратная ситуация. За 30 лет на винде -- так и не освоил Проводник. На Финдере всё нормально, на Линухах всякие менеджеры -- тоже хорошо. На винде Проводник -- сразу нет. Ставится far самой первой программой.


          1. vconst
            00.00.0000 00:00
            +3

            На Финдере всё нормально

            Ну конечно!


            Что будет, если в Проводнике войти в директорию, где много файлов и скроллить список через ПейджАп/Даун, а потом нажать стрелку курсора вверх или вниз? Курсор переместится с имени одного файла — в пределах окна, на 1 вверх или вниз


            Кажется это дурацкий вопрос?
            Не в случае Мака!


            Если в Финдере войти в директорию, где много файлов и скроллить список через ПейджАп/Даун, а потом нажать стрелку курсора вверх или вниз? Куда бы вы не ускроллились — фокус моментально переместится на тот файл, который был выделен тогда, когда вы вошли в директорию!!!


            При перемещении по списку файлов в Финдере — выделенный файл ВСЕГДА остается тем, который был выделен изначально. При перемещении по списку файлов в Проводнике — выделенный файл ВСЕГДА остается В ПРЕДЕЛАХ ОКНА.


            Это поведение Финдера меня выбешивает уже 20 лет


            Вообще, я вам (мн ч) скажу — вы ни винду полноценно не используете, ни макось, потому что многих элементарных и очень нужных действий — не вспоминаете. Предполагаю по причине того, что не знаете


            Например, ни в одной подобной статье я не увидел упоминания альтовых шорткатов. Как вы вообще виндой без них пользуетесь????


            Соответственно — никакие настоящие недостатки систем — в таких статьях не перечисляют. Ни косяки таб-ордера, ни ширину поля с именем файла в макоси. Потому что, чтобы знать такие тонкости — надо реально работать на маке, а не просто в инете сидеть и ворчать на кнопки в углу окна. Я ни на винде, ни на маке ими не пользуюсь — шорткаты наше все!


            1. MaFrance351
              00.00.0000 00:00

              А то, что нажатие Enter не открывает файл, а предлагает его переименовать, в новых версиях уже исчезло?


              1. MishaRash
                00.00.0000 00:00

                Нет, по-прежнему открытие по Cmd+O.


            1. engine9
              00.00.0000 00:00

              Не совсем понятно как в проводнике. Например, если выделен третий файл списка, а я ускроллил на трёхсотое и нажал на стрелку вниз, то что в проводнике будет?

              Проверил в Nemo 5,6 (Linux mint) и там как вы описали, фокус моментально перемещается на четвертый файл. Это ж логично, вроде, не?


              1. vconst
                00.00.0000 00:00

                Если прокручивать с клавиатуры — на винде курсор выделяющий файл, всегда в окне, в любой программе
                Вот это — логично


                На маке я ищу файл, я его нашел, но чтобы его выделить — надо снять руку с клавиатуры, взять мышь или перо — и ткнуть в него
                Это бесит


                1. engine9
                  00.00.0000 00:00

                  По-моему вообще неудобно, что курсор едет вместе со скроллом, мне кажется, что "правильнее" если выделение не привязано к скроллу, но это вкусовщина.

                  Проверил, как в маке, так же себя ведёт курсор в двухпанельных файловых менеджерах.


                  1. foal
                    00.00.0000 00:00

                    Не едет он. Просто не надо путать скролбар и клавиатурные команды перемещения курсора.


                    1. engine9
                      00.00.0000 00:00

                      Что-то я окончательно запутался чем различается поведение на маке и винде. Впрочем, пофиг :)


                  1. vconst
                    00.00.0000 00:00
                    +1

                    Ну да, это примерно как с редактированием текста — он всегда находится в окне редактора, когда перемещаешься с помощью пейдж ап/даун. И я не представляю редактора, в котором он оставался бы где-то в начале, когда ты половину документа отскроллил и при попытке нажать на стрелку курсора — перекидывает в самое начало документа


                    Разработчиков бы убили за такое


                    1. engine9
                      00.00.0000 00:00

                      Ага, теперь понял что имелось в виду.
                      Но мне привычней, чтобы фокус не сдвигался и оставался на месте.


                      1. vconst
                        00.00.0000 00:00

                        Когда фокус в окне, то не надо снимать руку с клавы, брать мышь и тыкать в окно, выделяя нужный файл


                        Привычка еще со времен NC


              1. foal
                00.00.0000 00:00

                В проводнике.

                Если вы пользовались скролом, то так же. Если вы пользовались PgUp/PgDn или Home/End то +1 от текущего выделенного файла.


            1. nidalee
              00.00.0000 00:00
              +2

              Это еще что. Я на работе на маке работаю с сетевыми шарами — так иногда заставить finder понять, что в папке появился новый файл — это надо минут 5 положить.
              Обычно помогает создать новый файл в папке. Но это если права записи есть.
              Свойства папки открыть — изредка помогает.
              Чуть чаще помогает в том же окне открыть другую вкладку, а потом вынести вкладку под вопросом в новое окно.
              Иногда помогает отсортировать по дате изменения туда-обратно и усиленно крутить колесико мышки.
              Но какого-то стабильного решения нет. А все потому, что кому-то религия не позволяет сделать кнопку "обновить".


              1. vconst
                00.00.0000 00:00

                Гарантированно работает — отключить шару и подключить снова. Но это тоже бесит


              1. isden
                00.00.0000 00:00

                Я на работе на маке работаю с сетевыми шарами — так иногда заставить finder понять, что в папке появился новый файл — это надо минут 5 положить.

                Самба? У меня буквально почти сразу появляется. Еще есть вариант закрыть вкладку с шарой и открыть снова (или выйти на уровень выше/ниже и вернуться).


                1. nidalee
                  00.00.0000 00:00

                  Вроде она.

                  Еще есть вариант закрыть вкладку с шарой и открыть снова (или выйти на уровень выше/ниже и вернуться).
                  Нет, это было бы слишком просто :)
                  Если на уровень выше подняться, то у папки дата изменения корректная (от нового файла). Но сам файл не появляется.


                  1. isden
                    00.00.0000 00:00

                    Это очень странно. Я уже около года пользуюсь постоянно подключенной самба шарой, такого не видел.
                    Схема на стороне сервера такая — два lxc контейнера, один может добавлять/удалять/менять файлы на подключенном хранилище, другой шарит это хранилище по самбе. Задержки иногда бывают (когда файл появился, но его не видно), но не более чем на десяток секунд. Обычно сразу все видно.


                  1. isden
                    00.00.0000 00:00

                    Немного поиграю в телепатию :)
                    У вас подключение по имени с локальным ресолвом? Если да — то попробуйте по IP подключить.


            1. foal
              00.00.0000 00:00

              Немного наивно.

              очень нужных действий  — не вспоминаете

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


              1. VADemon
                00.00.0000 00:00

                Нет, речь в его комментарии о другом. А именно, глубине взаимодействия с системой. Грубо говоря не обзор уровня "у меня на машине YT работает, всё зашибись!" Меньше тонкостей знаешь - изменение их поведения и не заметишь.

                В пример: работа с текстом с CTRL+LEFT/RIGHT. Аналогично будет в терминале ALT+B/F? А вот и нет, логика где следующее/пред. слово разные. Какие символы учитываются? Курсор встает до или после пробела? Что у кастомных реализаций полей ввода?


        1. aamonster
          00.00.0000 00:00
          +2

          Возможно, вы начинали с проводника, поэтому он вам и кажется неплохим. Кого зацепил Norton Commander и его последователи – без слёз на это поделие смотреть не могут.

          Так что на винде Far, а когда надо что-то посмотреть в проводнике – Shift-Enter на фолдере или "start .".

          На Маке – mc и "open ." или "open -R filename" (filename, ессно, вводится через "esc enter").

          Несколько представлений, кстати, использую.


  1. sden77
    00.00.0000 00:00
    +3

    Я, наоборот, всё чаще слышу про противоположную проблему - сделать windows как mac, а особенно часто - как поменять ctrl-c/ctrl-v на win-c/win-v


    1. alexander222
      00.00.0000 00:00
      +2

      Win+v есть, и его аналога очень нехватает в macos, что бы вставить из буфера не последнее скопированное, а выбрать из более ранних. Пробовал стороннюю программу(не помню названия) но она съедала 10% заряда батареи, пришлось отказаться.


      1. sden77
        00.00.0000 00:00
        +3

        Речь о том, как сделать комбиации с  win стандартным способом работы с буффером обмена. Оно, как оказывается, многим удобнее, так как расстояние от win до c/v меньше чем от ctrl


        1. vadimr
          00.00.0000 00:00

          Так придумывали-то все эти шорткаты изначально на Маке.


        1. Sau
          00.00.0000 00:00
          +1

          А ещё в терминале Ctrl+C и Ctrl+V уже использованы, а Win+C/V нет.


      1. zhulan0v
        00.00.0000 00:00

        попробуйте raycast - помимо истории буфера обмена там ещё куча примочек, ничего такого крутого под винду и близко нет


      1. RifleR
        00.00.0000 00:00

        Попробуйте Maccy. Бесплатное опенсорсное приложение, много фич, с буфером обмена работать с ним очень удобно.


    1. ris58h
      00.00.0000 00:00

      Я предлагаю вам попробовать Win|Alt|Ctrl - это больше похоже на mac. Большинство частоиспользуемых шорткатов содержат Ctrl, а тут он оказывается под большим пальцем, что удобно. Писал об этом в Не мучайте свой мизинец.


  1. debug45
    00.00.0000 00:00
    +3

    Не включающийся при быстром нажатии Caps Lock — это не баг, а фича. Если вы не заметили, то это единственная вообще клавиша на клавиатуре, которая так работает. Сделано для избежания случайных срабатываний.


  1. ILaeeeee
    00.00.0000 00:00
    +5

    Надо было более сильный акцент сделать на

    надо часто подключаться по RDP к машинам с Windows

    Ну и аналогичное, что приходится работать в разных экосистемах и надо что-то одно, для рефлексов. Хоть какой то аргумент был.

    Тут жеж народ не понимает личные хотелки людей. Какие то удобства, которые люди персонально себе настраивают и делятся ими. Им нужны стандарты, быть правильным, академичность. Что именно их подход правильный. И вместо того, чтобы поблагодарить за такой детальный опыт, будут попытаться его обесценить, говоря, что лучше другое.


    1. gatoazul
      00.00.0000 00:00
      +1

      А как иначе занять позицию сверху и почувствовать себя умнее автора?


  1. zhulan0v
    00.00.0000 00:00
    +4

    Несколько раз переезжал с винды на мак и обратно. В итоге вернулся на макбук как появились m1. Тоже была идея сделать все похожим на винду, чтобы не проседать по продуктивности, но решил, что не хочу быть душным дедом и всё же дам шанс системе. И, честно говоря, в итоге получилось гораздо веселее чем на винде.

    Вот мой топ полезняшек сделавших жизнь на макоси приятной и шелковистой:

    • ⌘ + ` Переключение между окнами одного приложения

    • Capslock Переключение раскладки

    • ⌘ + space Открытие Raycast (аналог встроенного spotlight на максималках). Через него можно запускать софт, быстро открывать нужные папки, файлы и еще миллиард возможностей, в том числе возможность назначить горячие клавиши для всего чего хочешь, библиотека сниппетов, журнал буфера обмена.

    • ⌥ + v Открытие журнала буфера обмена Raycast как в винде, но гораздо лучше

    • ⌥ + HOTKEY Монотонный способ открытия основных рабочих софтин. Например, ⌥ + t запускает или показывает окно Telegram, ⌥ + s отрывает PHPStorm, ⌥ + с для Chrome и т. д.

    • Автоскрытие дока и отключение задержки появления

    • Активное использование жестов - свайп тремя пальцами вниз и вверх. Один показывает все окна текущего приложения, второй - показывает вообще все окна сгруппированные по приложениям.

    Ещё из впечатлений:

    • M1 Pro даже не кашляет на моих задачах, не удается его полностью загрузить и услышать кулера.

    • Автономность хорошая - 6 часов кодинга с докерами, пара открытых больших проектов в Idea, постоянная пересборка ангуляра и т.п. Виндовые ноуты у меня умирали раза в два быстрее. Но для идеала бы хотелось ещё пару часов.

    • Трекпад и жесты действительно гораздо более юзабельные по сравнению с виндоноутами.

    • Приятный экран и звук.

    • Сама система стабильная и отзывчивая, в целом от винды более рваные ощущения иногда. Хотя глюки всё равно есть, но их не так много.


    1. ris58h
      00.00.0000 00:00

      ⌘ + ` Переключение между окнами одного приложения

      Только среди окон в том же space. Т.е. на окно с другого рабочего стола или на полноэкранное не переключает.

      Активное использование жестов - свайп тремя пальцами вниз и вверх. Один показывает все окна текущего приложения

      Опять не все - полноэкранные не показывает.


      1. zhulan0v
        00.00.0000 00:00

        На полноэкранные и в целом любые другие удобно переключаться по хоткею назначенному через rayspace или что-то подобное


    1. saboteur_kiev
      00.00.0000 00:00

      Виндовые ноуты у меня умирали раза в два быстрее. Но для идеала бы хотелось ещё пару часов.

      Просто никто не заморачивался долгоиграющими ноутами. Но есть же тот же ThinkPad, легко будет держать 6-8 часов.
      У меня вот кино держит часов 9-10.


      1. RifleR
        00.00.0000 00:00

        На данный момент не существует win-ноутбуков, которые под нагрузкой держали бы столько, сколько макбуки.


      1. zhulan0v
        00.00.0000 00:00

        Кино, браузинг, документы, ютуб - в таком режиме да, можно найти ноуты на винде, которые будут жить ОК. Но в моих кодерских рабочих задачах другой профиль нагрузки на систему и в этом случае мак, к сожалению, вне конкуренции, на винде ничего сопоставимого нет в плане автономности. Видимо тут играет роль синергия и взаимные оптимизации в mac os и m1, что сложно достижимо в условиях винды и интела/амд.


  1. rsang
    00.00.0000 00:00

    Из всего перечисленного боль доставляет отсутствие Insert. Проводники что в win что в mac всегда вызывали раздражение, а в двух-панельных невозможно выделить, ни в mc, ни тотале по удалёнке. На самом маке muCommander тоже не выделяет, только с шифтом.


    1. kambala
      00.00.0000 00:00
      +1

      в тотале можно пробелом выделять


      1. rsang
        00.00.0000 00:00

        Не вариант, это подсчёт размера каталога совмещённый с выделением. С таким выделением можно зависнуть надолго.


    1. deseven
      00.00.0000 00:00

      В mc ctrl-t.


    1. aamonster
      00.00.0000 00:00

      Погодите. В mc shift-стрелки прекрасно выделяют же. Или вам для системного drag'n'drop?


      1. rsang
        00.00.0000 00:00

        Сколько-то лет назад пробовал так выделять и на новом нажатии шифта терялось старое выделение, к чему больше и не возвращался, сейчас проверил - действительно выделят разные блоки. Ну и ctrl-t из ответа выше тоже работает. Спасибо.


    1. AmSha
      00.00.0000 00:00

      Если в тотале поставить галочку "как в NC" то выделять можно правой кнопкой мыши, а контекстное меню вызывается при секундном зажатии кнопки.


  1. artiq
    00.00.0000 00:00

    Command и control в настройках клавиатуры инвертируются: Settings -> keyboard -> keyboard shortcuts -> modifier keys


  1. IvanProvinciaTver
    00.00.0000 00:00
    +11

    Посидите на стандартных хоткеях мака с Cmd одну неделю.
    Потом обнаружите, что биомеханически это удобнее, чем клавиатурные сочетания винды.


    1. shashurup
      00.00.0000 00:00

      Плюсую, после мака у меня везде Ctrl и Alt поменяны местами. В приложениях где Ctrl шорткаты преобладают неизмеримо удобнее иметь Ctrl под большими пальцами.


    1. Frohman
      00.00.0000 00:00
      -2

      Просидел более 6 месяцев и после этой статьи поменял cmd+C/V на Ctrl+C/V. Просто надоело это мучение.


      1. ris58h
        00.00.0000 00:00
        +1

        Мучение то в чём? В том что до ctrl тянуться не надо, но очень хочется?


        1. Frohman
          00.00.0000 00:00
          -1

          Мучение, что нажимать alt/cmd и C/V не удобно ни мизинцем+безымянным, ни безымянным+указательным, ни безымённым+средним. А если нужно сделать cut/paste, то ещё и X нужно зажать - вообще не удобно. Никак лично мне не удобно их нажимать. Рука моя размер имеет такой, что в расслабленном состоянии лежит на ctr+v и чуть в сжатом на ctr+с.


          1. vadimr
            00.00.0000 00:00
            +4

            Cmd нажимается большим пальцем.


            1. Frohman
              00.00.0000 00:00

              Крест-накрест большой и указательный удобнее? А если cmd+c+x? Ощущается менее удобным, чем ctrl+x+c мизицем-срденим-указательным.


              1. isden
                00.00.0000 00:00
                +1

                Три пальца (большой, указательный, средний левой руки) естественно ложатся на cmd+x+c. Все три кнопки рядом. Ничего не надо "крест-накрест".


                1. Frohman
                  00.00.0000 00:00
                  +1

                  Чтобы наглядно было
                  Чтобы наглядно было


                  1. isden
                    00.00.0000 00:00
                    +1

                    Левая рука чуть в сторону.



                  1. ris58h
                    00.00.0000 00:00

                    Не вижу "крест-накрест" - просто большой палец под остальными.

                    Попробуйте ещё пальцы держать как требуется для 10пальцеового метода набора: чуть подогнуть большой палец vs тянуться мизинецем.


                    1. Frohman
                      00.00.0000 00:00

                      Попробовал по-всякому - рука в напряжении находится. За пол года не смог привыкнуть так, чтобы движение было лёгким и комфортным.


  1. kambala
    00.00.0000 00:00

    Еще напрягло (и напрягает до сих пор) скроллинг по колесу внешней (не эппловской, а логитековской) мыши: он то слишком быстрый, то слишком медленный, и нельзя настроить, чтоб было привычно, как в Windows.

    Можно улучшить положение с помощью https://mos.caldis.me/


    1. sourbarberry
      00.00.0000 00:00

      Плюсую. И скролл становится менее деланным, и можно разное направление прокрутки для тачпада и мыши настроить.

      Ну или купить мышь от Logitech - в их фирменной софтине все эти настройки уже есть.


  1. mpaxepnepe
    00.00.0000 00:00
    -8

    macintosh это домашние компьютеры которые притащили в офисы a ibm-pc это офисные которые притащили домой - os их изначально разные: macos идеален для начинающего домашнего пользователя и им запретить кнопку command пока они ненаучаться также безопасно работать в windows как user а потом уже собираем мультиплатформенный рабочий стол да учится на опытного ... linux-fx (plasma) + vanilla-os (gnome) + kumamder (xfce) уже будет итогом успеха освоения


  1. Mnemonik
    00.00.0000 00:00
    +12

    Все пользователи одной ОС, например винды, попав на мак (или линукс) отчаянно бросаются "осваивать" его, называя почему-то этим словом бесконечную затяжную попытку сделать всё "как привычно", то есть как на другой ОС. Потом пишут огромную статью на хабр о каждой мелочи которую смогли подпилить, подкрутить, подменить, немножко подогнуть и сделать "правильно". И страшно довольны и результатом, и статьёй, столько добра принесли в мир, такой ценный подробный гайд!..

    Печальная правда такова, что всё это вода и наносное и особо никому не понадобится никогда... Либо вы через год вернётесь на свою винду, устав бесконечно бороться с тем что по вам "не так" на маке, либо врубитесь что к чему, просто станете пользоваться тем что предлагает мак на маке, потому что это удобно и логично, а на винде тем что предлагает винда, потому что это удобно и логично, и со стыдом и усмешкой будете вспоминать и посматривать на эту длинную простыню, ну уж не удалять же...


    1. khajiit
      00.00.0000 00:00
      +3

      Потом пишут огромную статью на хабр о каждой мелочи которую смогли подпилить …

      Или о том как не смогли, и почему osname is evil.


    1. ris58h
      00.00.0000 00:00
      -1

      потому что это удобно и логично

      Сильное заявление. Неудобного и нелогичного хватает и там и там.


    1. gatoazul
      00.00.0000 00:00
      -3

      В Линуксе нет единственного правильного интерфейса и Линукс не хватает тебя постоянно за руку со словами "соблюдай наши местечковые традиции".


      1. sergeaunt
        00.00.0000 00:00
        +2

        Правильно, пользователь ведь купил компьютер, чтобы у него в каждом приложении были свои "традиции" и чтобы в каждой новой версии дистрибутива всё менялось, потому что дизайнеры (а они там есть вообще?) "осознали свои ошибки". Пользователю же больше нечем заняться, как привыкать ко всему этому.

        Счастливый обладатель Fedora Linux.


        1. gatoazul
          00.00.0000 00:00

          10 лет на Убунте как домашней машине, настроенной a la Win95, - не вижу смысла переучиваться на другие моторные навыки.
          Проблемы разного рода, разумеется, были, но от описанных вами точно не страдал. Так что, наверное, от характера пользователя зависит.


        1. RedCatX
          00.00.0000 00:00

          В последнее время и Windows идёт по тому же пути. После Windows 7 не было уже никакой преемственности, а были сплошные революции, бескомпромиссный разрыв с прошлым, и дизайнерское "мы осознали свои ошибки". Windows 8, 10, 11 - это абсолютно разные системы по UX, три разные концепции интерфейса. А сейчас на подходе уже Windows 12, которая ещё раз обещает нам "порвать с темным прошлым", и сделать "абсолютно новый" интерфейс по мотивам то ли Gnome, то ли macOS...


      1. engine9
        00.00.0000 00:00

        Ну не совсем. Блендерасты-линуксоиды после перехода ловят сильную жопоболь с неработающих комбинаций с alt, т.к. он зарезервирован под таскание окон по умолчанию. А в блендере он (альт) выполняет очень важную роль во многих операциях.

        Это может очень подпортить впечатление от ОС.


  1. KVentz
    00.00.0000 00:00
    +1

    Caps иногда не включается или не выключается, когда жмешь его слишком быстро

    А это разве не представленная в одной из версий назад программная защита от случайного нажатия капса?


  1. anonymous
    00.00.0000 00:00

    НЛО прилетело и опубликовало эту надпись здесь


    1. BugM
      00.00.0000 00:00
      +1

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

      Это хороший повод для того чтобы перейти на него. Одобрение тут не при чем.


      1. anonymous
        00.00.0000 00:00

        НЛО прилетело и опубликовало эту надпись здесь


        1. BugM
          00.00.0000 00:00
          +4

          Точно? Покажите парочку для примера.

          Я вижу так: Прямые конкуренты это топовые Леновы и подобное. Стоят столько же, от батареи живут заметно меньше. Скорость работы хуже. Троттлинг дело такое. Брать их стоит только если Макос в принципе не подходит. Задачи где нужна строго Винда или строго Линукс есть. Виртуалки это часто неудобно.


          1. anonymous
            00.00.0000 00:00

            НЛО прилетело и опубликовало эту надпись здесь


            1. BugM
              00.00.0000 00:00
              +4

              Ну вот к примеру MSY Summit

              https://www.dns-shop.ru/product/cd2bdc91eb8aed20/16-noutbuk-msi-summit-e16-flip-evo-a12mt-090ru-cernyj/

              Стоит 100 тысяч. Сравнимо с Эйром на 16 гигабайт.

              https://www.ozon.ru/product/13-6-noutbuk-apple-macbook-air-13-2022-apple-m2-8c-cpu-8c-gpu-ram-16-gb-ssd-256-gb-macos-z15s000mp-768586605/?asb=iHNbTO6%252BqOKuE5xrPMpEGkPet5b%252BkDmPbk3PLP8kOds%253D&asb2=_W_89z0GmON3p6Y-ymjlfDZKXCglsGzMvd85jeOHMbandtKK8zCI6YS74Avx79kn&avtc=1&avte=2&avts=1679747460&keywords=macbook+air+16gb&sh=sV_FbRbHpA#section-description--offset-140

              И в полтора раза дешевле прошки https://www.ozon.ru/product/14-2-noutbuk-apple-macbook-pro-14-m1-apple-m1-3-2-ggts-ram-16-gb-ssd-512-gb-apple-m1-pro-macos-832808170/?advert=H_m4V991-R8GOvg2IBI8YWfk-7eYaxBq7BJR1EwZPbTSBm4dcSYBfsmtmbYSPHCKITcoAQJkHtCNXdsqWYQD3ausuIblR3UVjS7EVN_Zfy4h4igZ_MD3jTb_L6usixIjx4Puxbu3piC0drXTc7qurl7GQhOt6hZ6I_Qj5aDmrUyvdkuScrAYjx5uSf3ehYTp1CHrEsTz60cdUZrJET0qWPNe4Fwa1CmayZPZU0qtFAn75ZRcsJHM8UtF_2GC7HduGpieEfvgIKI4Kfl0CNxMVCWdNPE&avtc=1&avte=2&avts=1679747540&keywords=macbook+pro+16gb&sh=sV_Fbb2NCg

              Работает медленнее, я вам точно говорю. Intel Core i5-1240P против М1 это даже не смешно.

              https://nanoreview.net/ru/cpu-compare/intel-core-i5-1240p-vs-apple-m1 Плюс сверху потребление электричества 28 против 14. Троттинг понятно где быстрее начнется.

              От батарейки живет меньше чем Ленова о которой я говорил https://www.digitaltrends.com/computing/msi-summit-e14-flip-review/ На рабочий день разработчика уже не хватит. Особенно через год-два эксплуатации.

              Все вообще не так очевидно как вам кажется.

              Опять же на мак нельзя воткнуть адекватно виртуалку. Особенно на М1 и М2. А на линукс, вполне запросто.

              Есть места где нужен строго Линукс. Не возражаю. Но это довольно специфичные потребности. О них надо думать заранее и выбирать технику соответственно.

              Большей части разработчиков строго Линукс не нужен.


  1. AWE64
    00.00.0000 00:00
    +5

    Вообще в теории Full Screen режим - это хорошо ... прячутся не только
    ненужные элементы интерфейса, но и нужные тоже (menu bar вверху, где
    нужно обычно не само меню, а часы, календарь, текущая раскладка, статус
    клавиши CapsLock)

    System Settings -> Desktop & Dock -> Automatically hide and show the menu bar -> Never


    1. hello_my_name_is_dany
      00.00.0000 00:00

      А ещё можно тапнуть по окну два раза и оно просто растянется, оставив menu bar и dock (только сафари почему-то так не умеет)


      1. AWE64
        00.00.0000 00:00

        только между рабочими экранами удобно переключаться жестами, а тут это не сработает


        1. hello_my_name_is_dany
          00.00.0000 00:00

          Я, например, так открываю разные программы на разных экранах и точно так же переключаюсь между экранами жестами.

          Если держать всё на одном экране, то логично, что надо использовать жесты: три пальца вверх (все окна на рабочем экране), три пальца вниз (окна открытой программы)


        1. ris58h
          00.00.0000 00:00

          Сделал утилиту чтоб жестами между приложениям переключаться: Touch-Tab


  1. Interreto
    00.00.0000 00:00
    +2

    У macOS лучше аудиосистема, она low latency из коробки, а на windows нужно костьіль ввиде ASIO


    1. mpaxepnepe
      00.00.0000 00:00

      раньше было наоборот - без asio не могли ислолзовать mac


  1. lrrr11
    00.00.0000 00:00
    +1

    Проблема: Docker-контейнеры тормозят.

    советую попробовать https://github.com/runfinch/finch (пилится программистами из AWS). Никаких чудес там в общем нет, но оно опенсорсное и работает после минимума телодвижений. Настроил сколько надо ресурсов для виртуалки в конфиге, finch vm init, и дальше можно пользоваться как докером в линуксе


  1. maikuss
    00.00.0000 00:00
    +3

    Дима двадцать лет ездил на Mercedes. Купил Audi. Ах, как всё странно, как странно фары включаются. Как странно стеклочистители работают. Ах, педаль аксесератора вся не такая. Ах-ах-ах.

    Даша двадцать лет ездила на Ауди. Купила Мерседес...


    1. mpaxepnepe
      00.00.0000 00:00

      ... походу тоже посмотрел последний видос academeg asata .. a дима таки пересел на bmw - правда в schorts разу не найти тот видос где водитель не может понять как работает пoвоpoтниk


      1. mpaxepnepe
        00.00.0000 00:00

        находится когда уже не надо - youtube.com/shorts/W9Flqd6uHkU


  1. SuvorovStyle
    00.00.0000 00:00

    Не рассказывайте автору про surface


  1. rehci
    00.00.0000 00:00
    +8

    попытаюсь как-то настроить систему, чтобы она вела себя так, как я привык, и как мне надо.

    Не в контексте Мака, но со временем я понял, что всегда проще адаптироваться к дефолту, чем пытаться все перенастроить сотнями опций/чекбоксов/мокрописек.


    1. gatoazul
      00.00.0000 00:00

      На пятой или шестой адаптации вам это надоест.


  1. dmitry_dvm
    00.00.0000 00:00
    -2

    Меня нереально бесит пункт Look Up во всех контекстных меню. Его действительно никак не убрать?


  1. ITLav
    00.00.0000 00:00

    Не понравилось, что частота сканирования внешней клавиатуры совсем уж мала (внутренняя работает без нареканий),

    Вообще-то клавиатуры никто не сканирует на уровне ОС. Тем более если вы говорите о внешней клавиатуре, подключенной по USB. Сканирует чип на самой клавиатуре, а в компьютер передаёт скан-коды. Видимо, на MacOS включен какой-то режим, ограничивающий частоту переключений, чтобы люди случайно не нажимали кнопки.


  1. ZloiDevil
    00.00.0000 00:00

    Статью обсуждать не стану, сам проходил эти этапы лет десять назад. В итоге научился работать с тем что есть. Мне один человек как то сказал в ответ на мою жалобу о дискомфорте с инструментом: это работа, она не обязана быть комфортной. В итоге я пришел к мнению что профессионал может и должен уметь работать с любым инструментом, не высказывая недовольства. Хорошие инструменты повышают производительность и качество, плохие наоборот. Но профи может выполнить задачи на любом.

    У меня вопрос к аудитории, в комментариях увидел как ругают Finder, так и не понял чем он плох. Может кто пояснит?

    На мой взгляд его вполне хватает для всех задач. Возможность удерживать подключение к серверам очень помогает.


    1. vvzvlad
      00.00.0000 00:00

      У меня вопрос к аудитории, в комментариях увидел как ругают Finder, так и не понял чем он плох. Может кто пояснит?

      После TC тяжеловато, двухпанельности не хватает. Но в целом жить можно


      1. KoCMoHaBT61
        00.00.0000 00:00

        Если очень важна двухпанельность, то TotalFinder это оно. Немного глюкавое -- его основная функция в древние времена была в добавлении табов в Finder, а когда появились штатные табы, они как-то криво с ними работают. Зато под M1 сделали.


    1. ris58h
      00.00.0000 00:00
      +2

      это работа, она не обязана быть комфортной

      И не забывайте страдать.


  1. vvzvlad
    00.00.0000 00:00
    +2

    Ееее, очередная статья "я профессионал в езде на велосипеде, потом купил самокат, но мне неудобно, поэтому я щас расскажу как к самокату приделать педали от велосипеда"


  1. Vasjen
    00.00.0000 00:00
    +2

    Я понимаю, что дело лично каждого и каждый волен делать со своим компом, что хочет, настраивать как хочет и расстраиваться, что что-то не так, как именно он хотел. НО!

    Сама макось - это своя идеология, не хуже или лучше чем в виндовс, а просто своя. И приобретая её было бы неплохо в ней повариться, поработать по её правилам, с её эргономикой, чтобы найти свои плюсы и дополнить теми вещами с винды, которых очень не хватает, а не лезть с напильником, переписывая всю логику взаимодействия, ибо в виде по другому. ИМХО.

    Это тоже самое, что поставить Линукс с условным гномом или кде (или что там сейчас популярно), и бежать на форумы спрашивать как сделать интерфейс как в виндовс. А где мой компьютер и проводник, почему нет дисков, хочу значки на рабочем столе и квадратную кнопку снизу и т.д. По мне абсурд, особенно для айтишника.

    По личному опыту, пересев на мак и используя его сейчас как единственное устройство, есть две проблемы. Первая, это когда ты по рдп или энидеску коннектишься к винде. Это боль, потому что тебе приходится постоянно свичатся между комбинациямм. Вторая, некоторые системные хоткеи заменяют другие хоткеи стороннего ПО. Как пример, история хрома в маке по кнтрл+H не вызвать, а вызвать по Y, потому что на H системный хоткей. Это легко исправить или со временем привыкнуть. То что вместо кнопки кнтрл команд - так ничего, что она расположена на клавиатуре там же, где и кнтрл обычно и ты машинально пожимаешь все тоже самое, что привык.

    За несколько месяцев все стало очень удобным и привычным, что как-то и не хочется в виндовс возвращаться.


  1. Axelaredz
    00.00.0000 00:00
    +1

    Странная история от программиста. Ведь ОС выбирают исходя из задач, а они у данной направленности все с удобством решаются именно в линуксе. А с окружением KDE можно было настроить как нравится, хоть как в венде, хоть как в маке, да хоть оба варианта вместе, как сделал я)

    При этом всё настраивается, просто через параметры без танцев с кодом и тп ерундой. Просто тупо темами оформлениями да виджетами, можно сделать так как хочется, а не идти на поводу компаний мелкомягких или яблочников.





    1. DeepHill
      00.00.0000 00:00

      Но если нужен именно ноутбук с длительным временем автономной работы то выбрать ОС не получается потому что альтернатив по железу М2 сейчас нет просто.


  1. AlexdeBur
    00.00.0000 00:00

    "А давайте сделаем из Мака винду" - суть всех советов в статье.

    Я после 10 лет использования винды перешел на мак, к Command и прочим приколам привык за пару недель, дополнительно почти ничего не ставил, кроме Bartender и Scroll Reverser.


    1. isden
      00.00.0000 00:00
      +2

      Scroll Reverser можно убрать и пользоваться только тачпадом, он очень удобный. Отказался от мыши буквально через несколько часов использования тачпада.
      Плюс можно добавить еще BetterSnapTool.


      1. AlexdeBur
        00.00.0000 00:00

        Тачпад у мака действительно удобнее других ноутов, но мышь мне так и не заменил по скорости и удобству + эта странная схема "ctrl + клик" вместо правой клавиши.


        1. WQS100
          00.00.0000 00:00
          +1

          Так вроде можно двумя пальцами нажать для правого клика, разве нет?


          1. BeardedBeaver
            00.00.0000 00:00
            +1

            Можно двумя пальцами, а можно настроить клик одним пальцем в правом нижнем углу


        1. zhulan0v
          00.00.0000 00:00
          +1

          это настраивается в самой системе + можно утилитой добавить трэкпаду "нажатие средней кнопки мыши" - у меня это клик тремя пальцами.


  1. nivorbud
    00.00.0000 00:00
    +1

    А я, как купил АйМак, так за полгода и не смог к нему привыкнуть (после линукса). В итоге отдал сыну.
    Маковские клавиатура и мышь меня не устроили, поставил механическую клаву и эргономичную мышь. Чтобы заставить их привычно работать, пришлось рисовать свою раскладку, а для плавной (недерганой) прокрутки колесиком ставить специальную программку.
    К новым клавиатурным комбинациям привыкнуть не удалось, т.к. постоянно переключаюсь между макосью, виндой, линуксами... На лету переключать сознание... не смог, раздражает.
    Но основная проблема для меня - это специфическая работа с рабочими столами. На линуксе я привык использовать 6-7 рабочих столов, распределив по ним открытые приложения. Например, я всегда знал, что на втором рабочем столе у меня - десяток открытых консолей, на первом столе - пяток разных браузеров, и т.д. А в маке рабочие пространства постоянно перетасовываются (при полнооткрытых окнах создается новое рабочее пространство и т.д.) - получается каша. Но с другой стороны, работа с парой-тройкой открытых приложений удобна, переключатся между ними клавишной комбинацией или жестами приятно.

    Еще столкнулся с проблемой: не смог как в линуксе одной настройкой увеличить размер всех интерфейсных шрифтов (в каждом приложении пришлось индивидуально настраивать). А если менять масштабирование экрана, то шрифты становятся мутноватыми.
    Простота установки/удаления программ - здесь тоже не всё так гладко: некоторые программы при удалении приходилось по директориям вручную вычищать.

    Но понравилась хорошая стабильность и экономное использование оперативной памяти.

    И... с ужасом жду момента, когда аймак (2018) придется от пыли очищать. Корпус у него склеен, придется фэном края нагревать, отклеивать, пылесосить и потом склеивать обратно...

    ЗЫ
    Пришел к выводу: Если одновременно работать с парой-тройкой приложений, то мак - хорошее удобное решение. Если использовать не как основной, а как дополнительный комп, то макбук тоже рассматривал бы к покупке. А как основной комп для веб-разработки мне он не зашёл.



  1. Spaceoddity
    00.00.0000 00:00

    Штатное переключение РУС/ЛАТ по Caps Lock

    С каких это пор Caps Lock стал "штатным" переключателем раскладки (в данном случае именно "языка ввода")? Вам само название этой клавиши (и её индикатора) ни на что не намекает?

    Другое дело, что ни MacOS, ни Linux не позволяют это настроить "из коробки" для Alt+Shift


    1. isden
      00.00.0000 00:00

      В макоси не пробовали переназначить keyboard shortcuts -> input sources?


      1. Spaceoddity
        00.00.0000 00:00

        Не помню. Но я прям возился с этим, гуглил и т.п. В Линуксе через GNOME всё-таки можно, в Макоси только через сторонние утилиты.


        1. isden
          00.00.0000 00:00

          Да, так не получилось. Требуется чтобы одна из кнопок была не модификатором.


    1. Clock_Source
      00.00.0000 00:00
      +1

      С каких это пор Caps Lock стал "штатным" переключателем раскладки

      Как минимум в нескольких дистрах это так. Для меня уже 10 лет это именно штатный переключатель раскладки. Само название кнопки интересует в последнюю очередь.

      Не очень понятно что такое "Linux не позволяет из коробки Alt+Shift", в XFCE например это в списке сочетаний. В xorg.conf тоже можно поставить. Это если есть странное желание переключать раскладку двумя клавишами.


  1. homm
    00.00.0000 00:00

    Проблема: Docker-контейнеры тормозят.

    Решение: нет.

    Во-первых, это касается не всех контейнеров, а только тех, которые по каким-то причинам нельзя запустить нативно на arm.

    Во-вторых в macOS 13 уже не актуально. Элл сделали, что rosetta2 прикидывается прямо в виртуалку докера, там запускает x86 код и qemu уже не нужен. Скорость получается даже выше, чем на Macbook Pro 2019 года.


  1. iRostik
    00.00.0000 00:00
    +1

    Покупая свой первый мак и будучи счастливым обладателем iPhone я для себя решил, что в Apple должны сидеть неглупые люди и надо попытаться понять идеологию всего тог, что заложено в UI/UX системы. Ну и как плюс - дополнительный импульс для развития полушарий серого вещества.
    Я бы эту ситауцию сравнил в вождением на Кипре (к примеру). ПДД под себя не перестроишь и надо переучиваться, а машину ты уже арендовал.


    1. warhamster
      00.00.0000 00:00

      и надо попытаться понять идеологию всего тог, что заложено в UI/UX системы

      А поделитесь - как оно в итоге, получилось?

      Я вот работаю и на маке (рабочая машина), и на PC (домашнее использование, личные проекты). На маке из костылей использую только Alttab и Karabiner (последний - только чтобы Alt и Win на писишной внешней клаве местами поменять, чтобы было как на эппловской). Но единственный плюс в части юзабилити, который я увидел у мака - это Cmd+C/Cmd+V для копирования. Все остальное очень плохо, и спасает только то, что мне для работы нужны лишь идешечка, браузер и консоль - в таком ограниченном наборе оно еще как-то терпимо.


      1. ris58h
        00.00.0000 00:00

        Не рекомендую использовать Karabiner для таких простых кастомизаций, т.к. софт весьма сложный, требует доступа к системным событиям и его ещё непросто удалить из системы. В macOS есть утилита hidutil для простого переназначения клавиш. Есть ещё сайт, где можно удобно собрать конфигурационный файл для этого https://hidutil-generator.netlify.app/


        1. eonwe
          00.00.0000 00:00
          +1

          в макоси в стандартных настройках клавиатуры можно поменять местами клавиши модификаторы.


          1. ris58h
            00.00.0000 00:00

            Спасибо. Забыл об этом. Там же и CapsLock можно переназначить.


            1. MishaRash
              00.00.0000 00:00

              Вы случайно не знаете способ оставить переключение с/на английскую по Caps, но отключить срабатывание на капитализацию полностью? При переходе на Мак мне понравилась первая фича (потому что у меня 2 основных и несколько дополнительных языков ввода и так значительно удобнее, чем всегда проходить полный цикл), но нередко срабатывало долгое нажатие, вызывающее второй эффект, мне совершенно не нужный. Пока я переназначил Caps на Globe через стандартный функционал, а Globe для переключения раскладок, однако доволен не вполне, потому что иногда происходит лишнее переключение из-за движения курсора или чего-то подобного.


  1. Tom910
    00.00.0000 00:00

    Напоминает мою проблему, когда купил себе ПК на Win и пошел переделывать хот кеи на win, чтобы было как на маке. Так как основательно так привык к cmd кнопке и к тому, как я переключая язык cmd+space. И удивило, что это досихпор не легко решается и нужно использовать ПО на примере powertoys


  1. WindMill
    00.00.0000 00:00
    +1

    Для меня так:
    Винды: шрифты, от которых болят глаза + бесконечные обновления обновлений. Пока обновлял забыл что хотел сделать

    Мак: нету "вырезать", нету "создать тхт в этой папке", нету "открыть терминал в этой папке". Плюс если случайно поставил мс офис, то все, привет. Будет постоянно что-то обновляться и задалбывать.

    Убунту (точнее ЗоринОС). Отличные шрифты, есть "вырезать", если "создать тхт", есть "открыть терминал в этой папке", нету микрософтного софта и ничего не лезит со своими обновлениями.

    Поэтому мой выбор - линукс!


    1. zhulan0v
      00.00.0000 00:00
      +4

      Аналог "вырезать" на маке есть: command + c => command + option + v

      P.S. я не минусовал


      1. Nova_Logic
        00.00.0000 00:00

        Command+x чем не угодил?


        1. MishaRash
          00.00.0000 00:00
          +1

          Речь о файлах в Finder. Что не очевидно, т.к. там в меню есть "вырезать" по Cmd+X, но никогда не активна и не работает. Причём даже когда я загуглил, как же так, первые результаты были "вот такой вот косяк, извольте перетаскивать, тут принято так". На Cmd+Option+V наткнулся значительно позже и практически случайно.


      1. WindMill
        00.00.0000 00:00

        Спасибо, не знал. Значит это можно вычеркнуть. Остается:

        нельзя создать тхт файл в папке (использую как быструю заметку или кусок кода откуда-то сохранить например) (в линуксе это из коробки)

        нельзя открыть терминал в папке (в линуксе это из коробки)

        нельзя сделать окно поверх всех окон (в линуксе это из коробки)


        1. BeardedBeaver
          00.00.0000 00:00
          +4

          нельзя открыть терминал в папке (в линуксе это из коробки)

          А вот так?


          1. WindMill
            00.00.0000 00:00

            Спасибо, не знал. Реально открывает. Неудобно только что это надо делать кликом именно по папке (когда я уже внутри вообще-то) + тут три клика, а не два. А если учесть что надо еще назад в папку попасть то еще больше.


            1. MishaRash
              00.00.0000 00:00

              Неудобно только что это надо делать кликом именно по папке (когда я уже внутри вообще-то) + тут три клика, а не два. А если учесть что надо еще назад в папку попасть то еще больше.

              Как вы насчитали три клика? Один клик по папке в пути, ещё один по опции в меню. (При условии, что путь снизу показывается всегда, это настраивается).

              В каком смысле "попасть назад в папку" в этом сценарии? Finder никуда не переходит. Или вы считаете переключение между окнами?

              Тем не менее, одно сочетание клавиш на открытие терминала в текущей папке было бы более привычным, такого пока не смог настроить.


              1. WindMill
                00.00.0000 00:00

                Ух ты, а так удобно кстати. Когда внизу окна путь и тогда один клик по папке, потом открыть в терминале.
                Спасибо! Я то так бы и мучался ))


    1. m1skam
      00.00.0000 00:00
      +4

      Мак: нету "вырезать", нету "создать тхт в этой папке", нету "открыть терминал в этой папке". Плюс если случайно поставил мс офис, то все, привет. Будет постоянно что-то обновляться и задалбывать.

      Странный набор тезисов. Про вырезать, написали уже - cmd + x,

      открыть терминал в этой папке" - можно назначить системный хоткей, ну или в finder через 3 клика

      "создать тхт в этой папке" - этого нет, но так же через системный хоткей можно вызывать дефолтный текстовый редактор или заметки

      "Плюс если случайно поставил мс офис" - вот мне интересно, как можно случайно поставить MS Office? Далее - автоматические обновления офиса отключают одной опцией, да и вроде сейчас ms умеет на маке в фоне обновляться, если включено автоматическое обновление и вот сколько работал с офисом на маке, не помню, что бы часто выходили под него обновления.

      Признайтесь, вам просто нравится Linux, а остальное - натягивание совы на глобус.


      1. WindMill
        00.00.0000 00:00

        Я еще самое главное забыл: в маке нельзя окна делать "поверх всех окон". В виндах еще можно поставить программку, на линуксе это из коробки.

        И почему странный? Мне надо открыть терминал в папке. Не просто терминал и потом туда мышкой путь перетаскивать, а прям в папке. На линуксе я нажимаю правой кнопкой и открываю. Далее мне надо в этой же папке быстро создать текстовый файл. Вы мне предлагаете открыть сначала текстовый редактор шоткатом, потом сохранить файл в нужную папку? Посчитайте сколько надо кликов сделать и сколько потратить времени. И потом открывшийся терминал мне надо повесить поверх окна браузера например. Опять 1 клик мышкой. На маке такого вообще нету.


        По-поводу "нравится". Я не могу работать в виндах из-за кривых шрифтов (глаза болят) и постоянных обновлений (время тратится), а на маке из-за отсутствия нужных мне вещей типа открыть терминал в папке и сделать окно поверх всех окон. Опять же тратится очень много времени на совершнение обычных действий. С отсутствием вырезаний и созданий файлов еще можно жить, а без этого точно нет.

        Поэтому мой выбор: винды для игр, мак на ноуте, для работы линукс. Я даже 1С программирую в линуксе, потому что 10 минут в виндах и у меня глаза вываливаются ) Не знаю почему. Один и тот же комп, одна и та же видеокарта, одни и те же мониторы. Но в виндах больше 10 минут я не могу почему-то.


        1. gatoazul
          00.00.0000 00:00

          Очевидно, настройки драйвера различаются. Проверьте частоту обновления - как ни странно, она остается актуальной и для жидко-кристаллических мониторов.


      1. MishaRash
        00.00.0000 00:00

        открыть терминал в этой папке" - можно назначить системный хоткей

        Тот, который в Services > Files and Folders, работает не так, как привычно с Linux — открывает терминал в выделенной папке, а не в текущей (которая открыта сейчас). Искал, как это исправить, и не нашёл. Обходится большим числом операций — либо открыть терминал в подпапке (если они есть) и там подняться на уровень выше, либо подняться в Finder на уровень выше и открыть терминал в нужной папке, но тогда может понадобиться вернуться обратно в Finder.


  1. ru1z
    00.00.0000 00:00
    +2

    В принципе, есть определенные сложности от новизны, но с другой стороны, ос обычно выбирают из-за нужности программ (поэтому многим перейти на linux сложно, хотя вариантов дистрибутивов предостаточно, под любые предпочтения). А так не особенно понятно, для чего сравнивать одну привычную операционную проблему с целым ноутбуком, набитой другой операционной системой. Если смена окружения обусловлена рабочим софтом или нужным железом, то неприязнь к новизне ожидаема.


    Эх, взять бы где-нибудь незамутненного человека с 25 опытом работы исключительно на win98 и позже перешедшего на Surface Laptop Go c win11.


  1. staticmain
    00.00.0000 00:00

    почти все нужные тулзы тут есть сразу (ssh, openssl, base64, md5, curl, split, xmllint, вот это вот все) 

    Это вы еще не заметили, что там BSD-версии 199Х-го года без 80% опций по сравнению с Linux.


  1. 13werwolf13
    00.00.0000 00:00
    -1

    то что в нормальных ОС делается парой настроек штатного софта в винде и макоси делается через сторонний софт кушающий ресурсы и твики системы которые ломаются при обновах системы и/или ломают саму систему..

    но да, ёжики плакали но продолжали "переть" кактус..


  1. DmitryKoterov
    00.00.0000 00:00

    Курсорные клавиши и home-end-pgup-pgdown - боль, факт. На Маке 10 лет, а воз и ныне там. (Хотя в последние 5 лет ничего не перенастраиваю, просто кушаю кактус.) Там нет системы, в каждом приложении просто сделано по-разному. Я думаю, это обычный непреднамеренный бардак, когда нет стандартизации.

    Все остальное в статье показалось вкусовщиной. Ну разве что про неудобный фуллскрин окон, но я им не пользую - всегда кликаю Option+GreenPlus, и оно растягивается на весь экран, не скрывая заголовок окна и трей (ну почти всегда это происходит, хотя некоторые особо одаренные аппы это ломают).


  1. vvkdev
    00.00.0000 00:00
    +2

    Не к автору, а скорее просто наболевшее по теме... А может, кто-то и ответит, кто "ел устриц"...

    В таких статьях обычно не освещены некоторые сложные вопросы, которые для меня (как для, скажем так, "продвинутого" юзера), подозреваю, делают переход ещё сложнее.

    А именно, можно ли на Маке заменить/использовать такие программы/подходы:

    1. С помощью autounattend.xml переустановка ОС не задаёт ни одного вопроса + запускает при первом входе в ОС батник, который полностью приводит систему к состоянию, которое было до, то есть ставит все мои настройки (кроме одной).

    2. Штатный UWF фильтр, включается сразу после настройки и навсегда. То есть ОС при перезагрузке возвращается в исходное положение, что бы ни было изменено во время сеанса. Кроме отсутствия глюков и разрастания ОС, удобно использовать для тестирования приложений, не оставляя следов.

    3. Все программы находятся в portable-режиме на отдельном диске, и в системе нет от них ничего, кроме одного ярлыка автозапуска. Все они преднастроены до первого запуска (то есть в них нет файлов/кэшей, создаваемых при работе) и тоже находятся в режиме UWF, то есть возвращаются в нулевое состояние при перезагрузке ОС.

    4. Штатный firewall автонастраивается из того же bat до первого выхода в интернет, и запрещает выход в интернет самой винде и практически всему, кроме браузера.

    5. Нет аккаунта (и магазина, и рекламы). Вообще.

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

    7. Total commander. Перепробовано много аналогов и, к сожалению, несоспоставимы для моего сценария (( Тут не вопрос, а просто как препятствие. Исследовала в своё время этот пункт очень, но безуспешно.

    8. Punto switcher. Больше 15 лет стоит, без него уже не могу. Надеюсь, на маках есть ему замена.

    9. Autohotkey – с помощью него у меня настроено очень много чего, от hotstrings до личного тайм-трекера и бэкапов. Никогда не слышала, но может есть аналог?

    10. (следует из 9.) Singleclick – практически нигде не использую дабл-клик, что очень заметно снизило нагрузку на руку. Обратно не хочется.

    11. Symlinks и vhdx. Нужны. Наверное, есть?

    12. Не изучала еще, но что с файловыми системами? Виндовые флэшки/жд/microsd вроде не взлетают? В какой ФС надо иметь их все, чтобы подключать спокойно к Маку/проектору/андроид/машине? У меня сейчас это как-то криво, но решено.

    Ну и так, ещё мелочи, которые по масштабу хоть и не такие, как вышеизложенное, но всё-таки есть и потребовали бы, судя по всему, тоже поисков.

    Почти всё вышесказанное, к сожалению, затрудняет переход и на Linux. По крайней мере, попытки пока не удавались. Хотя и хотелось бы.

    На много раз прозвучавший выше логичный вопрос, зачем тогда переходить, ответ как у всех: когда win-ноуты догонят Маки по производительности и автономности, нам, видимо, дождаться не суждено. Слежу уже за этим 10 лет и всегда одно и то же. Уважаю Apple за это. (А винду за другое :))

    Ну а на Linux хочется за опен-сорс.


    1. kambala
      00.00.0000 00:00
      +1

      2) вероятно учетка Гостя

      4) файрвол есть (pf), настройкам поддается

      5) да, штатно

      6) да, штатно

      7) Path Finder наверное ближе всего к тоталу из не-терминмальных

      8) пунто вроде и под Макос есть, но есть и аналогичные приложения

      9) не совсем то же самое, но есть системный Automator. ну и в настройках системы можно назначать горячие клавиши на многие вещи

      11) симлинки есть конечно. vhdx — виртуалки? ну VirtualBox есть...

      12) NTFS поддерживается системой в ридонли режиме, есть сторонние драйвера для записи. из коробки — exFAT (ну и FAT32).


      1. savostin
        00.00.0000 00:00

        8) пунто вроде и под Макос есть, но есть и аналогичные приложения

        А можно парочку аналогов? Сам PuntoSwitcher у меня жутко тормозит (в смысле скорость переключения раскладок значительно ниже, чем под Windows, что приводит к бардаку при быстром наборе). Но больше ничего подобного не встречал. Да и сам он давно не обновлялся, похоже нет до него дела никому. Пож Windows вообще браузер за собой тянет.


        1. MishaRash
          00.00.0000 00:00

          Прочитав эту ветку, установил Caramba Switcher из App Store, пока нравится, хотя сочетания клавиш в нём, похоже, не настраиваются, а только включаются/отключаются.


          1. savostin
            00.00.0000 00:00

            И исключений приложений нет.


            1. MishaRash
              00.00.0000 00:00

              Что-то есть (например, в терминале не активен), но в настройках не вижу.


              1. savostin
                00.00.0000 00:00

                Это скорее глюк или особенности MacOS, чем фича.

                https://caramba-switcher.com/help/secure-input


                1. MishaRash
                  00.00.0000 00:00

                  Интересно, но красного значка в терминале нет, иконка Caramba просто не активна.


          1. kambala
            00.00.0000 00:00

            Точно - карамба (не мог вспомнить сходу когда комментарий писал). Возможно есть и ещё аналоги.


      1. vvkdev
        00.00.0000 00:00

        Спасибо! Хотя бы частично, но даёт направление для изучения.


    1. VADemon
      00.00.0000 00:00

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


      1. vvkdev
        00.00.0000 00:00

        А что именно заинтересовало? Тут почти по каждому пункту подробностей наберётся, наверное, на целую статью )

        А если в целом про "зачем", то мне очень нравится пользоваться всегда чистой, самонастраиваемой и автономной ОС.

        Практически нет глюков и тормозов.

        Ещё я никогда не любила и не ставила антивирусы, пришлось решать вот так.

        Ну и ещё я ленивая очень, поэтому автоматизация рутины наше всё )


  1. warlock66613
    00.00.0000 00:00

    попробуйте вспомнить свое первое знакомство с клавиатурой, когда вам надо на ней что-то напечатать, а где буквы - вы еще не выучили

    Минут пять ушло на заучивание скороговорки "йцукен гэ шэ ще зэ хэ твёрдый знак, фывапр олджэ, ячсмитьбю", дальше проблем с быстрым поиском букв уже не было.


  1. papilaz
    00.00.0000 00:00

    Хорошее развлечение себе нашёл.


  1. savostin
    00.00.0000 00:00

    • Штатный Alt-Tab не работает (так, как должен). Решилось установкой бесплатной опенсорсной программы AltTab.

    Не помню как "должно быть" у пользователей Windows, но это не оно?


    1. MishaRash
      00.00.0000 00:00

      Не совсем то. В macOS (Ventura, хотя вряд ли оно существенно менялось в последнее время) "move focus to next window" — это переключение в пределах окон одного приложения, в Windows Alt-Tab переключает между всеми открытыми окнами от всех приложений.

      Да, можно совмещать переключение между окнами одного приложения с переключением приложений (по умолчанию Command+Tab), но иногда удобнее именно по всем окнам — например, если я хочу перетащить файл из одного из окон Finder в развёрнутый браузер, а остальные мешают. Штатными средствами можно выбрать конкретное окно через Mission Control, но телодвижений так получается больше.


      1. isden
        00.00.0000 00:00

        Штатными средствами можно выбрать конкретное окно через Mission Control, но телодвижений так получается больше.

        У меня на это повешен жест "4 пальца вниз" (а "4 пальца вверх" — показать вообще все окна). Переключение на нужное окно занимает буквально два движения по тачпаду.


      1. savostin
        00.00.0000 00:00

        Cmd+Tab до приложения и, не отпуская "мышь", Alt+Tab до нужного окна. Имхо так даже логичнее.


        1. MishaRash
          00.00.0000 00:00

          Возможно, но в описанном мной примере другие окна "верхнего" приложения (Finder) нередко мешают выполнению задачи.


  1. Max1900
    00.00.0000 00:00

    Автор сам себе усложняет жизнь. И людей путает. Меняешь у себя в голове, что вместо контрола команд и уже пол дела сделано. Есть вещи конечно к которым нужно привыкать. У всех по разному. Я за день привык. Когда появлялся вопрос, то лез в интернет и узнавал. И просто делал. Скриншоты удобно делать. На буке и аймаке трекпады и вообще огонь, альтабаться не нужно, взмах и ты в нужном окне. Но зачем из макоси делать винду... мне непонятно.

    Смотря из за чего человек пересаживается. Меня достала винда. И софт кое какой только там. Компактность и автономность. Плюс качество экрана. Для работы цветовой охват огонь. А вообще часто забывают что в маках из коробки офис и минимальный набор программ, что ставить приходится только уже узкоспециализированные для работы. А все остальное уже есть.

    вот мой опыт. )

    Этих разгромных громадных статей уже куча летает по интернету. Как все переделывать и что то кастомизировать. А посути оно вам надо? Нюансы да, но какая то еуча приложений, надстройки. Когда хочешь делать то, что тебе нужно и хочется вся эта мелочь уходит на второй план. Мак у меня меньше виснет. При открытии джепега не начинает гудеть как мой прошлый делл. Тоже свежий ноут. 2021 года. Ну там мрак просто. Короче кому как конечно, но когда делаешь дело, все остально пыль. Зачем вообще тогда переходить на мак, вот вопрос.

    И кстати, это не палки в колеса виндовозам, а просто логика другая. Тебе она либо нравится либо вот такая статья ))))


  1. Flexits
    00.00.0000 00:00

    На вкус и цвет все фломастеры разные. Использую Windows и, с недавнего времени, MacOS. Из действительно жестоких неудобство могу назвать разве только отсутствие нормальных Home/End/PageUp/PageDown и вообще разительно отличающуюся логику управления курсором с клавиатуры в разных приложениях, это действительно сбивает с толку. А, и невозможность набрать Alt+0151 ещё. Напротив, к примеру, странное и непонятное управление окнами - просто нужно было понять как работает в принципе, и сейчас я даже нахожу его гораздо более удобным, чем в Windows.

    Hot Corners и Mission Control - вещь, Alt-Tab - неудобный пережиток винды, не пользуйтесь им вообще. Проблема тайлинга решается с помощью Magnet или аналогичных приложений. Да так решается, что потом на винде становится работать неудобно и непривычно. На мой взгляд, корень всех проблем состоит в том, что люди пытаются перекроить новое под привычное им старое, даже не пытаясь вникнуть в различия и освоиться без "тюнинга".

    Что касается трудностей привыкания, это всё исключительно из области индивидуальных особенностей. Я на машину с АКПП пересел за один день после 10 лет на "механике", а кто-то левую ногу веревочкой к сиденью привязывает, чтоб "сцепление" на полном ходу не выжать. Просто все люди разные и адаптация нового / переключение между задачами у всех происходит по-разному, никто не хуже и не лучше других, и мак не хуже винды, и обратное тоже ложно. Просто оно разное, вот и всё.


    1. vconst
      00.00.0000 00:00

      и невозможность набрать Alt+0151 ещё.

      Клик по иконке языка вверху у часов > Show keyboard viewer, а там альтами, шифтами и чем угодно. Выучить опшн-минус для среднего тире, шифт-ошпн-минус для длинного и тп шорткаты — куда логичнее и проще, чем запоминать трехзначные числа


    1. ris58h
      00.00.0000 00:00

      и невозможность набрать Alt+0151 ещё

      Примерно 10 секунд на 2 запроса в гугл:

      On a Mac, the keyboard shortcut Option + Shift + Dash (-) makes an em dash, and Option + Dash (-) makes an en dash.

      В маке как раз из коробки задумано удобство типографского набора.