Каждый оператор даркнет-площадок сталкивается с главной проблемой Tails. Система создана для анонимности и по умолчанию не сохраняет настройки между сессиями. Каждый раз при загрузке ты получаешь чистую систему без твоих скриптов и горячих клавиш. Приходится настраивать все заново, а это потеря времени и денег.
Я решил эту проблему. Создал систему автоматической настройки биндов при запуске. Скрипты хранятся в постоянном хранилище и активируются автоматически. В этой статье покажу, как это сделать на основе твоего примера.
Все скрипты будут лежать в /home/amnesia/Persistent/scripts/
Файл /home/amnesia/Persistent/scripts/started:
Файл /home/amnesia/Persistent/scripts/sucsess:
Файл /home/amnesia/Persistent/scripts/replacement:
Файл /home/amnesia/Persistent/scripts/setup-binds.sh:
Файл /home/amnesia/Persistent/scripts/backup_script:
Файл /home/amnesia/Persistent/scripts/future_script:
Файл /home/amnesia/.config/autostart/setup-binds.desktop:
Если папки autostart нет, создай ее:
Полный файл setup-binds.sh с проверкой:
Сначала создай скрипт /home/amnesia/Persistent/scripts/new-order:
Назначь права:
Теперь добавь его в setup-binds.sh. Измени список custom-keybindings:
И добавь настройку custom5:
Все работает на основе твоего примера. Скрипты простые, но ты можешь расширять их под свои задачи. Добавляй отправку уведомлений в Telegram, интеграцию с API площадки, любые другие действия.
Главное, что настройка происходит один раз и больше не требует твоего внимания. Трать время на работу, а не на настройку инструментов.
Я решил эту проблему. Создал систему автоматической настройки биндов при запуске. Скрипты хранятся в постоянном хранилище и активируются автоматически. В этой статье покажу, как это сделать на основе твоего примера.
Создание структуры директорий
Создай папки для скриптов и логов:
Код:
mkdir -p /home/amnesia/Persistent/scripts
mkdir -p /home/amnesia/Persistent/logs
Создание основных скриптов для работы с заказами
Создай три основных скрипта, которые будут выполняться по нажатию горячих клавиш.Файл /home/amnesia/Persistent/scripts/started:
Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/home/amnesia/Persistent/logs/orders.log"
echo "[$TIMESTAMP] ЗАКАЗ В РАБОТЕ" >> $LOG_FILE
notify-send "Заказ в работе" "Статус обновлен" -i emblem-default
exit 0
Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/home/amnesia/Persistent/logs/orders.log"
echo "[$TIMESTAMP] ЗАКАЗ ВЫПОЛНЕН" >> $LOG_FILE
notify-send "Заказ выполнен" "Статус обновлен" -i emblem-default
exit 0
Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/home/amnesia/Persistent/logs/orders.log"
echo "[$TIMESTAMP] ЗАМЕНА ЗАКАЗА" >> $LOG_FILE
notify-send "Замена выполнена" "Статус обновлен" -i emblem-default
exit 0
Создание главного скрипта инициализации биндов
Этот скрипт берется из твоего примера. Он настраивает горячие клавиши через gsettings.Файл /home/amnesia/Persistent/scripts/setup-binds.sh:
Код:
#!/bin/bash
BASE="org.gnome.settings-daemon.plugins.media-keys"
PATHBASE="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings"
# Устанавливаем список кастомных биндов
gsettings set $BASE custom-keybindings \
"[
'$PATHBASE/custom0/',
'$PATHBASE/custom1/',
'$PATHBASE/custom2/',
'$PATHBASE/custom3/',
'$PATHBASE/custom4/'
]"
# custom0 - Резерв
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ \
name "Резерв"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ \
binding "<Shift><Alt>KP_Home"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ \
command "/home/amnesia/Persistent/scripts/backup_script"
# custom1 - Свободный слот
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ \
name "Свободный"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ \
binding "<Shift><Alt>KP_Up"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ \
command "/home/amnesia/Persistent/scripts/future_script"
# custom2 - Заказ в работе
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ \
name "Заказ в работе"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ \
binding "<Shift><Alt>KP_End"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ \
command "/home/amnesia/Persistent/scripts/started"
# custom3 - Заказ выполнен
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ \
name "Заказ выполнен"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ \
binding "<Shift><Alt>KP_Down"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ \
command "/home/amnesia/Persistent/scripts/sucsess"
# custom4 - Замена
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ \
name "Замена"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ \
binding "<Shift><Alt>KP_Insert"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ \
command "/home/amnesia/Persistent/scripts/replacement"
notify-send "Бинды активированы" "Все бинды настроены" -i dialog-information
exit 0
Создание дополнительных скриптов-заглушек
Для custom0 и custom1 создай простые заглушки.Файл /home/amnesia/Persistent/scripts/backup_script:
Код:
#!/bin/bash
notify-send "Резервный слот" "Заглушка" -i dialog-information
exit 0
Код:
#!/bin/bash
notify-send "Свободный слот" "Заглушка" -i dialog-information
exit 0
Назначение прав на исполнение
Все скрипты должны иметь права на исполнение. Выполни команды:
Код:
chmod +x /home/amnesia/Persistent/scripts/started
chmod +x /home/amnesia/Persistent/scripts/sucsess
chmod +x /home/amnesia/Persistent/scripts/replacement
chmod +x /home/amnesia/Persistent/scripts/setup-binds.sh
chmod +x /home/amnesia/Persistent/scripts/backup_script
chmod +x /home/amnesia/Persistent/scripts/future_script
Настройка автозапуска
Чтобы скрипт setup-binds.sh запускался автоматически при загрузке, создай .desktop файл.Файл /home/amnesia/.config/autostart/setup-binds.desktop:
Код:
[Desktop Entry]
Type=Application
Name=Setup Custom Binds
Comment=Автоматическая настройка биндов
Exec=/home/amnesia/Persistent/scripts/setup-binds.sh
Icon=preferences-system-session
Terminal=false
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=3
Код:
mkdir -p /home/amnesia/.config/autostart
Предотвращение повторного запуска
Добавь в начало setup-binds.sh проверку флага, чтобы скрипт не запускался дважды:
Код:
FLAG_FILE="/tmp/setup_binds_done"
if [ -f "$FLAG_FILE" ]; then
exit 0
fi
touch "$FLAG_FILE"
Код:
#!/bin/bash
FLAG_FILE="/tmp/setup_binds_done"
if [ -f "$FLAG_FILE" ]; then
exit 0
fi
touch "$FLAG_FILE"
BASE="org.gnome.settings-daemon.plugins.media-keys"
PATHBASE="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings"
gsettings set $BASE custom-keybindings \
"[
'$PATHBASE/custom0/',
'$PATHBASE/custom1/',
'$PATHBASE/custom2/',
'$PATHBASE/custom3/',
'$PATHBASE/custom4/'
]"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ name "Резерв"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ binding "<Shift><Alt>KP_Home"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ command "/home/amnesia/Persistent/scripts/backup_script"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ name "Свободный"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ binding "<Shift><Alt>KP_Up"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ command "/home/amnesia/Persistent/scripts/future_script"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ name "Заказ в работе"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ binding "<Shift><Alt>KP_End"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ command "/home/amnesia/Persistent/scripts/started"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ name "Заказ выполнен"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ binding "<Shift><Alt>KP_Down"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ command "/home/amnesia/Persistent/scripts/sucsess"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ name "Замена"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ binding "<Shift><Alt>KP_Insert"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ command "/home/amnesia/Persistent/scripts/replacement"
notify-send "Бинды активированы" "Все бинды настроены" -i dialog-information
exit 0
Добавление новых биндов
Чтобы добавить новый бинд, расширь список в setup-binds.sh. Например, добавляем custom5 для нового заказа.Сначала создай скрипт /home/amnesia/Persistent/scripts/new-order:
Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$TIMESTAMP] НОВЫЙ ЗАКАЗ" >> /home/amnesia/Persistent/logs/orders.log
notify-send "Новый заказ" "Создан" -i emblem-default
exit 0
Код:
Назначь права: chmod +x /home/amnesia/Persistent/scripts/new-order
Теперь добавь его в setup-binds.sh. Измени список custom-keybindings:
Код:
gsettings set $BASE custom-keybindings \
"[
'$PATHBASE/custom0/',
'$PATHBASE/custom1/',
'$PATHBASE/custom2/',
'$PATHBASE/custom3/',
'$PATHBASE/custom4/',
'$PATHBASE/custom5/'
]"
Код:
gsettings set $BASE.custom-keybinding:$PATHBASE/custom5/ name "Новый заказ"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom5/ binding "<Shift><Alt>KP_Page_Up"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom5/ command "/home/amnesia/Persistent/scripts/new-order"
Теперь у тебя есть полностью автоматизированная система. При каждой загрузке Tails скрипт setup-binds.sh запускается автоматически и настраивает все горячие клавиши. Ты нажимаешь Shift+Alt+KP_End и скрипт started выполняется. Shift+Alt+KP_Down запускает sucsess. Shift+Alt+KP_Insert запускает replacement.Все работает на основе твоего примера. Скрипты простые, но ты можешь расширять их под свои задачи. Добавляй отправку уведомлений в Telegram, интеграцию с API площадки, любые другие действия.
Главное, что настройка происходит один раз и больше не требует твоего внимания. Трать время на работу, а не на настройку инструментов.