Позвольте мне перефразировать этот заголовок сказав таким образом: я всегда интересовался тем, как устроены вещи, а не лишь тем, что они делают. Если что-либо что-то делает, то я бы хотел знать зачем, как и могу-ли я это кастомизировать.
Всё началось с того, что меня, как и многих пользователей, раздосадовал Windows 10. Главной причиной тому послужили произвольные обновления, созданные, как мне казалось, лишь для длительного запуска системы и непредвиденных рестартов. Очень часто я терял всю свою сессию, а вместе с ней и весь мыслительный процесс и, самое отвратное, что я не понимал, что всё же обновилось. Windows 10 был непроницаемым таинственным куском синих экранов и решений, в которых я не участвовал.
К счастью для меня и других, подобных мне, есть альтернатива. Ну, существует несколько (очень много) дистрибутивов Linux, и большинство из них интуитивно понятны и полностью пригодны для использования сразу после установки. Возможно, одним из самых известных «Windows-подобных» дистрибутивов является Ubuntu. У этого есть рабочий стол, похожий на Windows 10, и он очень «графический» и ориентирован в основном на то, что являются новыми для Linux.
Я, в свою очередь, пришёл к Debian, дистрибутив, на котором и был основан Ubuntu. Он не держит вас за ручку так крепко как другие многофункциональные дистрибутивы, но от того он и более настраиваемый. Я начал с установочного образа, найденного
здесь, который вы можете скачать и использовать для создания загрузочного USB.
Это самая простая установка Debian и исключает те вещи, которые я, как предыдущий пользователь Windows, воспринимаю как должное. Помимо прочего, мне пришлось найти и установить (или, по крайней мере, настроить):
- Менеджер окон (i3)
- Приложение, которое позволит мне подключиться к Интернету (NetworkManager / nm-applet)
- Программа, которая позволяет мне контролировать яркость экрана (xrandr)
- Программа, которая обрабатывает звук, подобные программы ещё называют звуковым сервером (pulseaudio)
- Обработчики событий, чтобы, например, говорить моему ноутбуку приостанавливать работу, когда я закрываю крышку
- Дисплей для базовой информации о состояниях (i3bar)
- Уведомления рабочего стола (dunst) (об этом ещё обязательно будет отдельная статья)
- Основные программы, такие как графический файловый менеджер (PCmanFM), просмотрщик PDF (Okular) и редактор изображений (Darktable)
Если, в отличие от меня, вы предпочитаете использовать более полнофункциональную среду рабочего стола, то есть лёгкий способ: Net Install по умолчанию предоставляет стандартную систему с рабочей средой GNOME. Для Debian есть
полное руководство по установке, которое шаг за шагом проведет вас через этот процесс.
Однако, делая это сложным путём («по-плохому») я многому научился. После начала работы с базовой системой я получил куда лучшее представление в отношении того, что происходит “под капотом”. Если в будущем у меня возникнет проблема с одним компонентом, у меня куда больше шансов получить представление о том, как же это исправить, поскольку я “это” сам собрал. На этом пути я набил не мало шишек, но также нашёл некоторые решения, которые работаю куда лучше, чем даже предлагаемые Net Install по-умолчанию.
Но, сперва, для мотивации, скриншот моего рабочего стола (Linux-не Linux, а я люблю, когда всё красивенько):
Разрешение на распространение этих ну очень красивых конфигурационных файлов были любезно предоставлены мне Vicky Lai для написания этой статьи и доступны в её
GitHub, так что милости прошу.
Что вообще такое файлы конфигурации?
Если вы новичок в Linux или вовсе в программировании, то это в основном техническая версия простого и знакомого «Файл → Настройки» в программах GUI. В зависимости от приложения, которое вы настраиваете, есть несколько разных форматов и языков этих самых файлов конфигурации. К счастью, есть достаточно примеров конфигурационных файлов, доступных с помощью простого веб-поиска.
Куда же засунуть все эти файлы конфигурации?
Я нашел несколько разных путей для файлов. Ниже приведены пути работы моих конфигурационных файлов:
systemd event handlers: /etc/systemd/logind.conf
Для URxvt: ~/.Xdefaults
Для i3wm: ~/.config/i3/config
Для i3bar: ~/.config/i3status/config/i3status.conf
Для dunst: ~/.config/dunst/dunstrc
Для Compton: ~/.config/compton.conf
Я выбрал глупое имя пользователя, как его изменить?
Это было весело. Оказывается, изменение моего имени пользователя перепутало целую кучу вещей, которые по-хорошему я тогда должен был исправить / переустановить, среди них были:
- Dropbox
- Anaconda and pip
- Файловые пути, написанные полностью в файлах конфигурации
Чтобы избежать проблем, с которыми я столкнулся, измените свое имя пользователя, прежде чем настраивать все свои программ. Если для этого уже слишком поздно, просто имейте в виду, что затронуты многие программы, включая все файловые пути содержащие: /home /oldusername /…
Чтобы изменить имя пользователя через терминал, войдите в систему с правами root, а затем:
$ killall -u oldusername
$ id oldusername
>>> uid=1000(oldusername) gid=1000(oldusername) groups=1000(oldusername),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev)
# изменение логина
$ usermod -l newusername oldusername
# изменение имени группы
$ groupmod -n newusername oldusername
# изменение директории home
$ usermod -d /home/newusername -m newusername
# добавление комментария с полным именем
$ usermod -c "New Full Name" newusername
# проверяем что "newusername" заменил "oldusername" во всех полях
$ id newusername
>>> uid=1000(newusername) gid=1000(newusername) groups=1000(newusername),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev)
Если вы предварительно установили фоновое изображение в i3, и оно исчезнет, не забудьте проверить путь к файлу в файле конфигурации.
Как заставить NetworkManager и Dropbox запускаться автоматически?
Dropbox для Linux предположительно имеет настройку автозапуска, где вы можете ввести dropbox autostart y прямо в терминал и таким образом создать обработку события. Но я, естественно, решил что это не для меня. Вместо этого я добавил все приложения, которые я хотел бы запустить автоматически при входе в мой конфигурационный файл i3 с помощью этого синтаксиса:
# автозапуск приложений
exec --no-startup-id /usr/bin/nm-applet
exec --no-startup-id dropbox start
В выше приведённом коде exec является командой выполнения (от “execute”), --no-startup-id в основном избавляет вас от того чтобы смотреть как ваш курсор делает эту причудливую вращающуюся загрузку. И последним компонентом команды является путь к файлу программы или синтаксис для его запуска, так, как если бы вы писали в терминале.
Как настроить OpenVPN с помощью NetworkManager?
Для начала убедитесь, что вы выполнили:
apt-get install network-manager-openvpn
чтобы получить плагин.
Вам понадобится файл client.ovpn. В моем случае я настроил свой собственный VPN с помощью Amazon EC2 и загрузил файл client.ovpn со своей страницы консоли OpenVPN.
Откройте client.ovpn с помощью текстового редактора, например vim (уверен ниже из-за этого появится ссылка на статью о его закрытии), и измените любые экземпляры “удалённый openvpn порт xxxx” (так как я пошёл по пути англоязычного ПО здесь и далее в скобках тот вариант который лицезрел я в оригинале “remote openvpn port xxxx”) вместо “удалённый <ваш ip-адрес> порт xxxx” (“remote port xxxx”).
Используйте nm-applet для настройки нового VPN-соединения. Если вы установили плагин OpenVPN, в раскрывающемся списке вы увидите OpenVPN. Выберите вариант “Импортировать сохраненную конфигурацию VPN”.
Как только вы загрузите файл client.ovpn и нажмите “Создать”, все настройки будут заполнены за вас, кроме имени пользователя и пароля. Заполняете их и всё, готово.
Как получить статус VPN в i3bar?
Найдите файл конфигурации i3status. Если у вас его еще нет, вы можете использовать такой потрясающий шаблон, как
мой (на базе Vicky Lai, огромное ей спасибо).
Отредактируйте путь к файлу в следующем разделе кода:
run_watch VPN {
pidfile = "sys/class/net/yoursetting"
}
Где «yoursetting» – это один из tap/tun/tun tap в зависимости от ваших настроек VPN. Если вы не знаете, что это такое вы можете узнать в настройках конфигурации VPN в разделе VPN → Дополнительно → «Установить тип виртуального устройства» (VPN → Advanced → «Set virtual device type»).
Как вновь начать использовать клавиши Print Screen/управления подсветкой и звуком?
Я создал привязки клавиш в моем файле конфигурации i3. Самое трудная часть заключалась в выяснении того, что контролирует конкретную функцию (и в некоторых случаях, нужно было что-то установить для управления функцией).
# настройки яркости (brightness adjustment)
bindsym $mod+Shift+F6 exec xrandr --output eDP-1 --brightness 1
bindsym $mod+F6 exec xrandr --output eDP-1 --brightness 0.8
bindsym $mod+F5 exec xrandr --output eDP-1 --brightness 0.5
bindsym $mod+F7 exec xrandr --output eDP-1 --brightness 0.1
# настройки звука (volume control)
bindsym $mod+F12 exec amixer -q sset Master 3%+
bindsym $mod+F11 exec amixer -q sset Master 3%-
bindsym $mod+F10 exec amixer -q sset Master toggle
Как вы можете видеть, в случае xrandr я смог найти способ установить определенные уровни. Для управления громкостью, amixer не предоставляет возможности задать уровень, вместо этого он предлагает приращения к уже имеющемуся значению, от того пришлось немного помучаться с документацию для того чтобы определить, как сделать mute.
Для упрощения привязки я бы рекомендовал точно определить код каждой из функциональных клавиш до перехода на Debian во избежание не нужного мусора на машине, вроде того же ПО для определения кода клавиш.
Я отредактировал мой файл конфигурации, но я не вижу никаких изменений. Что за дела?
При изменении некоторых конфигурация, таких как обои в i3 и dunst- уведомления, я обнаружил, что мне пришлось либо перезагрузить приложение (для i3, написать i3-msg restart в терминале), либо перезапустить весь мой сеанс (выйти из системы и вернуться в систему), чтобы увидеть изменения.
Переключение на Linux, безусловно, стоило того. Хотя некоторые из этапов обучения и открытий были до безумного долгими и гнетущими, я честно наслаждался каждой минутой. Ничто не сравнится с ощущением того, что вы что-то понимаете и заставляете это работать!
Я очень надеюсь данный пост был полезен и не рискует быть назван очевидным. Быть может после его прочтения кто-то будет следовать всему вышеперечисленному как инструкции, а кто-то подскажет мне на что обратить внимание и что, быть може по-незнанию, я сделал не так.
Ссылки:
комментарии (38)