Skip to content

Настройка

К содержанию раздела

Хорошая статья

Очень настоятельно советую в качестве домашнего каталога пользователя заводить пустой каталог. Всю же информацию лучше каким-либо образом резервировать и восстанавливать по мере необходимости. У меня произошёл достаточно неприятный эффект, который отнял у меня много времени. После примонтирования моего домашнего каталога, который находился у меня на другом диске, установленный Google Chrome запускался, но не отображался. Что я только не делал, но проблему ничего не решало. В конце концов я сделал rsync-ом бэкап и почистил домашнюю папку.

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

Настройка сети

По умолчанию Xubuntu находит в сети DHCP сервер и запрашивает у него IP-адрес. Но мы установим статичесий адрес. Причём сделаем это и для Ethernet интерфейса и для Wi-Fi. В Xubuntu сеть настраивается через Netplan, поэтому открываем файл /etc/netplan/config.yaml. Прописываем в нём следующую конфигурацию:

network:
  ethernets:
    enp2s0f0:
      addresses:
        - 192.168.2.101/21
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 192.168.0.1
          - 77.88.8.88
          - 77.88.8.2
        search: [aprt]
  wifis:
    wlp3s0:
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.2.102/21
      nameservers:
        addresses:
          - 192.168.0.1
          - 77.88.8.88
          - 77.88.8.2
      access-points:
        "Your_wifis_SSID":
          password: "password"
  version: 2
  renderer: NetworkManager

Предварительные настройки

  1. Чтобы постоянно не вводить пароль при работе с административными правами, нужно отключить запрос. Для этого нужно отредактировать файл /etc/sudoers. Напрямую этого делать не рекомендуется, потому воспольуемся командой:
sudo visudo

Находим строку %sudo и меняем её содержимое на:

%sudo ALL=(ALL:ALL) NOPASSWD:ALL
  1. Так как для конфигурирования нужно будет установить ряд пакетов, то в начале производим обновления.
sudo apt update && sudo apt upgrade -y && sudo apt autoclean -y && sudo apt autoremove -y

Оптимизации для работы с SSD

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

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

Проверяем установки таймера:

sudo systemctl cat fstrim.timer

В параметре OnCalendar= мы можем увидеть текущее значение. Нам нужно добавить в этот файл ещё один параметр OnCalendar=, но уже со значением daily. Поэтому делаем так:

sudo mkdir -v /etc/systemd/system/fstrim.timer.d
sudo vim /etc/systemd/system/fstrim.timer.d/override.conf

# В последнем дописываем следующее

[Timer]
OnCalendar=
OnCalendar=daily

# Применяем изменения

sudo systemctl daemon-reload

Ещё раз выводим файл таймера и удостоверяемся, что он был изменён.

FSTAB

В моей конфигурации оборудования предполагается, что система установлена на SSD диск, а домашняя папка пользователя - на HDD. Таким образом для того, чтобы я мог пользоваться свои каталогом и для повышения времени жизни SSD, нужно примонтировать некоторые каталоги определённым образом. В этом поможет редактирование файла /etc/fstab.

Монтирование домашнего каталога

Так как мой $HOME отформатирован в ext4, то я и не стал особо изгаляться и сделал запись по умолчанию для данной файловой системы. Хотя можно прописать правила для назначения прав и пользователей, но практика показывает, что всё это очень больно бьёт по функционалу: то права не переназначишь, то пользователь отдельных каталогов слетает после перезагрузки. Поэтому сначала определяем при помощи lsblk с именем устройства, на котором расположен наш будущий $HOME, а потом стремимся в /etc/fstab записать следующую строку:

UUID=xxx /home  ext4  defaults  0 0

Как узнать, а главное перенести в /etc/fstab UUID? Воспользуемся командой sudo blkid /dev/sdX

Подробнее о работе с /etc/fstab у меня расписано здесь

Да, может возникнуть вопрос: "Зачем ставить SSD, если всё равно $HOME на HDD?" Да, это правильный вопрос, но меня вполне устраивала скорость работы системы после загрузки, а вот ЗАГРУЗКА... После установки SSD, загрузка перестала быть бесконечной, и даже до установки 16 ГБ ОЗУ система начала работать быстрее.

Монтирование каталога /tmp

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

Для того, чтобы удостовериться в размере оперативки, воспользуемся командой sudo dmidecode --type 17 | grep -i size | awk '{print $2}'. Складываем значения и получаем количество "гигов".

