Skip to content

Instantly share code, notes, and snippets.

View ponfertato's full-sized avatar
💭
I may be slow to respond.

Kirill ponfertato

💭
I may be slow to respond.
View GitHub Profile
@ponfertato
ponfertato / AppImageLauncher.desktop
Last active January 23, 2026 07:43
Набор оптимизированных .desktop файлов для NixOS (Flake) + KDE Plasma: запуск AppImage приложений, OpenSeeFace (трекер лица для VTube Studio), и мультиклиент VPN (v2rayN/FlClash/Karing) с выбором из меню. Все файлы полностью автономные, без внешних скриптов, с поддержкой русской локализации и контекстными действиями.
#!/usr/bin/env xdg-open
[Desktop Entry]
Actions=OpenDirectory;CreateDirectory;
Categories=Utility;System;
Comment[ru_RU]=Управление AppImage приложениями в NixOS
Comment=Управление AppImage приложениями в NixOS
Exec=konsole --hold -e bash -c 'APP_DIR="$HOME/Документы/Программы"; [ -d "$APP_DIR" ] || { echo "Папка не существует: $APP_DIR"; read -p "Нажмите Enter для выхода..."; exit 1; }; shopt -s nullglob; appimages=("$APP_DIR"/*.appimage); [ ${#appimages[@]} -eq 0 ] && { echo "Нет AppImage файлов в папке"; read -p "Нажмите Enter для выхода..."; exit 1; }; PS3="Выберите приложение: "; select app in "${appimages[@]##*/}"; do [ -n "$app" ] && break; echo "Неверный выбор"; done; echo "Запуск: ${app%.appimage}"; nix --extra-experimental-features nix-command --extra-experimental-features flakes shell nixpkgs#appimage-run --command appimage-run "$APP_DIR/$app"'
GenericName[ru_RU]=
GenericName=
Icon=system-run-symbolic
@ponfertato
ponfertato / delete-issues.sh
Last active January 13, 2026 13:52
Delete issues in github repo that have any of specified labels and were created before 2025-12-31 23:59:59
REPO="potatoenergy/status"
LABELS='mindustry-server,mindustry-server-port,minecraft-server,minecraft-server-port'
CUTOFF="2025-12-31T23:59:59Z"
gh issue list --repo "$REPO" --state all --limit 1000 --json number,createdAt,labels | jq -r --arg labels "$LABELS" --arg cutoff "$CUTOFF" '($labels|split(",")) as $arr | .[] | .labels = (.labels//[]) | select((.createdAt < $cutoff) and any(.labels[]; (.name|ascii_downcase) as $n | ($arr[]|ascii_downcase) == $n)) | .number' | while read -r n; do gh issue delete "$n" --repo "$REPO" --yes; done
@ponfertato
ponfertato / AnyDeskResetConfig.bat
Created November 27, 2025 07:13
This script safely clears AnyDesk configuration and traces on a single Windows PC so AnyDesk will generate a new device ID on next start. It performs admin checks, stops AnyDesk, backs up configs, removes user and service traces (logs, traces, config files), and restarts the client.
@echo off
chcp 65001 >nul
mode con: cols=80 lines=20
color 0a
setlocal enabledelayedexpansion
:: Simple log helper
set LOG=%~dp0anydesk_cleanup.log
for /f "tokens=1-3 delims=/:. " %%a in ("%date% %time%") do set TS=%%a-%%b-%%c_%%d
echo [%date% %time%] START >> "%LOG%"
@ponfertato
ponfertato / extract-code-content.sh
Created October 16, 2025 13:47
Скрипт для сбора содержимого файлов с определёнными расширениями из выбранной директории
#!/bin/bash
show_help() {
cat << EOF
Описание:
Скрипт для сбора содержимого файлов с определёнными расширениями из выбранной директории.
Выводит список всех файлов и содержимое только файлов с указанными расширениями в один текстовый файл.
Скрытыe файлы и файлы в скрытых папках игнорируются.
Использование:
#!/bin/bash
set -e
# Функция для выполнения docker compose команды в указанном каталоге,
# если найден файл compose.yaml или docker-compose.yaml
run_docker() {
local dir="$1"
local docker_cmd="$2"
if [ -f "${dir}/compose.yaml" ]; then
echo "Выполнение: docker compose -f ${dir}/compose.yaml ${docker_cmd}"
#!/bin/bash
function prompt_command() {
clear
echo "Which command do you want to execute?"
echo "1. Update all images"
echo "2. Update running container images"
echo "3. exit"
read command
}
#!/bin/bash
function prompt_command() {
clear
echo "Which command do you want to execute?"
echo "1. up -d"
echo "2. down"
echo "3. pull"
echo "4. pull && down && up -d"
echo "5. restart"
@ponfertato
ponfertato / steamscope.sh
Last active November 28, 2025 09:03
Единый скрипт-обёртка для запуска любых Steam-игр под Linux с поддержкой Gamescope, Gamemode, Source/Unreal/Unity Engine флагов и кастомных параметров.
#!/usr/bin/env bash
# Steam games launcher: --engine=source|unreal|unity, --gamemode, --mangohud, --fsr, --dxvk, --gamescope, --resolution=<width>x<height>
export HOST_LC_ALL="ru_RU.UTF-8"
export LANG="ru_RU.UTF-8"
export LC_ALL="ru_RU.UTF-8"
export STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.steam/steam"
export MESA_NO_ERROR="1"
export WLR_NO_HARDWARE_CURSORS="1"
export PROTON_NO_ESYNC="1"
@ponfertato
ponfertato / UTGameUI.int
Created September 14, 2025 18:16
Unreal Tournament 3 / UTGame / Localization / RUS
[MessageBox]
ExitGame_Title=Выход
ExitGame_Message=Вы уверены, что хотите выйти из игры?
LogOut_Title=Выйти
LogOut_Message=Вы уверены, что хотите выйти из профиля?
StartGame_Title=Начать матч?
StartGame_Message=Начать матч с текущими настройками?
StartDedicated_Title=Запустить выделенный сервер?
StartDedicated_Message=Запустить выделенный сервер с текущими настройками?
FirstTimeCharacter_Title=Создать персонажа

Beget ACME DNS Hook для Traefik

Цель: Автоматическая выдача и обновление Let’s Encrypt сертификатов через DNS-01 challenge для доменов, размещённых на Beget, в связке с Traefik.

Суть внедрения

Этот контейнер — HTTP-хук для Traefik, который:

  1. Принимает запросы от Traefik на установку/удаление TXT-записей для ACME DNS-01 challenge.
  2. Вызывает API Beget для изменения DNS-записей.