Коммит 80490349 создал по автору golovin's avatar golovin
Просмотр файлов

2025-12-15

владелец 5f6235ab
#!/bin/bash
text="Скрытие сообщений об ошибках шины специальных возможностей" && echo "$text для пользователя '$USER'."
variable="export NO_AT_BRIDGE=1" && desktop_file="$HOME/.xprofile" # добавление строчки, если её ещё нет
grep -q "$variable" "$desktop_file" &>/dev/null || printf '%s\n' "# $text" "$variable" >>"$desktop_file"
#!/bin/bash
echo "ОТМЕНА: коды ANSI искажают прокрутку истории!" && exit 0
echo "Коды ANSI искажают прокрутку истории: ОТМЕНА" && exit 0
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
green="\e[32m" && magenta="\e[35m" && norm="\e[0m"
echo "Зелёная строка приглашения для обычного пользователя."
......
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Удаление лишних категорий из ярлыка LibreOffice Math." # чтобы в меню не загораживали !
desktop_file="$(readlink -f "/usr/share/applications/libreoffice-math.desktop")" && categories="Education;Science"
grep -q "$categories" "$desktop_file" && sed -i "s|;$categories;|;|" "$desktop_file" || echo "Категории не обнаружены."
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Настройка графической сессии LightDM и экрана приветствия."
function lightdm_conf { sed -i "s|^.*$1=.*\$|$1=$2|" "/etc/lightdm/lightdm.conf"; }
# отображать список пользователей # debian
lightdm_conf "greeter-hide-users" "false"
# включать NumLock, только для графической сессии
lightdm_conf "greeter-setup-script" "/usr/bin/numlockx on"
# оформление экрана приветствия
cat >"/etc/lightdm/lightdm-gtk-greeter.conf" <<\GREETER
[greeter]
theme-name = Arc-Lighter
icon-theme-name = Papirus-Light
background = /usr/share/backgrounds/xfce/xfce-blue.jpg
user-background = false
hide-user-image = true
clock-format = %a %d, %H:%M
indicators = ~host;~spacer;~spacer;~clock;~spacer;~spacer;~language;~session;~a11y;~power
GREETER
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Создание конфигурационного файла политики доступа для pkexec dbus-launch."
path="$(command -v dbus-launch 2>/dev/null || echo "dbus-launch")"
cat >"/usr/share/polkit-1/actions/custom.user.policy" <<POLICY
<policyconfig>
<vendor>custom.user.policy</vendor>
<icon_name>security-high</icon_name>
<action id='$path'>
<description>Выполнение от суперпользователя</description>
<message>Требуется авторизация для выполнения от суперпользователя</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key='org.freedesktop.policykit.exec.path'>$path</annotate>
<annotate key='org.freedesktop.policykit.exec.allow_gui'>true</annotate>
</action>
</policyconfig>"
POLICY
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Создание файла политики доступа для pkexec."
# список исполняемых файлов с полными путями к ним
readarray -t list 2>/dev/null <"pkexec.list" || exit 1
# список установленных приложений
list+=(gnome-system-monitor)
list+=(xfce4-taskmanager)
list+=(xfce4-terminal)
list+=(gnome-disks)
list+=(dbus-launch)
list+=(mousepad)
list+=(baobab)
list+=(thunar)
list+=(btop)
list+=(htop)
# политика доступа
str+="<policyconfig>\n"
str+="<vendor>custom.user.policy</vendor>\n"
str+="<icon_name>security-high</icon_name>\n"
for app in "${list[@]}"; do
# полный путь получаем либо из системы, либо из списка
path="$(command -v "$app" 2>/dev/null || echo "$app")"
str+="<action id='$path'>\n"
str+=" <description>Выполнение от суперпользователя</description>\n"
str+=" <message>Для выполнения '$app' требуется авторизация</message>\n"
str+=" <defaults>\n"
str+=" <allow_any>no</allow_any>\n"
str+=" <allow_inactive>auth_admin</allow_inactive>\n"
str+=" <allow_active>auth_admin</allow_active>\n"
str+=" </defaults>\n"
str+=" <annotate key='org.freedesktop.policykit.exec.path'>$path</annotate>\n"
str+=" <annotate key='org.freedesktop.policykit.exec.allow_gui'>true</annotate>\n"
str+="</action>\n"
done
str+="</policyconfig>"
# сохранение в файл
echo -e "$str" >"/usr/share/polkit-1/actions/custom.user.policy"
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; } # ZAP Group Australia; Lighter, 512 glyphs, 8x16
echo "Установка файла шрифта для консоли." && PS3="Выбор: " && select os in Arch Fedora Oracle Void; do
case "$REPLY" in [1-3]) conf="vconsole" ;; 4) conf="rc" ;; *) echo "ОТМЕНА" && exit 0 ;; esac && break
done && echo "Операционная система: $os" && echo "Файл конфигурации: /etc/$conf.conf" # 2024 version 2.4
#------------------------------------------------------------------------------------------------------;
PS3="" && dir="/usr/local/consolefonts" && mkdir -vp "$dir" && font16="zap-ext-light16.psf.gz" && FONT="
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" # # # # # # #
#------------------------------------------------------------------------------------------------------;
printf '%s\n' "Изменение шрифта для текущей сессии и изменение строчки со шрифтом в файле конфигурации."
echo "Декодирование файла: ${dir}/${font16}" && echo "$FONT" | basenc --base64 -i -d >"${dir}/${font16}"
setfont -v "${dir}/${font16}" && sed -Ei "s|^.*FONT=.*\$|FONT=\"${dir}/${font16}\"|" "/etc/${conf}.conf"
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; } # # # ZAP Group Australia; VGA, 512 glyphs, 8x16
echo "Установка файла шрифта для консоли." && PS3="Выбор: " && select os in Arch Fedora Oracle Void; do
case "$REPLY" in [1-3]) conf="vconsole" ;; 4) conf="rc" ;; *) echo "ОТМЕНА" && exit 0 ;; esac && break
done && echo "Операционная система: $os" && echo "Файл конфигурации: /etc/$conf.conf" # 2024 version 2.4
#------------------------------------------------------------------------------------------------------;
PS3="" && dir="/usr/local/consolefonts" && mkdir -v -p "$dir" && font16="zap-ext-vga16.psf.gz" && FONT="
H4sICIOuvGUCA3phcC1leHQtdmdhMTYucHNmAH2ZC3hU1Z3AT2auI9ppHHzgYGIyAgMqFgeDYcQhKD7roxUVH1D1iji+rkitxrTcDi7b
su5+/XaV7rrLult1W9pqrVprHyjoSHSsOgZqazZtaGRfobtrLZUKaRvv3d+5z3OuYU++39zzP+/H/7z+6TbSOSFq/Rs37t292929uyYC
t3a0iusPpEzWyZccsx7GZvMls5TPijA5/gxhkSxs34WiyJVtxy7nfMHctaJq5UvVgQcXZTKxbA48lMl2Iu8qreh+V4nPSxd9hLAscSCX
zcg6W9tIWfPSD632C/ClvJ/Kl2uRLMS2huzS8EO+9LvlS5dMVPrwsFBGgP7HDon++46B61KzITcnbG0yIpmRBlKHVRaV6rb6SKNRXeCH
E9LblM7ONvtkMlHxu1eJspZV2W40zHI202jY/vh4QYQosubylYosUATjQ7Nm6Aksy7E8/MnN2YNv7bCnPDho53LqeDbWB42xrHLvTtrb
G3Yrp89avuS5cETxeC4aUdllp2xpQ1OLZ08ZrzhHbYJ+RTlSUl3N+r3R+DQGB/kJBiNf7vPHsxbG+8kbTiRnKplMJkyfba9YTYcGd/iy
U6/Xx5X4sonciMt3yO/3Oa7fVuKlv0b+bJ/edKXHgRz0NxMsyIzae2UAzGCBmlH5WWV+vfpGRkZ21u1wtVqNhiMb5MvjaIAt94NxX5bq
iNtWDfRrzKp6zhoL+lddcXPfzeaKqqPJprlHya/os6zJqy6oL9DmSH87PG1Af4LxYG+y+vqodNSX95iei+rr3+26w/3SBeWP7nNGBuLy
vbFWxtvrnxm3L4gfHLGzrVG87ONocj35sju8UWtvI1F+v++qlbwiDw+71WooE5WvVMP2+mnj8tz+9XLyXup3g/EpBS5a7/fWvSlOBfHZ
wFXC2TzghukE2pEM78va0XoVu0yzz5vieLOwGyhA2L92arKacXov3onjy9ZKc48yvjh1/5LlW73VeHzRS23/4hRozXiu6qkc6X0FGFU3
O23/G3WHpYvknb6GKu1T5ieKt6Mmhu0Ll/TO3qrW/mD/DNZLqTQup6O7PYr3sivjoc2/L0sFiGUiK9F5G6pQLZMNl1RT7qeBfrfS1dWy
v63hthc5L0DGyTT51UFndk64x+ejzUGECz7YjTUZ/dFkWZwmW3p82SrntHix6PZm02U43tye3D/k+SPrd/wNwwnrV2VZvyrL+lRZaq96
/sn8qizza+cjaqCfl3L/2hftX3Qv2jDC8bGV9SzLV2VZvirLAjTZSsR782spq3LhTdVVNRbA6Jawvkaivkaivkai/GT6YAOphPuj7Wt3
oL99zMVQk/Te7ePxpfqft/5k5kqsr5zwO3bs4HwPl7O3nsPzoKPLHDfHTLOrQ9nPauEJjTr4G2bYXrl20A8rXEAk0NdTZfHGTY8+umnj
Yr/9FcvqSR7n3daQ1a1tZJlMRrlJVehvpRoWt3nT5k2L480hceeR15OPXhVk62tBfL5ka3tjWTmZZfP9Dfr6cH/270y4NaZ3Z17LTrSm
TboJLyOy/+r6zpfVncxrHw3UG03vraHosv5ms7ldrq+18fk/PPzO0HAt1HddH7h3sFuZqj5yyCi3qPxHthQhOhPyWCJZZyL/WELuTKQf
S5TnJuKT7Yni75um/7kTHGvuhIfd/5fSjXzdCRfsYaX5muxk9mmp5pcWafn3ZRxNnh/lD+P3aeW5Yr8Wvz/Rnv1RvJtwci+v5RPvG+/2
qpw3+dLaknpfzmedbD6+HWrnvdxAVFluONp9gA1Oky09ngNAj5dZ2tagj6uS9wfv/eFvsPF9wd9gY9nfYJX7hKXL3gGm7OfeAabI3gGm
7vdWQp6XPynTI9drJeqfel+IDwC1fbEcHwC20A8Atb3a/u/tLeoDZuFNnAD+/u/Vp94fZH2qLOvT7heW9ZH02v2B+5Kt3m+iA8OPz6gP
rejZeYBnlbzbVLsmq3JXtXmftqaa23/jjr8jGxROdtbJOWZdvW+Pc2SE5xHvA1N9X0jZVO6LHAC+cxrrpDw4OGiXbX4Hw/LXy/fY+rB8
ejYw4uwb9c9vq6zLQvRUA9cI32OhUy5ftfj9lvPqil+3zdA5/o07TB+eQI3BwDkJ2U23eFvn00+XKnIpK++DvfK6ujd+z6jj0ddcn+mh
f+H7Z4Ckf5LpB4LNXl5V5QV8IL5fjUXvM1Zjoj/OM6WeLs9lwvuWP+Lh/WBoaGhElj8SHDY4R5Hj/KG6jXIfj99j0XA6ZYYslXFMU5lP
/37jT0hwv7f197GvInbU/0gl4vt3RdWHQCUiffCf6JWMet9S65MjosryvaC+JyIVieMb7znOYKOh3s/j+22sQvH5u0x7j8QapKmQE77Y
RKBAcfmq/kRyoD+eCkkNstX3xN5If3wV0saP8ehRx2PA06CBuL2eBg2o+/NYvN+W9f2EpRu81zKZdlWB4vnp8zRoJL6veBoUyHH+aL9K
jr+iP565xlH2A0+BEvMXmuF4EsdmytC6JDSDoVnX7RtmfVHX3HmVeaW5XYt8WWr2oki/zbpujzDrPTcErseXhfZej+K7u++J6vfPm9ZA
G3Jl7nSyf/Fj1FH0P4qP9qd1wrbFujC901hRYk9eEcq5Dfr+FLw2LOu9aAR61fMiK8+zel80v8jBeeerYDavttdrfzPxftHKk5dtzz5g
MUfB/FUtq1IOriSVailv6/m1+s+1ufyaXAhsT5+U97rfHll+TTmfoyd/68Trd1eplGcEqw31PV2lPbnwdVAyK3p9lfB8NJX7SRztbbGR
/UnKifqT43NRYr3L8fAmNWjShkS85S1wK3w86P2zEuOf1e8jUk7Gq+XZQnuPs5oT7/N4PWSpkikLDX7j0XtavtiD88R7TyuyND97D/ro
vMlpMq+NwEDov6+J12Ta5xsIA/sd5Wky6TU5Migi50vtcfpgfwjbNxLYF4P2KfZGxf7IMgre04q9s+oG+lYNr3OavaAWGShDfYxk2Z5J
7d2exXJCeyX1yfHco9gru9sn7dHtl4o907t6SblvlxmPT2TgjK57gcEiGC/NfqHZP73yYjmT9cbfVu0HXOc0e0WoD+H+K+sb9w2io0F9
oYF0VLGn+vbSoL9yuWczqr0klkslodsHVPsq+ak/NLCG+qXJmv3V618s57PlML4Wppf2Hc1+YutydNoFctm7QOrjo9t3Y3tvySx79ijV
vuvbY2JZ9l+z/3rv81j288fvdT99LMvy3MZXInuDHJ+E/cFOvM8++h4LZLneRfZd3b4bTFji/aXYe0t6vG+/iWTTzGr2YKIT9uFsT8Je
bOvvu5L+/vPLV+Jj+7I33tJcuVKxL8v2avZlUmj/L9Nl1usu3f4sDZza+q7pcmyflutdGK1tB7RPe/ofGahD/S3r+4div/b0V8odfVp9
qj1bzo/6PpXjk7Rvh3L4dIvO03ahrHhb6AvejupT7eFefYr926svYQ8PZVmfrz+xPc/XH8W+V9LjVXu6zJ+ZotnTqS6n29cVe7vXv1j2
1zuyI0PC9Mynbo+3E+/nsiaXE7Icn6Q9P5Cl/qkLXiQWvEgseJFY8OG/O7X7dWzg9WXvfq3a/+WJp8pJ82XiP6NWOXegf/9I/f3Qdd16
2nXNaa67Em6ER4pPFJ8sjhedYtvsVuRGsTqzOHvWbNfdIlx3K7wA34Rvw49hQ4vrFgquexyUYNpxrjuT72mwANoLnfweW3gv5bod+BbP
cd0z5wxIiZydUIK5cC1cJ0sTjwhRaCmkCumCUTiokCkcXJhUOKRwaOHkwnWyJmqdBtNhBhRhJswSWyj1eHwnwIniU4Wj6cFs/CeJ7am7
08eQ9xPiuyJXmFw4vHBE4azC4cTPETMIP1mcXTgKiR3WnQunQBfMg1OhG+ZDGU6DBaKb1Kfjq8BCcQa96sG3CM6AM0XOeICxXSwONzbw
PUscZ/yB79nEnSOOMv4O/7n4z4PzxbHG3yN/UmSMurHd2Ij/AjHJWMv3QnGM8Y/pExnTi0h5sWg3/in9R8I/Jf6Z30+LDuNhvpeIgvEo
3yXimINc91JSXiYOMlz3cjHN+AbhSwm5Aq4U7cRfJYrGtwi9WjxpbOK7TDzI73LiPyM+OMF1r8F3rXg51UilpzMjSKZ4I/XbzlMZp+tF
iXJXEHaDONN4n3wr8d8oTiW0iu8muBluEVcQcqu4ythLmtsIseB2WAV3iB7jRcJXizNI9VnRRqvuJPxzYinyXfjuhl64RxxLXJ84h/DP
i7P4/QKha8AW05mBL+KriZ2peic6UZg6bXsRnSbsJdgG/fCyeIt8r4jZjGJD/Bz/q4T+hP3bdV/D9zq8IVqQmvjehAHYLg42HqeNO0QO
nfwpIW/Bz+Dn8DYMilHy/Cu+IfgF/BKGYSf8CkbEfkp4R64S2vUo33+Br8MTjOUmObKU/S2+1/N9jO/j8B0ZD9+AJ+Ep8Rp6/bT4Jb/f
Q34Gvg9fJM8PxBZq+CHSj8RfpGcVXpk2F02sEbOZsOfgebgU+TLoa/kOqV8kRBSPLBxVeIr5TdGybPF2fnPFVfweWVzNb754B7/tMANO
gnlQgQfguek9tP95cm+BrXBJsYXwJcU0v5cXD+P3yuIR/C4rHs3vNcU2fs3idH5vKM7mt1rs4veW4un8WsUL+b1Pls0MfRXuhw2wi5b+
G/w7/Af8p/gZI/5f+EbF2/h24/u1uATff+P7H/hfsQTpXXy/gffgt+JKQvbg+x28D3vh9/AB7BO7id2Pbwz+AH+EP8E4fAiOGEtLY7vr
Pis2p15P3ZX+sPMU2fvU1pTTmS+04Z9a2Nr5IhrYjb+r8FzqV8zUFNr/LPJWmGysY/SPML5KSUdS3xQ4GvJGLyFT8bVBp/FI+jB0ejr+
GcY3iZmJbxYcDyfAiTAbToJPwBw4GQxohRSk4RA4FD4GWaPU4bqH4bsfPg5z4RTognnQDfOhbNxDnafhWwCnQwUWwiJYDGcbb6f76Nu5
+M+D8+GTcAFcCBfBxcY+uT/h+7TcgYwPkK7FdylcBlfDMlhuzGJMPoPvOngArpGrO/0C4/gl8nwZ1sN98JfwV/AV+Gv4G7gf/jadYbz+
If1wy+/Tdxq/Jv9D6XNo39eI+3r6sZbJxH4b/2PpmczGE/i+C0/CU/A0fA+ege/Ds+mHGakfpJdTwg+Rf5T+Gi38Mb7N6VsIey5dRn4e
eSu8AC/BNuiHl+EVaMCr8BN4DV6HN6AJb8IACMpJteyQMyd91JrhOwkOhaz8EtbK93CYAsdAHjoIb5dnJEyDGTATjocTYQ7Mg244DRbC
6XAmnEHes/ieB+fABXARXAJXEHc536ukH5bJuQGT8Dx9v5XvStkO/Cv4VuFmuBUsWAWr4U64l7Tr4C78X+L7PvTi/zysgRZIt/yU3h8k
fcQezPcQ+Bh8XH6lxvKdLFcNHA1tMFXeGIg7lu9xMB2KcALMhpPhVJgPC6AHKrBYjgD5zuZ7PpwLF8LFsASuJG4p36ulH5bDNXA94VPp
8W18b5RtwH8D35vgFrgNboc74LPwOfgz0v453I3/y3z3wj34vwA2DFHGL+BVGIb/AzyTWseKKQAA" # # # # # # # # # # # # #
#------------------------------------------------------------------------------------------------------;
printf '%s\n' "Изменение шрифта для текущей сессии и изменение строчки со шрифтом в файле конфигурации."
echo "Декодирование файла: ${dir}/${font16}" && echo "$FONT" | basenc --base64 -i -d >"${dir}/${font16}"
setfont -v "${dir}/${font16}" && sed -Ei "s|^.*FONT=.*\$|FONT=\"${dir}/${font16}\"|" "/etc/${conf}.conf"
#!/bin/bash
echo "Отключение ждущего режима, спящего режима и гибернации." && PS3="Выбор: "
select os in Arch Debian Fedora Oracle Void; do
case "$REPLY" in
[1-4]) conf="/etc/systemd/sleep.conf" ;;
5) conf="/etc/elogind/sleep.conf" ;;
*) echo "Некорректный выбор: ОТМЕНА" && exit 0 ;;
esac && break
done
echo "Операционная система: $os" && echo "Изменение настроек: $conf"
function sleep_config { sudo sed -i "s|^.*$1=.*\$|$1=$2|" "$conf"; }
sleep_config "AllowSuspend" "no"
sleep_config "AllowHibernation" "no"
sleep_config "AllowSuspendThenHibernate" "no"
sleep_config "AllowHybridSleep" "no"
#!/bin/bash
echo "Создание каталогов пользователя '$(id -nu $UID)' и копирование файла с указателями."
folders=(Desktop Downloads Templates Public Documents Music Pictures Videos .config)
user_home="$(getent passwd "$UID" | cut -d':' -f6)"
for folder in "${folders[@]}"; do mkdir -pv "$user_home/$folder"; done
cat >"$user_home/.config/user-dirs.dirs" <<USERDIRS
# СОБСТВЕННЫЕ КАТАЛОГИ ПОЛЬЗОВАТЕЛЯ
XDG_DESKTOP_DIR="$user_home/${folders[0]}"
XDG_DOWNLOAD_DIR="$user_home/${folders[1]}"
XDG_TEMPLATES_DIR="$user_home/${folders[2]}"
XDG_PUBLICSHARE_DIR="$user_home/${folders[3]}"
XDG_DOCUMENTS_DIR="$user_home/${folders[4]}"
XDG_MUSIC_DIR="$user_home/${folders[5]}"
XDG_PICTURES_DIR="$user_home/${folders[6]}"
XDG_VIDEOS_DIR="$user_home/${folders[7]}"
USERDIRS
#!/bin/bash
echo "Создание каталогов пользователя '$USER' и копирование файла с указателями."
folders=(Desktop Downloads Templates Public Documents Music Pictures Videos .config)
for folder in "${folders[@]}"; do mkdir -pv "$HOME/$folder"; done
cat >"$HOME/.config/user-dirs.dirs" <<USERDIRS
# СОБСТВЕННЫЕ КАТАЛОГИ ПОЛЬЗОВАТЕЛЯ
XDG_DESKTOP_DIR="\$HOME/${folders[0]}"
XDG_DOWNLOAD_DIR="\$HOME/${folders[1]}"
XDG_TEMPLATES_DIR="\$HOME/${folders[2]}"
XDG_PUBLICSHARE_DIR="\$HOME/${folders[3]}"
XDG_DOCUMENTS_DIR="\$HOME/${folders[4]}"
XDG_MUSIC_DIR="\$HOME/${folders[5]}"
XDG_PICTURES_DIR="\$HOME/${folders[6]}"
XDG_VIDEOS_DIR="\$HOME/${folders[7]}"
USERDIRS
#!/bin/bash
echo "Скрытие кнопок в диалоговом окне выхода из Xfce для пользователя '$USER'."
echo "Удаление ждущего режима, спящего режима, гибернации и смены пользователя."
xfconf-query -c xfce4-session -np '/shutdown/ShowSuspend' -t 'bool' -s 'false'
xfconf-query -c xfce4-session -np '/shutdown/ShowHibernate' -t 'bool' -s 'false'
xfconf-query -c xfce4-session -np '/shutdown/ShowHybridSleep' -t 'bool' -s 'false'
xfconf-query -c xfce4-session -np '/shutdown/ShowSwitchUser' -t 'bool' -s 'false'
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
package="arch-install-scripts" && export FONT="ruscii_8x16"
#-----------------------------------------------------------------------------------------------;
pacman -Q "$package" >/dev/null || { echo "ОШИБКА: пакет '$package' не найден" >&2 && ERROR=1; }
setfont "$FONT" || { echo "ОШИБКА: шрифт с русскими буквами '$FONT' не найден" >&2 && ERROR=1; }
[ "$ERROR" == 1 ] && { echo "Скрипт следует выполнять в операционной системе Arch." >&2 && exit 1; }
export FONT="ruscii_8x16" && if ! setfont "$FONT"; then echo "MISSING RUS FONT" >&2 && exit 1; fi
#-----------------------------------------------------------------------------------------------;
declare -A COLOR=([BW]="30;47" [R]=31 [BR]="30;41" [G]=32 [Y]=33 [BY]="30;43" [M]=35 [N]=0)
function print_color { printf "\e[${COLOR[$1]}m%s\e[${COLOR[N]}m\n" "$2"; } && TARGET="/mnt"
#-----------------------------------------------------------------------------------------------;
title="Установка базовой системы Arch Linux EFI и вспомогательных пакетов." && version="2025-12-09"
error_message="Не обнаружены программы из пакета arch-install-scripts операционной системы Arch."
printf '%s\n' pacstrap genfstab arch-chroot | while read -r program; do
command -v "$program" >/dev/null || { print_color R "$error_message" >&2 && exit 1; }
done
#-----------------------------------------------------------------------------------------------;
title="Установка базовой системы Arch Linux EFI и вспомогательных пакетов." && version="2025-12-14"
printf '%s %s\n' "$(print_color M "$title")" "$(print_color BR "$version")" # (c) Геннадий Головин
#-----------------------------------------------------------------------------------------------;
print_color G "Для установки требуется смонтировать как минимум два раздела в каталог '$TARGET'."
......@@ -57,7 +58,7 @@ while true; do
printf '%s%s %s\n' "$dm_prompt" "$partition" "$(print_color R "$error_message")" && exit 1
fi
text="файловая система:" && dm_text+="$partition $text " && dm_prompt+="$partition $(print_color Y "$text") "
dropdown_menu "$dm_text" "$dm_prompt" BY ext4 fat32 swap && system="$dm_value"
dropdown_menu "$dm_text" "$dm_prompt" BY ext2 ext4 fat32 swap && system="$dm_value"
printf '\r\e[J' && [ "$system" == "ОТМЕНА" ] && continue
text="точка монтирования:" && dm_text+="$system $text " && dm_prompt+="$system $(print_color Y "$text") "
if [ "$system" == "swap" ]; then point="[SWAP]"; else
......@@ -72,6 +73,7 @@ while true; do
printf '%s%s\n' "$dm_prompt" "$format"
[ "$format" == "ДА" ] && case "$system" in
"swap") p_actions+=("mkswap --verbose $partition") ;;
"ext2") p_actions+=("mkfs.ext2 -v $partition") ;;
"ext4") p_actions+=("mkfs.ext4 -v $partition") ;;
"fat32") p_actions+=("mkfs.fat -v -F32 $partition") ;;
esac
......@@ -82,8 +84,8 @@ while true; do
done
#-----------------------------------------------------------------------------------------------;
# проверка корректности введённых данных, корневой и EFI разделы должны быть указаны обязательно
printf '%s\n' "${p_actions[@]}" | grep -qE '\s*/mnt[/]{,1}\s*$' || p_errors+=("корневой раздел (/)")
printf '%s\n' "${p_actions[@]}" | grep -qE '\s*/mnt/boot/efi[/]{,1}\s*$' || p_errors+=("раздел EFI (/boot/efi)")
printf '%s\n' "${p_actions[@]}" | grep -qE '\s+/mnt[/]{,1}\s*$' || p_errors+=("корневой раздел (/)")
printf '%s\n' "${p_actions[@]}" | grep -qE '\s+/mnt/boot/efi[/]{,1}\s*$' || p_errors+=("раздел EFI (/boot/efi)")
((${#p_errors[@]} > 0)) && { for p in "${p_errors[@]}"; do print_color R "ОШИБКА: не указан $p."; done && exit 1; }
#-----------------------------------------------------------------------------------------------;
print_color G "Название компьютера, имя пользователя и пароли для учётных записей не могут быть"
......@@ -102,7 +104,7 @@ function enter_the_name {
}
#-----------------------------------------------------------------------------------------------;
enter_the_name "Название компьютера" "arch" && hostname="$the_name"
enter_the_name "Новый пользователь" "arch" && username="$the_name"
enter_the_name "Новый пользователь" "arch" && username="$the_name" && printf '\n\n\e[2A'
#-----------------------------------------------------------------------------------------------;
function enter_password_2times {
while true; do
......@@ -143,11 +145,12 @@ function scrolling_region {
for ((gap = $1, i = gap; i > 0; i--)); do printf " %02d \n" "$i" | awk '{t="########";print t$0t$0t$0t$0t}'; done
# сужение региона прокрутки от текущей позиции вверх на $1 строк и переопределение курсора в текущей позиции
printf "\e[%s;%sr\e[%sH" "$((cursor - gap))" "$cursor" "$cursor"
# запуск программы с большим количеством выходных сообщений в консоль
# запуск программы с большим количеством исходящих сообщений в консоль
}
#-----------------------------------------------------------------------------------------------;
print_color R "Установка базовой системы и вспомогательных пакетов в каталог '$TARGET'." && scrolling_region 20
pacstrap -K "$TARGET" base linux linux-firmware grub efibootmgr sudo networkmanager && scrolling_region
print_color R "Установка базовой системы и вспомогательных пакетов в каталог '$TARGET'."
base_install="pacstrap -K $TARGET base linux linux-firmware grub efibootmgr sudo networkmanager"
scrolling_region 20 && { bash -c "$base_install" || exit 1; } && scrolling_region
#-----------------------------------------------------------------------------------------------;
print_color Y "Создание таблицы fstab из точек монтирования внутри каталога '$TARGET'."
new_fstab="$TARGET/etc/fstab" && cat >"$new_fstab" <<FSTAB
......@@ -171,7 +174,7 @@ printf '%s\n' "LANG=$LANG" "LC_COLLATE=C" >"$TARGET/etc/locale.conf"
echo "Генерация файлов локализации." && arch-chroot "$TARGET" locale-gen
#-----------------------------------------------------------------------------------------------;
echo "Шрифт и раскладка клавиатуры в консоли. Переключение по ALT+SHIFT."
printf '%s\n' "FONT=$FONT" "KEYMAP=ruwin_alt_sh-UTF-8" >"$TARGET/etc/vconsole.conf"
printf '%s="%s"\n' "FONT" "$FONT" "KEYMAP" "ruwin_alt_sh-UTF-8" >"$TARGET/etc/vconsole.conf"
#-----------------------------------------------------------------------------------------------;
echo "Выполнение 'sudo' разрешено для группы 'wheel' со вводом пароля."
sed -i -E 's/#\s*(%wheel\s*ALL=\(ALL:ALL\)\s*ALL)\s*$/\1/' "$TARGET/etc/sudoers"
......
#!/bin/bash
[ "$UID" == 0 ] && { echo "Скрипт следует выполнять с правами пользователя." >&2 && exit 0; }
echo "Установка ПО для сборки статических сайтов на Arch."
accept="Установка пакетов для сборки статических сайтов на Arch."
cancel="Скрипт следует выполнять с правами обычного пользователя."
[ "$UID" == 0 ] && { echo "$cancel" >&2 && exit 0; } || echo "$accept"
sudo pacman -S --noconfirm ruby ruby-erb base-devel
gem_home="$(ruby -e 'puts Gem.user_dir' | sed "s|$HOME|\$HOME|")"
cat >>"$HOME/.bash_profile" <<JEKYLL
......
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Установка ядер Stable, Hardened, Longterm, Realtime, Zen на Arch."
for kernel in linux linux-hardened linux-lts linux-rt linux-zen; do
pacman -Sy --noconfirm --noprogressbar "$kernel" || continue
version="$(file -b "/boot/vmlinuz-$kernel" | cut -d' ' -f8)"
test -d "/usr/lib/modules/$version" || version="rolling"
echo "Установлено ядро операционной системы 'Linux $version'."
mv -f "/boot/vmlinuz-$kernel" "/boot/vmlinuz-$version"
mv -f "/boot/initramfs-$kernel.img" "/boot/initramfs-$version.img"
done
echo "Обновление конфигурации загрузочного меню GRUB."
grub-mkconfig -o /boot/grub/grub.cfg
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Установка Realtime kernel на Arch и обновление меню GRUB."
kernel="linux-rt" && pacman -Sy --noconfirm "$kernel"
version="$(file -b "$TARGET/boot/vmlinuz-$kernel" | cut -d' ' -f8)"
test -d "$TARGET/usr/lib/modules/$version" || version="rolling"
echo "Установлено ядро операционной системы 'Linux $version'."
mv -f "$TARGET/boot/vmlinuz-$kernel" "$TARGET/boot/vmlinuz-$version"
mv -f "$TARGET/boot/initramfs-$kernel.img" "$TARGET/boot/initramfs-$version.img"
echo "Обновление конфигурации загрузочного меню GRUB."
grub-mkconfig -o /boot/grub/grub.cfg
#!/bin/bash
[ "$UID" != 0 ] && { exec sudo bash "$0" && exit 0; }
echo "Установка Stable kernel на Arch и обновление меню GRUB."
kernel="linux" && pacman -Sy --noconfirm "$kernel"
version="$(file -b "$TARGET/boot/vmlinuz-$kernel" | cut -d' ' -f8)"
test -d "$TARGET/usr/lib/modules/$version" || version="rolling"
echo "Установлено ядро операционной системы 'Linux $version'."
mv -f "$TARGET/boot/vmlinuz-$kernel" "$TARGET/boot/vmlinuz-$version"
mv -f "$TARGET/boot/initramfs-$kernel.img" "$TARGET/boot/initramfs-$version.img"
echo "Обновление конфигурации загрузочного меню GRUB."
grub-mkconfig -o /boot/grub/grub.cfg
......@@ -7,5 +7,8 @@ sed -i -E 's|^.*(GRUB_DISABLE_OS_PROBER=).*$|\1false|' "$config"
echo "Сохранение последней выбранной строки в загрузочном меню GRUB."
sed -i -E 's|^.*(GRUB_SAVEDEFAULT).*$|\1=true|' "$config"
sed -i -E 's|^(GRUB_DEFAULT).*$|\1=saved|' "$config"
echo "Фирменная картинка для оригинальности и для узнаваемости."
logo="/usr/share/backgrounds/archlinux/wave.png"
sed -i -E "s|^.*(GRUB_BACKGROUND).*$|\1=$logo|" "$config"
echo "Обновление конфигурации загрузочного меню GRUB."
grub-mkconfig -o /boot/grub/grub.cfg
......@@ -9,20 +9,6 @@ pkg_list+=(lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings archlinux-wa
pkg_list+=(transmission-gtk chromium epiphany links network-manager-applet libreoffice)
pkg_list+=(numlockx) # установка пакетов и включение служб в автозагрузку
pacman -S --noconfirm "${pkg_list[@]}" && systemctl -q enable gpm lightdm
# вход в графическую сессию lightdm на 7 консоли
# вход в графическую сессию LightDM на 7 консоли
service="/etc/systemd/system/display-manager.service"
sed -i --follow-symlinks 's|tty1|tty7|g' "$service"
# включение NumLock по умолчанию для графической сессии
line="greeter-setup-script=" && conf="/etc/lightdm/lightdm.conf"
sed -i "s|#$line.*\$|$line/usr/bin/numlockx on|" "$conf"
# настройка экрана входа в систему
cat >"/etc/lightdm/lightdm-gtk-greeter.conf" <<\GREETER
[greeter]
theme-name = Arc-Lighter
icon-theme-name = Papirus-Light
background = /usr/share/backgrounds/archlinux/gritty.png
user-background = false
hide-user-image = true
clock-format = %a %d, %H:%M
indicators = ~host;~spacer;~spacer;~clock;~spacer;~spacer;~language;~session;~a11y;~power
GREETER
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать