BlackCrystal https://blackcrystal.net/en/ Show what you can. Learn what you don't Sat, 09 May 2020 23:01:52 +0000 en-US hourly 1 https://wordpress.org/?v=5.4.2 https://blackcrystal.net/wp-content/uploads/2015/03/cropped-bc-logo-big-32x32.png BlackCrystal https://blackcrystal.net/en/ 32 32 Команды терминала для работы с базами данных MySQL https://blackcrystal.net/en/tutorial/komandy-terminala-dlya-raboty-s-bazami-dannyh-mysql/ Tue, 20 Aug 2019 10:15:11 +0000 https://blackcrystal.net/?p=830 Привет вам, дорогие, как это раньше называлось, вебмастеры.

Сегодня мы познакомимся с несколькими командами терминала, полезными как при работе с большими дампами базы данных, так и не очень. Всё что нам понадобится – доступ к командной строке на сервере посредством ssh, mosh или putty.

создать базу данных
mysqladmin create названиебазыданных

убить базу
mysqladmin drop названиебазыданных

экспортировать базу в файл
mysqldump названиебазыданных > имяфайла.sql

импортировать базу из файла
mysql названиебазыданных < имяфайла.sql

скопировать всё из одной базы в другую без файлов
mysqldump однабаза | mysql другаябаза

Используя эти простые команды в консоли можно существенно ускорить работу, превратить трепет в силу, избавить себя от мучений при закачивании огромных дампов через phpmyadmin да и просто повысить свой уровень профессионализма.

]]>
Лайвхаки коммандной строки https://blackcrystal.net/en/uncategorized/lajvhaki-kommandnoj-stroki/ Tue, 07 May 2019 20:23:16 +0000 https://blackcrystal.net/?p=750 Сохраняет список графических файлов, площадь которых меньше 100000 пикселей

( find jpg_renamed/ -name '*.jpg' | xargs -L1 identify -format "%[fx:w*h] %d/%f\n" | awk '$1 < 100000 { print $2 }' > to_delete.txt ) 2> errors.txt

Если неопознанные как графика файлы не нужны, можно обойтись только тем что в скобках

]]>
Полезные скрипты для сайта Vkontakte https://blackcrystal.net/en/tutorial/script-vkontakte/ Wed, 15 Aug 2018 18:56:51 +0000 https://blackcrystal.net/ru/?p=627 [:ru]

Продолжаем публиковать полезные скрипты для сайтов, на которых многие из нас проводят немало времени. На этот раз полезные скрипты будут для сайта vk.com

Переворачиваем видео по горизонтали

Последнее время видео стали загружать перевернутыми, поэтому смотреть “как есть” их можно, но не особо приятно. Ликвидируем эту проблему путем переворачивания видеоплеера по горизонтали.

Проще всего добавить скрипт в закладки (Bookmarks) нажатием правой кнопкой мышки на ссылку Перевернуть видео по горизонтали и запускать её при проигрывании любого перевёрнутого видео на сайте Вконтакте.

Перевернуть видео по горизонтали

Код, который находится внутри закладки, можно запустить также в консоли Chrome нажатием Ctrl+Shift+J или Firefox нажатием Ctrl+Shift+K:

(function(sel){ 
    for (el of sel) { el.style.transform = el.style.transform ? '' : 'scaleX(-1)'; }  
})(document.getElementsByClassName('videoplayer_media'));

Приятного просмотра.[:]

]]>
Firefox Quantum: версия для разработчика https://blackcrystal.net/en/tutorial/firefox-quantum-versiya-dlya-razrabotchika/ Sun, 14 Jan 2018 17:36:44 +0000 https://blackcrystal.net/?p=558 Было достаточно просто найти и установить свежий релиз Firefox. Однако с версией для разработчика пришлось попотеть. Предлагаются варианты:

  • скачивание вручную и пляски с бубном потому как клик по ссылкам в терминале и других программах не открывает ссылок
  • из PPA устанавливается не-developer версия

