What I have learned after installing Windows 11

Written by elwood
  1. Windows 11 media creation tool is very, very buggy… You should have a lot of patience and luck to create a working bootable USB stick.
  2. The Windows 11 installation process is also buggy. The result (whether the installation will complete or fail) depends on what you choose in the keyboard layout and/or language packs select boxes.
  3. Surprisingly, you still don’t need a Microsoft account to proceed with OS installation. However, you have to know how to avoid this requirement (you can simply enter a local username and ignore the error).
  4. Hardware detection sometimes doesn’t work, and you will likely have troubles with the activation process.
  5. Windows Update is as buggy as usual. During the first install it didn’t finish successfully, but after 3 or 4 reinstalls it finally finished OK.
  6. If you need to change the keyboard repeat rate, you have to run a custom command to launch the settings app O_O
  7. Sometimes OS starts to utilize 15% CPU in idle mode, and it doesn’t stop until you reboot your computer.
  8. There is the Hibernate mode that activates automatically while computer sleeping. To disable it, I removed Hibernate from allowed modes using this guide

Зачем использовать тайловые wm

Written by elwood

Так вышло, что уже немало лет (с 2016) я на рабочем ноутбуке пользуюсь исключительно тайловым window manager’ом (конкретно, awesome wm). Пожалуй, пришло время поделиться опытом и рассказать, почему я предпочитаю тайловые wm и чем они хороши для работы программиста.

О том, что такое тайловые wm и чем они отличаются от обычных десктопных окружений, можно почитать тут. Я же расскажу о своих сценариях использования. Что нужно программисту для работы? Джентельменский набор: браузер, мессенджер, терминалы, IDE/текстовый редактор, ну и прочие приложения (менеджер паролей, калькулятор, скриншотилка итд). Чаще всего работа ведётся в редакторе кода с переключением в браузер/мессенджер/терминал и обратно. Причём переключаться приходится часто, особенно это касается эмуляторов терминала: сессий зачастую бывает много (больше трёх), и хочется тратить на это минимум времени.

Что предлагает нам обычное десктопное окружение? Возьмём для примера GNOME. В нём приложения будут сгруппированы в таскбаре, и переключаться можно тремя способами: через Alt+Tab, мышкой (тыкая в нужную иконку), или с помощью комбинации Mod-клавиша+цифра (Win+цифра). Alt+Tab не удобен тем, что если приложений много, то приходится следить за количеством нажатий, и оно постоянно меняется. То есть чтобы знать, сколько раз надо нажать, нужно в голове держать стек переключений, и примерно прикидывать количество нажатий. Так себе способ. Второй способ с мышью очень медленный и заставляет тянуться за мышкой, вести её к нужному месту, нажимать, вести курсор обратно в рабочую область экрана. А если экземплятов приложения несколько, то придётся ещё одним щелчком выбрать нужный. Выглядит сложно. Третий способ хорош: за одно нажатие Win+3 вы переключаетесь на третье (по порядку) приложение в таскбаре. Но, к сожалению, этот способ не универсален: если у приложения запущено несколько экземпляров, то уточнить нужный можно лишь при помощи мыши. Так что, выбрать нужный терминал быстро не получится. Опять страдания.

Вот бы иметь возможность закрепить за каждой комбинацией клавиш какое-то приложение, и переключаться туда одним нажатием! Взять какие-нибудь простые комбинации вроде Win+1, Win+2.. А если приложение запущено в нескольких экземплярах, то либо выделить экземплярам по отдельной комбинации, либо разместить их окна рядом, на одном экране. Стойте-стойте. Кажется, мы изобрели тайлинг.

Действительно, если взять awesome, то в нём по умолчанию заведено 9 рабочих областей (“тегов”). Переключиться на тег можно комбинацией Win+<номер тега>. Win+ESC переключает тег на предыдущий (очень удобно возвращаться назад). Можно на каждое большое приложение (браузер, мессенджер, IDE) выделить по тегу целиком, а множество эмуляторов терминалов разместить в одном теге в неперекрывающемся режиме (в режиме тайлинга). Теперь доступ к каждому приложению действительно быстрый и удобный — в одно нажатие. Причём если придумать себе какую-то схему размещения приложений и всегда её придерживаться, то эти комбинации всегда будут одними и теми же. Например, у меня на теге 1 всегда открыт браузер, на теге 2 — телеграм, на третьем теге — эмулятор(ы) терминала, на 4-6 — IDE/текстовые редакторы, на 9 — keepass. 7 и 8 у меня запасные, на них закидываю приложения, которые нужны разово/нерегулярно, обычно эти теги пустые.

Теперь давайте рассмотрим визуальную составляющую. Обычные десктопные окружения предлагают нам окошки, которые обильно сдобрены дополнительными элементами: заголовок, меню, рамки окна, элементы управления окном (минимизация, максимизация, крестик закрытия). Причём с каждым новым релизом размер заголовков увеличивается. В результате процент полезной области экрана уменьшается. А ведь иногда приходится работать и с экрана ноутбука! В некоторых окружениях есть настройки, позволяющие уменьшить их размер (gnome-tweak-tool) и настроить шрифты. Но убрать их полностью нельзя.

