Найти в Дзене
Linux.ru

Simply linux 11 - настройка после установки при помощи bash-скриптов

Оглавление

Ссылка на архив с bash-скриптами и текстом статьи:

Simply_Linux_11_custom — Яндекс Диск

1 Обновления системы, репозитории, программы

1.1 Обновления пакетов системы

Для установки обновлений из терминала:

(echo "Обновление репозиторий"

sudo apt-get update -q

echo "Обновление системы и программ"

sudo apt-get dist-upgrade -q -y

)

Если требуется только скачать пакеты:

sudo apt-get -d dist-upgrade -y

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

sudo apt-get install -f

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

sudo apt-get autoremove

1.2 Обновления ядра системы

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

sudo update-kernel

Для удаления старых ядер выполнить команду:

sudo remove-old-kernels

1.3 Управление репозиторием Sisyphus

Для подключения репозитория надо создать файл и обновить локальный индекс пакетов:

(sudo tee /etc/apt/sources.list.d/sisyphus.list > /dev/null <<EOF

# ftp.altlinux.org (ALT Linux, Moscow)

#

# Sisyphus

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus x86_64 classic

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic

EOF

sudo apt-get update

sudo apt-get install -y # Название устанавливаемых программ

)

Для отключения репозитория надо удалить файл и обновить локальный индекс пакетов:

sudo rm -f /etc/apt/sources.list.d/sisyphus.list && \

sudo apt-get update

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

Для установки приложений из репозиториев Flatpak в терминале вводим:

sudo apt-get install flatpak

Добавляем вашего пользователя в группу fuse:

sudo gpasswd -a имявашегопользователя fuse

далее добавляем репозиторий flathub с приложениями flatpak:

flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo

затем проводим проверку обновлений:

flatpak update

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

Для установки приложений из репозиториев https://snapcraft.io/ необходимо установить демон snapd для управления snap пакетами:

sudo apt-get install snapd

Включить модуль для управления модулями snap:

sudosystemctl enable --now snapd.socket

Проверка активности:

sudo systemctl is-active snapd.socket

Проверка текущего статуса:

sudo systemctl status snapd.socket

Команда для проверки запуска службы после старта системы:

sudo systemctl is-enabled snapd.socket

Создать символическую ссылку для программ использующих классический уровень ограничения (classic confinement):

sudo ln -s /var/lib/snapd/snap /snap

Чтобы новый каталог прописался в переменной окружения среды $PATH, перезагрузите компьютер.

2 Установка и удаление программ

2.1 Установка востребованных программ

(cho "Установка программ для рабочих станций"

ARGS=(

# Очистка системы

bleachbit

# Программа для конфигурации GNOME-приложений

dconf-editor

# Двихпанельный проводник

doublecmd-gtk

# Видеокодеки

ffmpeg

# Видеокодеки для браузера

ffmpeg-plugin-browser

# Работа с дисками

gnome-disk-utility

# Удалённый доступ к системе

remmina

# Управление пакетами системы

synaptic synaptic-usermode

# Яндекс браузер

yandex-browser

)

sudo apt-get install -q -y "${ARGS[@]}"

echo "Установка программ peazip и freefilesync из репозитория sisyphus"

ARGS=(

# Многофункциональный архиватор с графическим управлением

peazip

# Синхронизация папок и файлов с графическим управление

freefilesync

)

sudo tee /etc/apt/sources.list.d/sisyphus.list > /dev/null <<EOF

# ftp.altlinux.org (ALT Linux, Moscow)

# Sisyphus

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus x86_64 classic

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic

EOF

sudo apt-get update -q

sudo apt-get install -q -y "${ARGS[@]}"

sudo rm -f /etc/apt/sources.list.d/sisyphus.list

sudo apt-get update -q

)

2.2 Удаление программ, от которых можно отказаться

echo "Удаление программ, от которых можно отказаться"

ARGS=(

# Создание загрузочных флешек

altmediawriter

# Установщик пакетов flatpak. Сейчас блокируется в РФ

flatpak

# Игра Пасьянс Айслериот

gnome-games-aisleriot

# Игра Шахматы

gnome-games-chess

# Игра Клоцки - головоломки с блоками

gnome-games-klotski

# Игра Маджонг

gnome-games-mahjongg

# Игра Мины

gnome-games-mines

# Тетравекс - Разгадайте головоломку

gnome-games-tetravex

# Игра Рили - управление деревянным поездом

Ri_li

)

sudo apt-get remove -q -D -y "${ARGS[@]}"

2.3 Список полезного ПО

wps office - отличный офисный пакет от Китайцев

telegram - система мгновенного обмена сообщениями

simplenote - заметки с синхронизацией между устройствами

audacious - лёгкий музыкальный плеер с поддержкой скинов от винамп

shotcut - упрощённый видеоредактор если сравнивать с kdenlive

plank - док панель

gimp - редактор фото

speedcrunch - профессиональный калькулятор

p7zip-desktop - создание архивов с графическим интерфейсом

flameshot - создание снимков экрана

steam - магазин игр

lutris - запуск виндовс игр

heroic game launcher - epic games для linux

keepass - хранитель паролей

anydesk - аналог teeamviewer

rust desk - аналог teeamviewer

vlc - медиаплеер

Yandex browser - есть поддержка ГОСТ-шифрования

3 Аппаратная настройка

3.1 Служба времени

3.1.1Служба времени Linux как в Windows

Настроить Linux таким образом, чтобы он работал с временем так же, как Windows.

(echo "Установление системного времени по Гринвичу как в ОС Windows"

sudo timedatectl set-local-rtc 1 --adjust-system-clock 2> /dev/null

sudo systemctl restart chrony

)

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

timedatectl status

3.1.2Настройка Windows для использования времени по UTC как в Linux по умолчанию

Вернуться к использованию времени по UTC в своем дистрибутиве Linux выполнить команду:

sudo timedatectl set-local-rtc 0

Запустить редактор реестра Regedit и осуществить переход:

«HKEY_LOCAL_MACHINE — SYSTEM — CurrentControlSet — Control — TimeZoneInformation».

Создать ключ реестра с именем «RealTimeIsUniversal». В 64-битных системах ключ должен иметь тип «QWORD», в 32-битных - «DWORD» и задать значение «1».

На этом настройку Windows окончена. Теперь не придется как-либо настраивать Linux.

3.2 Автоматическое монтирование дисков, расположенных на физическом диске с системой

