LINUX.ORG.RU

Сообщения question4

 

Как Remmina, но Qt/KDE

 , , , тулкитосрач

Долго пользовался KRDC. Потом перепробовал несколько клиентов RDP, и самым удобным оказался Remmina. Захват клавиатуры, смена разрешения — всё сделано самым удобным образом.

А нет ли такого же, но на Qt? :) Можно с привязкой к KDE, можно без.

question4
()

Управлять GSM/EDGE/3G/4G из скрипта в Termux

 , ,

Есть скрипт на Питоне, который качает текстовые файлы с сайта. После 300 файлов IP блокируется на сутки и новых файлов читать не может. Поэтому я поставил этот скрипт на смартфон (терминал Termux, рута нет) и после каждых 300 файлов вручную выключаю-включаю мобильный интернет. Из пула берётся другой адрес и можно качать дальше.

Вопрос: как автоматизировать это переподключение? В Termux:API ничего подходящего не нашёл.

question4
()

Ноутбук «Гравитон Н15И-К2»

 ,

  • Процессор i5 8259U с возможностью замены на i3 или i7 8 или 10 поколений.
  • Интегрированное видео Intel Iris Plus Graphics 655.
  • Память 8 Гб DDR4 с возможностью расширения до 32 Гб.
  • Диск 256 Гб SSD, M.2. Опционально до 2 Тб.
  • Экран 15.6" (39,62 см) 1920х1080.
  • WiFi, HDMI, D-Sub, USB 3, Ethernet, наушники + микрофон, SDXC, BlueTooth.
  • ОС: Alt Linux, AlterOS, Astra Linux, Calculate Linux, РЕД ОС, Windows 10.
  • Обещают наличие всех драйверов в апстриме.
  • Размер 25х37х2,5 см. Масса 1,7 кг. Блок питания около 1 кг(?).
  • Питание 19 В, 2,1 А. Энергопотребление от сети 40 Вт. Аккумуляторы: 6000 мА-ч, 45,6 Вт-ч, 7,6 В. Что бы это ни значило.
  • Цена от 65 000 р.

https://zen.yandex.ru/media/vilianov_com/obzor-rossiiskogo-noutbuka-graviton-n15i-tak-vot-ty-kakoe-importozamescenie-62b192ce90520a31876b570a

https://www.computermarket.ru/main/catalog/catid/1880324.aspx

https://www.kns.ru/product/noutbuk-graviton-n15i-k2/

https://graviton.ru/podderzhka/dokumentatsiya-i-marketingovye-materialy/klientskie-sistemy/

https://graviton.ru/attachments/get/61/broshyura_noutbuk_n15i_k2_web.pdf

https://graviton.ru/attachments/get/73/tekhnicheskiy-pasport-noutbuk-graviton.pdf

https://graviton.ru/attachments/get/86/rukovodstvo-po-ekspluatatsii-noutbuk-graviton-.pdf

Кто-нибудь пробовал?

question4
()

Как превратить линейный список в список списков (таблицу)?

 

Есть список строк:

list1 = '''1
первое название
2:23
автор такой-то
2
следующее название
1:09
автор сякой-то'''.split('\n')

(Разумеется, строк гораздо больше.) Нужно превратить его в «таблицу»:

[['1', 'первое название',   '2:23', 'автор такой-то'],
 ['2', 'следующее название', '1:09', 'автор сякой-то']]

Желательно список списков, а не список кортежей, чтобы было проще менять элементы. Число строк кратно 4, либо можно отбросить лишние.

Почти сразу нашёл в сети красивое решение:

list2 = list( zip( * [iter(list1)] * 4 ) )

которое даёт именно список кортежей. Можно сделать

list2 = [ list(_) for _ in zip( * [iter(list1)] * 4 ) ]

Но как-то некрасиво.

Более правильные решения есть?

Ответ-однострочник:

list2 = list( map( list, zip( * [iter(list1)] * 4 ) ) )
question4
()

Глюки при создании списка

 list comprehension,