Перепробовав все варианты, предлагаю самый лёгкий и быстрый способ установки Firefox Quantum Developer Edition в Ubuntu 16.

Устанавливаем Firefox Quantum Developer Edition в Ubuntu 16 при помощи Ubuntu Make

sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make
umake web firefox-dev

Удаляем Firefox Quantum Developer Edition из Ubuntu 16 при помощи Ubuntu Make

umake web firefox-dev -r
sudo ppa-purge ppa:ubuntu-desktop/ubuntu-make
]]>
Убираем www и перенаправляем на защищенный протокол в Apache https://blackcrystal.net/en/tutorial/apache-redirect-www-to-non-www-and-http-to-https/ Fri, 10 Nov 2017 10:20:11 +0000 https://blackcrystal.net/?p=508 [:ru]Мне кажется прошло время, когда приставка www была чем-то необходимым при создании сайта. Сейчас больше ценится лаконичность адреса, наличие шифрования (HTTPS) и единого домена для лучшей индексации (canonical).

В этой статье мы рассмотрим настройку веб-сервера Apache для того чтобы перенести пользователя на домен без или с приставкой www в защищенном режиме.

Вступление

Тут я покажу как настроить сайт, чтобы убрать www (или наоборот) и поменять HTTP на безопасный HTTPS, используя конфигурацию сервера Apache. Если быть точным, конфигурация перенаправит следующие адреса:

http://example.com
http://www.example.com
https://example.com

на

https://example.com

Я также покажу небольшое изменение, с помощью которого можно добавить www в адрес(если вы предпочитаете с www).

Конфигурация Apache

Чтобы переадресация работала, добавьте следующее в конфиг Apache, если у вас есть к нему доступ, или в .htaccess в корневой папке вашего сайта:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

Если вместо example.com вы хотите, чтобы адрес сайта был www.example.com, просто измените третью и пятую строчки:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

Как это работает

Так как я не любитель бездумного копирования, давайте попытаемся понять как работает эта конфигурация. Это поможет вам делать необходимые модификации, если потребуется.

RewriteEngine On

Первая строчка включает возможность перезаписи Apache, которая требуется для переадресации. Возможно вы уже сделали это в предыдущем изменении. Если да, то просто пропустите эту строчку.

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]

Эти две строчки – условия переадресации, они используются, чтобы определить нужна ли переадресация. Так как в условиях используется ИЛИ [OR], при выполнении хотя бы одного условия, Apache запустит правило перезаписи(переадресацию).

Первое условие определяет использовался ли адрес без HTTPS шифрования. Второе условие определяет использовался ли адрес с www. Заметьте, что я использовал www\. , а не www. , так как \ делает из . точки просто точку( . точка имеет в конфигурации свою функцию, поэтому лучше её избегать).

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]

Четвёртая строка раскладывает адрес на составляющие: www(если существует) и остаток адреса. Позже мы обратимся к этому при помощи %1 в правиле перезаписи.

Если вам известно имя хоста, то вы можете не использовать эту проверку(смотрите дальше).

RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

Правило перезаписи – это основа переадресации. Этой строкой мы говорим Apache переадресовать любой запрос на новый адрес:

  • https://www.
  • %1: ссылка на остаток адреса (без www)
  • %{REQUEST_URI}: URI запроса, без имени хоста

Все эти токены соединяются вместе и получается финальный URI переадресации. И в конце мы добавляем 3 флага:

  • NE не избегать специальных символов
  • R=301 использовать HTTP 301 статус переадресации
  • L не обрабатывать другие правила и переадресовать немедленно

Заметки

Как я уже говорил, мой пример использует условие перезаписи, чтобы извлечь имя хоста и не вписывать его в правило. Если вы считаете, что это повлечёт ухудшение производительности, вы можете вписать хост прямо в правило:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]

Вывод

Эта статья позволяет настроить простую переадресацию www и HTTP( не HTTPS) запросов к каноническому домену сайта. Это очень полезно, чтобы избежать проблему повторений с поисковыми системами, а так же облегчает серфинг вашим пользователям.