(echo "Автоматическое монтирование дисков, расположенных на физическом диске с системой"

FILE=/etc/fstab

FILE_SYSTEMS_ALLOW="ext4 ntfs btrfs"

CONTENT_ADD=""

CONTENT=$(cat "$FILE")

FSTAB_UUID=$(echo "$CONTENT" | sed -n 's/^\(UUID=\|\/dev\/disk\/by-uuid\/\)\([[:graph:]]*\).*/\2/p')

SYSTEM_UUID=$(echo "$CONTENT" | sed -n 's/^UUID=\([[:graph:]]*\)[[:space:]]\/[[:space:]].*/\1/p')

DISK_LIST=$(lsblk -A -r -n -o UUID,KNAME,FSTYPE,LABEL)

SYSTEM_KNAME=$(echo "$DISK_LIST" | sed -n 's/'"$SYSTEM_UUID"'\ \([[:alnum:]]*\).*/\1/p')

while IFS=" " read -r DISK_UUID DISK_KNAME DISK_FSTYPE DISK_LABEL; do

# Исклюдить разделы дисков, которые содержатся в файле fstab

if [ -n "${FSTAB_UUID##*"$DISK_UUID"*}" ] &&

# Исключить разделы дисков с файловыми системами, отличными от разрешённых

[ -n "$DISK_FSTYPE" ] && [ -z "${FILE_SYSTEMS_ALLOW##*"$DISK_FSTYPE"*}" ] &&

# Исключить диски, отличные от диска с корневым разделом

[ "${DISK_KNAME::$(expr "${#DISK_KNAME}" - length "${DISK_KNAME##*[[:alpha:]]}")}" == \

"${SYSTEM_KNAME::$(expr "${#SYSTEM_KNAME}" - length "${SYSTEM_KNAME##*[[:alpha:]]}")}" ] &&

# Исключить разделы без метки файлововой системы

[ -n "$DISK_LABEL" ]

then

CONTENT_ADD+=$'\n'"UUID=$DISK_UUID /mnt/$DISK_LABEL auto nosuid,nodev,nofail,x-gvfs-show 0 0"

fi

done <<< "$DISK_LIST"

if [ -n "$CONTENT_ADD" ]; then

echo "${CONTENT}${CONTENT_ADD}" | sudo tee "$FILE" >/dev/null

fi

)

3.3 Настройка файла подкачки

3.3.1Приоритет использования файла подкачки

Приоритет задаётся от 0 до 100. По умолчанию он составляет 60. Уменьшить приоритет файла подкачки:

(echo "Установка приоритета использования файла подкачки на 10%"

FILE="/etc/sysctl.conf"

KEY="vm.swappiness"

VALUE=10

sudo sed -i '

/^'"$KEY"'=/ {s/.*/'"$KEY"'='"$VALUE"';/; :loop; N; b loop; q}

$ { 1!s/\(.*\)/\1\n\n/;

s/\(.*\)/\1'"$KEY"'='"$VALUE"';/}

' "$FILE"

if [ "$(cat /proc/sys/vm/swappiness)" -ne 10 ]; then

# Уменьшить приоритет файла подкачки в текущем сеансе

sudo sysctl "$KEY"="$VALUE"

fi

)

Проверка параметра:

cat /proc/sys/vm/swappiness

3.3.2Создать файл подкачки

Посмотреть память и подкачку:

free -h

Посмотреть файл-подкачку:

swapon --show

Снова проверим подкачку системы:

swapon --show

Дописать в файл /etc/fstab информацию о файле-подкачке:

sudo cp /etc/fstab /etc/fstab.back

echo '/swapfile none swap swap defaults 0 0

' | sudo tee -a /etc/fstab > /dev/null

3.4 Настройка гибернации (сона)

3.4.1Включение режима гибернации (сна)

Проверка гибернации:

sudo systemctl hibernate

sudo hal

Если гибернация не работает, то проверим поддержку ядра данной функции:

cat /sys/power/state

Вы должны увидеть слово disk. Это и будет означать, что гибернация поддерживается.

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

free -h

3.4.2Настройка гибернации в swap-диск

Посмотреть диски и найти диск SWAP:

lsblk

Узнайте UUID корневого раздела (с помощью mount можно узнать, какой из разделов является корнем):

mount | grep " / "

sudo blkid

Укажите первый физический блок swap-файла. Его можно узнать с помощью swap-offset из пакета uswsusp:

sudo swap-offset /swapfile

Запишите ваши параметры в файл настроек GRUB:

sudo mousepad /etc/default/grub

В строку GRUB_CMDLINE_LINUX_DEFAULT добавьте параметры без кавычек и знаков < >:

resume=<your swap disk /dev/sda7>>

Либо через UUID:

resume=UUID=<your UUID>

Обновите настройки GRUB и сгенерируйте новый initramfs:

sudo update-grub

Перезагрузитесь.

Проверьте работу гибернации с помощью команды pm-hibernate из пакета pm-utils:

sudo pm-hibernate

sudo hal

3.5 FireWall - Межсетевой экран

Для установки ввести команду в Терминале:

sudo apt-get install firewall-config

3.6 GRUB - системный загрузчики

(echo "GRUB - системный загрузчики"

# улучшение внешнего вида меню

sudo sed -i '

# Изменение времени показа меню загрузчика

s/\(^GRUB_TIMEOUT=\).*/\13/

# Изменение разрешения экрана

s/\(^GRUB_GFXMODE=\).*/\11024x768/

# Скрыть логи при загрузке системы

/^GRUB_CMDLINE_LINUX_DEFAULT=/{

/ mce=/ s/ mce=[[:alnum:]]*/ mce=off/

/ mce=/! s/'\''$/ mce=off'\''/

/ loglevel=/ s/ loglevel=[[:alnum:]]*/ loglevel=3/

/ loglevel=/! s/'\''$/ loglevel=3'\''/

}

' /etc/sysconfig/grub2

# Применение изменений только загрузочного меню загрузчика

sudo update-grub -o /boot/grub/grub.cfg 2> /dev/null

)

4 Рабочая среда

4.1 Рабочая среда XFCE4 (по умолчанию)

4.1.1Удалить рабочую среду

# Внимание!!! Если нет другой рабочей среды то войти в систему будет невозможно

sudo apt-get remove -D xfce4-default xfce4-terminal

4.1.2Дисплей

На дисплеях с высоким разрешением текст очень мелкий. Самый простой способ сделать его крупнее - масштабирование экрана. Перейти в Диспетчер настроек -> Дислпей -> Масштаб -> 1,50. Либо разрешение уменьшить до 1280х720. Второй вариант предпочтительнее, т. к. исключает появление проблем в различных приложениях. То же можно сделать, выполнив код:

(echo "Установка разрешения экрана 1280х720"

xfconf-query -c displays -p /Default/eDP-1/Resolution -n -t string -s 1280x720

xrandr --output eDP-1 --mode 1280x720

)

4.1.3Мышь — настройка прокрутки

Сменить естественную прокрутку на обратное направление прокрутки

Диспетчер настроек — Мышь и тачпад — обратное направление прокрутки

Либо в терминале выполнить код:

(echo "Мышь — настройка прокрутки"

xfconf-query -c pointers -p /_USB_OPTICAL_MOUSE/ReverseScrolling -n -t bool -s false

xfconf-query -c pointers -p /_USB_OPTICAL_MOUSE/RightHanded -n -t bool -s true

xfconf-query -c pointers -p /_USB_OPTICAL_MOUSE/Acceleration -n -t double -s "10"

xfconf-query -c pointers -p /_USB_OPTICAL_MOUSE/Threshold -n -t int -s 1

)

4.1.4Прокрутка мышью окон на заднем фоне без смены фокуса

Пройдите во вкладку Настройки > Диспечер окон (дополнительно) > Доступность Выключите переключатель Поднимать окна при нажатии любой клавиши мыши.

echo "Прокрутка мышью окон на заднем фоне без смены фокуса"

xfconf-query -c xfwm4 -p /general/raise_with_any_button -n -t bool -s false

4.1.5Кнопка модификатор мыши

В Xfce по умолчанию для кнопки-модификатора мыши назначена клавиша Alt. Ее можно поменять с помощью xfconf-query. Для примера следующая команда назначит клавишу Super как кнопка модификатор мыши:

xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"

На самом деле использование сочетания клавиш не поддерживается, тем не менее вы можете назначить несколько клавиш, разделив их названия с помощью ><. В следующем примере вы можете назначить Ctrl+Alt как кнопку модификатор мыши:

xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"

4.1.6Быстрые сочетания клавиш клавиатуры

(echo "Настройка сочетания клавиш"

# "Терминал по сочетанию клавиш «Alt-Control-T»"

xfconf-query -c xfce4-keyboard-shortcuts -p "/commands/custom/<Primary><Alt>t" -n -t string -s "xfce4-terminal"

# "Диспетчер задач по сочетанию клавиш «Control-Shift-Escape»"

xfconf-query -c xfce4-keyboard-shortcuts -p "/commands/custom/<Primary><Shift>Escape" -n -t string -s "xfce4-taskmanager"

)

4.1.7Игнорируются действия на закрытие крышки ноутбука

Если вы обнаружили, что настройки действий на закрытие крышки ноутбука в Менеджере питания игнорируются (Ноутбук всегда переходит в спящий режим независимо от настроек), это значит, что не Менеджер питания управляет этим событием, а systemd-logind. Чтобы вернуть управление менеджеру питания, выполните:

xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false

Примечание: Несмотря на выполненные вышеописанные условия, параметр logind-handle-lid-switch возвращается в положение true, когда вносятся изменения в действия на закрытие крышки ноутбука. Если это произошло, просто выполните команду опять.

4.1.8Автозапуск

Добавить в автозапуск приложение xfce4-clipman и исключить приложения remmina-applet и blueman. Для этого выполнить:

(echo "Автозапуск"

# Включить плагин буфера обмена

sudo sed -i 's/\(^Hidden=\)/\1false/' /etc/xdg/autostart/xfce4-clipman-plugin-autostart.desktop

# Отключить плагин блютуз

sudo sed -i '

/^Hidden=/{s/.*/Hidden=true/; :loop; N; b loop; q}

$s/\(.*\)/\1\nHidden=true/

' /etc/xdg/autostart/blueman.desktop

# Убрать плагин удалённого рабочего стола

if [ -f /.config/autostart/remmina-applet.desktop ]; then

sed -i '/^Hidden=/c Hidden=true' ~/.config/autostart/remmina-applet.desktop

fi

)

4.1.9Блокировка сессии

Для того, чтобы предотвратить блокировку сессии при переходе в ждущий режим:

(echo "Отключить блокировку сессии"

# Отключить блокировку сессии при выходе из системы

xfconf-query -c xfce4-session -p /shutdown/LockScreen -n -t bool -s false

# Отключить блокировку сессии при влючении хранителя экрана

xfconf-query -c xfce4-screensaver -p /lock/enabled -n -t bool -s false

# Отключить блокировку сессии при переходе в спящий режим и в режим сна

xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/lock-screen-suspend-hibernate -n -t bool -s false

)

4.1.10Настроить управление питанием компьютера

(echo "Настроить управление питанием компьютера"

# Ограничить минимальное значение ползунка яркости на 40%

xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/brightness-slider-min-level -n -t int -s 40

# При наведении мыши на иконку показывать значения батареи и времени работы от неё

xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/show-panel-label -t int -s 3

)

4.1.11Отключение сохранение сеансов

Каждому пользователю для отключения функции сохранения сеанса необходимо выполнить следующую команду:

(echo "Отключение сохранение сеансов"

xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false

rm -rf "$HOME/.cache/sessions/"

FILE="/etc/xdg/xfce4/kiosk/kioskrc"

SECTION="xfce4-session"

KEY="SaveSession"

VALUE="NONE"

if [ ! -e "${FILE%/*}" ]; then

sudo mkdir "${FILE%/*}"

fi

if [ ! -f "$FILE" ]; then

echo "" | sudo tee "$FILE" > /dev/null

fi

sudo sed -i '

/^\['"$SECTION"'\]/,/^\[[^]]*\]/ {

/^'"$KEY"'=/ {s/.*/'"$KEY"'='"$VALUE"';/; :loop; N; b loop; q}

$ {s/\(.*\)/\1\n'"$KEY"'='"$VALUE"'/; q}

/^$/ {s/.*/'"$KEY"'='"$VALUE"';\n/; :loop; N; b loop; q}}

$ { 1!s/\(.*\)/\1\n\n/;

s/\(.*\)/\1\['"$SECTION"'\]\n'"$KEY"'='"$VALUE"';/}

' "$FILE"

)

4.1.12Настройка темы

(echo "Настройка темы xfce4"

# Чёрная тема компактная

xfconf-query -c xsettings -p /Net/ThemeName -n -t string -s "Greybird-dark"

# Тема иконок GNOME

xfconf-query -c xsettings -p /Net/IconThemeName -n -t string -s "gnome"

# Тема диспетчера окон

xfconf-query -c xfwm4 -p /general/theme -n -t string -s "Default-4.8"

# Тема курсора мыши

xfconf-query -c xfwm4 -p /Gtk/CursorThemeName -n -t string -s "Adwaita"

# Размер курсора мыши

xfconf-query -c xfwm4 -p /Gtk/CursorThemeSize -n -t int -s 24

)

4.1.13Настройка рабочих областей

(echo "Настройка рабочих областей"

# Количество рабочих областей изменить с 4 на 2-х шт.

xfconf-query -c xfwm4 -p /general/workspace_count -n -t int -s 2

# Отключить опцию используйте колёсико мыши на рабочем столе для переключения рабочих областей

xfconf-query -c xfwm4 -p /general/scroll_workspaces -n -t bool -s false

# Отключить опцию запоминайте и вызывайте предыдущее рабочее пространство при переключении с помощью сочетаний клавиш

xfconf-query -c xfwm4 -p /general/toggle_workspaces -n -t bool -s false

# Отключить опцию перенос рабочих областей при достижении первой или последней рабочей области

xfconf-query -c xfwm4 -p /general/wrap_layout -n -t bool -s false

# Отключить опцию перенос рабочих областей в зависимости от фактического расположения рабочего стола

xfconf-query -c xfwm4 -p /general/wrap_cycle -n -t bool -s false

# Красивая картинка с цветами и надписью xfce4

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitoreDP-1/workspace0/last-image -n -t string -s "/usr/share/backgrounds/xfce/xfce-leaves.svg"

)

4.1.14Настройка панели

Панель сбоку

Учитывая широкое расположение монитора хорошим решением является вертикальное расположение панели:

(cho "Настройка панели"

# Панель сбоку

# Панель 1 -> Режим -> Боковая панель

xfconf-query -c xfce4-panel -p /panels/panel-1/mode -n -t int -s 2

# Панель 1 -> Позиция

xfconf-query -c xfce4-panel -p /panels/panel-1/position -n -t string -s "p=8;x=0;y=0"

# Панель 1 -> Размер иконок

xfconf-query -c xfce4-panel -p /panels/panel-1/icon-size -n -t int -s 32

)

Настройка плагинов панели

(echo "Настроить плагины «меню whisker» и «кнопки окон»"

echo "Удалить иконки «Системные действия» запуска «Яндекс браузера» и «Разделители»"

PLUGIN_IDS_EXCLUDE=()

# Поиск искомого плагина из списка плагинов

while IFS=" " read -r KEY VALUE || [ -n "$KEY" ]; do

# KEY соответствует имени плагина

if [ -z "${KEY%/*/*}" ]; then

# Плагин «Системные действия»

if [ "$VALUE" == "actions" ]; then

PLUGIN_IDS_EXCLUDE+=("${KEY#*"-"}")

# Плагин иконка запуска программ

elif [ "$VALUE" == "launcher" ]; then

if [ "$(xfconf-query -c xfce4-panel -p "$KEY"/items)" == "[yandex-browser.desktop]" ]; then

PLUGIN_IDS_EXCLUDE+=("${KEY#*"-"}")

fi

# Плагин разделителя

elif [ "$VALUE" == "separator" ]; then

if [ "$(xfconf-query -c xfce4-panel -p "$KEY"/expand)" != "true" ]; then

PLUGIN_IDS_EXCLUDE+=("${KEY#*"-"}")

fi

# Плагин «Кнопки окон»

elif [ "$VALUE" == "tasklist" ]; then

# Убрать подписи кнопок

xfconf-query -c xfce4-panel -p "$KEY/show-labels" -n -t bool -s false

# Группировать окна по приложениям

xfconf-query -c xfce4-panel -p "$KEY/grouping" -n -t bool -s true

# Плагин «меню whisker»

elif [ "$VALUE" == "whiskermenu" ]; then

# Установить значок «приложения»

xfconf-query -c xfce4-panel -p "$KEY/button-icon" -n -t string -s "org.xfce.settings.application-x-executable"

# Переключать категории по наведению мыши

xfconf-query -c xfce4-panel -p "$KEY/hover-switch-category" -n -t bool -s true

# Расположение категории слева

xfconf-query -c xfce4-panel -p "$KEY/position-categories-alternate" -n -t bool -s true

# Окно -> Высота

xfconf-query -c xfce4-panel -p "$KEY/menu-height" -n -t int -s 600

# Окно -> Ширина

xfconf-query -c xfce4-panel -p "$KEY/menu-width" -n -t int -s 500

# Избранные приложения

# Базовый набор

PROGS_DESKTOP=(

# Терминал

"xfce4-terminal-emulator.desktop"

# Файловый проводник

"xfce4-file-manager.desktop"

# Чтение электронных писем

"xfce4-mail-reader.desktop"

# Интернет проводник

"xfce4-web-browser.desktop"

# Текстовый редактор

"org.xfce.mousepad.desktop"

# Файлоый проводник двухпанельный

"doublecmd.desktop"

# Офис LibreOffice

"libreoffice-startcenter.desktop"

# Калькулятор рабочего окружения Mate

"mate-calc.desktop"

)

ARGS=()

for PROG_DESKTOP in "${PROGS_DESKTOP[@]}"; do

if [ -f "/usr/share/applications/$PROG_DESKTOP" ] ; then

ARGS+=(-t string -s "$PROG_DESKTOP")

fi

done

xfconf-query -c xfce4-panel -p "$KEY/favorites" -n "${ARGS[@]}" -a

fi

fi

done <<< "$(xfconf-query -c xfce4-panel -p /plugins -v -l)"

# Обновление списка идентификационных номеров плагинов

if [ "${#PLUGIN_IDS_EXCLUDE}" -ne 0 ]; then

ARGS=()

for PLUGIN_ID_EXCLUDE in "${PLUGIN_IDS_EXCLUDE[@]}"; do

xfconf-query -c xfce4-panel -p "$PLUGIN_KEY" -r -R

done

# Список идентификационных номеров плагинов

for PLUGIN_ID in $(xfconf-query -c xfce4-panel -p /panels/panel-1/plugin-ids -v -l \

| sed 's/.*\[\(.*\)\]/\1/; s/,/ /g'); do

for PLUGIN_ID_EXCLUDE in "${PLUGIN_IDS_EXCLUDE[@]}"; do

if [ "$PLUGIN_ID" == "$PLUGIN_ID_EXCLUDE" ]; then

continue 2

fi

done

ARGS+=( -t int -s "$PLUGIN_ID" )

done

xfconf-query -c xfce4-panel -p /panels/panel-1/plugin-ids "${ARGS[@]}" -a

# Удалить найденые плагины

for PLUGIN_ID_EXCLUDE in "${PLUGIN_IDS_EXCLUDE[@]}"; do

echo "$PLUGIN_ID_EXCLUDE"

xfconf-query -c xfce4-panel -p "/plugins/plugin-$PLUGIN_ID_EXCLUDE" -r -R

done

xfce4-panel -r

fi

)

Добавить изображение профиля в меню whisker

Добавить изображение профиля каждому пользователю для отображения в меню .whisker. Просто поместите PNG файл размером 96x96 в корень домашней директории ~/ нужного пользователя с расширением .face.

4.1.15Док-панель

Лучший вариант - плагин xfce4-docklike-plugin

Плагин для панели задач, в виде Док-панели:

sudo apt-get install xfce4-docklike-plugin

Перетаскивание осуществятся с зажатой клавишей CTRL

Приложение Plank

Plank — одно из самых простых док-приложений:

sudo apt-get install plank

Cairo-Dock

Cairo-Dock — настраиваемая док-панель:

sudo apt-get install cairo-dock

4.1.16Оповещения

Управление уведомлениями:

screen -d -m -S session_xfce4 xfce4-notifyd-config

Для отключения уведомлений о монтировании диска следует:

1. перейти во вкладку «Приложения»

2. Раскрыть меню «Removable Drives and Media»

3. Активизировать флаг «Заглушить приложение»

То же самое можно выполнить командой:

(echo "Оповещения"

# Отключить оповещение при автомонтировании USB-дисков, флешек

xfconf-query -c xfce4-notifyd -p /applications/muted_applications -n -t string -s "thunar-volman" -a

)

4.1.17Настройка терминала

(echo "Настройка терминала"

# Использовать системный шрифт

xfconf-query -c xfce4-terminal -p /font-use-system -n -t bool -s true

# Убрать окно с предупреждением при закрытии терминала

xfconf-query -c xfce4-terminal -p /misc-confirm-close -n -t bool -s false

# Убрать окно диалога при вставки из буфера обмена

xfconf-query -c xfce4-terminal -p /misc-show-unsafe-paste-dialog -n -t bool -s false

)

4.1.18Настройка проводника Thunar

(echo "Настройка проводника Thunar"

# Панель адреса -> Стиль -> Кнопки

xfconf-query -c thunar -p /last-location-bar -s ThunarLocationButtons

# Отключить опции работы с дисками:

# Открытие файлового менеджера при монтировании съёмного носителя

xfconf-query -c thunar-volman -p /autobrowse/enabled -s false

# Запускать приложение для записи дисков при обнаружении пустых оптических дисков

xfconf-query -c thunar-volman -p /autoburn/enabled -s false

# Автоматически открывать файлы с новых устройств и носителей

xfconf-query -c thunar-volman -p /autoopen/enabled -s false

# При обнаружении аудиодиска проигрывать диски с аудио

xfconf-query -c thunar-volman -p /autoplay-audio-cds/enabled -s false

# При обнаружении видеодиска проигрывать диски с видео

xfconf-query -c thunar-volman -p /autoplay-video-cds/enabled -s false

# Автоматически запускать программы с новых устройств и носителей

xfconf-query -c thunar-volman -p /autorun/enabled -s false

# Установка в Thunar «Особых действий»

FILE="${HOME}/.config/Thunar/uca.xml"

# Особые действия -> Открыть терминал для файла

TEXT_ADD_1='<action>

<icon>utilities-terminal</icon>

<name>Открыть терминал</name>

<submenu></submenu>

<unique-id>1000000000000001-1</unique-id>

<command>exo-open --working-directory %d --launch TerminalEmulator</command>

<description>Пример особого действия</description>

<range></range>

<patterns>*</patterns>

<audio-files/>

<image-files/>

<other-files/>

<text-files/>

<video-files/>

</action>'

# Особые действия -> Открыть глобальный поиск для файла

TEXT_ADD_2='<action>

<icon>system-search</icon>

<name>Поиск файлов...</name>

<submenu></submenu>

<unique-id>1000000000000002-2</unique-id>

<command>mate-search-tool --path=%d</command>

<description>Искать документы и папки по имени или по содержанию</description>

<range></range>

<patterns>*</patterns>

<audio-files/>

<image-files/>

<other-files/>

<text-files/>

<video-files/>

</action>'

FILE_W="false"

killall -q thunar xfce4-mime-helper 2> /dev/null

CONF=$(cat "$FILE")

for N in $(seq 1 2); do

case "$N" in

1) STR="$TEXT_ADD_1";;

2) STR="$TEXT_ADD_2";;

esac

COMMAND=$(echo "$STR" | sed -n 's/.*<command>\(.*\)<.*/\1/p')

ID=$(echo "$STR" | sed -n 's/.*<unique-id>\(.*\)<.*/\1/p')

if echo "$CONF" | grep -q "<command>$COMMAND" "$FILE" || \

echo "$CONF" | grep -q "<unique-id>$ID" "$FILE"; then

continue;

fi

FILE_W="true"

# Запись особого действия

CONF=$(echo "$CONF" | awk -v str="$STR" '{

if ($1 == "</actions>")

print str "\n</actions>"

else print $0

}')

done

if "$FILE_W"; then

# Стирание значения в последней конфигурации панели кнопок

xfconf-query -c thunar -p /last-toolbar-items -r

echo "$CONF" | tee "$FILE" > /dev/null

fi

)