Запускаю такую последовательность команд:

import os

stoplist = [os.path.expanduser('~') + '/.cache/', os.path.expanduser('~') + '/.mozilla/']

def is_in_stoplist(a):
    for e in stoplist:
        if a.startswith(e): return True
    return False

filelist = [ os.path.join(r, f) for r, d, files in os.walk(os.path.expanduser('~')) for f in files if not is_in_stoplist(f) ]

Она должна составить список всех файлов в домашней директории вне ~/.cache и ~/.mozilla

Затем делаю len([f for f in filelist if f.startswith(stoplist[1])]) и получаю ~3000.

Повторное filelist = [f for f in filelist if not is_in_stoplist(f)] убирает все вхождения ~/.mozilla и ~/.cache.

Почему при первом прогоне не срабатывает?

Ответ: потому что в этой точке f — только часть имени. Или нужно вызывать is_in_stoplist(os.path.join(r, f)), или вообще фильтровать сразу root:

import os

stoplist = [os.path.expanduser('~') + '/.cache', os.path.expanduser('~') + '/.mozilla']

def is_in_stoplist(a):
    for e in stoplist:
        if a.startswith(e): return True
    return False

filelist = [ os.path.join(root, f) for root, d, files in os.walk(os.path.expanduser('~')) if not is_in_stoplist(root) for f in files ]
question4
()

OCR в браузере

 ,

В связи с распространением практики постить скриншоты текста возник вопрос. Сохранять сотни килобайт вместо десятков байт расточительно. Есть ли удобное дополнение к браузеру, которое бы распознавало текст и сохраняло текстовый файл? Или копировало текст в буфер обмена. Или, ещё лучше, сыпало весь текст в один текстовый файл с пометками дата-время-URL. Есть такое?

Желательно, чтобы оно было доступно и на десктопном Firefox (который у меня основной), и на андроидном Firefox, и на десктопном Chrome. Но можно 3 разных.

Пока перебираю, что нашёл поиском…

P.S. Важное дополнительное требование. Сохранение фоновой картинки в десктопных браузерах делается через задницу, а в мобильных ещё сложнее. Но такой способ вёрстки сайтов почему-то набирает популярность. Поэтому дополнение должно уметь распознавать текст в фоновых изображениях.

question4
()

Как работают python -W и PYTHONWARNINGS?

 

Есть заблокированный сайт. Есть прокси, который быстрый и доступный, потому что делает что-то нехорошее с HTTPS-трафиком. Есть программа gallery-dl, которая может скачать с сайта всё, интересующее меня. Но когда прокси подсовывает самоподписанный сертификат вместо настоящего, она сыпет предупреждениями InsecureRequestWarning, среди которых теряются реальные ошибки. Но и первое появление InsecureRequestWarning тоже желательно видеть.

Как я понял https://docs.python.org/3/using/cmdline.html#cmdoption-w , такую проблему можно исправить, запуская питон с ключом -W и параметром once::InsecureRequestWarning. А https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS говорит, что можно эти параметры перечислить через запятую в переменной PYTHONWARNINGS. Попробовал:

$ export PYTHONWARNINGS='once::InsecureRequestWarning'
$ gallery-dl --cookies ... --proxy ... --no-check-certificate --download-archive ... <URLы>
Invalid -W option ignored: unknown warning category: 'InsecureRequestWarning'
[1/22] https://...
[modulename][info] no username given; using modulename.org
/usr/lib/python3.9/site-packages/urllib3/connectionpool.py:1043: InsecureRequestWarning: Unverified HTTPS request is being made to host 'qwertyu.lkjhgfdsamnb.zxcv.network'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(

Вопрос: почему не опознаётся категория? Как отключить эти предупреждения? Помимо голого «once».

P.S. Запустить python -m gallery-dl нельзя, так как там отсутствует __main__, поэтому оно запускается скриптом-обёрткой.

Ответ: для обработки проблем в библиотеках ничего лучше фильтрования по началу текста ошибки не предложили: $ export PYTHONWARNINGS='once:Unverified HTTPS request'

question4
()

Подключение к VPN через Mikrotik

 , ,

Есть роутер Mikrotik, RouterOS v6.49.6 (stable). Требуется подключиться к серверу sstp.oshkontora.ru и через него работать с серверами в доменах oshkontora.ru и oshkontora.uk. Это 2 диапазона по 255 адресов: a.b.c.0/24 и d.e.f.0/24. Как это сделать?

В интерфейсе роутера создал «SSTP Client», в Connect To прописал IP от sstp.oshkontora.ru, ввёл логин и пароль, в Allow отключил mschap1, chap и pap, нажал Apply, убедился, что подключилось. Где прописать маршруты?

Что даёт чекбокс Add Default Route?

Что означает строка Local Address? Шлюз, через который доступен SSTP? Там сейчас 192.168.30.11 (роутер на 192.168.88.1, сам компьютер 192.168.88.254).

После этого FTP и RDP не заработали. Тогда я и обратил внимание на Local Address. Попробовал вручную прописать route add -net a.b.c.0 netmask 255.255.255.0 gw 192.168.30.11 Не помогло — ошибка SIOCADDRT: Network is unreachable.

Как настроить?

question4
()

ImageMagick и WebP

 , ,

Сконвертировал пачку PNG в WebP:

for f in *.png; do convert $f subdir/$f.webp; done

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

for f in *.png; do convert $f -quality 50 subdir/$f.webp; done
for f in *.png; do convert $f -quality 90 subdir/$f.webp; done
for f in *.png; do convert $f -quality 99 subdir/$f.webp; done
for f in *.png; do convert $f -quality 10 subdir/$f.webp; done
for f in *.png; do convert $f -define webp:lossless=true subdir/$f.webp; done

Во всех случаях получаются идентичные файлы. В чём проблема? Как задать качество?

Ответ: В Gentoo по умолчанию media-gfx/imagemagick собирается с USE="-webp". Но это означает не полное отсутствие поддержки, а использование каких-то захардкоженых параметров. Пересборка с USE="webp" помогла.

question4
()

Новые ограничения на редактирование стартового поста?

 

Узнал кое-какие детали по вопросу, который задавал на форуме в апреле. Хотел добавить информацию в стартовый пост и не обнаружил ссылку на редактирование. Как за 4 года изменилась работа со startx и ~/.xinitrc? Какое сейчас сделали ограничение по времени?

question4
()

Неожиданная проблема КОИ-7

 ,

https://youtu.be/dKf35M_-G7k?t=1416

В советском портативном компьютере МК-90, как оказалось, использовали кодировку КОИ-7 и переключались между русской и английской кодовыми таблицами, посылая спецсимвол для смены языка. Это приводило к забавному багу, когда русские кавычки в программе переключали на русский шрифт всю ОС.

question4
()

Неожиданная фича

 , , ,

Только что обнаружил, что если в Konsole навести курсор мыши на английское слово, обозначающее цвет, покажет большой квадрат этого цвета. Регистр значения не имеет. Если слово не влазит в строку и переносится, то тоже опознаётся. Из сотен цветов на https://en.wikipedia.org/wiki/List_of_colors_(compact) поддерживаются всего 54 — только в 1 слово, и то не все:

Aqua Aquamarine Azure Beige Bisque Black Blue Brown Burlywood Chartreuse Chocolate Coral Cornsilk Crimson Cyan Firebrick Fuchsia Gainsboro Gold Goldenrod Gray Green Honeydew Indigo Ivory Khaki Lavender Lime Linen Magenta Maroon Moccasin Olive Orange Orchid Peru Pink Plum Purple Red Salmon Seashell Sienna Silver Snow Tan Teal Thistle Tomato Turquoise Violet Wheat White Yellow

Поискав в сети, узнал, что это работает и в Yakuake. Кроме того, работает для 16-ричных обозначений цветов вида #123456.

P.S. Написание «Grey» тоже поддерживается. Итого 55.

P.P.S. KivApple подсказывает, что цвета взяты из стандарта CSS. Итого 147 слов (1 не поддерживается) для 138 цветов (7 — варианты написания gray-grey, плюс синонимы aqua-cyan, fuchsia-magenta):

AliceBlue AntiqueWhite Aqua Aquamarine Azure Beige Bisque Black BlanchedAlmond Blue BlueViolet Brown BurlyWood CadetBlue Chartreuse Chocolate Coral CornflowerBlue Cornsilk Crimson Cyan DarkBlue DarkCyan DarkGoldenRod DarkGray DarkGrey DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkSlateGrey DarkTurquoise DarkViolet DeepPink DeepSkyBlue DimGray DimGrey DodgerBlue FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite Gold GoldenRod Gray Grey Green GreenYellow HoneyDew HotPink IndianRed Indigo Ivory Khaki Lavender LavenderBlush LawnGreen LemonChiffon LightBlue LightCoral LightCyan LightGoldenRodYellow LightGray LightGrey LightGreen LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSlateGrey LightSteelBlue LightYellow Lime LimeGreen Linen Magenta Maroon MediumAquaMarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed MidnightBlue MintCream MistyRose Moccasin NavajoWhite Navy OldLace Olive OliveDrab Orange OrangeRed Orchid PaleGoldenRod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip PeachPuff Peru Pink Plum PowderBlue Purple Red RosyBrown RoyalBlue SaddleBrown Salmon SandyBrown SeaGreen SeaShell Sienna Silver SkyBlue SlateBlue SlateGray SlateGrey Snow SpringGreen SteelBlue Tan Teal Thistle Tomato Turquoise Violet Wheat White WhiteSmoke Yellow YellowGreen

question4
()

MS Teams падает при входящих звонках

 ,

Включаю «Make a test call», начинается сигнал входящего звонка от Echo, и через долю секунды программа перезапускается, даже не успеваю нажать кнопку ответа на звонок. При запуске из консоли ничего не пишет, в dmesg иногда появляется строка traps: teams[23357] general protection fault ip:7f2a5aad5da4 sp:7f2a818e9298 error:0 in slimcore.node[7f2a581b1000+3357000] (адреса варьируются). Аналогично при подключениях к групповым митингам. Gentoo, ALSA, net-im/teams-1.5.00.10453, USE=«-swiftshader -system-ffmpeg».

Решаемо? Куда копать?

question4
()

Ubuntu 22.04

 ,

В нормальных дистрибутивах есть фича, что после 5 минут неактивности лочит скрин и запрашивает пароль.

В Ubuntu 22.04 лочит и запрашивает пароль каждые 5 минут вне зависимости от активности пользователя.

А, нет. Это DE падает. Каждые 5 минут. С закрытием всех программ.

По крайней мере, в VirtualBox.

P.S. Как выяснилось, по умолчанию VirtualBox выделяет на 64-битную Убунту 1 гигабайт памяти. Поднял память до 4, и уже полчаса ни единого перезапуска.

question4
()

Necessary secrets for the VPN connection 'SSTP1' were not provided.

 , , ,

Пытаюсь подключиться к рабочему VPN по SSTP, используя NetworkManager. Раньше успешно подключался в Ubuntu 18.04 по этой инструкции: https://wiki.it-kb.ru/unix-linux/ubuntu/ubuntu-16-04-xenial-xerus-lts/how-to-setup-vpn-sstp-client-and-network-manager-on-ubuntu-desktop-linux-16-04-xenial-xerus-lts Теперь нужно подключить Gentoo с KDE. NetworkManager запущен, нужные модули в System Settings > Network > Connections появились. systemd отсутствует.

Пока удалось добиться, чтобы sstpc прекратил сегфолтиться. Теперь в GUI стала выскакивать ошибка «Necessary secrets for the VPN connection ‘SSTP1’ were not provided.» Чего ему не хватает?

question4
()

TeamViewer-ом кто-нибудь ещё пользуется?

 

Новые лицензии не продаются, старые будут работать, пока не кончатся, но главное: все бесплатные лицензии отозваны. https://www.teamviewer.com/en/company/press/

Кто-нибудь им ещё пользуется?

question4
()

meson не находит пакеты

 ,

При установке пакетов под Gentoo meson не находит требуемые зависимости:

Для net-misc/networkmanager не находит libudev.
Для dev-libs/libgusb не находит gio-2.0.

В обоих случаях pkgconfig их находит.

В чём дело? Как исправить?

Ответ: при миграции на профиль 17.1 часть пакетов (253 из ~750) не обновились. Смутно припоминаю, что сборка прервалась с ошибкой, после чего emerge -1vp /lib32 /usr/lib32 ничего не нашёл (или я потерял эту информацию среди длинных простыней сообщений о других ошибках). Как я понял, из-за этого часть файлов искалась не там. Сейчас emerge пакеты нашёл и пересобрал, и meson заработал.

question4
()

В настройках BIOS не видно жёсткий диск

 ,

На компьютере 2 жёстких диска, новый (с рабочей системой) и старый битый:

(parted) print all                                                        
Model: ATA TOSHIBA HDWE160 (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  5934GB  5934GB  ext4
 2      5934GB  6001GB  67.0GB  linux-swap(v1)        swap
 3      6001GB  6001GB  2097kB                        bios_grub


Model: ATA WDC WD40EFRX-68W (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  3947GB  3947GB                  root
 2      3947GB  4001GB  53.7GB  linux-swap(v1)  swap  swap
 3      4001GB  4001GB  2956kB                        bios_grub

(Отсутствие файловой системы на /dev/sdb1 — не ошибка, так и есть.)

Когда захожу в настройки BIOS и выбираю диск для загрузки, предлагает WDC, флешки, LAN, но только не TOSHIBA, и загрузиться с него невозможно. Когда гружусь, зажав F8, из Boot Menu нормально видно TOSHIBA, и загрузиться можно.

В чём проблема? Не хватает каких-то флагов? Что сделать, чтобы грузилось с sda без моего участия?

question4
()

Firefox предлагает включить DRM. Как убрать баннер?

 , ,

Захожу на Яндекс-маркет, и на каждой новой странице выскакивает предложение разрешить проигрывать DRM. Надоел уже хуже подписки на push-уведомления.

Насколько я могу судить, этот баннер — не часть веб-страницы, а часть интерфейса Фаерфокса. Если верить найденной документации (2016 года), отключение DRM в настройках должно заблокировать его раз и навсегда. (Собственно, я так сразу и сделал, когда эта настройка появилась много лет назад.) Баннер у меня стал появляться совсем недавно — после последнего апдейта. Как отключить его насовсем?

Gentoo, AMD64, www-client/firefox-91.8.0:esr.

question4
()

Как за 4 года изменилась работа со startx и ~/.xinitrc?

 ,

Включил компьютер после 4-летнего перерыва, обновил мир, – теперь иксы не стартуют по команде startx. Выдают в консоль ошибку:

parse_vt_settings: Cannot open /dev/tty0 (Permission denied)

Помимо неё ошибки в ~/.local/share/xorg/Xorg.0.log:

(EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound (Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory)

Когда включаю dbus, появляется

(EE) systemd-logind: failed to get session: PID 19851 does not belong to any known session

В чём проблема? Как запустить иксы? Помимо из-под рута или с SUID.

Ответы:
Проблема в смене conslolekit2 на elogind.
Для запуска иксов с OpenRC необходимо добавить elogind в boot. А уже elogind запустит dbus.

Но это пока не всё. Теперь выдаёт ошибку startkde not found.

Решение:
Рекомендуется заменить exec startkde на exec dbus-launch --exit-with-session startplasma-x11. Говорят, exec startplasma-x11 тоже годится.

Сам файл startplasma-x11 ставится из kde-plasma/plasma-workspace. Если ставить kde-plasma/plasma-meta, он поставит plasma-workspace.

question4
()