Существует множество способов осуществить переадресацию в Apache, это всего лишь один, и он не раскрывает все возможности. Я надеюсь, что обьяснение в параграфе “Как это работает” поможет вам настроить его под свои нужды.[:en]The increasing adoption of HTTPS as the default connection protocol for websites has introduced a few new challenges to developers and system administrators, such as the need to consolidate a canonical domain by redirecting non-HTTP sites to HTTPS, in addition to redirecting www to non-www host name (or vice-versa).

Introduction

Here I show how to redirect a site from www to non-www (or viceversa) and from HTTP to HTTPS, using the Apache server configuration. To be more clear, the configuration will redirect the following host names:

http://example.com
http://www.example.com
https://example.com

to

https://example.com

I’ll also show a small change to redirect the non-www to the www version, if you prefer the www.

Apache Configuration

To configure the redirects, add the following redirect rule either to the Apache config file if you have access to it, or to the .htaccess in the root of your site:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

If instead of example.com you want the default URL to be www.example.com, then simply change the third and the fifth lines:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

How it works

Since I’m not a huge fan of cut-and-paste tutorials, let’s try to understand how the configuration works. That would help you to make the necessary modifications, if needed.

RewriteEngine On

The first line enables the Apache runtime rewriting engine, required to perform the redirect. You may have already enabled it in a previous config in the same file. If that’s the case, you can skip that line.

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]

These two lines are are the redirect conditions, they are used to determine if the request should be redirected. Because the conditions are joined with an [OR], if any of those two conditions returns true, Apache will execute the rewrite rule (the redirect).

The first condition determines if the request is using a non-HTTPS URL. The second condition determines if the request is using the www URL. Notice that I used www\. and not www., because the pattern is a regular expression and the . dot has a special meaning here, hence it must be escaped.

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]

The forth line is a convenient line I used to avoid referending the hostname directly in the URL. It matches the HOST of the incoming request, and decomposes it into www part (if any), and rest of the hostname. We’ll reference it later with %1 in the RewriteRule.

If you know the host name in advance, you may improve the rule by inlining the URL and skipping this condition (see later).

RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

The RewriteRule is the heart of the redirect. With this line we tell Apache to redirect any request to a new URL, composed by:

  • https://www.
  • %1: the reference to the non-www part of the host
  • %{REQUEST_URI}: the URI of the request, without the hostname

All these tokens are joined together, and represents the final redirect URI. Finally, we append 3 flags:

  • NE to not escape special characters
  • R=301 to use the HTTP 301 redirect status
  • L to stop processing other rules, and redirect immediately

Remarks

As I’ve already mentioned, my example uses an extra RewriteCond line to extract the host name, and avoid to inline the hostname in the rule. If you feel this is a performance penalty for you, you can inline the host directly in the rule:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]

Conclusion

This articles provides a simple configuration to redirect www and non-HTTPS requests to the canonical site domain. This is very useful to avoid content duplication issues with search engines, and offer an improved experience to your users.

If you search online there are dozens of ways to perform a redirect in Apache, this is just one of the possibilities and it may not cover all the possible cases. Hopefully, with the explanation in the How it works section you will be able to customize it to your needs.[:]

]]>
Терминал bash и автодополнение https://blackcrystal.net/en/tutorial/terminal-bash-i-avtodopolnenie/ Mon, 06 Mar 2017 10:13:17 +0000 https://blackcrystal.net/?p=421 [:ru]В Ubuntu функция автодополнения часто просто не работает. Например, если зайти пользователем root в Ubuntu 16 Server, нажатие кнопки TAB никак не помогает с командами, только с файлами. Возможно пользователь был создан не совсем корректно и ему перенеслись не все файлы.

Чтобы автодополнение заработало, необходимо переустановить пакет bash-completion и скопировать шаблон /etc/skel/.bashrc в домашнюю папку пользователя:

sudo apt-get install --reinstall bash-completion
cp /etc/skel/.bashrc ~/
exit

И перезайти.