4.1.19Ассоциации файлов

(echo "Ассоциации файлов"

# Ассоциация файлов *.xml

FILE="${HOME}/.config/mimeapps.list"

SECTION="Added Associations"

KEY="application\/xml"

TEXT_EDITORS="geany xed gedit mousepad kate"

VALUE=""

for PROG_DESKTOP in $TEXT_EDITORS; do

if [ -f "/usr/share/applications/$PROG_DESKTOP.desktop" ]; then

VALUE="$PROG_DESKTOP.desktop"

fi

done

if [ -z "$VALUE" ];then

quit

fi

if [ -e "$FILE" ]; then

echo "" | tee "$FILE" > /dev/null

fi

sed -i '

/^\['"$SECTION"'\]/,/^\[[^]]*\]/ {

/^'"$KEY"'=/ {s/.*/'"$KEY"'='"$VALUE"';/; :loop; N; b loop; q}

$ {s/\(.*\)/\1\n'"$KEY"'='"$VALUE"'/; q}

/^$/ {s/.*/'"$KEY"'='"$VALUE"';\n/; :loop; N; b loop; q}

}

$ { 1!s/\(.*\)/\1\n\n/;

s/\(.*\)/\1\['"$SECTION"'\]\n'"$KEY"'='"$VALUE"';/

}

