Недавно мы сделали базовую настройку гик-десктопа на базе 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

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

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

Подпишись на журнал «Хакер» по выгодной цене!

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

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

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Конкурс хаков: пишем на PowerShell скрипт, который уведомляет о днях рождения пользователей Active Directory

В компаниях часто встречается задача уведомлять сотрудников о приближающихся днях рождения…