diff --git a/MouseGestures/Gesturefy 3.2.12 Thu Feb 13 2025.json b/MouseGestures/Gesturefy 3.2.12 Thu Feb 13 2025.json new file mode 100644 index 0000000..14000e9 --- /dev/null +++ b/MouseGestures/Gesturefy 3.2.12 Thu Feb 13 2025.json @@ -0,0 +1,335 @@ +{ + "Gestures": [ + { + "pattern": [ + [ + -37, + -25 + ], + [ + -88, + -11 + ], + [ + -50, + 17 + ], + [ + -63, + 62 + ], + [ + -22, + 68 + ], + [ + 4, + 50 + ], + [ + 33, + 49 + ], + [ + 84, + 43 + ], + [ + 105, + -4 + ], + [ + 46, + -24 + ], + [ + 22, + -27 + ], + [ + 8, + -23 + ], + [ + -4, + -44 + ], + [ + -16, + -17 + ], + [ + -56, + -17 + ], + [ + -77, + 8 + ] + ], + "command": { + "name": "OpenAddonSettings" + } + }, + { + "pattern": [ + [ + 0, + 1 + ] + ], + "command": { + "name": "ScrollBottom", + "settings": { + "duration": 100 + } + } + }, + { + "pattern": [ + [ + 0, + -1 + ] + ], + "command": { + "name": "ScrollTop", + "settings": { + "duration": 100 + } + } + }, + { + "pattern": [ + [ + 1, + 0 + ] + ], + "command": { + "name": "PageForth" + } + }, + { + "pattern": [ + [ + -1, + 0 + ] + ], + "command": { + "name": "PageBack" + } + }, + { + "pattern": [ + [ + -205, + -4 + ], + [ + -2, + -128 + ] + ], + "command": { + "name": "ScrollTop", + "settings": { + "duration": 100 + } + } + }, + { + "pattern": [ + [ + -231, + -19 + ], + [ + -11, + 182 + ] + ], + "command": { + "name": "ScrollBottom", + "settings": { + "duration": 100 + } + } + }, + { + "pattern": [ + [ + -1, + -227 + ], + [ + -10, + -8 + ], + [ + -210, + -4 + ] + ], + "command": { + "name": "FocusLeftTab", + "settings": { + "cycling": true, + "excludeDiscarded": false + } + } + }, + { + "pattern": [ + [ + -11, + -287 + ], + [ + 10, + -5 + ], + [ + 264, + 0 + ] + ], + "command": { + "name": "FocusRightTab", + "settings": { + "cycling": true, + "excludeDiscarded": false + } + } + }, + { + "pattern": [ + [ + -8, + 252 + ], + [ + 190, + 12 + ] + ], + "command": { + "name": "CloseTab", + "settings": { + "nextFocus": "default", + "closePinned": true + } + } + }, + { + "pattern": [ + [ + 297, + 6 + ], + [ + -322, + -10 + ] + ], + "command": { + "name": "RestoreTab", + "settings": { + "currentWindowOnly": true + } + } + }, + { + "pattern": [ + [ + -284, + 0 + ], + [ + 335, + -5 + ] + ], + "command": { + "name": "NewTab", + "settings": { + "position": "default", + "focus": true + } + } + }, + { + "pattern": [ + [ + -21, + -318 + ], + [ + 16, + 327 + ] + ], + "command": { + "name": "ReloadTab", + "settings": { + "cache": false + } + } + }, + { + "pattern": [ + [ + 4, + -282 + ], + [ + -1, + 332 + ], + [ + 16, + -334 + ] + ], + "command": { + "name": "ReloadTab", + "settings": { + "cache": true + } + } + }, + { + "pattern": [ + [ + 256, + -1 + ], + [ + 22, + -25 + ], + [ + 19, + -221 + ], + [ + 0, + 235 + ] + ], + "command": { + "name": "MinimizeWindow" + } + } + ], + "Settings": { + "Wheel": { + "active": true, + "mouseButton": "2" + }, + "General": { + "theme": "dark" + } + } +} \ No newline at end of file diff --git a/Script/alias_config b/Script/alias_config index 6ab8a86..1fc1467 100755 --- a/Script/alias_config +++ b/Script/alias_config @@ -4,37 +4,46 @@ prefix='al_' mkalias_with_prefix() { - alias ${prefix}$1="$1" + alias ${prefix}$1="$1" } pdf_a5() { - pdfjam "$1" --scale 0.71 --offset '0 50mm' -o "a5_$1" + [ $1 == '' ] && printf "Преобразование pdf к формату А5\nОшибка! Укажите входной файл\n" && return + pdfjam "$1" --scale 0.71 --offset '0 50mm' -o "a5_$1" } mkalias_with_prefix 'pdf_a5' pdf_a6() { - pdfjam "$1" --scale 0.5 --offset '0 75mm' -o "a6_$1" + [ $1 == '' ] && printf "Преобразование pdf к формату А6\nОшибка! Укажите входной файл\n" && return + pdfjam "$1" --scale 0.5 --offset '0 75mm' -o "a6_$1" } mkalias_with_prefix 'pdf_a6' pdf_pagenum() { - pdfjam --preamble '\usepackage{fancyhdr} \pagestyle{fancy} \topmargin -65pt \oddsidemargin 150pt \rfoot{} \cfoot{} \rhead{} \chead{\Large\thepage} \renewcommand {\headrulewidth}{0pt} \renewcommand {\footrulewidth}{0pt} ' --pagecommand '\thispagestyle{fancy}' -o "pagenum_$1" "$1" + [ $1 == '' ] && printf "Добавить номер страницы в pdf\nОшибка! Укажите входной файл\n" && return + pdfjam --preamble '\usepackage{fancyhdr} \pagestyle{fancy} \topmargin -65pt \oddsidemargin 150pt \rfoot{} \cfoot{} \rhead{} \chead{\Large\thepage} \renewcommand {\headrulewidth}{0pt} \renewcommand {\footrulewidth}{0pt} ' --pagecommand '\thispagestyle{fancy}' -o "pagenum_$1" "$1" } mkalias_with_prefix 'pdf_pagenum' pdf_contrast_correct() { - pdfjam --preamble '\usepackage{fancyhdr} \pagestyle{fancy} \topmargin -65pt \oddsidemargin 150pt \rfoot{} \cfoot{} \rhead{} \chead{\Large\thepage} \renewcommand {\headrulewidth}{0pt} \renewcommand {\footrulewidth}{0pt} ' --pagecommand '\thispagestyle{fancy}' -o "pagenum_$1" "$1" + [ $1 == '' ] && printf "Корректировка контраста в pdf\nОшибка! Укажите входной файл\n" && return + mkdir tmp + convert -density 300 $1 tmp/output-%03d.jpg + convert tmp/output*.jpg -normalize -threshold 60% tmp/final-%03d.jpg + # convert tmp/output*.jpg -level 0% tmp/final-%03d.jpg + convert tmp/final*.jpg new_$1 } mkalias_with_prefix 'pdf_contrast_correct' pdf_gamma_correct() { - gamma=$2 - [ gamma == '' ] && gamma=3 + [ $1 == '' ] && printf "Корректировка гаммы в pdf\nОшибка! Укажите входной файл\n\nВходные параметры: file gamma\n" && return + gamma=$2 + [ gamma == '' ] && gamma=3 && printf "Выбрана гамма '${gamma}'" mkdir tmp convert -density 300 $1 tmp/output-%03d.jpg @@ -47,7 +56,7 @@ mkalias_with_prefix 'pdf_gamma_correct' pdf_all_to_one_file() { in_files_pattern=$1 - [ in_files_pattern == '' ] && in_files_pattern='*.pdf' + [ in_files_pattern == '' ] && in_files_pattern='*.pdf' && printf "Выбран шаблон '${in_files_pattern}'\n" convert -density 300 "${in_files_pattern}" -density 300 all.pdf } @@ -57,12 +66,14 @@ alias ${prefix}archive_each_file_into_separate_archive="find . -mindepth 1 -maxd unicode_U200B_correct () { + [ $1 == '' ] && printf "Корректировка ошибки в latex U200B\nУкажите входной файл" && return perl -CSD -pe "s/\N{U+200B}//gu" < $1 > noU200B_$1 } mkalias_with_prefix 'unicode_U200B_correct' festival_txt2mp3 () { + [ $1 == '' ] && printf "Озвучивание текста\nУкажите входной текстовый файл. Выходной будет с тем же именем, но mp3\n" && return in_file=$1 out_wav_file_name="$1.wav" out_mp3_file_name="$1.mp3" @@ -74,6 +85,7 @@ mkalias_with_prefix 'festival_txt2mp3' encode_240() { + [ $1 == '' ] && printf "Перекодирование видео в формат 240*180\nУкажите входной шаблон. Например '*.mp4'\n" && return for filename in "$1"; do echo "Take '${filename}'"; if [ -f "${filename}" ]; then @@ -86,6 +98,7 @@ mkalias_with_prefix 'encode_240' union_video_and_audio() { + [ $1 == '' ] && printf "Объедидение видео и аудио\nУкажите входной файл видео и аудио. Например: 1.mp4 1.wav\n" && return ffmpeg -i $1 -i $2 -c:a aac -b:a 128k -vcodec copy -map 0:v -map 1:a o.mp4 } mkalias_with_prefix 'union_video_and_audio' @@ -128,7 +141,7 @@ download_custom() } mkalias_with_prefix 'download_custom' -alias ${prefix}gen_password='openssl rand -base64 10' +alias ${prefix}gen_password='pwgen -n 16' cur_dir=${alias_dir} alias parse_arg_lib='${cur_dir}/../video_tools/parse_arg_lib' @@ -137,21 +150,21 @@ alias ${prefix}union_video_and_audio='${cur_dir}/../video_tools/union_video_and_ all_to_djvu() { - in_files_pattern=$1 - [ in_files_pattern == '' ] && in_files_pattern='*JPG' - for i in ${in_files_pattern}; do bmptopnm $i > pnm/$i.pnm; done - for i in *; do c44 -dpi 300 -slice 60+7+7 $i $i.djvu; done - djvm -c new.djvu *.djvu + [ ${in_files_pattern} == '' ] && printf "Объедидение файлов в djvu\nУкажите входной шаблон. Например '*.jpg'\n" && return + in_files_pattern=$1 + for i in ${in_files_pattern}; do bmptopnm $i > pnm/$i.pnm; done + for i in *; do c44 -dpi 300 -slice 60+7+7 $i $i.djvu; done + djvm -c new.djvu *.djvu } mkalias_with_prefix 'all_to_djvu' resize_and_del_exif() { search_template=$1 - [ "${search_template}" = "" ] && search_template="./*.JPG" + [ "${search_template}" == '' ] && printf "Изменение размера и удаление exif\nУкажите входной шаблон файлов и ширину. Например: '*.jpg' 1024\n" && return image_width=$2 - [ "${image_width}" = "" ] && image_width="1024" + [ "${image_width}" = "" ] && image_width="1024" && printf "Выбрана ширина '${image_width}'\n" for entry in "$search_template" do @@ -164,21 +177,41 @@ mkalias_with_prefix 'resize_and_del_exif' ssh_del_known_host() { in_host_pattern=$1 - if [ "${in_host_pattern}" = "" ]; then - echo 'Укажите шаблон адреса, например "192.168.1.*"' - return - fi - echo "cp ~/.ssh/known_hosts ~/.ssh/known_hosts.backup && cat ~/.ssh/known_hosts.backup | grep -v ${in_host_pattern} > ~/.ssh/known_hosts" - + [ "${in_dev}" = "" ] && printf "Укажите шаблон адреса, например '192.168.1.'\n" && return + eval "sudo cp -u ~/.ssh/known_hosts ~/.ssh/known_hosts.backup && cat ~/.ssh/known_hosts.backup | grep -v ${in_host_pattern} > ~/.ssh/known_hosts" } mkalias_with_prefix 'ssh_del_known_host' - -ssh_openwpt_10() +ssh_for_openwpt_10.3_kamikadze() { in_host_pattern=$1 ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc ${in_host_pattern} } -mkalias_with_prefix 'ssh_openwpt_10' +mkalias_with_prefix 'ssh_for_openwpt_10.3_kamikadze' + +hdd_fill_zero() +{ + in_dev=$1 + [ "${in_dev}" = "" ] && printf "Заполнить диск нулями.\nОшибка! Укажите файл устройства. Например /dev/sdb.\n" && return + sudo pv < /dev/zero > ${in_dev} +} +mkalias_with_prefix 'hdd_fill_zero' + +hdd_fill_random() +{ + in_dev=$1 + [ "${in_dev}" = "" ] && printf "Заполнить диск рандомом.\nОшибка! Укажите файл устройства. Например /dev/sdb.\n" && return + sudo pv < /dev/urandom > ${in_dev} +} +mkalias_with_prefix 'hdd_fill_random' + +hdd_check_zero() +{ + in_dev=$1 + [ "${in_dev}" = "" ] && printf "Проверить, что диск заполнен нулями.\nОшибка! Укажите файл устройства. Например /dev/sdb.\n" && return + sudo pv ${in_dev} | od | head +} +mkalias_with_prefix 'hdd_check_zero' + diff --git a/install.sh b/install.sh index 0948c37..ebcbc4f 100644 --- a/install.sh +++ b/install.sh @@ -23,8 +23,8 @@ sudo apt-get dist-upgrade sudo update-kernel sudo apt-get install \ - pwgen xclip audacious audacity\ - gparted testdisk gnome-disk-utility baobab \ + pwgen xclip audacious audacity \ + gparted testdisk gnome-disk-utility baobab pv \ cpu-x gnome-system-monitor \ wol sshfs traceroute encfs openssh-server nmap\ remmina xrdp qbittorrent \ @@ -40,7 +40,7 @@ sudo apt-get install \ minetest\ texlive texstudio \ systemd-settings-disable-kill-user-processes \ - retext pdfmod\ + retext pdfmod \ gedit gedit-plugins gedit-plugin-devhelp gedit-plugins-latex \ cinnamon-full idesk icewm pcmanfm volumeicon mc \ nemo nemo-image-converter nemo-sendto-clamtk @@ -50,7 +50,7 @@ sudo apt-get install \ nemo-fileroller nemo-python-devel nemo-translations \ photorec\ mp3info\ - frescobaldi lilypond\ + frescobaldi lilypond \ nano\ token-manager \ libgtop-gir libgtop-gir-devel \ @@ -61,29 +61,27 @@ sudo apt-get install \ flatpak # Gedit plugins -https://github.com/hannenz/duplicate +git clone https://github.com/hannenz/duplicate -sudo eepm play skype -sudo eepm play telegram -sudo eepm play zoom +epm play skype +epm play telegram +epm play zoom +# n2n wget https://github.com/ntop/n2n/releases/download/3.0/n2n-3.0.0-1038.x86_64.rpm sudo apt-get install ./n2n-3.0.0-1038.x86_64.rpm - -# rpi +# n2n rpi altlinux wget https://packages.ntop.org/RaspberryPI/bullseye_pi/arm64/n2n/n2n_3.1.1-76-g709590d_arm64.deb sudo epm -i ./n2n_3.1.1-76-g709590d_arm64.deb sudo systemctl enable --now edge.service -git config --global core.editor mcedit - ## Flathub flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo ## organicmaps flatpak install flathub app.organicmaps.desktop flatpak remote-info --log flathub app.organicmaps.desktop -sudo flatpak update --commit=beb1e1a66d50646cfe162437bca7b19fdd9178e3f505fcdc351a74415dbca628 app.organicmaps.desktop +#sudo flatpak update --commit=beb1e1a66d50646cfe162437bca7b19fdd9178e3f505fcdc351a74415dbca628 app.organicmaps.desktop flatpak run app.organicmaps.desktop # appimagepool @@ -91,6 +89,14 @@ flatpak install flathub io.github.prateekmedia.appimagepool # AndroidStudio flatpak install flathub com.google.AndroidStudio +# XnConvert +Download: https://www.xnview.com/en/xnconvert/#downloads +sudo epm install ./XnConvert-linux-x64.deb + +# tuxguitar +wget -c https://github.com/helge17/tuxguitar/releases/download/1.6.0/tuxguitar-1.6.0_linux-swt.x86_64.rpm +sudo apt-get install ./tuxguitar-1.6.0_linux-swt.x86_64.rpm + # Gps sudo apt-get install xgps gpsd gpsmon /etc/sysconfig/gpsd -> @@ -111,16 +117,17 @@ hwmon /sys/class/thermal/thermal_zone0/temp (5, 64, 71) (7, 68, 32767) -test: sudo /usr/sbin/thinkfan -n +# test: +sudo /usr/sbin/thinkfan -n +# run: systemctl enable --now thinkfan.service -# By root: +# Set max freq EDITOR=mcedit crontab -e @reboot cpupower frequency-set --max 2.3G -# XnConvert -Download: https://www.xnview.com/en/xnconvert/#downloads -sudo epm install ./XnConvert-linux-x64.deb +# git +git config --global core.editor mcedit # Disable autostart gnome-software mkdir -pv ~/.config/autostart && cp /etc/xdg/autostart/gnome-software-service.desktop ~/.config/autostart/ @@ -130,17 +137,13 @@ dconf write /org/gnome/desktop/search-providers/disabled "['org.gnome.Software.d dconf write /org/gnome/software/allow-updates false dconf write /org/gnome/software/download-updates false -# fuse config +# Fuse config sudo control fusermount public -# tuxguitar -wget -c https://github.com/helge17/tuxguitar/releases/download/1.6.0/tuxguitar-1.6.0_linux-swt.x86_64.rpm -sudo apt-get install ./tuxguitar-1.6.0_linux-swt.x86_64.rpm - -# Enable wi-fi to Android 13 +# Enable wi-fi for Android 13 in altlinux nmcli connection modify WIFINAME wifi-sec.pmf 1 # Установить максимальный уровень заряда и поизводительности -sudo ap-get install tlp -echo "80" > /sys/class/power_supply/BAT0/charge_control_end_threshold -echo "80" > /sys/devices/system/cpu/intel_pstate/max_perf_pct +sudo apt-get install tlp +sudo echo "80" > /sys/class/power_supply/BAT0/charge_control_end_threshold +sudo echo "80" > /sys/devices/system/cpu/intel_pstate/max_perf_pct diff --git a/video_tools/img_and_wav2video b/video_tools/img_and_wav2video index d817eb1..633ce68 100755 --- a/video_tools/img_and_wav2video +++ b/video_tools/img_and_wav2video @@ -1,7 +1,7 @@ #!/bin/bash # Общественное достояние, 2024, Алексей Безбородов (Alexei Bezborodov) -# Озвучивание русского текста из файла pdf и сохранение в видео +# Объединение картинки и звука в видео version=1.0 @@ -59,6 +59,7 @@ $(ProcessParams video_params Params2Help) Примеры: +img_and_wav2video -i image.jpg -a audio.wav -o out.mp4 # Расширенный вывод img_and_wav2video -i image.jpg -a audio.wav -o out.mp4 -V