' "$FILE"

)

4.1.20Автоматический вход в систему

(echo "Автоматический вход в систему"

FILE="/etc/lightdm/lightdm.conf.d/autologin.conf"

if [ -n "$USER" ]; then

USER_NAME="$USER"

else

USER_NAME="$SUDO_USER"

fi

echo "[Seat:seat0]

autologin-user=$USER_NAME

autologin-user-timeout=0

autologin-session=$DESKTOP_SESSION" | sudo tee "$FILE" > /dev/null

)

4.1.21Смена языка системы

Настроить локальный язык системы

Для менеджера дисплеев xdg — смена языка для локального пользователя делается путём создания файла

cat ~/.i18n

LANG=ru_RU.UTF-8

SUPPORTED=ru_RU

В XFCE требуется написать ещё скрипт в файл ~/.config/xfce4/xinitrc с кодом:

#!/bin/sh

if [ -f "$HOME/.i18n" ]; then

. "$HOME/.i18n"

fi

. /etc/xdg/xfce4/xinitrc

Для гнома может помочь это, но я не проверял:

cat ~/.dmrc

[Desktop]

Session=Xfce4

Language=ru_RU.UTF-8

Настроить глобальный язык системы

Для изменения на английский язык в файле /etc/sysconfig/i18n заменить LANG=en_US.UTF-8 и SUPPORTED=en_US на:

LANG=ru_RU.UTF-8

SUPPORTED=ru_RU

4.2 Рабочее окружение GNOME

Установка GNOME, конфигурация по умолчанию:

sudo apt-get install gnome3-default

4.3 Рабочее окружение MATE

Установка MATE конфигурация максимальная:

sudo apt-get install mate-maxi

Перезагрузка из меню тупит. Надо создать кнопку или пункт меню выполнения команды:

systemctl reboot

Создадим новый пункт меню:

echo '#!/usr/bin/env xdg-open

[Desktop Entry]

Version=1.0

Type=Directory

Name=System Reboot

Name[ru_RU]=Перезагрузка системы

Comment=System Reboot

Icon=gtk-delete

' | tee -a ~/.local/share/desktop-directories/system-reboot .directory > /dev/null

В меню добавим новую пункт «Перезагрузить систему немедленно»:

echo '#!/usr/bin/env xdg-open

[Desktop Entry]

Version=1.0

Name=System Reboot Now

Name[ru_RU]=Перезагрузить систему немедленно

GenericName=System Reboot Now

GenericName[ru_RU]=Перезагрузить систему немедленно

Comment=System Reboot Now

Comment[ru_RU]=Перезагрузить систему немедленно

Terminal=false

Icon=gtk-refresh

Exec=systemctl reboot

Type=Application

MimeType=inode/directory;

Categories=System Reboot

Keywords=reboot;

' | tee -a ~/.local/share/applications/system-reboot.desktop > /dev/null

Откроем в текстовом редакторе файл меню:

mousepad ~/.config/menus/mate-applications.menu

После последнего пункта меню добавим наш пункт меню:

<DefaultLayout inline="false"/>

<Menu>

<Name>System Reboot</Name>

<Directory>system-reboot.directory</Directory>

<Include>

<Filename>system-reboot.desktop</Filename>

</Include>

<Layout>

<Merge type="menus"/>

<Filename>system-reboot.desktop</Filename>

<Merge type="files"/>

</Layout>

</Menu>

И в <Layout> добавим в конце наш пункт меню:

<Menuname>System Reboot</Menuname>

4.4 Рабочее окружение KDE

Чтобы KDE был установлен корректно и его не пришлось впоследствии патчить (кто это делал под Free BSD, тот знает, что маму этим мучать точно не надо, и себя тоже незачем), в Simply Linux лучше всего использовать команду:

sudo apt-get install kde5-big

Если wm-select сразу не запустится. Идем в домашнюю папку и удаляем файл настроек:

rm -f ~/.wm-select

Удаляем приложения FXCE4:

sudo apt-get remove mousepad thunar thunar-archive-plugin xfce4-terminal

5 Настройка программ

5.1 Файловый проводник

5.1.1Double commander - двухпанельный файловый проводник

Создание ярлыка в меню приложения для запуска программы с правами root пользователя:

(# Создание ярлыка для запуска программы с правами супер пользователя

echo '#!/usr/bin/env xdg-open

[Desktop Entry]

Name=Double Commander (root)

GenericName=File Manager (root)

GenericName[ru_RU]=Файловый проводник (админ)

Comment=Double Commander (root) is a cross platform open source file manager with two panels side by side.

Comment[ru]=Double Commander (root) — это кроссплатформенный двухпанельный файловый менеджер с открытым кодом.

Terminal=false

Icon=doublecmd

Exec=pkexec doublecmd %F

Type=Application

MimeType=inode/directory;

Categories=Utility;FileTools;FileManager;

Keywords=folder;explore;disk;filesystem;copy;operations;

Keywords[ru]=файл;менеджер;папка;обзор;диск;файловая система;

' | sudo tee /usr/share/applications/doublecmd-root.desktop > /dev/null

)

Настройка программы для текущего пользователя:

(# Настройка Doublecmd для текущего пользователя

FILE="${HOME}/.config/doublecmd/doublecmd.xml"

FILE_ED="false"

ARGS=(ed -S)

read -r -d '' SETTINGS_NEW << 'EOF'

# Parametr action Value

# Только один экземпляр программы

/doublecmd/Behaviours/OnlyOneAppInstance = True

/doublecmd/Fonts/Viewer/Size = 11

/doublecmd/Fonts/SearchResults/Size = 11

/doublecmd/Layout/DriveBar1 = False

/doublecmd/Layout/DriveBar2 = False

/doublecmd/Layout/DriveBarFlat = False

/doublecmd/Layout/DriveIndicator = True

/doublecmd/FileOperations/RenameSelOnlyName = True

/doublecmd/FileOperations/TypeOfDuplicatedRename = 1

/doublecmd/FileOperations/ProgressKind = 2

/doublecmd/Tabs/CharacterLimit = 10

/doublecmd/Tabs/ActionOnDoubleClick = 1

/doublecmd/Miscellaneous/SpaceMovesDown = True

/doublecmd/Miscellaneous/DirBrackets = False

/doublecmd/Thumbnails/@Save = False

# Иконки 16х16

/doublecmd/Icons/Size = 16

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

/doublecmd/Toolbars/MainToolbar/Row/Program/ID = {0C52D785-FCEE-4489-ABFD-5FC4D682B287}

/doublecmd/Toolbars/MainToolbar/Row/Program/Icon = /usr/share/doublecmd/pixmaps/mainicon/dc_48.svg

/doublecmd/Toolbars/MainToolbar/Row/Program/Hint = Double commander (root)

/doublecmd/Toolbars/MainToolbar/Row/Program/Command = pkexec

/doublecmd/Toolbars/MainToolbar/Row/Program/Params = env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmd %Dl

EOF

killall -q doublecmd

CONTENT=$(cat "$FILE")

while IFS="" read -r LINE || [ -n "$LINE" ]; do

if [ "${LINE:0:1}" == "#" ]; then

continue

fi

IFS=" " read -r PARAMETER OPERATOR VALUE <<< "$LINE"

if [ "$OPERATOR" == "=" ]; then

VALUE_CUR=$(echo "$CONTENT" | xmlstarlet sel -t -m "$PARAMETER" -v . 2> /dev/null)

if [ "$VALUE_CUR" != "$VALUE" ]; then

FILE_ED="true"

ARGS+=(-u "$PARAMETER" -v "$VALUE")

fi

fi

done <<< "$SETTINGS_NEW"

if "$FILE_ED"; then

CONTENT=$(echo "$CONTENT" | xmlstarlet "${ARGS[@]}")

echo "$CONTENT" | tee "$FILE" > /dev/null

fi

)

Настройка программы для супер пользователя:

(# Настройка Doublecmd для супер пользователя

FILE="/root/.config/doublecmd/doublecmd.xml"

FILE_ED="false"

ARGS=(ed -S)

read -r -d '' SETTINGS_NEW << 'EOF'

# Parametr action Value

# Только один экземпляр программы

/doublecmd/Behaviours/OnlyOneAppInstance = True

/doublecmd/Fonts/Viewer/Size = 11

/doublecmd/Fonts/SearchResults/Size = 11

/doublecmd/Layout/DriveBar1 = False

/doublecmd/Layout/DriveBar2 = False

/doublecmd/Layout/DriveBarFlat = False

/doublecmd/Layout/DriveIndicator = True

/doublecmd/FileOperations/RenameSelOnlyName = True

/doublecmd/FileOperations/TypeOfDuplicatedRename = 1

/doublecmd/FileOperations/ProgressKind = 2

/doublecmd/Tabs/CharacterLimit = 10

/doublecmd/Tabs/ActionOnDoubleClick = 1

/doublecmd/Miscellaneous/SpaceMovesDown = True

/doublecmd/Miscellaneous/DirBrackets = False

/doublecmd/Thumbnails/@Save = False

# Иконки 16х16

/doublecmd/Icons/Size = 16

EOF

sudo killall -q doublecmd

CONTENT=$(sudo cat "$FILE")

while IFS="" read -r LINE || [ -n "$LINE" ]; do

if [ "${LINE:0:1}" == "#" ]; then

continue

fi

IFS=" " read -r PARAMETER OPERATOR VALUE <<< "$LINE"

if [ "$OPERATOR" == "=" ]; then

VALUE_CUR=$(echo "$CONTENT" | xmlstarlet sel -t -m "$PARAMETER" -v . 2> /dev/null)

if [ "$VALUE_CUR" != "$VALUE" ]; then

FILE_ED="true"

ARGS+=(-u "$PARAMETER" -v "$VALUE")

fi

fi

done <<< "$SETTINGS_NEW"

if "$FILE_ED"; then

CONTENT=$(echo "$CONTENT" | xmlstarlet "${ARGS[@]}")

echo "$CONTENT" | sudo tee "$FILE" > /dev/null

fi

)