В Ubuntu 16 сразу станет понятно, работает ли шаблон и пакет автодополнения – коммандная строка станет цветной и можно пользоваться кнопкой TAB после комманд git или apt.[:]

]]>
Фейсбук для нелюбителей пощёлкать https://blackcrystal.net/en/tutorial/fejsbuk-dlya-nelyubitelej-poshhyolkat/ Sat, 04 Mar 2017 20:08:40 +0000 https://blackcrystal.net/?p=391 [:ru]Это набор действий, упрощающих жизнь пользователя той самой социальной сети в некоторых ситуациях.

Для того, чтобы вместо вас по спискам щёлкал сам браузер, нужно научиться запускать скрипты в консоли. Вкратце, вот как.

В Firefox нажать Shift + F4 чтобы открыть окно для ввода скриптов.

Нажать Ctrl+V. Если Firefox не позволяет вставлять, наберите волшебное слово пожалуйста allow pasting

Вы готовы для запускания скриптов, теперь идём в Facebook.

Массовое добавление друзей в список

Открываем список, например Restricted, нажимаем кнопку Manage List. Появится диалоговое окошко для изменения списка. Переключаемся на Friends и видим друзей, которых можно добавить в список.

Открываем консоль Shift + F4 и запускаем скрипт

var c = document.querySelectorAll('.checkableListItem:not(.selectedCheckable)');
for (i = 0; i < c.length; i++) { c[i].click(); }

Возможно придётся сделать это несколько раз, чтобы список полностью заполнился.

Массовое удаление друзей из списка Restricted

Примерно тем же образом происходит очищение списка.

Открываем список, например Restricted, нажимаем кнопку Manage List. Появится диалоговое окошко для изменения списка, переключаемся на On this list.

Открываем консоль Shift + F4 и запускаем скрипт

var c = document.getElementsByClassName('selectedCheckable');
for (i = 0; i < c.length; i++){ c[i].click(); }

Возможно придётся сделать это несколько раз, чтобы список полностью очистился.

Массовое удаление рекламы

Страничка настроек рекламы фейсбука даёт нам возможность отписаться от каких-нибудь объявлений.

Создаётся впечатление, что список тем бесконечный и кликать устанешь чтобы от всех них отписаться. Тут приходит на помощь наш скрипт, запускается тем же способом как и все предыдущие.

(function(selector){
var c = document.querySelectorAll(selector);
for (i = 0; i < c.length; i++) { c[i].click(); }
})('*[data-tooltip-content="Remove"]')

После нескольких запусков скрипта и десятка-двух перезагрузок страницы настроек, получаем девственно чистый список.

Продолжение следует

[:]

]]>
Оптимальная настройка Mysql https://blackcrystal.net/en/uncategorized/optimal-naya-nastrojka-mysql/ Sat, 04 Mar 2017 11:05:25 +0000 https://blackcrystal.net/?p=385 [:ru]Конфигурационные параметры по умолчанию в Mysql рассчитаны на небольшие базы данных, работающие под малыми нагрузками на скромном железе. Настройка некоторых параметров может повысить производительность Вашей базы данных в несколько раз.

Процесс оптимальной настройки Mysql состоит из двух частей — первоначальная настройка и корректировка параметров во время работы. Корректировка параметров в рабочем режиме во многом зависит от специфики Вашей системы и ее мониторинга — тут особых правил не существует. Для стартовой настройки есть ряд рекомендаций.

Откройте файл настроек mysql, например:

sudo nano /etc/mysql/my.cnf

Самые распространенные параметры, которые следует подстроить под нужды Вашего проекта и конфигурацию железа приведены ниже.

key_buffer_size

Если Вы используете только MyIsam таблицы, устанавливайте это значение в 30%…40% всей доступной оперативной памяти на сервере. MyIsam использует кеш операционной системы для данных, поэтому учтите, что оставшаяся свободная память понадобится именно для этого. Если же MyIsam таблиц у Вас немного и их совокупный размер маленький — оставьте это значение в пределах 32M.

