Статья разделена на две части. Вначале будут описаны настройки графического интерфейса Gnome Shell. Затем настройки, которые влияют на скорость работы Ubuntu 18.04.
Добавление клавиатурных сокращений для запуска программ в Gnome Shell
Регулярно используемые программы, как например Наутилус, можно запускать с клавиатуры, если назначить им сочетание клавиш. Это делается через графический апплет "Настройки - Устройства - Клавиатура":
Как видно на скриншоте, добавлены две команды для запуска, с клавиатуры, браузеров Опера и Хром.
Клавиатурные ярлыки штука очень удобная.
Команду запуска программы, для нового клавиатурного ярлыка, можно посмотреть в свойствах ярлыка нужной программы. Ярлыки установленных программ находятся в папке /usr/share/applications/. Откройте эту папку в проводнике (программа Файлы), найдите в папке ярлык нужной вам программы и откройте свойства этого ярлыка (правая кнопка мыши).
Клавиатурные ярлыки можно создавать не только для запуска обычных программ, но и для выполнения например такой команды - "gnome-session-quit --power-off", которая открывает диалоговое окно выключения компьютера.
Свернуть все окна (Открыть Рабочий стол) в Ubuntu 18.04
В Ubuntu 18.04, по умолчанию, свернуть все открытые окна можно с клавиатуры: Ctrl + Win + D. Но если вы пользовались Windows, для вас может быть привычнее сочетание Win + D. Оно и удобнее, потому что всего лишь две клавиши нажать нужно. Изменить это сочетание клавиш можно в "Настройки - Устройства - Клавиатура".
Кроме этого, можно добавить кнопку на панель запуска, которая будет выполнять это же действие. В версии 18.04 изменили оболочку Рабочего стола. Вместо Unity, теперь Gnome Shell используется. И в Gnome Shell нет штатной кнопки "Свернуть все окна" (которая была в Unity). Ее придется колхозить.
sudo apt-get install xdotool
gedit ~/.local/share/applications/show-desktop.desktop
добавить в этот файл такое содержимое:
[Desktop Entry]
Type=Application
Name=Show Desktop
Icon=desktop
Exec=xdotool key --clearmodifiers Super+d
и сохранить.
Затем в главном меню нужно найти ярлык "Show desktop" и добавить его в избранное.
Кнопка выключить (перезагрузить) компьютер
В трее есть такая кнопка, но если кому-то удобнее, чтобы такая кнопка была в лончере (в боковой панели), ее можно сделать по аналогии с кнопкой свернуть "Show desktop".
gedit ~/.local/share/applications/poweroff.desktop
добавить в этот файл такое содержимое
[Desktop Entry]
Type=Application
Name=Power Off
Icon=/usr/share/icons/hicolor/scalable/actions/system-shutdown.svg
Exec=gnome-session-quit --power-off
Затем в главном меню нужно найти ярлык "Power Off" и добавить его в избранное. Иконку можно другую использовать. В папке /usr/share/icons/ есть несколько разных кнопок system shutdown.
Команду gnome-session-quit --power-off можно использовать и для того, чтобы создать клавиатурный вызов диалога выключения компьютера.
Кнопку программ наверх док-панели
Что меня подбешавает в Gnome Shell так это кнопка меню программ, которая почему-то внизу панели (лончера). Равно как и само это меню. Но эту кнопку можно перенести вверх панели, как это было в Unity. Команда в терминале:
gsettings set org.gnome.shell.extensions.dash-to-dock show-apps-at-top true
Или установить dconf-editor, в нем открыть "org->gnome->shell->extensions->dash-to-dock" и там найти и включить параметр "show-apps-at-top".
Странно, что разработчики Ubuntu не включают эту опцию по умолчанию, из коробки.
А чтобы получить вменяемое, структурированное меню, можно установить расширение "Gno menu". Как это сделать описано в статье про установку расширений. Вот так выглядит меню, которое отображает расширение "Gno menu" (для увеличения скриншота, кликните его):
Недавние документы
В Gnome Shell, в отличии от Unity, нет списка недавно открывавшихся файлов. И это может быть проблемой для тех, кто привык таким списком пользоваться.
Для Gnome Shell есть несколько расширений, которые реализуют такой функционал. Одно из таких расширений это "Recent(Item)s":
Варианты оформления Рабочего Стола
Оформление с минимальной кастомизацией, только добавлено расширение "Gno menu", кнопка меню перенесена наверх и добавлена кнопка "Показать Рабочий стол". Выглядит почти как Unity. Для увеличения, кликните скриншот:
Можно какую-нибудь док-панель установить, например Plank или Cairo-dock, обе есть в репо Убунту.
Кастомная настройка Рабочего стола Убунту 18.04, с доком Plank (для увеличения, кликните скриншот):
Кастомная настройка Рабочего стола Убунту 18.04, с доком Cairo-dock (для увеличения, кликните скриншот):
Настройка автозагрузки программ в Ubuntu 18.04
В Убунту, уже давно, есть графический интерфейс для управления автозапуском программ. Это программа "Автоматически запускаемые приложения" (gnome-session-properties). Найти ее можно в главном меню. Однако есть небольшая проблема - в этой программе отображаются не все автоматически запускаемые программы. Чтобы это исправить нужно, в терминале, выполнить две команды:
sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop
sed -i 's/NoDisplay=true/NoDisplay=false/g' ~/.config/autostart/*.desktop
После этого, в апплете "Автоматически запускаемые приложения" будут видны все ярлыки из папок автозагрузки:
Отключайте программы осторожно. Если не знаете назначение программы, которую хотите отключить, найдите про нее информацию.
Примечание по автозагрузке программ
Вообще в Ubuntu есть две системы автозагрузки:
- Автозагрузка вместе с графической оболочкой GNOME.
- Автозагрузка вместе с ядром системы, в текстовом режиме.
Апплет "Автоматически запускаемые приложения" управляет первым типом загрузки. Физически же такая загрузка выполняется через .desktop файл программы (аналог ярлыков Windows), который помещается в одну из двух папок:
- /etc/xdg/autostart
- ~/.config/autostart
В первом случае программа будет запущена для любого пользователя. Во втором случае только для того, в чьей домашней папке будет размещен ярлык программы.
Можно, в эти папки, копировать ярлыки нужных программ даже вручную. Ярлыки всех доступных программ размещены в папке /usr/share/applications (из этой папки их берет главное меню). Однако скопировать ярлык недостаточно, в самом файле нужно для свойства "X-GNOME-Autostart-enabled" указать значение true.
Предварительная загрузка программ на старте Ubuntu
Есть специальные программы, которые управляют очередностью загрузки бинарных модулей в процессе запуска операционной системы. Они упорядочивают размещение загружаемых бинарников таким образом, чтобы снизить их фрагментацию в пределах файловой системы. И за счет снижения фрагментации ускорить их загрузку с диска.
Во многих советах по оптимизации Ubuntu упоминают программу preload. Ее установку можно выполнить через терминал:
sudo apt-get install preload
sudo touch /var/lib/preload/preload.state
sudo chmod 644 /var/lib/preload/preload.state
/etc/init.d/preload restart
Однако прямо "из коробки" в Ubuntu устанавливается другая программа для этой же задачи - ureadahead. Нужно только включить ее автозапуск.
Примечание
Использование этих программ имеет смысл только в случае если на компьютере установлен механический (HDD) диск. Если диск электронный (SSD), тогда смысла в этих программах нет.
Уменьшить размер системных журналов (логов) Ubuntu
Ubuntu ведет целую кучу журналов. Как общесистемных, так и журналов отдельных программ и служб.
Как правило все эти журналы хранятся в папке /var/log. Если эта папка размещена на разделе root (/) то в некоторых случаях возможно такое увеличение размера этой папки, что будет забито все свободное место на разделе root, вплоть до невозможности запуска операционной системы. Это нетипичная ситуация, но такое случается.
Поэтому лучше настроить систему хранения журналов таким образом, чтобы максимально снизить объем хранимой информации.
Делать это правильнее через настройку специальной программы logrotate. Эта программа удаляет архивные копии журналов с указанной периодичностью. Настройки программы хранятся в папке /etc/logrotate.d. Каждый файл в этой папке определяет управление журналами конкретной программы. Например файл /etc/logrotate.d/rsyslog это управление системными журналами. Для уменьшения размера хранимых журналов, в этих файлах нужно указать параметры rotate 0 и daily. Можно также добавить и ограничение по размеру журнала, например size 10M (10 мегабайт).
sudo gedit /etc/logrotate.d/rsyslog
И затем отредактировать этот файл. Так же можно сделать с другими файлами в этой папке. Можно изменить глобальные настройки для программы logrotate, через файл /etc/logrotate.conf.
После изменения настроек ротации журналов, можно удалить все старые журналы (логи). Команда в терминале:
sudo find /var/log -type f -name "*.gz" -delete
Если много оперативной памяти
Папка /tmp.
Если оперативной памяти больше 4 Гб можно переместить папку временных файлов в оперативную память. Через редактирование файла fstab:
sudo gedit /etc/fstab
и добавить строку tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0
Однако делать это нужно с осторожностью.
Во-первых оцените текущий размер этой папки (на диске) - быть может она "съест" слишком много оперативной памяти.
Во-вторых в этой папке какие-то ваши программы могут хранить данные, которые они используют после перезапуска системы.
В общем, сначала изучите содержимое этой папки на диске и затем уже принимайте решение о ее переносе в оперативную память.
Zram.
Если оперативной памяти 4 Гб или больше и при этом Убунта свопит, тогда можно использовать функционал ядра, который называется zram.
Установка просто выполняется:
sudo apt install zram-config
Как это работает? Zram создает swap раздел в оперативной памяти. И это дает резкий прирост скорости в операциях свпоинга.
В Интернет можно встретить материалы, в которых советуют использовать Zram при малом размере памяти (менее 4 Гб). Но это имеет мало смысла, если вообще имеет какой-то смысл.
Предположим у вас 2 Гб и ваша Убунта активно свпоит. Вы ставите Zram и размер доступной, для Убунты, памяти еще уменьшается (становится меньше 2 Гб). Это с одной стороны. С другой стороны, от исходных 2 Гб Zram не сможет создать swap достаточного размера и система все равно будет использовать дисковый swap, при нехватке Zram свопа.
Так, что Zram имеет смысл использовать при хотя бы 4 Гб памяти.
Если мало оперативной памяти
Ubuntu 18.04 хорошо себя чувствует на 4 Гб оперативной памяти и практически не использует swap (при простых задачах). Но 2 или 3 Гб, скорее всего будет недостаточно и Убунта 18 будет активно свопить. Чтобы уменьшить падение скорости на свопинге, можно использовать механизм сжатия своп данных в оперативной памяти. Использую для этого функционал ядра, который называется zswap.
Zswap отличается тем, что кеширует те данные, которые система часто извлекает из своп. При этом используется дисковый своп, но часто используемые данные из свопа, кешируются в памяти.
Этот механизм требует меньше оперативной памяти (чем Zram), поэтому его целесообразно использовать именно при небольшом размере оперативной памяти.
Установка Zswap немного сложнее чем для Zram, инструкции можно найти в Интернет.
Использование swap на диске
Можно изменить условия, при которых система начинает использовать дисковый swap. По умолчанию, Ubuntu, использует "агрессивную" модель свопинга. Использование swap начинается довольно рано, когда еще много свободной памяти. И данные в swap сбрасываются понемногу с постепенным. увеличением размера swap.
Такая модель позволяет избежать ситуации, когда физическая память занята допустим на 80% и тут вы открываете приложение, которому нужно выделить 50% памяти. Системе придется одномоментно сбросить на диск большой объем и это может вызвать "подвисание" всех исполняемых процессов.
Тем не менее, модель по умолчанию можно изменить, меняя значение параметра vm.swappiness, По умолчанию это 60. Если его уменьшить, например до 10, тогда система не будет использовать swap до тех пор, пока размер свободной памяти не уменьшится процентов до 10%. Уменьшить размер vm.swappiness имеет смысл, если у вас много оперативной памяти, допустим 8 или более Гб.
Параметр vm.swappiness находится в файле
/etc/sysctl.conf
После редактирования файла, нужно выполнить перезагрузку параметров: sudo sysctl -p
Целесообразность улучшения свопинга
О каком бы варианте не шла речь, Zram или zswap или изменение параметра vm.swappiness, прежде чем это использовать, нужно сделать анализ текущего поведения вашей системы.
Если у вас только 2 или 3 Гб оперативной памяти, это еще не означает что ваша система активно использует свопинг.
Поэтому откройте программу "Системный монитор", в ней откройте вкладку "Ресуры". Оставьте эту программу работающей и в течении работы время от времени смотрите за показателем использования swap раздела. Используется ли он вообще, а если используется, то в каком размере. Если swap не используется или его размер составляет не более десятков мегабайт, то нет смысла что-то менять.
Вот например какой свап (по умолчанию) использует Ubuntu 18.04, при 4 Гб оперативной памяти, которая загружена на 86%:
Всего лишь 37 Мб, нет смысла что-то менять.
Конкретно в этом примере, такую загрузку оперативной памяти дают два браузера (Хром и Опера), в каждом из которых открыты по 10 вкладок и в каждом воспроизводится потоковое видео.
Это искусственная ситуация, созданная с целью посмотреть как Ubuntu 18.04 использует своп. В реальной же работе (среднестатистической офисно-домашней), при 4 Гб оперативной памяти, своп вообще редко включается.
Изменение параметров кэширования записи на диск
Ubuntu кэширует (во оперативную память) все операции записи на диск. И выполняет их в отложенном режиме. Управляя настройками кэша записи можно ускорять работу системы с риском потери данных, либо наоборот замедлять работу, уменьшая риск потери данных. Есть несколько параметров кэширования записи на диск, при помощи которых можно получать различные эффекты.
Основные параметры:
- vm.dirty_background_ratio - размер оперативной памяти для размещения подготовленных для записи страниц кэша.
- vm.dirty_ratio - размер оперативной памяти для размещения общего кэша записи.
Вспомогательные параметры:
- vm.dirty_expire_centiseconds - указывает интервал времени нахождения подготовленных для записи страниц кэша в памяти.
- vm.dirty_writeback_centisecs - указывает интервал времени по истечении которого системный процесс, выполняющий сброс кэша на диск, выходит из спящего режима и проверяет необходимость выполнения операций сброса кэша на диск.
Все эти параметры записываются в файл sudo gedit /etc/sysctl.conf.
Пример 1. Увеличение размера кэша записи (ускорение работы системы):
- vm.dirty_background_ratio = 50
- vm.dirty_ratio = 80
Пример 2. Уменьшение размера кэша записи:
- vm.dirty_background_ratio = 5
- vm.dirty_ratio = 10
Узнать текущие значения этих параметров можно командой sysctl -a | grep dirty.
Изменять эти параметры нужно с осторожностью. Четко понимая их взаимное влияние, их связь с размером оперативной памяти, а также возможные побочные эффекты.
Например увеличение размера кэша или интервалов времени может привести к потере большого количества данных при отключении питания или критическом сбое системы.
Или большой размер кэша в комплексе с большим объемом запросов на запись может периодически создавать ситуацию когда будут на длительное время блокироваться запросы на запись, поскольку системе нужно будет сбросить на диск большой объем данных из заполненного кэша.
Простой, удобный MP3 плеер под Ubuntu
Из коробки в Ubuntu устанавливается музыкальный плеер rhythmbox. Он довольно монстроузный. Можно его удалить и установить более вменяемый плеер.
sudo apt-get remove rhythmbox
sudo apt-get install Audacious
Audacious небольшой плеер без лишних наворотов:
Или QMMP:
sudo apt-get install qmmp
Ubuntu и Windows время изменяется
Если Убунта установлена на одном компьютере с Windows, тогда возникнет эффект "открутки" времени на 3 назад, после перезагрузки из Ubuntu в Windows. То есть Ubuntu изменяет время в BIOS компьютера (RTC clock).
Причина в том, что Ubuntu, по умолчанию, считает, что в BIOS компьютера должно быть записано время по Гринвичу (нулевой меридиан, UTC). В то время как обычно в BIOS компьютера записано локальное время (московское или другой часовой пояс). И при выходе, Ubuntu записывает в BIOS время по Гринвичу.
И когда, после Убунты, вы загружаетесь в Windows то видите время на какое-то время назад от вашего текущего времени (в Москве это минус 3 часа). Windows тоже обновляет время в BIOS компьютера, при выходе. В том случае если используется настройка синхронизации через Интернет - в этом случае ОС (и Убунта и Windows) обновляют время в BIOS до точного текущего. Но Windows, в отличии от Убунты, считает что в BIOS должно быть местное время.
Исправить эту ситуацию просто. В Ubuntu нужно выполнить одну команду в терминале:
timedatectl set-local-rtc 1
После этого Ubuntu перестанет "откручивать" время назад, при его обновлении.
Для энтузиастов
Для тех, кто любит заняться виртуальным сексом, могу порекомендовать пару программ.
gsettings
Консольная программа. Дает возможность изменять большое количество параметров системы. Настройки организованы в виде дерева - схемы, в схемах ключи, которым можно присваивать значения.
Устанавливается из коробки. Команда gsettings help выдаст список параметров. Например gsettings list-recursively выдает общий список схем, ключей и текущих значений.
dconf-editor
Графическая программа. Также позволяет изменять системные настройки. Нужно устанавливать (sudo apt-get install dconf-editor).
Другие статьи про Ubuntu 18.04 LTS
Установка Ubuntu 18.04 c шифрованием всего диска
Как установить Wine в Ubuntu 18.04
Установка VirtualBox на Ubuntu 18.04
Как установить Skype в Ubuntu 18.04
Как установить ADB на Ubuntu 18.04