Добавить в программу на панель инструментов иконку запуска программы в режиме root пользователя. Зайти в «Настройки» -> «Панель инструментов». Добавить разделитель и добавить внешнюю команду. Настроить параметры. Файл значка:

/usr/share/doublecmd/pixmaps/mainicon/dc_48.svg

Подсказка:

Double commander (root)

Команда:

pkexec

Параметры:

doublecmd %Dl

Если возникла ошибка «Не удалось открыть дисплей:»:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmd %Dl

Путь запуска оставить пустым.

5.2 Текстовый редактор

5.2.1Mousepad - текстовый редактор рабочей среды XFCE-4

(# Mousepad - текстовый редактор рабочей среды XFCE-4

if gsettings writable org.xfce.mousepad.preferences.window statusbar-visible 2> /dev/null; then

echo "Mousepad - текстовый редактор рабочей среды XFCE-4"

# Включить строку состояния

gsettings set org.xfce.mousepad.preferences.window statusbar-visible "true"

# Включить тёмную тему оформления

gsettings set org.xfce.mousepad.preferences.view color-scheme "oblivion"

# Включить перенос слов

gsettings set org.xfce.mousepad.preferences.view word-wrapping "true"

fi

)

5.2.2Gedit - текстовый редактор среды GNOME

Добавить кодировку WINDOWS-1251 в текстовый редактор Gedit

  1. При помощи редактора dconf-editor1)

Запускаем dconf-editor и переходим в

/org/gnome/gedit/preferences/encodings/

Редактируем ключ auto_detected, вписывая нужную нам кодировку WINDOWS-1251:

['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']

  1. Способ, в котором нужно выполнить всего-лишь одну команду в Терминале:

(# Gedit - текстовый редактор рабочей среды Gnome

if gsettings writable org.gnome.gedit.preferences.encodings candidate-encodings 2> /dev/null; then

echo "Gedit - текстовый редактор рабочей среды Gnome"

# Добавить кодировку WINDOWS-1251 в текстовый редактор Gedit

gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

fi

)

5.2.3Xed - текстовый редактор среды Cinnamon

5.2.4Добавить кодировку WINDOWS-1251 в текстовый редактор xed

По аналогии с gedit:

(# Xed - текстовый редактор рабочей среды Cinnamon

if gsettings org.x.editor.preferences.encodings auto-detected 2> /dev/null; then

echo "Xed - текстовый редактор рабочей среды Cinnamon"

# Добавить кодировку WINDOWS-1251 в текстовый редактор xed

gsettings set org.x.editor.preferences.encodings auto-detected "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

fi

)

5.3 Офисные программы

5.3.1LibreOffice добавление расширения проверки орфографии русского языка

Добавления расширения для текущего пользователя:

(# Добавления расширения для текущего пользователя

TEMP_DIR=$(mktemp -d) && \
wget https://extensions.libreoffice.org/assets/downloads/48/dict_pack_ru-aot-0.4.5.oxt -P $TEMP_DIR && \
/usr/lib64/libreoffice/program/unopkg add -s -f "$TEMP_DIR/dict_pack_ru-aot-0.4.5.oxt" && \
rm -rf $TEMP_DIR

)

Добавление расширения для всех пользователей:

(# Добавление расширения для всех пользователей

TEMP_DIR=$(mktemp -d) && \
wget https://extensions.libreoffice.org/assets/downloads/48/dict_pack_ru-aot-0.4.5.oxt -P $TEMP_DIR && \
sudo /usr/lib64/libreoffice/program/unopkg add --shared -s -f "$TEMP_DIR/dict_pack_ru-aot-0.4.5.oxt" && \
rm -rf $TEMP_DIR

)

Тёмная тема в LinbreOffice:

(echo "Установка тёмной темы в Libreoffice"

FILE="$HOME/.config/libreoffice/4/user/registrymodifications.xcu"

FILE_ED="false"

ARGS=(ed -S)

read -r -d '' SETTINGS_NEW << 'EOF'

# Parametr action Value

# Тёмная тема листа

/oor:items/item[@oor:path='/org.openoffice.Office.Common/Misc']/prop[@oor:name='ApplicationAppearance'][@oor:op='fuse']/value = 2

# Тёмная тема оформления

/oor:items/item[@oor:path='/org.openoffice.Office.Common/Misc']/prop[@oor:name='SymbolStyle'][@oor:op='fuse']/value = colibre_dark_svg

EOF

killall -q soffice.bin

CONTENT=$(cat "$FILE")

while IFS="" read -r LINE || [ -n "$LINE" ]; do

if [ "${LINE:0:1}" == "#" ]; then

continue

fi

IFS=" " read -r PARAMETER OPERATOR VALUE <<< "$LINE"

if [ "$OPERATOR" == "=" ]; then

VALUE_CUR=$(echo "$CONTENT" | xmlstarlet sel -t -m "$PARAMETER" -v . 2> /dev/null)

if [ "$VALUE_CUR" != "$VALUE" ]; then

FILE_ED="true"

ARGS+=(-u "$PARAMETER" -v "$VALUE")

fi

fi

done <<< "$SETTINGS_NEW"

if "$FILE_ED"; then

CONTENT=$(echo "$CONTENT" | xmlstarlet "${ARGS[@]}")

echo "$CONTENT" | tee "$FILE" > /dev/null

fi

)

5.3.2WPS OFFICE

Установка WPS office

sudo snap install wps-office-multilang

Версия, которая есть в центре приложений аналогична версии из snap пакета. Чтобы установить WPS Office с помощью центра приложений, откройте последний и введите в поиске wps office . Выберите пакет WPS Office Multi-Language.

Русификация WPS OFFICE

Запустите WPS Writer и в главном меню найдите пункт Options(L).

Перейдите на вкладку Language и нажмите на кнопку Choose…

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

Перезагрузите WPS Writer и проверьте, появился ли русский язык. Если всё хорошо - то русификация wps office ubuntu завершена.

5.3.3Преобразование jpg в pdf

Конвертируйте JPG в PDF из командной строки:

Если вы выбрали опцию командной строки и установили пакет imagemagick, в этом случае после установки у нас будет доступ к ряду довольно практичных инструментов и опций командной строки. Мы собираемся использовать команда convert для выполнения преобразования. На самом деле у него множество опций, поэтому я рекомендую вам ознакомиться с руководством.

Но самая основная вещь, которую мы ищем в этом руководстве, - это выполнить преобразование из каталога, в котором находится изображение или изображения. Например, представьте, что мы хотим преобразовать все изображения в каталоге / home в PDF или только одно. Для этого вы можете использовать первую или вторую из следующих команд:

cd /home

convert *.jpg nombre.pdf

convert foto.jpg nombre.pdf

В первом случае все изображения JPEG передаются в PDF сразу, а во втором - только конкретное изображение, соответствующее этому имени. Вы также можете использовать сжатие с опцией + compress, -rotate, чтобы повернуть изображение на градусы, указанные в качестве параметра, и т. Д. Например, вы можете повернуть изображение на 90 градусов и добавить сжатие с помощью следующей команды:

convert -rotate 90 foto.jpg +compress nombre.pdf

-v естественный вид номеров (версий) в тексте: convert $(ls -v *.jpg) foobar.pdf

Преобразование JPEG в PDF с использованием графического интерфейса с помощью программы gscan2pdf:

Предполагая, что у нас уже есть программа gscan2pdf, посмотрим, что процедура довольно проста. Шаги следующие:

1. Мы открыты gscan2pdf.

2. Добавляем изображения или мы выбираем каталог, в котором находятся изображения, которые мы хотим преобразовать.

3. После добавления мы можем измените их порядок, перетащив их на главном экране приложения из списка изображений, который появляется слева.

4. После того, как приведем в порядок, мы можем нажать на кнопку Сохраните, чтобы сохранить.