Awesome же позволяет полностью убрать заголовки и рамки вокруг окон, целиком отдав пространство экрана приложению. То же касается и таскбара: в awesome его нет, а полоска тегов вместе со статус-баром занимают буквально десяток пикселей (впрочем, при желании это можно попытаться настроить). Интересно ещё, что у эмулятора терминала Konsole можно отключить меню, и терминал занимает целиком 100% экрана. Для программистов, которым часто бывает нужно отображать много текста на одном экране, это очень полезная фича. Вот так, например, выглядит мой терминал

Что ещё полезного может предложить awesome?
Хочу отметить возможность вешать кастомные команды на хоткеи. Эта возможность есть и в других DE, но чаще всего там возможности настройки ограничены. Здесь же можно развернуться на полную. Например, можно настроить запуск эмулятора терминала с открытием ssh-сессии на выделенный в браузере (или в редакторе) хост. У меня есть такой хоткей. Я выделяю ip адрес мышкой, нажимаю Win+Ctrl+S, и у меня открывается ssh туда. Быстро и удобно. Аналогично я сделал хоткеи для подключения по RDP к Windows-машине. И для открытия тикета в Яндекс.Трекере (аналоге JIRA): нужно лишь выделить название тикета и нажать комбинацию клавиш.

Подведём итоги. Преимущества тайлинговых wm и awesome в частности:
– удобное и быстрое переключение между приложениями (критически важно для работы и психического здоровья!)
– минимизация неиспользуемого пространства (важно для работы!)
– кастомизация хоткеев, возможность обходиться без мыши во многих случаях
А ещё:
– высокая скорость работы и низкое потребление ресурсов (актуально в сравнении с GNOME)
– независимость от того, куда свернут разработчики DE в следующем релизе: не нужно привыкать к решениям, которые показались разработчикам перспективными

Конечно, есть и минусы. Среди них:
– Высокий порог входа. Даже поставить такой wm не всегда простая задача для новичка в мире nix.
– Проблемы интеграции с DE. Если поставить awesome на Ubuntu с GNOME, то в awesome может не работать автодетект мониторов, переключение раскладки, локскрин. Эти неудобья придётся решать самостоятельно.

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

Напоследок приведу смешную пасту про тайлинг.

Ты совершенно не понимаешь, в чём суть тайлинга. Тайлинг - это не юнити/макообразное run-or-raise. Это не однопиксельные декорации окон. Это не теги вместо воркспейсов, не функционал поиска по 3.5 окон и не простыни конфигов на луа, хаскеле и прочих борщеязычках. Тайлинг - это концепция, при которой юзеры могут почувствовать себя полноправными хозяевами каждого пикселя своего несчастного экранчика - жадными, прагматичными, ленивыми юзерами, которыми они на самом деле и являются.
У кедерастов упала плазма - мы смеёмся. Гномосеки увеличили область заголовка окна ещё в полтора раза - мы смеёмся и жмём Mod4 + B. Мерзософт придумал очередную плиточную бредоидею для нового шиндошса - мы смеёмся и меняем раскладку окон. Нам говорят «без трея не прожить» - мы смеёмся и накатываем патч. Вэйланд, мир, гномощель, юнити - нам пофиг. Мы бездушно поделим экран на ровные части, наши предпочтения основаны на количестве строк кода, хоткеи - наша стихия, мы - истинное лицо управления окнами.

В следующих статьях я расскажу, как конкретно взять Ubuntu 20.04 и настроить в ней awesome wm до минимально рабочего состояния.

My Dell XPS 15 UHD experience

Written by elwood

After I’ve spent a couple of weeks tuning this laptop I can make some notes about troubles that you can have if you deal with this laptop model.

Initially there was a Windows 10 Home Single Language edition installed in UEFI boot mode. I wanted to apply dual-boot setup (the second system I want was Ubuntu 16.04). So, I needed to reinstall Windows in Legacy boot mode and then add the second system.

Here is the list of issues I have faced with.

1. Display flickering. A Very common issue. After some googling I reverted my BIOS firmware to older version, 1.0.0 (instead of initial 1.0.12). This fixed the bug. (UPDATE: in 1.2.18 version this bug has been fixed again, thank Godness!)

2. Laptop doesn’t wake up from sleep when charging cable is plugged in. Fixed as previous.

3. Preinstalled Windows is full of shitty software and works very slowly. The only way I have found was reinstalling it from scratch. Fortunately, the Windows was smart and I had no troubles with reactivation. All of these things worked automatically.

4. Random BSODs caused incorrect standard Windows SSD driver. Look at this and this. Fixed by manual installing SSD driver from samsung web-site.

5. Sound system leaves much to be desired. That’s all I could say about that.

6. The camera is placed under the screen and it is very uncomfortable. Microphone is placed in front of keyboard. So your interlocutor will hear the rustle of your belly. Keyboard layout is like Macs, and (IMHO) it is not the best choice (for programming, for example).

7. Not all the programs can work in high DPI mode. But the whole situation with this was much better than I supposed !

Nevertheless, for me the 4K screen with great view angles compensates all suffering that I had tuning this laptop. And I’m very happy to know that my eyesight will not deteriorate because of a bad screen anymore.

Next time I will write about tuning the Ubuntu with modern awesome wm on 4K. Stay tuned !