innodb_buffer_pool_size

Если Вы используете только InnoDB таблицы, устанавливайте это значение максимально возможным для Вашей системы. Буфер InnoDB кэширует и данные и индексы (а кеш операционной системы не используется), поэтому значение этого ключа стоит устанавливать в 70%…80% доступной памяти.

Если Ваш сервер работает на Линуксе или Юниксе, не забудьте установить параметр innodb_flush_method в значение “O_DIRECT”, чтобы избежать избыточного кеширования на уровне ОС.

innodb_log_file_size

Обратите внимание на этот параметр, если у Вас предусматривается большой показатель записей. Чем больше размер этого ключа, тем более эффективно будет происходить запись данных. Но учтите, что при этом увеличится время восстановления системы! Этот параметр обычно устанавливают в 64M-512M.

innodb_flush_log_at_trx_commit

Этот параметр в значительной степени влияет на скорость работы (записи) innoDB таблиц. Значение “1” означает, что любая завершенная транзакция будет синхронно сбрасывать лог на диск. Значение “2” делает то же самое, только сбрасывает лог не на диск, а в кеш операционной системы. Это значение подойдет в большинстве случаев, т.к. не выполняет дорогой операции записи после каждой транзакции. При этом лог пишется на диск с задержкой в несколько секунд, что весьма безопасно с точки зрения сохранности данных. Значение “0” даст наибольшую производительность. В этом случае буфер будет сбрасывать в лог файл независимо от транзакций. Устанавливайте этот параметр в “0” на свой риск, т.к. в этом случае риск потери данных возрастает.

table_cache

Этот ключ определяет память, выделяемую для хранения открытых таблиц. Если у Вас несколько сотен таблиц, устанавливайте это значение в 1024. Если же у Вас огромное количество соединений, увеличивайте постепенно это значение, т.к. для каждого соединения храниться отдельная запись.

thread_cache_size

Этот параметр помогает избежать операций создания/уничтожения потоков при соединении к серверу. Установите этот параметр в 16 и наращивайте по мере потребности. Проверяйте показатель “Threads_created”, идеально он должен быть равным нулю:

mysql> show status like 'threads_created';
+-----------------+--------+
| Variable_name | Value |
+-----------------+--------+
| Threads_created | 423312 |
+-----------------+--------+

query_cache_size

Значение этого параметра определяет сколько памяти стоит использовать под кеш запросов. Не увлекайтесь установкой огромных значений. Кеш запросов не должен быть большим, т.к. mysql будет съедать ресурсы на управление данными в кеше. Начните с 32М…128М, и увеличивайте по мере необходимости.

Самое важное

Никогда не работайте с настройками по умолчанию. Это приведет к неиспользованию большинства ресурсов сервера. Правильная настройка MySQL может повысить производительность базы данных в несколько раз. Это позволит не только ускорить работу приложения но и справиться с большой нагрузкой.

Источник ruhighload.com[:]

]]>
А какая у вас платформа виртуализации? https://blackcrystal.net/en/uncategorized/kakaya-sistema-virtualizatsii-ispol-zuetsya/ Fri, 10 Feb 2017 18:03:03 +0000 https://blackcrystal.net/?p=359 [:ru]

Раньше не приходилось задаваться таким вопросом, но вот свершилось. И я прям немного застрял с поиском названия платформы виртуализации на наших облачных серверах. Поэтому, вот памятка для себя.

Linux:

dmesg | grep -i hypervisor

Windows:

systeminfo | findstr /i model

[:]

]]>
Включение/выключение touch устройств в Ubuntu 14.04 https://blackcrystal.net/en/uncategorized/vklyuchenie-vy-klyuchenie-touch-ustrojstv-na-laptope/ https://blackcrystal.net/en/uncategorized/vklyuchenie-vy-klyuchenie-touch-ustrojstv-na-laptope/#respond Thu, 18 Aug 2016 18:56:57 +0000 http://www.blackcrystal.net/?p=238 [:ru]Для выключения тачпада, порой мешающего набору текста, на моём стареньком Dell Latitude была классная комбинация функциональной кнопки с какой-то из верхнего ряда клавиатуры, прекрасно работало и в целом было полезно. Создатели Dell Inspiron 13 7000 почему-то об этом забыли, очень жаль. К тому же, добавился экран, в который иногда тыкают пальцами указывая что-нибудь, при этом нажимая всё подряд. В общем, захотелось мне эти излишества время от времени выключать.