5. Теперь появится экран, на котором мы можем выбрать много opciones, включая изменение метаданных PDF-файла, добавление имени, даты, типа, автора, источника и т. д. Хотя заливать их не обязательно, если нам это не нужно. Важно выбрать Все, если мы хотим преобразовать все изображения как страницы PDF, а в выходном формате выбрать формат PDF, поскольку он поддерживает другие форматы.

6. Aceptamos и он сгенерирует PDF с нашими изображениями.

5.3.4Улучшение поддержки шрифтов

Поддержка шрифтов аналогов Майкрософт Офис:

sudo apt-get install fonts-ttf-google-crosextra-carlito fonts-ttf-google-crosextra-caladea

Шрифты от самой Microsoft: Andale Mono, Arial Black, Arial (Bold, Italic, Bold Italic), Comic Sans MS (Bold), Courier New (Bold, Italic, Bold Italic), Georgia (Bold, Italic, Bold Italic), Impact, Times New Roman (Bold, Italic, Bold Italic), Trebuchet (Bold, Italic, Bold Italic), Verdana (Bold, Italic, Bold Italic), Webdings:

sudo apt-get install -y fonts-ttf-ms

Поддержка шрифтов Калибри с Майкрософт Виста:

mkdir ~/.fonts

wget -qO- http://plasmasturm.org/code/vistafonts-installer/vistafonts-installer | bash

Если Вы хотите скопировать в системный каталог, из которого шрифты будут доступны всем пользователям, который находится в /usr/share/fonts/ttf/, выполним следующие действия.

sudo mkdir /usr/share/fonts/ttf/vistafonts/

cd /home/user/.fonts

sudo cp *.ttf /usr/share/fonts/ttf/vistafonts/

sudo fc-cache -f -v

5.3.5Файлы шаблоны

Шаблон текстового файла

echo > ~/Шаблоны/noname.txt ; libreoffice -headless -convert-to odt:Text -outdir ~/Шаблоны ~/Шаблоны/noname.txt ; libreoffice --headless --convert-to ods:"calc_svg_Export"--outdir ~/Шаблоны ~/Шаблоны/noname.txt

5.4 Аудио и видео

5.4.1Audacious - звуковой проигрыватель

Добавить кодировку WINDOWS-1251

Зайти в Файл -> Настройки -> Продвинутые -> Если не удалось определить, использовать кодировку: CP-1251. Либо выполнить код:

(echo "audacious - программа для вопроизведения аудио"

#Добавить кодировку WINDOWS-1251 в звуковой проигрыватель audacious

FILE="$HOME/.config/audacious/config"

SECTION="audacious"

KEY="chardet_fallback"

VALUE="windows-1251"

killall -q audacious 2> /dev/null

if [ ! -e "$(echo "$FILE" | sed 's/\(.*\)\/.*/\1/')" ]; then

mkdir "$(echo "$FILE" | sed 's/\(.*\)\/.*/\1/')"

fi

if [ ! -f "$FILE" ]; then

echo "" | tee "$FILE" > /dev/null

fi

sed -i '

/^\['"$SECTION"'\]/,/^\[[^]]*\]/ {

/^'"$KEY"'=/ {s/.*/'"$KEY"'='"$VALUE"';/; :loop; N; b loop; q}

$ {s/\(.*\)/\1\n'"$KEY"'='"$VALUE"'/; q}

/^$/ {s/.*/'"$KEY"'='"$VALUE"';\n/; :loop; N; b loop; q}}

$ { 1!s/\(.*\)/\1\n\n/;

s/\(.*\)/\1\['"$SECTION"'\]\n'"$KEY"'='"$VALUE"';/}

' "$FILE"

)

5.5 Интернет проводники - браузеры

5.5.1Убрать надпись «введите пароль для разблокировки связки ключей для входа в систему»

При включении Хромиума и браузеров, основанных на нём, такие как Хром и Яндекс-браузер появится сообщение: «введите пароль для разблокировки связки ключей». Для избавления от надоедливого окна надо переключить хранения паролей на встроенную базу:

