Скрипт для массового выборочного конвертирования форматов файлов в Ubuntu, например, heic в jpg
UPD я улудшил Скрипт для массового выборочного конвертирования форматов файлов в Ubuntu, например, heic в jpg, вторая серия
В общем, у меня айфон и убунта. Не самое удобное сочетание, но, если ты однажды перешел на Линукс, значит - у тебя уже изначально предрасположенность к танцам с бубном вокруг компьютера. С помощью Warpinator'а перекидывание файлами с ноутбука на телефон и обратно наладилось, а после того, как в пыльном углу образовался nas-сервер из старого ноутбука - процесс стал непринужденным. Однако, выяснился ньюанс - фотки на гейфоне пишутся почему-то в странненьком формате .heic, а весь остальной мир предпочитает жпг. Причем, он выяснился, когда мне надо было заслать в налоговую два-три десятка фотогорафий документов. И онлайн-конвертеры почему-то адекватно при этом не работали. В общем. ВЫЗОВ ПРИНЯТ. За неадекватное для поставленной задачи время (чет типа полдня) было порождено решение в виде баш-скрипта:
#!/bin/bash
IFS=$'\n'
read -r -d '' -a array < <( xclip -selection clipboard -out && printf '\0' )
for element in "${array[@]}"
do
strlen=${#element} #дляна имени файла с расширением
pathlen=`expr $strlen - 4` #длина имени без последних 4 символов heic
path=`expr substr $element 1 $pathlen` #имя файла без расширения (первые "все - 4" символы)
jpg=$path"jpg" #прилепить новое расширение
heif-convert "$element" "$jpg" #тут можно вкорячить любой конвертер
done
Соответственно, для работы баш-скрипта нужны пакеты xclip и libheif-examples. Теперь - что вообще происходит: xclip - консольная утилита для работы с буфером обмена. heif-convert - команда из пакета libheif-examples, которая конветртирует файл из имя.хейф в имя.жпг. После того, как все пакеты установлены и вся лабуда скопипащена в файл скрипта с расширением .sh, который помечен, как исполнимый, делается следующее: в тунаре (кстати, не знаю, будет ли работать в наутилусе) выделяются подопытные файлы, копируются в буфер обмена. Далее, хоткеем или консолью запускается скрипт. Далее, оно делает копии скопированных в буфер файлов в новом формате с теми же именами в той же папке. Подробно: после копирования из тунара файлов в буфере оказывается кучка строк типа такого:
/home/username/123/IMG_0144.HEIC
/home/username/123/IMG_0145.HEIC
/home/username/123/IMG_0146.HEIC
первые 2 строки после бин-баш - чтение содержимого буфера обена в массив переменных, где каждая переменная - полное имя файла. Затем - перебор элементов массива (полных имен файлов), замена расширения на конце и впихивание "исходного_имени_и_расширения" и "конечного_имени_и_расширения" в непосредственно команду конвертера. Больше всего гемора было с поиском рабочего решения по чтению буфера в массив. Из плюсов получившегося поделия - с учетом распространенности в линухе консольных конвертеров файлов с синтаксисом типа КОНВЕРТЕР "ИЗ_ЭТОГО" "В_ЭТО", этот скрипт непринужденно может быть перепилен под любой подобный конвертер. Удобно же. Вроде.
Как устанавливать игры на Linux для чайников
Не будем долго приветствовать друг друга - начинаем.
1. Установите wine:
~$ sudo apt install wine
2. найдите .exe файл с игрой
(я играю в пиратские торрент игры с сайта https://itorrents-igruha.org/)
3. перейдите в папку с игрой использую команду
~$ cd
4. дальше все делится на 2 варианта
1 вариант: в папке с игрой пишем команду
~$ wine "exe файл игры"
игра запускается и можно играть со спокойной душой
2 вариант: если игра с установщиком то переходим в папку с установщиком и пишем
~$ wine setup.exe (Может быть называется и по другому)
Запускается установщик, проходите установку в окне, ГЛАВНОЕ ПОСТАВИТЬ ГАЛОЧКУ НА "Создать ярлык на рабочем столе", потом, когда закончится установка у вас просто появится ярлык на рабочем столе
Перевод выделенного фрагмента текста в Ubuntu
Недавно мне потребовалось, в силу профессиональной деятельности, переводить очередную портянку англоязычного текста, честно стрынного с сайхаба. А с английским у меня, в целом, лучше, чем у Мутко, но он далек от совершенства. Так что, приходится пользоваться словарем. Меня посетила идея, что мои страдания с копипастой в переводчик кто-то уже испытывал до меня, так что, в природе уже должно быть что-то для перевода выделенного текста.
И оно действительно есть - если гуглить что-то типа "перевод выделенного фрагмента текста линукс", то получаем ссылки на некоторое количество скриптов, которые делают примерно следующее: с помощью программы "xsel" они дергают выделенный кусок в буфер обмена, шлют его через мозиллу на яндекс, там получают перевод, и публикуют его на экране с помощью извещалки "notify-send" из пакета "libnotify-bin" на экране.
Я их попробовал. И столкнулся с 2-мя эффектами. Первое - мозилла после нескольких лет использования у меня загружается минут 5, как это вылечить, я не нагуглил, и благополучно на нее забил, пользуясь хромиумом; однако, когда древнее зло пришлось ворочать, оно, как и прежде, включалось бесконечно долго. Второе - скрипт после прогрузки мозиллы все равно не работал. Из того, что публиковалось в интернетах, я понял, что его периодически перепиливали, возможно, по причине изменений в апи яндекса, возможно - почему-то еще. В общем, не взлетело.
Однако, проблема-то осталась - хочу читать и пользоваться словарем как белый человек. Из опыта использования чужих скриптов я узнал, что в природе есть "xsel" для работы с буфером обмена и "notify-send" для плевания сообщениями на экран. Для полного счастья нужен был консольный словарь. Собственно, "translate-shell", прошу любить и жаловать, командой типа "trans whatever" получаем в консоли перевод откуда-то из интернетов, судя по аннотации - откуда-то из гугла или яндекса, факт тот, что работает и без заморочек.
Устанавливаем пакеты через консоль:
sudo apt-get install translate-shell libnotify-bin xsel
Слепляем все это в баш-скрипт (создаем текстовой файл типа dict.sh или как там вы его обзовете), вешаем на него аттрибут "исполняемый" (я делал через графический интерфейс, но месье могут и через chmod).
В скрипте пишем:
#!/bin/bash
xsel -i -b;
clipboard="$(xsel -o)";
result="$(trans -b $clipboard)";
notify-send -t 10000 --icon=info "$result";
Что означает:
#!/bin/bash - это баш-скрипт
xsel -i -b; - скопировать выделенное в буфер обмена
clipboard="$(xsel -o)"; - записать содержимое буфера в строковую переменную
result="$(trans -b $clipboard)"; - перевести что-там-было-в-буфере trans`ом и записать в строковую переменную; параметр -b означает, что результатом будет одно слово, скорее всего, подходящее для перевода "по-быстрому"; если параметр снять, то вывалятся все варианты, но, во-первых - на экран некоторые символы выводятся с ошибками, во-вторых - мне портянка текста не нужна, обычно достаточно одного слова
notify-send -t 10000 --icon=info "$result"; - отослать результат перевода на экран; параметр -t 10000 отвечает за то, сколько времени будт висеть полученное уведомление на экране, параметр --icon=info указывает иконку сбоку от уведомления.
Далее. У нас уже есть установленные три пакета, файл со скриптом написан и он помечен как исполняемый. Заходим в настройки клавиатуры, добавляем на нее новое сочетание горячих клавиш, в качестве исполняемой программы указываем наш скрипт с путем к нему. Выделяем слово на ангельском в любом окне, тыкаем назначенную кнопку - вуаля
Вряд ли это играет особую роль, но, как можно заметить, я делал все это в Минте. Полагаю, в остальных убунтах это будет работать не хуже.
LMDE
Ubuntu стиль для Linux Mint, что скажете ?
Сделать персонализацию в стиле Unity Ubuntu для Linux Mint на граф.оболочке Cinnamon
Dota 2 на linux, все прекрасно???
У многих в голове осталось то, что игры лучше запускать только на операционной системе Windows, но что если я вам скажу, что многие любимые игры можно запустить и на системе Linux. Некоторые проекты показали себя лучше в работе через Proton или Нативную версию, чем изначально на Windows(e). Так случилось и с Dota 2.
В этой игре играют две команды, в каждой из которых есть по 5 игроков. Каждый игрок выбирает свою сторону. В распоряжении каждого есть свой герой. Героя можно улучшать, получать для него определенный «жизненный опыт», зарабатывать золото, собирать предметы, необходимые для усиления способностей. Основная цель игры состоит в уничтожении главного здания, расположенного на территории врага.
Установка
Для запуска нативной версии игры или запуска её же но через Proton, понадобится рабочий клиент Steam для вашей версии Linux.
Если Steam уже установлен в вашей системе, пропустите этот шаг!
Переходим на официальный сайт и устанавливаем клиент. Как это сделать? Перед вами будет большая и синяя кнопка «Загрузить Steam», он сам определит тип вашей системы, а точнее пакеты которая она принимает и установит, моем случае это .deb.
Запустить Steam можно через созданный ярлык приложения, или ввести команду в терминале:
Для ubuntu: $ steam
Установка нативной версии
Если игра не имеет нативной версии и у вас выключена поддержка Steam Proton, тогда кнопка «Установить» или «Играть» будет гореть у вас серым цветом, а для нативных версии игр, они будут гореть зеленым цветом.
Переходим на официальную страницу в Steam и нажимает кнопку «Играть», дожидаемся установки игры и готов, можно приступать к игре.
Установка для игры через Proton
Здесь уже все чуть посложнее, для начала переходим в настройки клиента Steam, открываем слева в окне вкладку «Steam play» и ставим галочку, таким образом, как это показано на скриншоте:
Сразу после переходим в библиотеку игр, находим «Dota 2» и заходим в свойства, тут нужно поставить галочку на параметр «Принудительно использовать определенный инструмент Steam Play» и выбираем последнюю версия Steam Proton. Сразу после можно установить игру и играть уже через Proton, правда делать этого не рекомендуется, ведь есть нативная версия которая работает даже лучше!
Производительность
Прочитав множество форумов, статьи, видеоролики и даже сделав собственные тесты, стало понятно что, «Dota 2» идет на Linux плавнее и мягче, чем на Windows при использовании одного и того-же компьютера. А при должной оптимизации можно добиться более высокой производительности, вплоть до улучшения в два раза!
Итог
Мы получили рабочую нативную и даже Windows версию вашей любимой игры, которая работает без проблем из коробки и даже иногда лучше чем на Windows.
Данный способ работает на все игры от «Valve software», можете прочитать мою статью о запуске «Counter-strike: Global offencive» на Linux. Всем удачи — всем пока!
О том как я GRID под PortProton запускал…
Никому не секрет что Linux, уже давно может запускать ваши любимые игры. Конечно же не все, но большинство проектов (10.000+) уже доступны для запуска через Steam Proton, а для запуска игр вне Steam использует portProton который был разработан «комьюнити» для использования вне клиента.
Речь пойдет сегодня об не безызвестной игре «GRID». Это компьютерная игра, в жанре «Симулятор гонок» — разработанная компанией «Codemasters» в 2008 году. Проект вышел для персональных компьютеров, мобильных телефонах, игровых консолях таких как: PlayStation 3, Xbox360 и прочие платформы.
Установка portProton
В прошлых статьях мы говорили об установке portWine/portProton вне клиента Steam, повторяться не хочется, поэтому оставлю ссылку на статью с поэтапной установкой.
Установка игры
Если бы мы хотели установить игру через официальный клиент Steam, мы бы не говорили о portProton, а говорили бы об Steam Proton. Эта статья предназначена если вы хотите запустить игру в ознакомительном формате или она записана у вас на диск, или куплена в ином магазине.
1. Установить игру. Для этого воспользуйтесь инсталятором, который прилагался у вас в диске или в другом магазине.
2. После успешной установки, установите portProton по ссылке которую я вам оставил чуть выше, в разделе «Установка portProton».
3. Зайдите в корневую папку с игрой, найдите там файл под названием «GRID.exe» и запустите его с помощью: «приложения portProton».
Запуск
Сразу после запуска «GRID.exe» через «PortProton» — появится вот такое окошко:
Выставляем 3D API на «VULKAN (DXVK and VKD3D)», версия Wine выбираем «PROTON_GE_7-16». По жалению можно добавить иконку на рабочий стол с помощью кнопки «CREATE SHORTCUT». Не обязательно выставлять такие настройки как у меня, да и они идут по умолчанию, но лично на этих настройках игра идет без проблем.
Итоги
Установлен portProton который позволит вам запускать и другие игры, которые были изначально написаны для Windows, в несколько раз лучше, чем через Wine. Рабочая игра GRID и аналогичная ситуация с GRID 2, все работает прекрасно и без проблем и даже без просадок.