Compare commits

1 Commits

Author SHA1 Message Date
66aff98afd wip3 2025-12-13 22:03:48 +08:00
21 changed files with 73 additions and 266 deletions

View File

@@ -18,7 +18,7 @@ for file in ./install/*; do
name=${name%.sh}
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
[ -z "$desc" ] && desc='<no description>'
echo -e "##${name}: ${desc}\n${name}:\n\t@${file} install\n" >> Makefile
echo -e "##${name}: ${desc}\n${name}:\n\t@${file}\n" >> Makefile
done;
cat << EOF >> Makefile
@@ -47,7 +47,7 @@ for file in ./upgrade/*; do
name=${name%.sh}
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
[ -z "$desc" ] && desc='<no description>'
echo -e "##${CHR_UPGRADE}${name}: ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file} upgrade\n" >> Makefile
echo -e "##${CHR_UPGRADE}${name}: ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file}\n" >> Makefile
done;
cat << EOF >> Makefile
@@ -62,7 +62,7 @@ for file in ./uninstall/*; do
name=${name%.sh}
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
[ -z "$desc" ] && desc='<no description>'
echo -e "##${CHR_UNINSTALL}${name}: ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file} remove\n" >> Makefile
echo -e "##${CHR_UNINSTALL}${name}: ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file}\n" >> Makefile
done;
cat << EOF >> Makefile

View File

@@ -32,10 +32,8 @@ install() {
echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile"
echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile"
echo
go version
go install github.com/go-delve/delve/cmd/dlv@latest
go install
echo "Finish!"
go version
}
remove() {

View File

@@ -1,69 +0,0 @@
#!/usr/bin/env bash
##makedesc: Install keyd
# https://github.com/rvaiya/keyd
set -eo pipefail
mkdir -p "$HOME/install"
install() {
echo
echo "==============================================="
echo "Installing keyd (latest)"
echo "==============================================="
echo
hash git || { echo "ERROR: git not installed" ; exit 1; }
cd "$HOME/install"
git clone --depth=1 --single-branch https://github.com/rvaiya/keyd.git "$HOME/install/keyd"
cd "$HOME/install/keyd"
make && sudo make install
sudo systemctl enable --now keyd
echo
echo "Finish!"
}
upgrade() {
echo
echo "==============================================="
echo "Upgrading keyd"
echo "==============================================="
echo
hash git || { echo "ERROR: git not installed" ; exit 1; }
[ -d "$HOME/install/keyd" ] || { echo "ERROR: repo not found: $HOME/install/keyd" ; exit 1; }
cd "$HOME/install/keyd"
make && sudo make install
sudo systemctl enable --now keyd
sudo usermod -aG keyd "$(whoami)"
echo
echo "Finish!"
}
restart() {
sudo systemctl restart keyd
}
reload() {
sudo systemctl reload keyd
}
remove() {
echo
echo "==============================================="
echo "Removing keyd"
echo "==============================================="
echo
sudo dpkg -r keyd
echo
echo "Finish!"
echo
}
case "$1" in
restart) restart ;;
reload) reload ;;
u|upgrade|update) upgrade ;;
r|remove|d|delete|p|purge) remove ;;
*) install ;;
esac

View File

@@ -19,7 +19,7 @@ download "https://dl.pstmn.io/download/latest/linux64" "$HOME/install/postman.ta
[Desktop Entry]
Name=Postman
Exec=$HOME/.local/bin/postman %U
Icon=$HOME/install/Postman/app/resources/app/assets/icon.png
Icon=$HOME/install/Postman/app/icons/icon_128x128.png
Categories=Development,Network
Terminal=false
Type=Application

View File

@@ -1,33 +0,0 @@
#!/bin/bash
mkdir -p ~/install/tilt ~/.local/bin
cd ~/install/tilt
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
chmod +x kubectl
cp ./kubectl ~/.local/bin/kubectl
################################################################################
CTLPTL_URL=$(curl -s "https://api.github.com/repos/tilt-dev/ctlptl/releases/latest" \
| jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
curl -fsSL "$CTLPTL_URL" | tar -xz -C ~/.local/bin ctlptl
# chmod +x ~/.local/bin/ctlptl
################################################################################
TILT_URL=$(curl -s "https://api.github.com/repos/tilt-dev/tilt/releases/latest" \
| jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
curl -fsSL "$TILT_URL" | tar -xz -C ~/.local/bin tilt
# chmod +x ~/.local/bin/tilt
cd -
echo "Version of ctlptl = $(ctlptl version)"
echo "Version of tilt = $(tilt version)"
echo "Version of kubectl:"
kubectl version

View File

@@ -1 +0,0 @@
AFRAID_TOKEN=6qfkK3VmHf7t4PwvTUJtxNEQ

View File

@@ -1,25 +0,0 @@
#!/bin/bash
# shellcheck disable=SC1091
thisdir="$( dirname "$(readlink -e -- "${BASH_SOURCE[0]}")")"
log() {
timestamp="$(date +'%Y-%m-%d %H:%M:%S')"
datestamp="$(date +'%Y-%m-%d')"
[ ! -d "$thisdir/log" ] && mkdir "$thisdir/log"
echo "[$timestamp] $*" >> "$thisdir/log/$datestamp.log"
}
[ ! -f "$thisdir/.env" ] && {
log "ERROR: .env not exists"
exit 1
}
source "$thisdir/.env"
[ -z "$AFRAID_TOKEN" ] && {
log "ERROR: env var AFRAID_TOKEN not specified"
exit 1
}
result=$(curl -s "http://sync.afraid.org/u/${AFRAID_TOKEN}/")
log "$result"

11
scripts/display-rotate.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# X11:
# xrandr --listactivemonitors
# xrandr --output $OUTPUT --rotate (left|right|normal|...)
# Wayland KDE: https://www.reddit.com/r/kde/comments/11vrbwc/how_do_i_rotate_the_screen_on_kde_with_wayland/
# kscreen-doctor --outputs
OUTPUT='HDMI-A-1'
[ "$1" ] && DIRECTION="$1" || DIRECTION="normal" # (left|right|normal|inverted)
kscreen-doctor "output.$OUTPUT.rotation.$DIRECTION"

57
scripts/free-space.sh Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
# Очистка места на диске
# https://gist.github.com/anthonyaxenov/02c00c965be4eb5bb163a153abdf4c2b
# https://itsfoss.com/free-up-space-ubuntu-linux/
echo
echo
df -hx tmpfs
echo
echo
echo "[1/5] Removing apt caches and unused packages"
echo
sudo apt autoremove --purge
sudo apt autoclean
sudo apt clean
echo
echo "[2/5] Removing old system logs"
echo
sudo journalctl --vacuum-time=1d
sudo rm -rf /var/log/journal/user-*@*
sudo rm -rf /var/log/journal/system*@*
sudo rm /var/log/{syslog,dmesg,btmp}.*
sudo rm /var/log/{auth,dpkg,kern,alternatives,dmesg}.log.*
echo
echo "[3/5] Cleaning user trash and thumbnails"
echo
rm -rf ~/.local/share/Trash/files/*
rm -rf ~/.cache/thumbnails/*
echo
echo "[4/5] Cleaning out dangling docker objects"
echo
docker system prune -f
# docker system prune -af
echo
echo "[5/5] Removing disabled unused snaps"
echo
sudo snap list --all \
| awk '/disabled/{print $1, $3}' \
| while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
echo
echo
df -hx tmpfs
echo
echo

View File

@@ -1,55 +0,0 @@
#!/bin/bash
set -e
################################################################################
# НАЗНАЧЕНИЕ: Переключение драйвера для видеокарт AMD GCN 1.0 (Pitcairn/SI).
#
# ЧТО ИСПРАВЛЯЕТ:
# Артефакты, мерцание, черные окна и "шахматную сетку" в Electron-приложениях
# (VS Code, Discord, Obsidian, Skype) и браузере Chrome/Chromium в среде KDE.
#
# ПОЧЕМУ ЭТО НУЖНО:
# По умолчанию для старых карт (R7 370 / R9 270X) Ubuntu использует драйвер 'radeon'.
# Он стабилен, но плохо поддерживает современное аппаратное ускорение и Vulkan.
# Переключение на драйвер 'amdgpu' дает:
# 1. Полную поддержку Vulkan API.
# 2. Совместимость с современным аппаратным ускорением Chromium.
# 3. Повышенную производительность в KDE Plasma (движок KWin).
#
# ПРИНЦИП РАБОТЫ:
# Скрипт передает ядру параметры 'radeon.si_support=0' (отключить старый драйвер
# для архитектуры Southern Islands) и 'amdgpu.si_support=1' (включить новый).
################################################################################
# Проверка на права суперпользователя
if [ "$EUID" -ne 0 ]; then
echo "Пожалуйста, запустите скрипт через sudo"
exit
fi
echo "--- Настройка AMDGPU для GCN 1.0 (Pitcairn) ---"
# 1. Резервное копирование конфига Grub
cp /etc/default/grub /etc/default/grub.bak
echo "[1/4] Бэкап Grub создан: /etc/default/grub.bak"
# 2. Добавление параметров поддержки amdgpu и отключение старого radeon
# Используем sed для вставки параметров в строку GRUB_CMDLINE_LINUX_DEFAULT
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 amdgpu.si_support=1 /' /etc/default/grub
echo "[2/4] Параметры ядра добавлены в /etc/default/grub"
# 3. Обновление конфигурации Grub
echo "[3/4] Обновление загрузчика..."
update-grub
# 4. Проверка необходимости внесения в blacklist (опционально, но надежно)
if [ ! -f /etc/modprobe.d/amdgpu.conf ]; then
echo "options amdgpu si_support=1" > /etc/modprobe.d/amdgpu.conf
echo "options radeon si_support=0" >> /etc/modprobe.d/amdgpu.conf
echo "[4/4] Конфиг modprobe создан"
else
echo "[4/4] Конфиг modprobe уже существует"
fi
echo "-------------------------------------------------------"
echo "Готово! Перезагрузите компьютер, чтобы изменения вступили в силу."
echo "После перезагрузки выполните: lspci -k | grep -EA3 'VGA|3D'"

View File

@@ -1,54 +0,0 @@
#!/bin/bash
set -e
################################################################################
# НАЗНАЧЕНИЕ: Откат изменений и возврат к стандартному драйверу 'radeon'.
#
# ЗАЧЕМ ЭТО НУЖНО:
# Этот скрипт используется, если после перехода на 'amdgpu' возникли проблемы:
# 1. Система загружается в черный экран или зависает.
# 2. Появились проблемы с выводом звука через HDMI (иногда бывает на GCN 1.0).
# 3. Наблюдаются специфические графические баги, которых не было ранее.
#
# ЧТО ИСПРАВЛЯЕТ:
# Возвращает конфигурацию системы к стандартному состоянию Ubuntu. Драйвер
# 'radeon' является базовым и максимально стабильным для старых карт AMD,
# хотя и не поддерживает современные функции (Vulkan, новый стек Electron).
#
# ПРИНЦИП РАБОТЫ:
# 1. Восстанавливает исходный файл /etc/default/grub из резервной копии.
# 2. Удаляет специфические инструкции из /etc/modprobe.d/, которые заставляли
# ядро игнорировать карту для драйвера radeon.
# 3. Обновляет конфигурацию загрузчика для применения изменений.
################################################################################
# Проверка на права суперпользователя
if [ "$EUID" -ne 0 ]; then
echo "Пожалуйста, запустите скрипт через sudo"
exit
fi
echo "--- Откат изменений и возврат к драйверу Radeon ---"
# 1. Восстановление Grub из бэкапа или очистка вручную
if [ -f /etc/default/grub.bak ]; then
mv /etc/default/grub.bak /etc/default/grub
echo "[1/3] Конфигурация Grub восстановлена из бэкапа."
else
# Если бэкапа нет, удаляем параметры через sed
sed -i 's/radeon.si_support=0 //g' /etc/default/grub
sed -i 's/amdgpu.si_support=1 //g' /etc/default/grub
echo "[1/3] Параметры удалены из /etc/default/grub вручную."
fi
# 2. Удаление файлов из modprobe.d
if [ -f /etc/modprobe.d/amdgpu.conf ]; then
rm /etc/modprobe.d/amdgpu.conf
echo "[2/3] Файл /etc/modprobe.d/amdgpu.conf удален."
fi
# 3. Обновление конфигурации Grub
echo "[3/3] Обновление загрузчика..."
update-grub
echo "-------------------------------------------------------"
echo "Откат завершен. После перезагрузки система вернется на драйвер 'radeon'."

0
scripts/ubuntu/lemp.sh Executable file → Normal file
View File

0
scripts/ubuntu/mediasrv.sh Executable file → Normal file
View File

0
scripts/ubuntu/server.sh Executable file → Normal file
View File

View File

@@ -1,22 +0,0 @@
#!/usr/bin/env bash
rename() {
local dir="$1"
echo "Processing: $dir"
[ -d "$dir.bak" ] && rm -rf "$dir.bak"
mv "$dir" "$dir.bak"
}
dirs=(
"$HOME/.config/Code/Cache"
"$HOME/.config/Code/CachedData"
"$HOME/.config/Code/Code Cache"
"$HOME/.config/Code/GPUCache"
"$HOME/.config/Code/Service Worker"
)
for dir in "${dirs[@]}"; do
rename "$dir"
done
echo "Success"