Přizpůsobení konfigurace systému

Mnohé je obsaženo již v samotné v instalační distribuci Xubuntu. Uvádím zde jak pro variantu poskládání si Xubuntu z negafického Ubuntu serveru, tak i některá vylepšení.

 

Negrafické rozšíření

Podpora 32bit aplikací
sudo dpkg --add-architecture i386
Přidání repositorů
sudo add-apt-repository "deb http://archive.canonical.com/ `lsb_release -sc` partner"
sudo apt update
Aktualizace systému
sudo apt upgrade --allow-unauthenticated --auto-remove
sudo apt clean
Upgrade linuxového jádra a restart systému
sudo apt install --install-recommends linux-generic-hwe-`lsb_release -sr`
sudo reboot

 

Vrstva pro grafické zobrazení

Instalace X-serveru
sudo apt install xorg
Byl-li upgrade jádra, tak zohlednit i do X-server nadstavby „xorg“
sudo apt-get install xserver-xorg-hwe-`lsb_release -sr`
Instalace „desktop manageru“ správce přihlašovací obrazovky
sudo apt install lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

 

Xubuntu (20.04) nadstavba

Instalace „xfce“ prostředí (pro Xubuntu) a restart „desktop manageru“
sudo apt install xfce4
sudo systemctl restart lightdm.service
Doinstalace dalších „xfce“ doplňků
sudo apt install xfce4-goodies
Instalace aplikací, které jsou standardně i v iso instalačním médiu přímo Xubuntu distribuce
sudo apt install xubuntu-desktop
Doinstalace kodeků „třetích stran“ (přidání repositorů)
sudo apt-get install xubuntu-restricted-addons
Česká jazyková lokalizace aplikací
sudo apt install language-pack-cs language-pack-gnome-cs language-pack-kde-cs

 

 

Zavedení operačního systému

  • zobrazení menu k odchycení během 2 sec. ( GRUB_TIMEOUT=2GRUB_RECORDFAIL_TIMEOUT=2 )
  • možnost obrázku na pozadí menu ( /boot/grub/grub.png  přilinkovaný )
  • parametry průběhu zavedení ( quiet splash vmalloc=256M usbcore.autosuspend=-1 libahci.ignore_sss=1 raid=noautodetect )
/etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_RECORDFAIL_TIMEOUT=2
GRUB_TIMEOUT=2
GRUB_GFXPAYLOAD_LINUX="keep"
GRUB_VIDEO_BACKEND="vbe"
GRUB_GFXMODE="1024x768"
GRUB_BACKGROUND="/usr/share/plymouth/themes/xubuntu-logo/wallpaper.png"
GRUB_CMDLINE_LINUX_DEFAULT="usbcore.autosuspend=-1 quiet splash"
GRUB_CMDLINE_LINUX="vmalloc=256M libahci.ignore_sss=1"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Link na obrázek „wallpaper.png“ z Xubuntu a zavedení změn:

sudo update-grub

 

Parametry operačního systému

Potlačení automatického zasouvání DVD, zvýšení efektivity využití operační paměti. Uvedená změna je připsaná na konec konfiguračního souboru.

/etc/sysctl.conf
########################################
# blokace automatickeho zasouvani CD/DVD
#
dev.cdrom.autoclose = 0

#################################
# pouzij swap az pri 5% volne RAM
#
vm.swappiness = 5

 

Omezení velikosti journalu

Omezení velikosti journal logů na 32MB.

/etc/systemd/journald.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes

SystemMaxUse=32M
ForwardToSyslog=no
Aktivace změn
sudo systemctl daemon-reload
sudo journalctl --vacuum-size=32M

 

Dodatečné procedury startované při startu operačního systému

/etc/rc.local
#!/bin/sh -e
#
# rc.local
#

# pro potlaceni systemovych hlasek na konsole
# ```````````````````````````````````````````
dmesg -n 1

# pro odkladaci SWAP soubor
# `````````````````````````
#[ ! -f /swapfile ] && fallocate -l 2G /swapfile \
#        && chmod 600 /swapfile \
#       && mkswap -L SWAPFILE /swapfile
#swapon /swapfile

#####################################
# pro plynuly zapis na USB-FLASH disk
# ```````````````````````````````````
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes

###################################################
# pro potlaceni hlasek o predeslych padech aplikaci
# `````````````````````````````````````````````````
/bin/rm -rf /var/crash

exit 0
Od verze systému 18.04 se musí služba aktivovat
sudo chmod 750 /etc/rc.local
sudo systemctl enable rc-local.service 

 

Ošetření reaktivace monitoru

⇒ Ošetření problému neaktivního monitoru po jeho odpojení a připojení k počítači.

 

Procedury při přihlášení uživatele do systému

/etc/profile
if [ "$PS1" ]; then
  mesg n
  [ "`id -u`" -eq 0 ] && PS1='# ' || PS1='$ '
  [ "$BASH" ] && [ "$BASH" != "/bin/sh" ] && [ -f /etc/bash.bashrc ] && . /etc/bash.bashrc
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    [ -r $i ] && . $i
  done
  unset i
fi
/etc/bash.bashrc
[ -z "$PS1" ] && return

umask 022
shopt -s checkwinsize
shopt -s histappend
HISTCONTROL=ignoredups:ignorespace
HISTSIZE=4000
HISTFILESIZE=2000
 
if [ "${TERM:0:5}" = "xterm" -o "$TERM" = "linux" ]; then
 [ $UID -eq 0 ] && _X="31m" || _X="32m"
 PS1='${debian_chroot:+($debian_chroot)}\[\033[07;40;$_X\]\u@\h\[\033[00m\]:\[\033[22;34m\]\w\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

function command_not_found_handle {
 if [ -x /usr/lib/command-not-found ]; then
  /usr/lib/command-not-found -- "$1"; return $?
 else
  printf "%s: command not found\n" "$1" >&2; return 127
 fi
}
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

if [ -x /usr/bin/dircolors ]; then
 [ -f /etc/dircolors ] && eval "$(dircolors -b /etc/dircolors)" || eval "$(dircolors -b)"
 alias ls='ls --color=auto' 
 alias grep='grep --color=auto'
 alias fgrep='fgrep --color=auto'
 alias egrep='egrep --color=auto'
fi

alias update='sudo su -c "apt update; apt upgrade --allow-unauthenticated --auto-remove; apt clean"'
alias rm='rm -i'
alias ll='ls -lF --time-style=long-iso'
alias lll='ls -alF --time-style=long-iso'
alias la='ls -A'
alias l='ls -CF'
alias aliases='cat /etc/bash_aliases 2>/dev/null ;cat ~/.bash_aliases 2>/dev/null'
alias helpmenu='. ~/.helpmenu 2>/dev/null || . /etc/bash_helpmenu 2>/dev/null'
alias HELPMENU='helpmenu'

[ -f /etc/bash_aliases ] && . /etc/bash_aliases
[ ! -f ~/.helpmenu ] && [ -f /etc/bash_helpmenu ] && . /etc/bash_helpmenu
/etc/bash_helpmenu
#!/bin/bash
.Stat () { pgrep -fa "(^$1 |/$1 )" 2>/dev/null | grep -owe "$2" >/dev/null \
        && echo -e "\E[40m\E[32m\E[7mok\E[0m" || echo "\E[40m\E[31m\E[7m--\E[0m";}
clear
echo -e "=\E[7m helpmenu \E[0m=\E[7m aliases \E[0m=\E[7m cdadm \E[0m=\E[7m cdbk \E[0m"\
"=================\E[7m exit \E[0m=\E[7m reboot \E[0m=\E[7m poweroff \E[0m="
LANG=C sed '/^model name/!d' /proc/cpuinfo |awk -F: 'END {print "CPU\t" NR " cores #" $2}'
echo -ne "Net\t"; LANG=C netstat -ie |grep -B 1 -e "broadcast " \
  |sed 's/:.*//;s/        /\t/;s/inet //;s/ netmask /\//' |sed -z 's/\n//g'; echo ""
LANG=C free -m |sed ':a;N;$!ba;s/\n/ /g' \
  |awk '{printf "Mem\t( RAM=%sMB + SWAP=%sMB ) ", $8, $15}'
sed '/^\//!d' /proc/swaps |awk '{printf " %s ", $1} END {print ""}'
sed -n '/^tmpfs /{\/[dsr][eyu][vsn]/!p}' /etc/mtab \
  |awk '{printf "Mount\t%-7s %-14s %s\n", $3, "(ram+swap)", $2}'