Погуглив тему, я узнал что не все йогурты одинаково полезны способы работают с моим тачпадом, но точно работает вот этот:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M705 id=10 [slave pointer (2)]
⎜ ↳ ImPS/2 Elantech Touchpad id=15 [slave pointer (2)]
⎜ ↳ DLL06FD:01 04F3:300F UNKNOWN id=13 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Dell WMI hotkeys id=16 [slave keyboard (3)]

$ xinput disable 12
$ xinput disable 13

Методом тыка, я нашёл необходимые мне устройства и отключил их.

Самое время поставить находку в более удобное для использования место, а также заставить его выключаться и включаться. Создаю файл /usr/bin/touch-toggle с содержимым:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.touch-toggle

if [ ! -e $TOGGLE ]; then
touch $TOGGLE
xinput disable 12
xinput disable 13
notify-send -i /usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Touch toggle" "Disabled Touchpad and Touchscreen"
else
rm $TOGGLE
xinput enable 12
xinput enable 13
notify-send -i /usr/share/icons/HighContrast/24x24/devices/input-touchpad.png "Touch toggle" "Enabled Touchpad and Touchscreen"
fi

Установив на него права исполняемого файла, можно убедиться что всё работает.

$ sudo chmod a+x /usr/bin/touch-toggle
$ touch-toggle

disabled-touch-devices

В настройках клавиатуры System settings / Keyboard settings / Shortcuts добавлю новую комбинацию с названием “Touch Toggle” и командой touch-toggle.

disabled-touch-devices-2

С возможностью включить и выключить тач устройства, работать на лаптопе стало намного приятнее.[:en]There was ability to turn off touchpad, that disturbs me sometimes when i am typing on Dell Lattitude notebook. It was simple combination of Fn key with one of numeric. Authors of Dell Inspiron 13 7000 forgot to implement it. Additionnaly, now we have touch screen that client always tries to touch while point me something on screen. Anyways, i want to disable that features sometimes, and i want to make it in Ubuntu.

Googling this sublect gave me few commands. Not all of them works on my notebook, here is what is works:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M705 id=10 [slave pointer (2)]
⎜ ↳ ImPS/2 Elantech Touchpad id=15 [slave pointer (2)]
⎜ ↳ DLL06FD:01 04F3:300F UNKNOWN id=13 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Dell WMI hotkeys id=16 [slave keyboard (3)]

$ xinput disable 12
$ xinput disable 13

Thsis is how i found necessary devide and turned it off.

It’s time now to put it to a better place, make usable and allow toggle between on/off. Let’s create script /usr/bin/touch-toggle with contents:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.touch-toggle

if [ ! -e $TOGGLE ]; then
touch $TOGGLE
xinput disable 12
xinput disable 13
notify-send -i /usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Touch toggle" "Disabled Touchpad and Touchscreen"
else
rm $TOGGLE
xinput enable 12
xinput enable 13
notify-send -i /usr/share/icons/HighContrast/24x24/devices/input-touchpad.png "Touch toggle" "Enabled Touchpad and Touchscreen"
fi

Set execute permission and try it.

$ sudo chmod a+x /usr/bin/touch-toggle
$ touch-toggle

disabled-touch-devices

In System settings / Keyboard settings / Shortcuts i am adding new shortcut with name “Touch Toggle” and a command touch-toggle.

disabled-touch-devices-2

It’s much better now.[:]

]]>
https://blackcrystal.net/en/uncategorized/vklyuchenie-vy-klyuchenie-touch-ustrojstv-na-laptope/feed/ 0