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

Напомню, что в данный момент у тебя уже должна быть базовая инсталляция i3 с окном логина slim, терминалом lilyterm, демоном автомонтирования devmon, системой показа уведомлений twmnd, апплетом переключения раскладки gxkb и композитным менеджером compton. Это вполне самодостаточный десктоп, которым можно без проблем пользоваться. Но есть множество более мелких вещей, которые мы не затронули в предыдущей статье. Например, у нас до сих пор нет блокировщика экрана, той самой штуки, которая требует пароль после простоя или пробуждения компа от спячки.

WWW

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

 

Блокировщик экрана slock

Slock — чрезвычайно простой блокировщик экрана. Настолько простой, что в нем нет даже поля ввода для пароля. Он просто показывает черный экран, цвет которого меняется на синий, когда ты вводишь пароль, и на красный, если пароль неверен.

Slock доступен во многих дистрибутивах в форме обычного пакета. В Arch Linux его можно установить так:

$ sudo pacman -S slock

После этого выполни команду slock, чтобы заблокировать экран. Чтобы экран блокировался перед уходом компа в сон, следует создать юнит systemd следующего содержания:

[Unit]
Description=Lock X session using slock for user %i
Before=sleep.target

[Service]
User=%i
Environment=DISPLAY=:0
ExecStartPre=/usr/bin/xset dpms force suspend
ExecStart=/usr/bin/slock

[Install]
WantedBy=sleep.target

Помести эти строки в файл /etc/systemd/system/slock@.service, а затем активируй юнит для текущего пользователя:

$ sudo systemctl enable slock@ИМЯ_ЮЗЕРА.service

Теперь slock будет автоматически активирован при переходе ноутбука в сон.

 

Настройка строки состояния

Многие пользователи i3 рекомендуют менять стандартную строку состояния i3status на нечто более прогрессивное, функциональное, красивое и замечательное. В этом есть определенный смысл, но стоит учитывать, что, в отличие от простого i3status, многие другие реализации написаны на языках bash и Python, что делает их менее эффективными и более требовательными к ресурсам.

Поэтому я рекомендую использовать i3status, но несколько расширить его функциональность. Первое, что стоит сделать, — это разместить в строке не только время, но и текущую дату и день недели. Для этого надо всего лишь исправить директиву tztime local в файле ~/.i3status.conf так, чтобы она выглядела следующим образом:

tztime local {
    format = "%a %Y-%m-%d %H:%M:%S"
}

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

#order += "run_watch DHCP"

Эта строка отключает показ информации о статусе DHCP. Меняя местами строки order, можно поменять расположение элементов в строке.

Ты можешь столкнуться с тем, что строка не отображает информацию о состоянии сети. Обычно проблема заключается в неверных именах сетевых устройств в конфиге. Стоит запустить команду ifconfig, чтобы узнать правильные имена, а затем прописать их в конфиг i3status. Устройства с именами, начинающимися на en, — это Ethernet-адаптеры, wl — Wi-Fi.

Вот пример настроек i3status для моего ноутбука:

wireless wlp3s0 {
    format_up = "W: (%quality at %essid) %ip"
    format_down = "W: down"
}

ethernet enp0s25 {
    format_up = "E: %ip (%speed)"
    format_down = "E: down"
}

Кроме статуса сети, батареи, времени, тебе также может понадобиться инфа о текущем уровне громкости. Ее легко добавить с помощью такого блока:

volume master {
    format = "♪ %volume"
    format_muted = "♪ muted (%volume)"
    device = "default"
    mixer = "Master"
    mixer_idx = 0
}

и соответствующей строки в начале конфига:

order += "volume master"
 

Погода в строке состояния

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

Для начала скачаем скрипт weather.py:

$ mkdir ~/bin
$ cd ~/bin
$ wget https://raw.githubusercontent.com/calzoneman/i3-weather/master/weather.py
$ chmod +x weather.py

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


8 комментариев

  1. petrovichtim

    27.07.2017 at 12:37

    Как обновить Adobe Flash плагин для Firefox на Fedora 26, без лишних телодвижений?

  2. istepan

    28.07.2017 at 17:24

    Есть аналог surf на основе Blink/v8?

  3. soko1

    28.07.2017 at 18:20

    Интересное применение dmenu, спасибо за идею.

    Напиши в след раз про какой нибудь нормальный менеджер wifi-соеднинений консольный. А то везде какой-то шлак. wpa_supplicant не подходит по ряду причин. Самая главная из которых — нельзя указать к какой точке из перечисленных в конфиге подрубаться! Он создавался наверное из расчёта, что одно место — одна точка. Но такое далеко не всегда: иногда нужно подключиться не к основному роутеру, а к резервному инету с другим SSID, или подключиться к соседской точке (шутка).
    Кстати, есть неплохая обёртка к wpa_supplicant с доп. возможностями — https://github.com/cryptopunks/minsecwifi (но тоже допилен не до конца).

    В общем, буду рад альтернативам.

  4. enc

    01.08.2017 at 11:28

    мне понравилось! Автор, пиши еще!

  5. mrkhesin

    14.08.2017 at 09:38

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

  6. vicnev

    06.09.2017 at 20:36

    Спасибо за очень полезную статью и хотелось бы продолжения этой темы.

  7. Dron66

    13.10.2017 at 00:34

    А ссылка на первую часть?

Оставить мнение

Check Also

Snek Fite. Как я сделал онлайновую игру для программистов

Ты, конечно, знаешь такую замечательную игру, как «Змейка». Так вот речь пойдет вовсе не о…