sed -n '/^encfs /p' /etc/mtab |awk '{printf "Mount\t%-7s %-14s %s\n", $1, "(fuse)", $2}'
sed -n '/^\/dev\//p' /etc/mtab |awk '{printf "Mount\t%-7s %-14s %s\n", $3, $1, $2}'
sed -n '/ cifs \| nfs /p' /etc/mtab |awk '{printf "Mount\t%-7s %-33s %s\n", $3, $1, $2}'
lsb_release -d |sed "s/Description:/LINUX/" |tr '\n' '\t'; uname -rp
echo -e "\tsshd ______ `.Stat sshd`" \
        "\tsaned _____ `.Stat saned`" \
        "\tsmbd ______ `.Stat usr/sbin/smbd`" \
        "\tnmbd ______ `.Stat nmbd`\n" \
        "\tXorg: seat0 `.Stat Xorg "-seat seat0"`" \
        "\tXorg: seat1 `.Stat Xorg "-seat seat1"`" \
        "\tXorg: seat2 `.Stat Xorg "-seat seat2"`" \
        "\tlightdm ___ `.Stat lightdm`\n" \
        "\tx11vnc ____ `.Stat x11vnc`" \
        "\tteamviewerd `.Stat teamviewerd`" \
        "\tminidlna __ `.Stat minidlnad`" \
  "\tsendmail __ `.Stat sendmail:`"
echo -e \
'================================================================================
= sudo su - ; su - spravce                             - login jinam
= ifstat -aT ; iostat -m 1 ; htop ; netstat -twnplua   - monitorovani [Ctrl]+[c]
= df ; du -ms /adresar ; free -m                       - zobraz zaplneni
= sudo systemctl { start | stop | restart | enable | disable | status } sluzba
================================================================================'
#[ -z "$(sed -n '/(F)\|_/p' /proc/mdstat)" ] \
#  && echo -en "\E[40m\E[32mRAID-ok\E[0m===" \
#  || echo -en "\E[40m\E[31m\E[7mRAID-ERROR\E[0m"
#echo '======================================================================'

/etc/skel/.profile

[ -z "$PS1" ] && return
[ "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
#export LANG=cs_CZ.utf8
export LANG=en_US.UTF8
/etc/skel/.bashrc
[ -z "$PS1" ] && return
[ -f ~/.bash_aliases ] && alias aliases='cat ~/.bash_aliases 2>/dev/null' && . ~/.bash_aliases
[ -f ~/.helpmenu ] && alias helpmenu='. ~/.helpmenu 2>/dev/null' && . ~/.helpmenu
[ "$TERM" = "linux" ] && loadkeys us 2>/dev/null >/dev/null
cp /etc/skel/.bashrc ~/

 

Grafická přihlašovací obrazovka

Uvedená změna je připsaná na konec konfiguračního souboru.

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
font-name = Ubuntu 15
xft-antialias = true
xft-dpi = 96
xft-hintstyle = slight
indicators = ~host;~spacer;~clock;~spacer;~power;
clock-format = %A    %d. %B %Y    %T
screensaver-timeout = 300

Potlačení zobrazení některých uživatelů v přihlašovací obrazovce

Pro existující login soubor
sudo sed -i 's/SystemAccount=false*/SystemAccount=true/' /var/lib/AccountsService/users/LoginJméno
Pro neexistující login soubor
sudo sh -c 'echo "[User]\nSystemAccount=true" >/var/lib/AccountsService/users/LoginJméno'

 

Aktuální „mono“ repository

 V případě problému stability některých aplikací nainstalovat:

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt upgrade

 

Akce vypnutí PC na událost stisku „Power“ tlačítka

/etc/acpi/events/powerbtn
event=button/power (PWR.||PBTN)
action=/sbin/poweroff


Soubory nastavení xfce4 oken

~/.themes
~/.themes/název/


Soubory nastavení xfce4 panelu

~/.config/xfce4/panel
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml

 Při obnově panelu nestačí jen vrátit soubory nastavení, ale i ukončit procesy běžící i po odhlášení. Nejlépe je ukončit a obnovit soubory přes správcovského uživatele.