Устройством, которое в Linux представяет собой оперативную память является /dev/shm. Проверив его размер командой df -h /dev/shm можно удивиться, что размер там в два раза меньше, чем общий объём наших считанных планок.

Смонтируем tmpfs в RAM:

sudo echo -e 'tmpfs\t/dev/shm\ttmpfs\tdefaults,size=2G\t0\t0' >> /etc/fstab

Затем выделенный RAM выделим на /tmp

sudo echo -e 'tmpfs\t/tmp\ttmpfs\trw,nodev,nosuid,size=2G\t0\t0' >> /etc/fstab

Перезагружаемся и работаем с уже корректно смонтрованными каталогами.

Установка пакетов

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

Установка пакетов из репозитория

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

sudo apt install -y software-properties-common apt-transport-https htop zip unzip tar curl wget rsync git mc tilda tilix tmux openssh-server vim bluefish mousepad okular speedcrunch rhythmbox libfuse2 zsh fonts-powerline qbittorrent snapd fuse binutils gstreamer1.0-pulseaudio nmap arp-scan geary blueman bluetooth bluez bluez-tools ristretto system-config-printer remmina remmina-plugin-rdp

Пакеты из сторонних репозиториев

К таким в первую очередь отнесём Google Chrome, VS Code. Как номенклатуру продуктов, к которой нуже особый подход, будем воспринимать JetBrains Toolbox.

Рассмотрим общий порядок работы со сторонними пакетами.

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

Команды для работы с репозиториями и ключами здесь

Google Chrome

Подготовка и условия

Скажу сразу, что при установке этого браузера у меня происходило странное явление, вернее сказать полное отсутствие каких-либо ожидаемых явлений при вызове установленного пакета google-chrome-stable.

Первым делом я пыался исправить ситуацию тем, что удалял браузер с корнем: sudo apt purge google-chrome-stable и ручным затиранием каталога конфигурации в домашней директории: rm -rf ~/.config/google-chrome

Установка

К сожалению на данный момент я несмог найти руководство по установке брауера так чтобы apt потом не плевался варнингами о Deprecated методах. Поэтому я просто зашёл на официальный сайт программы и скачал deb-пакет, который установил командой sudo dpkg -i google-chrome-stable_current_amd64.deb

VS Code

Установка

Добавляем GPG-ключ в хранилище

curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/ms-vscode-keyring.gpg

Добавляем репозиторий Microsoft:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/ms-vscode-keyring.gpg] https://packages.microsoft.com/repos/vscode stable main" | sudo tee /etc/apt/sources.list.d/vscode.list

Обновляем информацию в репозитории и устанавливаем VS Code:

sudo apt update
sudo apt install -y code

Настройка

После авторизации VS Code сам подгрузит конфигурации. Они будут находиться в каталоге ~/.config/Code/User/ в формате JSON. В случае, если последняя конфигурация была неудачной, а имеются конфиги с лучшим состоянием, то нужно перекинуть только их в указанную папку. Вот их список:

  • keybindings.json
  • settings.json
  • syncLocalSettings.json
  • tasks.json

JetBrains Toolbox

Заходим на сайт JetBrains в раздел загрузок продуктов. Выбираем нашу операционную систему и скачиваем архив *.tar.gz . Затем распаковываем его командой tar xvzf jetbrains-toolbox-xxx.tar.gz В появившемся каталоге выполняем файл - это и есть JetBrains Toolbox.

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

Viber

Скачиваем и устанавливаем deb-пакет:

cd /tmp && wget http://download.cdn.viber.com/cdn/desktop/Linux/viber.deb

sudo dpkg -i viber.deb

Snap-пакеты

В виде Snap-пакетов я устанавливаю VLC и Telegram:

sudo snap install vlc telegram-desktop

Обновллять пакеты можно следующей командой:

sudo snap refresh

Настройка окружения

Пути к основным каталогам $HOME

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

Для этого есть конфигурационный файл ~/.config/user-dirs.dirs. У меня рабочая его часть выглядит следующим образом:

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Download"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Share"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Video"
XDG_PROJECTS_DIR="$HOME/Projects"

Установка и настройка ZSH

Мне вместо стандартной оболочки Bash больше нравится использовать оболочку ZSH.

В Ubuntu для установки нужно выполнить команду sudo apt install zsh. Для запуска оболочки выполняем команду zsh.