(echo "Локальная база хранения паролей хромиум-подобных браузеров"

# Убрать надпись «введите пароль для разблокировки связки ключей для входа в систему».

# Надёжный способ: Переключить хранения паролей на встроенную базу

LIST=("chrome" "chromium" "yandex-browser")

for LINE in "${LIST[@]}"; do

FILE="/etc/$LINE/default"

if [ ! -e "/etc/$LINE" ]; then

sudo mkdir "/etc/$LINE"

fi

if [ ! -f "$FILE" ]; then

echo "" | sudo tee "$FILE" > /dev/null

fi

killall -q "$LINE" 2> /dev/null

NAME=$(echo "$LINE" | sed 's/.*/\U&/; s/-/_/g')

if [ -f "$FILE" ]; then

sudo sed -i '

/^#?export '"$NAME"'_FLAGS="$'"$NAME"'_FLAGS --password-store=basic"/ { s/^#\(.*\)/\1/; :loop; N; b loop; q}

$ { 1!s/\(.*\)/\1\n\n/;

s/\(.*\)/\1# Use password-store=basic\nexport '"$NAME"'_FLAGS="$'"$NAME"'_FLAGS --password-store=basic"/}

' "$FILE"

fi

done

)

Есть ещё вариант: в окне поля для ввода паролей оставляем пустыми, жмем продолжить и соглашаемся с тем, что пароли будут не зашифрованы. Это плохо с точки зрения безопасности.

5.5.2Яндекс-браузер

Отобразить заголовок окна, т. к. окно нельзя перетащить

В адресной строке ввести адрес:

browser://flags/#enable-system-frame

и включить «System window controls». Далее внизу выскочит вплывающее окно, в котором надо нажать на кнопку «Перезапустить».

Настройка через командную строку:

(echo "Яндекс браузера - хромиумоподобный браузер адаптирован под русского пользователя"

FILE="$HOME/.config/yandex-browser/Local State"

read -r -d '' SETTINGS_NEW << 'EOF'

# Parametr Action Value

# Убрать иконку из трея

"background_mode","enabled" = false

# Добавить системную рамку вокруг окна. Решает проблему с перетаскиванием

"browser","enabled_labs_experiments" += ["enable-system-frame"]

"ya","experiments_edited_by_user" += ["enable-system-frame"]

# Убрать открытие документов PDF в браузере

"ya","plugin_restricted_document_kinds" = []

EOF

killall -q yandex-browser-stable /opt/yandex/browser/yandex_browser

CONTENT=$(cat "$FILE")

while IFS="" read -r LINE || [ -n "$LINE" ]; do

if [ "${LINE:0:1}" == "#" ]; then

continue

fi

IFS=" " read -r PARAMETER OPERATOR VALUE <<< "$LINE"

if [ "$OPERATOR" == "=" ]; then

CONTENT=$(echo "$CONTENT" | jq -S '.

| setpath (['"$PARAMETER"']; '"$VALUE"')')

fi

if [ "$OPERATOR" == "+=" ]; then

if [ "${VALUE:0:1}" == "[" ] && [ "${VALUE:0-1}" == "]" ]; then

CONTENT=$(echo "$CONTENT" | jq -S '.

| setpath (['"$PARAMETER"']; getpath(['"$PARAMETER"']) + '"$VALUE"' | unique)

')

fi

fi

if [ "$OPERATOR" == "-=" ]; then

if [ "${VALUE:0:1}" == "[" ] && [ "${VALUE:0-1}" == "]" ]; then

CONTENT=$(echo "$CONTENT" | jq -S '.

| setpath (['"$PARAMETER"']; getpath(['"$PARAMETER"']) - '"$VALUE"' | unique)

')

fi

fi

done <<< "$SETTINGS_NEW"

echo "$CONTENT" | tee "$FILE" > /dev/null

)

Расширения

Тёмные сайты — Dark Reader:

Увеличение громкости до 600% — Volume Master:

Скачать видео — Video DownloadHelper:

Скачать видео с vk.com — SafeFromenet helper:

https://chromewebstore.google.com/detail/savefromnet-helper/akncjgblpooaigmieecjiigaebgblnaj

Не закрывать окно после закрытие последней вкладки — Don't Close Window With Last Tab

Назначить свою новую вкладку — newTab

Тёмные страницы — Dark Reader

Убрать рекламу:

  1. Установить блокировщик uBlock Origin

https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm

  1. Расширение Tampermonkey

https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

  1. И файл RU AdList

https://greasyfork.org/ru/scripts/19993-ru-adlist-js-fixes

5.6 FreeFileSync для синхронизации файлов и каталогов

Графический интерфейс программы sync.

Установка программы из репозитория сизиф:

(sudo tee /etc/apt/sources.list.d/sisyphus.list > /dev/null <<EOF

# ftp.altlinux.org (ALT Linux, Moscow)

# Sisyphus

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus x86_64 classic

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic

EOF

sudo apt-get update

sudo apt-get install -y freefilesync

sudo rm -f /etc/apt/sources.list.d/sisyphus.list

sudo apt-get update

)

5.7 Wine - программы для запуска приложений Windows

Wine(WINE Is Not an Emulator) – программа для запуска Win32 приложений в Линуксе :).

sudo apt-get install -y wine-stable winetricks

Обратите внимание. Если у вас 64 битная система, то для корректной работы 32-х битных программ (а игры в большинстве именно такие), необходимо сконфигурировать Wine на 32-х битный префикс:

rm -r ~/.wine

WINEARCH=win32 WINEPREFIX=~/.wine winecfg

Откроется окно настроек. Можете оставить всё как есть. Хотя. Выбрать вкладку «Графика» и отметить «Эмулировать виртуальый рабочий стол» и далее добавлять на него ярлыки для быстрого запуска необходимых программ.

Установка *.msi:

wine msiexec /i %filename%

6 Резервное копирование системы

6.1 Timeshift - автоматическое создание резервных копий системы

В настройках программы надо отметить папку /root/ — копировать все файлы, /home/ — копировать все файлы.

(echo "Timeshift - резервное копирование системы"

FILE="/etc/timeshift/timeshift.json"

read -r -d '' SETTINGS_NEW << 'EOF'

# Parametr Action Value

# Программа запущена не в первый раз

"do_first_run" = "false"

# Включить добавление дисков btrfs

"include_btrfs_home_for_backup" = "false"

"include_btrfs_home_for_restore" = "false"

# Переодичность резервного архивирование - ежемесечная

"schedule_monthly" = "true"

# Формат даты

"date_format" = "%Y-%m-%d %H:%M:%S"

# Каталоги, включённые для резервного архивирования

"exclude" = ["+ /root/**", "+ /home/**", "+ /home/user/**"]

EOF

sudo killall -q timeshift-gtk

if [ ! -f "$FILE" ]; then

sudo cp -f /etc/timeshift/default.json "$FILE" 2> /dev/null

fi

CONTENT=$(cat "$FILE")

BACKUP_UUID=$(echo "$CONTENT" | jq '. | getpath (["backup_device_uuid"])' | sed 's/"//g')

if [ -z "$BACKUP_UUID" ]; then

DISK_LIST=$(lsblk -A -r -n -o UUID,HOTPLUG,MOUNTPOINT,FSTYPE,LABEL)

SYSTEM_LABEL=$(echo "$DISK_LIST" | sed -n 's/^\([^\ ]*\ \)\{2\}\/\ [^\ ]*\ \(.*\)/\2/p')

DISK_LIST=$(echo "$DISK_LIST" | sed -n '{

# Убрать USB-накопители

/^[[:graph:]]*\ 1}/d

# Убрать корневой раздел диска

/^\([[:graph:]]* \)\{2\}\/\ /d

# Убрать разделы дисков с файловой системой, отличной от "ext4", "btrfs"

/^\([[:graph:]]* \)\{3\}\(ext4\|btrfs\)/!d

# Убрать разделы дисков с пустой меткой файловой системами

/^\([[:graph:]]* \)\{4\}$/d

# Убрать колонки HOTPLUG, MOUNTPOINT, FSTYPE

s/^\([[:graph:]]* \)\([[:graph:]]* \)\{3\}\(.*\)/\1 \3/p

}')

for LABEL_SIMBOL in "_" "-" "." ""; do

for LABEL_BACKUP in "BACKUP" "BACK" "BAK"; do

while IFS=" " read -r DISK_UUID DISK_LABEL; do

# Есть разделительный сивол в метки файловой системы BACKUP

if { [ -n "$LABEL_SIMBOL" ] &&

{

{

# Начало метки файловой системы раздела BACKUP

# совпадает с меткой файловой системы SYSTEM

[ -z "${DISK_LABEL##"$SYSTEM_LABEL"*}" ] &&

# Полная метка файловой системы раздела BACKUP состоит из

# метки файловой системы SYSTEM, разделительного символа и слова BACKUP, либо BACK, либо BAK

[ "${DISK_LABEL^^}" == "${SYSTEM_LABEL^^}${LABEL_SIMBOL}${LABEL_BACKUP}" ]

} || {

# Окончание метки файловой системы раздела BACKUP

# совпадает с меткой файловой системы SYSTEM

[ -z "${DISK_LABEL%%*"$SYSTEM_LABEL"}" ] &&

# Полная метка файловой системы раздела BACKUP состоит из

# слова BACKUP, либо BACK, либо BAK, разделительного символа и метки файловой системы SYSTEM

[ "${DISK_LABEL^^}" == "${LABEL_BACKUP}${LABEL_SIMBOL}${SYSTEM_LABEL^^}" ]

}

} || {

# Отсутствует разделительный сивол в метки файловой системы BACKUP

[ -z "$LABEL_SIMBOL" ] &&

# Метка файловой системы раздела BACKUP соответсвует слову BACKUP, либо BACK, либо BAK

[ "${DISK_LABEL^^}" == "${LABEL_BACKUP}" ]

}

}; then

SETTINGS_NEW+=$'\n'"# Диск для резевного архивирования"

SETTINGS_NEW+=$'\n'"\"backup_device_uuid\" = \"$DISK_UUID\""

break 3

fi

done <<< "$DISK_LIST"; done; done

fi

while IFS="" read -r LINE || [ -n "$LINE" ]; do

if [ "${LINE:0:1}" == "#" ]; then

continue

fi

IFS=" " read -r PARAMETER OPERATOR VALUE <<< "$LINE"

if [ "$OPERATOR" == "=" ]; then

CONTENT=$(echo "$CONTENT" | jq -S '.

| setpath (['"$PARAMETER"']; '"$VALUE"')')

fi

done <<< "$SETTINGS_NEW"

echo "$CONTENT" | sudo tee "$FILE" > /dev/null

if [ $? -eq 0 ] && [ -n "$BACKUP_UUID" ]; then

echo "Запуск резервного копирования системы"

sudo timeshift --create

fi

)

6.2 Ручное резервное копирование системы в tar архив с помощью командной строки

Переходим к копированию системы. Но здесь важно исключить разделы /proc /lost+found /sys, как и сам архив /backup.tar.gz, кроме того, убираем и раздел /web. Если необходима идеально чистая резервная копия, то предварительно следует выполнить очистку логов в /var/log , и удалить кеш выбранных нами архивов apt-get clean.

sudo tar czf /backup.tar.gz --exclude=/backup.tar.gz --exclude=/media --exclude=/dev --exclude=/mnt --exclude=/proc --exclude=/sys --exclude=/tmp --exclude=/lost+found --exclude=/web /

Посмотрим ls -alh

-rw-r–r– 1 root root 607M Янв 7 13:28 backup.tar.gz

6.3 grsync - графическая оболочка для программы rsync

Для установки программы ввести команду в терминале:

sudo apt install grsync

7 Обслуживание системы

7.1 Система очень долго загружается

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

systemd-analyze blame

В выводе будут содержаться имена служб и устройств (с суффиксами .sevice и .device соответственно) и время, потраченное на их инициализацию. Вы можете отключить все долго инициализирующиеся сервисы, которыми вы не пользуетесь. Чаще всего среди таких служб можно обнаружить службу синхронизации времени по сети ntp.service. Для ее деактивации следует использовать следующую команду:

sudo systemctl disable ntp.service

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

Для того, чтобы снова активировать службу синхронизации времени по сети, достаточно выполнить следующую команду:

sudo systemctl enable ntp.service

Аналогичным образом может быть деактивирована и активирована любая системная служба.

8 Постарайся избежать ошибок!

Будьте особенно осторожны с внешними репозиториями пакетов ПО и с неофициальными файлами пакетов ПО с расширениями .deb и .rpm.

Будьте осторожны при работе с привилегиями пользователя root.

Проявляйте осторожность при установке дополнений, расширений, апплетов и десклетов.

Не активируйте репозиторий тестовых версий программного обеспечения.

Осторожно удаляй какие-либо приложения из стандартной поставки дистрибутива. Они могут иметь зависимости друг от друга.