Для попадания в меню настроек, нажимаем клавишу 1

  1. Чтобы изменить количество команд (пункт 1), хранящихся в истории, нажимаем на 3 и вводим нужное количество
  2. Для настройки автодополнения далее выбираем пункт 1 и всё останется по умолчанию
  3. Далее выбираем стиль раскладки клавиатуры По умолчанию используется стиль Emacs. Но я, пожалуй, выберу Vim (последовательность 3 -> 1 -> v).
  4. Несколько дополнительных опций, которые можно включить или выключить (s (set) или u (unset)):
  5. Change directory given just path - смена рабочего каталога отличным от испльзования команды cd образом
  6. Use additional pattern matching features - разрешение на использование дополнительных символов для формирования шаблонов поиска (#, ~, ^ кроме уже имеющихся * и ?)
  7. Unmatched patterns cause an error - возвращать ли ошибку при отсутствии искомого вхождения
  8. Beep on errors - звуковой сигнал при ошибке
  9. Immediately report changes in background job status - сообщать об изменении статуса фоновых задач

В главном меню сохраняем изменения (0 и ещё раз 0). В файле ~/.zshrc были изменены некоторые настройки. В этот файл можно добавлять псевдонимы, но настройки менять можно только через команду zsh-newuser-install. Даже кастовать приглашение для ввода лучше при помощи изменения переменной среды PS1 и сохранением её командой autoload -U colors && colors.

Установка oh my zsh

Скрипт oh my zsh реализует множество дополнительных возможностей в zsh. Например можно выбрать тему из списка. Мне очень нравится тема amuse

Итак, установка:

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

Выполненный в домашней папке пользователя, этот скрипт установить все плагины и темы для zsh в /home/<user> и полностью заменит файл ./zshrc на свой.

Для установки темы нужно открыть файл ./zshrc и отредактировать настройку ZSH_THEME. В описании темы может быть информация о необходимости установки дополнительных шрифтов. Это можно сделать при помощи команды

sudo apt install fonts-powerline

Установка оболочки по умолчанию

Скорее всего введя команду echo $SHELL мы увидим следующий вывод /bin/bash. Это говорит о том, что при следующей загрузке, нужно будет снова выполнить команду zsh, чтобы пользоваться новой оболочкой. Сделаем же ZSH оболочкой по умолчанию. Для начала уточним, где была установлена оболочка командой which zsh, а потом выполним следующее:

chsh
Password:
Changing the login shell for p_boyko
Enter the new value, or press ENTER for the default
    Login Shell [/bin/bash]:

Вводим /bin/zsh (как результат which zsh) и, хотя команда echo $SHELL так и будет выводить /bin/bash, но при следующей загрузке системы текущий пользователь при выполнении этой же команды увидит zsh.

Здесь есть инструкции по установке различных плагинов.

Настройка интерфейса

Работа с клавиатурой

Самая первая проблема - это настройка раскладок клавиатуры. По умолчанию, почему-то переключение выключено. Поэтому заходим в Applications Menu -> Диспетчер настроек -> Оборудование:Клавиатура и во вкладке Раскладка отключаем "Использовать системные насеройки по умолчанию". Ниже выбираем в выпаающем меню Изменить параметры раскладки то сочетание клавиш, которое нам удобно.

Про "низкоуровневую" работу с клавиатурой здесь

Работа с мониторами

XRandR — расширение X сервера, позволяющее производить настройки режимов работы мониторов. Для того, чтобы мне настроить мои мониторы в наиболее комфортном режим мне нужно ввести команду:

xrandr \
# Втсроенный дисплей ноутбука
--output LVDS-1 \
--off \               # отключаем дисплей
# Монитор BENQ EW3270ZL
--output HDMI-1 \
--primary \           # помечаем как основной монитор
--mode 1920x1080 \    # задаём разрешение
--pos 0x0 \           # позиционируем его относительно начала кооррдинат
--rotate normal       # задаём стандартное положение изображения
# Монитор HP L1750 - боковой
--output VGA-1 \
--mode 1024x768 \     # задаём разрешение
--pos 1920x0 \        # позиционируем его относительно начала кооррдинат
--rotate normal \     # задаём стандартное положение изображения
# В душе не представляю что это...
--output DP-1 \
--off                 # ...но это что-то отключено

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

Отключение блокировки экрана

Для этого в .*rc файл выбранного шелла добавить строчку xset -dpms && xset s off