LINUX.ORG.RU

Сообщения KivApple

 

Завернуть SSH в VPN на роутере

Форум — Admin

Есть интернет подключение, которое режет всё кроме DNS, HTTP и HTTPS (тупо по портам, то есть вместо HTTPS можно гнать всё, что угодно).

Есть VPS, на которой я поднял OpenVPN сервер на 443 порту. К нему отлично работает подключение с компьютера по тому интернет подключению в режиме заворачивания всего трафика в VPN (или не всего, как настрою маршруты).

Есть роутер на OpenWrt. Хочу, чтобы коннект к OpenVPN держал он, а не мой компьютер, при этом в VPN заворачивался только SSH, а весь остальной (HTTP, HTTPS) трафик шёл как раньше, потому что мне нет смысла терять сетевую производительность.

Подключение к OpenVPN настроил на OpenWrt, с роутера могу потыкать другой конец VPN (сервер), а если прописать в конфиге OpenVPN заворачивание всего трафика, то и ходить в интернет. Однако с Wi-Fi клиента ничего не работает. Второй конец VPN даже не пингуется, в режиме заворачивания всего трафика на компьютере просто пропадает интернет.

Таким образом у меня есть два вопроса:

  • Как заставить работать хождение через VPN на роутере для Wi-Fi клиентов?

  • Как заставить роутер заворачивать в VPN только определённый набор портов (SSH), а всё остальное пускать без него?

 , ,

KivApple
()

Nginx: отправка If-Modified-Since бекэнду

Форум — Admin

Я хочу заставить nginx кешировать любые ответы бекэнда вне зависимости от желания браузера (cache-control: no-cache должен игнорироваться). Таким образом, чтоб если у nginx есть что-то в кеше (даже если оно протухло несколько лет назад), он обязательно отправил бекэнду заголовок If-Modified-Since и дал шанс ответить 304 Not Modified.

В настоящий момент я написал такой конфиг:

proxy_cache_path cache/ keys_zone=my_cache:10m max_size=10g use_temp_path=off;
...
location / {
    proxy_cache my_cache;
    proxy_cache_revalidate on;
    proxy_cache_use_stale updating;
    proxy_cache_background_update on;
    proxy_cache_lock on;
    proxy_pass http://localhost:8080/;
    proxy_ignore_headers Cache-Control;
}

Бекэнд добавляет к своим ответом заголовок (пробовал разные комбинации, результат не меняется):

Cache-Control: max-age=60, must-revalidate, public

При первом обращении nginx кеширует ответ на диск, при последующих запросах вообще не обращается к бекэнду, но стоит кешу протухнуть он обращается к бекэнду без if-modified-since, соответственно бекэнд не может знать, что у него есть шанс ответить 304 вместо полноценной обработки запроса.

Я хочу заставить nginx обращаться к бекэнду всегда (этого легко добиться, например, max-age=1), но при этом всегда же он проверял изменённость ответа (if-modified-since) и бекэнд уже решал напрягаться ему полной обработкой или отдать 304 с пустым телом.

Что я делаю не так?

 

KivApple
()

Авторские права программиста и работа

Форум — Talks

В РФ, если человек пишет код в нерабочее время, не используя оборудование компании (на практике фирме будет сложно доказать эти два пункта в свою пользу, если прошло много времени, к тому же далеко не во всех фирмах вообще есть слежка за оборудованием программистов) и не связанный с задачами по работе, то все авторские права принадлежат исключительно ему. Конечно, есть пример nginx, но это скорее пример того, что в РФ некоторые люди и компании перед законом равнее чем другие (точно также, как, например, российский банкир может без суда и следствия отправить группу захвата из Москвы против блоггеров, которые сняли про него обидное видео), плюс там была зацепка,что nginx таки был непосредственно связан с рабочими обязанностями его автора и продукт был внедрён в Rambler после разработки. А так, в 99% случаев программист в РФ может спокойно пилить OpenSource или даже свой стартап по выходным и ничем не рисковать.

В США ситуация диаметрально противоположная (если ситуация отличается от штата к штату, поправьте меня). Там в договорах норма пункт о том, что даже написанный OpenSource вечером воскресенья - собственность организации и его никуда нельзя выкладывать без письменного согласия работодателя. Если же разработчик посмеет по воскресеньям пилить код для своего будущего стартапа, то миллионные иски гарантированы. При этом поскольку в США свобода договора гораздо шире, то эти нормы реально работают. Тут единственный вариант у разработчика - писать такой код на личном железе без бекдоров от работодателя и вне офиса, никому ничего не рассказывать, опубликовать только спустя много месяцев после увольнения (чтобы было правдоподобно, что он мог написать это за эти несколько месяцев в авральном режиме). И то не факт, что это безопасно.

А как дела обстоят в Европе? На ЛОРе есть много людей живущих и работающих в Европе, наверняка некоторые из них интересовались вопросом или хотя бы вдумчиво прочитали трудовой договор.

 

KivApple
()

Поиск и удаление всех комментариев текущего пользователя во ВКонтакте

Форум — Development

Нужно разработать приложение, позволяющее:

  1. Авторизоваться во ВКонтакте
  2. Находящее все комментарии текущего авторизованного пользователя везде, кроме его стены
  3. Удаляющее их

Интерфейс приложения на ваше усмотрение - можно CLI, можно GUI. В принципе меня устроит даже если приложение просто выдаст в терминал инструкцию для получения токена авторизации через браузер ручками и копипасту его в терминал, но, разумеется, если вы сделаете это более удобным способом, то это только приветствуется.

Приложение должно быть кроссплатформенным - работать как минимум под Linux и Windows без необходимости установки.

Исходный код приложения следует опубликовать на выбор на GitHub/Bitbucket/что-угодно-где-он-будет-доступен-для-скачивания-без-регистрации. Лицензия на ваше усмотрение любая свободная.

Предлагаемая оплата: 2000 рублей (вероятно, заинтересует в первую очередь студентов) переводом на карту. Если кто-то на форуме испытывает потребность в таком же приложении, то не против скинуться с другими форумчанами и увеличить «зарплатный фонд».

Дополнительные фича №1 (можно не реализовывать, если лень за предложенные деньги): Отображение найденных комментариев с группировкой по их местоположению: стены пользователей, сообщества, видео, фото и т. д. С возможностью отмечать отдельные комментарии или их группы для последующего удаления.

Дополнительная фича №2 (можно не реализовывать, если лень за предложенные деньги): Сохранение удаляемых комментариев в текстовый файл (ссылка на объект, где он был размещён + текст комментария).

Для параноиков не сидящих в соцсетях: зарегистрирую для вас один фейковый аккаунт на левый номер и передам вам логин-пароль для экспериментов. После выполнения работы делайте с ним что хотите.

Перемещено leave из job

 , ,

KivApple
()

Ждущий режим на Dell XPS 13 9350

Форум — Linux-hardware

Стоит Arch Linux со всеми обновлениями на сабже. Несколько месяцев назад появилась проблема - ноутбук не просыпается из ждущего режима (suspend to RAM), начинает грузится с нуля. При этом такое происходит только если за время ухода в сон было отключение ноутбука от блока питания. Если усыпить и сразу пробудить ничего не трогая, то проснётся нормально. В прошлом всё работало нормально, скорее всего какое-то обновление что-то сломало. С батареей проблем нет - ноутбук спокойно несколько часов работает от аккумулятора.

В чём может быть проблема?

 , , ,

KivApple
()

Проблемы с Bluetooth на Intel 8260

Форум — Linux-hardware

Имеется ноутбук Dell XS 13 9350. Проблема: дёрганно работает Bluetooth-мышь MX Master 2S. Причём на Windows, а также полгода назад на Linux всё работало отлично. Через Unifying так же работает отлично, но я не хочу занимать USB-порт (их у ноутбука всего 2 штуки). Поэтому на саму мышь грешу в последнюю очередь. Так же проблема вряд ли аппаратная, ибо ничего не изменила замена Wi-Fi модуля, а на Windows всё работало отлично. В прошлой теме мне посоветовали «выкинуть Broadcom и поставить нормальный Intel». Сегодня пришла посылка с Али, я заменил Wi-Fi модуль. А проблема всё та же (хотя признаю, Wi-Fi стал работать гораздо стабильнее).

$ lspci | grep Wireless
3a:00.0 Network controller: Intel Corporation Wireless 8260 (rev 2a)

Жду ваших советов. Может быть какие-нибудь опции ядра или modprobe могут быть полезны...

 ,

KivApple
()

Проблемы с Bluetooth-мышью

Форум — Linux-hardware

Имеется ноутбук Dell XPS 13 9350 с Arch Linux. Имеется Bluetooth-мышь MX Master 2S подключенная по Bluetooth. Раньше отлично работала, но после переустановки системы движение указателя стало дёрганным. При использовании тачпада таких проблем нет (да и вообще все анимации DE не тормозят - проблема не в видео). На другом компьютере под офтопиком таких проблем нет, так что дело и не в мыши (но если что недавно заряжал её до 100%).

Отсюда можно сделать вывод, что какие-то проблемы с драйвером Bluetooth или с настройками его энергосбережения.

Пакет bcm4350-firmware с AUR стоит.

В чём может быть проблема?

 , , ,

KivApple
()

Проблема с открытием docx в KDE

Форум — Desktop

В системе установлено 3 приложения, способных открывать docx: LibreOffice, WPS Office, Microsoft Office 2016 (через Wine). Я пробовал через настройки типа файла в Dolphin менять выбранное приложение по умолчанию. Однако двойной клик по файлу в любом случае открывает документ в Ark (архиватор, фактически это zip же), даже если вовсе удалить Ark из списка приложений, в которых следует открывать docx. MIME тип в свойствах файла отображается правильный. В контекстном меню файла отображается первым пунктом «Open with Название приложения» правильно. Но двойной клик отрабатывает не правильно. Как и попытка открыть такой файл другим способом (например, скачать docx через Google Chrome и попытаться открыть кликом в списке загруженных). С doc (который не zip внутри) таких проблем не возникает. С odt (который таки тоже zip внутри) тоже.

Как это можно исправить? Кроме полного удаления Ark из системы, ибо архиватор мне таки нужен.

 , , ,

KivApple
()

Периодические зависания ввода в KDE

Форум — Desktop

Столкнулся со следующей проблемой. При некоторых обстоятельствах KDE оказывается в следующем состоянии - нагрузка на CPU в пределах нормы, окошки обновляют своё содержимое (например, играет видео в браузере, всякие анимации и т. д.), указатель мыши двигается, но... ничего не реагирует на клики, наведение указателя мыши, нажатия клавиш клавиатуры. Единственным решением оказывается переключиться в другую виртуальную консоль и убить иксы. Я не уверен на 100%, но мне кажется эта проблема связана с захватом ввода, который делают некоторые окна. Например:

1) Я нажимаю Print Screen

2) Открывается скриншотилка KDE

3) Я выбираю сделать новый скриншот выделенной области

4) После этого в норме появляется полноэкранное окно с копией текущего содержимого экрана, в котором можно выделять регион, который хочется сохранить. Предполагаю, что это окно захватывает весь ввод.

5) Однако оно появляется с задержкой, в течение которой ничто не мешает совершить мне больше кликов по кнопке «Сделать новый скриншот». Например, потому что я не уверен, что хорошо нажал (тачпад иногда подглючивает).

6) В итоге нифига не появляется, а ввод таки захватывается

Аналогичная ситуация может быть с меню (большинство всплывающих меню в иксах тоже захватывают ввод), если успеть кликнуть по другой части окна до появления меню. Однако там редко бывает задержка, так что шанс такого мал.

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

Как с этим жить? Перезапускать оконную подсистему плохое решение, ибо дохнут все приложения (а там может быть какая-то важная информация + восстанавливать все запущенные приложения это тоже потеря времени). Может быть есть какой-то workaround этого бага? (например, включить какой-то другой режим работы KWin/иксов) Или хотя бы можно повесить сброс захвата ввода на какую-нибудь секретную комбинацию клавиш? (знаю, что скринлокеры обычно построены на базе захвата ввода)

 , , ,

KivApple
()

Облачное хранение данных пользователя мобильного приложения

Форум — Development

Допустим, я разрабатываю некую игрушку для Android. В этой игрушке у каждого юзера есть состояние, заданное буквально несколькими числами. Мне нужно чтобы это состояние синхронизировалось между всеми девайсами одного пользователя, а также переживало переустановку приложения (я не против какой-нибудь специальной кнопки удаления аккаунта, чтобы следовать всяким GPDR, но хочу избежать случайной потери прогресса игроком). Также мне нужно осложнить читинг. То есть когда данные проходят через сервер синхронизации между девайсами, то они проверяются на корректность изменения (небольшая функция, выполняющаяся server side) и некорректные действия игнорируются и не распространяются на другие девайсы юзера (более того, когда девайсы с некорректными данными попытается засинхронизироваться изменённые данные перезапишутся данными с сервера). Например, какое-то изменение состояния может происходить только раз в сутки. Нужно нейтрализовать тупые варианты вроде перевода часов. Кул хацкеры пусть взламывают сколько-угодно локально, пока это не касается server-side копии мне пофиг. Хочется избежать явного создания учётки, чтобы юзер просто поставил приложение и получил состояние, которое было до удаления приложения. Никаких «авторизуйтесь с помощью Facebook/VK/Google/etc». Я видел подобное поведение в других приложениях, значит это как то возможно.

Разумеется, хочется получить это всё бесплатно, пока у приложения не миллионы пользователей (то есть нужен сервис с бесплатным периодом до каких-то объёмов хранимых данных/юзеров).

Какие у меня есть варианты? Firebase? Что-то другое? В какую сторону копать?

 

KivApple
()

MSO 365 и Wine

Форум — Desktop

Хочу завести Microsoft Office 365 под Wine. Есть до сих пор активная подписка от французского универа, где я учился по обмену, так что вопросы работы активаторов не стоят - всё легально (может быть, когда-нибудь они заблочат моё универское мыло и халява кончится).

Сделал всё по этой инструкции: https://appdb.winehq.org/objectManager.php?sClass=version&iId=35527

MSO ProPlus запустился и даже работает. Проблема в том, что он ощутимо тормозит. Но не всегда, а только при действиях связанных с появлением исчезновением большого количества элементов управления. Например, при переключении ленты. Происходит подвисание на 1-2 секунды. В консоль при этом сыпятся куча сообщений двух видов:

005d:fixme:advapi:EventProviderEnabled deadbeef, 4, 2: stub
005d:fixme:d3d11:d3d11_immediate_context_DiscardView1 iface 0x6d395c0, view 0x122f94f0, rects 0xd4ffc0c, num_rects 1 stub!

Проблема не в производительности железа, ибо под виртуалкой таких тормозов нет, просто FPS анимаций проседает (но на то это и виртуалка, что там производительности меньше).

Вторая проблема, что окно невозможно перетаскивать штатными средствами (за заголовок), а если применить магию Linux (тащить за произвольную точку с зажатым Alt), то окно один раз переключаетя из максимизированного состояния в нормальное (становится где-то на четверть экрана), но его невозможно ни отресайзить, ни вернуть в максимизированное состояние, только также таскать с зажатым Alt.

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

В какую сторону копать? Пробовал ставить dxvk через winetricks (ведь судя по сообщениям в консоли MSO активно использует DirectX), но тогда офис превращается в тыкву (вылетает при запуске), пришлось удалять установленные им DLL.

Система: Arch Linux x86_64 со всеми обновлениями.

 ,

KivApple
()

NetworkManager прикладывает недостаточно усилий для подключения

Форум — Desktop

Есть ноутбук с Wi-Fi. Для управления сетью используется NetworkManager. Проблема в том, что при пробуждении Wi-Fi модуль как будто пробуждается не сразу или ещё чего-то в этом роде. В общем, NM пытается подключиться к точке доступа, но в итоге у него это не выходит и его гуй спрашивает пароль (вдруг не правильный). Но я отказываюсь ввести новый пароль, жду 10-15 секунд и уже ручками выбираю подключение и всё подключается.

В общем, я бы хотел чтобы NM пытался дольше подключаться к Wi-Fi и не переспрашивал бы пароль. Пусть хоть бесконечно пытается подключиться (хотя хватит и разумного времени вроде одной минуты). Разумеется, я имею ввиду многократное повторение полного цикла подключения, а не отправить 1 раз запрос на подключение и ждать. А если пароль неверный, я как-нибудь сам догадаюсь, если точка доступа не моя и коннект идёт ту же минуту.

Может быть, есть какие-то опции конфигурации на эту тему? Или только патчить исходники?

 ,

KivApple
()

Spectre и Meltdown

Форум — Security

Сначала я только потешался над теми, кто спрашивал как отключить патчи против Spectre и Meltdown и думал «ну это просто Яндекс.Музыка на жабоскрипте и поэтому при воспроизведении музыки проц греется под 90 градусов, жабоскриптмакаки такие жабоскриптмакаки», «ну это просто Windows такая нерациональная и прожорливая, поэтому при активном VirtualBox проц разогревается до 100 градусов». А потом отключил эти патчи на пробу. И что я имею? VirtualBox с Windows 10 с MSO + на хосте браузер с десятком владок (в одной из которых играет всё та же музыка) + установка обновлений пакетов = средняя температура 65 градусов, изредка поднимается до 75, выше не растёт совсем (в простое, разумеется, меньше, это всё же нагрузка), иногда опускается вообще до 60. Ни о каких 100 градусах не может быть и речи. Ах да, полнодисковое шифрование никуда не делось (нужно мне не от спецслужб, а чтобы не рвать волосы в случае потери/кражи ноутбука).

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

Защита от нативных бинарников лично мною запущенных меня не особо интересует. Без всяких spectre и meltdown они, если захотят, просто сделают rm -rf ~ или передадут содержимое моего хомяка злоумышленнику. То что им не получится достучаться до каких-то потрохов системы ситуацию особо не улучшит. А вот где действительно выполняется недоверенный код - так это браузер. Ведь я каждый день посещаю сотни сайтов и где то может быть запрятан эксплойт. Причём не обязательно по желанию владельца (даже ЛОР могут теоретически взломать и напихать эксплойтов).

В общем, реквестирую как можно больше тестов на наличие Spectre/Meltdown. То есть чтобы я такой открыл в браузере и оно написало «уязвим/неуязвим», либо в крайнем случае крашнуло браузер/систему (но исключительно в демонстрационных целях, без реального заражения/увода/уничтожения данных).

Пока нашёл только это:

https://react-etc.net/entry/javascript-spectre-meltdown-vulnerability-check-f...

Оно выдало мне, что уязвимость не найдена. Не исключаю, что тут надо благодарить разработчиков хрома, которые вроде тоже предпринимали какие-то меры. Также обновления пакета intel-ucode я не удалял.

Если из современного браузера никак не достучаться до этой уязвимости в настощее время, то тогда ИМХО для однопользовательской системы без настроенного SELinux/AppArmor лучше жить без патчей.

UPD: Закончилась установка пакетов и теперь температура вообще 56 градусов при той же нагрузке в виде браузера с музыкой и VirtualBox.

 , ,

KivApple
()

Сборка OpenH264 для Android

Форум — Development

Пытаюсь собрать OpenH264, чтобы потом использовать в Android приложении. Собираю как-то так:

PATH=~/Apps/AndroidSDK/tools:$PATH make OS=android NDKROOT=~/Apps/AndroidNDK TARGET=28

В итоге получаю ошибку линковки so-библиотеки:

/..//bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:241: libopenh264.so] Error 1

Насколько я понимаю, NDK зачем-то дёргает системный ld вместо правильного, он, разумеется, не умеет линковать под arm.

Как это исправить?

 ,

KivApple
()

Посоветуйте протокол

Форум — Development

Я всё дальше мусолю задачу стриминга по сети изображения с вебок/плат захвата с помощью одноплатника. Ресурсов мало, а ещё нужны маленькие задержки, поэтому так и не нашёл способа не пилить свои велосипеды. Сейчас у меня есть прога стриминга с V4L2 устройств, которая по-максимуму использует аппаратные энкодеры самих устройств захвата (если девайс умеет выдавать кадры в H264 всё совсем круто с битрейтом из коробки и нагрузка на проц минимальная, ибо только копирование, если девайс выдаёт MJPEG, то всё немного хуже - пришлось делать адаптивный алгоритм, который иногда пересылает неизменные кадры, а иногда пережимает существующие с большим сжатием, причём ещё и подбирая качество, чтобы более-менее соответствовать битрейту). А ещё многопоточность, да (то есть у меня одновременно несколько потоков теребят V4L2 устройство, параллельно пережимают JPEG-и, если надо, и только при отправке по сети есть небольшая синхронизация, чтобы фреймы шли в правильном порядке, выгода точно есть, ибо если создать только 1 поток, то всякие Orange Pi не тянут 30 fps пережатие JPEG, а с 2-4 потоками тянут).

ffmpeg не умеет в адаптивное пережатие (он может либо пережимать всегда, либо всегда копировать неизменный поток, а не выбирать действие в зависимости от того, насколько успешно справилась сама вебка с конкретным кадром, также не видел там подстройки качества сжатия JPEG для целевого битрейта, насколько я понял, такие функции доступны только для нормальных кодеков), mjpg-streamer не умеет пересылать неизменный H264 (а между тем если вебка его умеет, то это джекпот - битрейт даже на Full HD получается всего несколько мегабит и можно ничего не пережимать и просто копировать кадры из буферов сразу в сетевой сокет).

Но сейчас пришёл к идее, что было бы использовать для передачи какой-то стандартный протокол, ибо тогда можно будет смотреть поток не только моими велосипедами, но и стандартными плеерами (к тому же теперь есть шанс, что поток будет в H264 и мой самодельный плеер на базе libjpeg с ним не справится, в любом случае придётся лезть в дебри хардварного ускорения на мобилках).

Посоветуйте сетевой протокол:

1) Должен уметь играться всякими VLC/MPlayer. Желательно, чтобы его поддерживал и стандартный класс MediaPlayer из Android SDK.

2) По нему должно быть можно посылать массив JPEG картинок, либо H264 поток (в рамках одного соединения формат сжатия не меняется, если начали слать JPEG, то всегда будем слать их, если H264, то всегда его).

3) Должен быть просто реализуем. Сейчас я тупо пишу в сокет кадры один за другим, в идеале просто добавить в начале и между кадрами какой-нибудь заголовок.

 , ,

KivApple
()

AnyTask

Форум — Talks

Я тут не нашёл хороший таскменеджер (либо они нифига не умеют, либо у них интерфейс по сложности на уровне самолёта), поэтому начал пилить свой. Встречайте результат моего ленивого кодинга по вечерам в течении месяца: https://play.google.com/store/apps/details?id=id.pineapple.anytask

Фичи:

  • Можно вести список задач по дням
  • У задач можно настраивать повторы по дням/неделям/месяцам/годам
  • Задачи можно переносить на другие дни, в том числе автоматически (не выполнил задачу сегодня - она сама перешла на завтра в полночь)
  • Можно ставить задачам будильники, а также закреплять их (в день когда задача актуальна, она вылезет уведомлением, которое пропадёт только когда задача потеряет актуальность, либо будет отмечена выполненной)
  • Есть заметки (просто текст и заметка-список), заметки можно прикреплять к задачам
  • Можно всё экспортировать в файл (JSON) и импортировать обратно. Полезно для бекапов и переноса данных на новое устройство
  • Всякие мелочи (блокировка по пин-коду/отпечатку, тёмная тема и т. д.)

Главная киллер-фича: простота. В моём представлении если ты не президент и не глава корпорации, то большинство твоих задач не имеют чётких временных рамок и более того свободно двигаются в разумных пределах. Поэтому интерфейс оптимизирован для добавления простых задач (inline редактирование без всяких диалоговых окон), но стоит нажать плюсик и появляется мешюка со всеми дополнительными функциями.

А гугл календарь, который показывает over9000 опций каждое добавление задач, вызывает у меня стресс и я не могу его использовать иначе как пару раз в год.

Приложение бесплатно и не содержит рекламы (оно вообще не имеет доступа к сети в текущей версии). Ругайте.

 , anytask

KivApple
()

Переключение виртуальных рабочих столов с помощью дополнительно кнопок мыши

Форум — Desktop

Имеется мышь с 2 дополнительными кнопками. Они нормально распознаются иксами, но не используются ни одним приложением. Хочу повесить на них переключение виртуальных рабочих столов в Plasma (одна кнопка - на один рабочий стол вперёд, другая кнопка - на один рабочий стол назад, разумеется, в цикле), однако настройки KDE позволяют задавать хоткеи только с клавиатуры. Можно ли это как-то обойти?

 ,

KivApple
()

Анимация загрузки «как в Windows»

Форум — General

Под сабжем я подразумеваю сохранение логотипа UEFI и показ анимации загрузки на его фоне. Сама анимация может отличаться от виндовой.

Имеется Arch Linux с systemd-boot и plymouth, установленный в UEFI режиме. Так вот, обнаружил в возможных настройках systemd-boot с недавних пор опцию «console-mode keep». С ней получается следующее поведение: при запуске дисплейного менеджера (SDDM в моём случае) анимация plymouth исчезает и на секунду появляется логотип от UEFI и уже на его фоне появляется указатель мыши, а затем всё это сменяется запустившимся SDDM. То есть получается, что systemd-boot сохранил экран от UEFI при запуске ядра, а ядро умудрилось не затереть его содержимое и даже подсунуть дисплейному менеджеру в качестве начального содержимого экрана.

Иксы стартуют на tty1. Если переключиться на tty2, то также можно успеть заметить логотип UEFI, пока systemd не запустит getty и он не очистит консоль. При переключении на остальные консоли данный эффект уже не повторяется (возможно, getty запускается слишком быстро).

Раз пошло такое дело, то хочется заставить plymouth рисовать анимацию поверх логотипа UEFI, как это делает офтопик. Техническая возможность со стороны ядра точно есть, иначе бы этот логотип не мерцал при старте SDDM. Нужно как-то создать прозрачную тему plymouth или что-то вроде этого.

Кстати, если убрать опцию splash из параметров ядра, то логотип UEFI не появляется ни разу за всё время загрузки. Если переключиться в текстовую консоль с помощью Esc при работе plymouth, то там будут обычные информационные строчки на чёрном фоне.

 , ,

KivApple
()

Переписать SQL-запрос

Форум — Development

Для одного запроса требуется иметь временную таблицу с числами из некоторого промежутка (чисел не больше нескольких десятков). Я могу это сделать через WITH:

WITH days AS (SELECT :startDay AS d UNION ALL SELECT d + 1 FROM days WHERE d + 1 < :stopDay) 
SELECT ... FROM days, ...

Вроде всё работает, но есть одна проблема - этот запрос находится внутри Android-приложения и использует встроенный SQLite. И на старых версиях Android конструкция WITH почему-то не работает. Нужно как-то переписать без использования конструкции WITH.

Если что, я могу сгенерировать последовательность чисел в коде приложения и передать в запрос уже её). Подставится в виде:

5, 6, 7, 8, 9, ...

Но надо как-то из этого сделать in-memory таблицу из одной колонки, существующую только 1 SELECT.

В тред приглашаются SQL-гуру.

UPD: Если сделать запрос типа:

select * from (VALUES (1), (2), (3)) AS t;

То мы получим временную таблицу с 3 строчками и одним полем. Но есть одна проблема - Android Room может делать (1, 2, 3), но не (1), (2), (3). То есть вместо строк получаются столбцы.

 , ,

KivApple
()

Заставить работать Avahi

Форум — Linux-hardware

Подключил к домашней сети принтер со встроенным Wi-Fi (Epson WF-2750). Столкнулся с проблемой, что смог настроить принтер только указав фиксированный IP, но не по Avahi-имени принтера (EPSON90BD7F.local), хотя автоматически CUPS пытался именно так (пришлось ручками прописывать IPP адрес с явным указанием IP). Мне это кажется некрасивым (либо надо прописывать на роутере статический IP принтеру, либо он рано или поздно принтер пробудет отключенным слишком долго и в следующий раз ему дадут другой IP), тем более что принтер умеет в протокол Avahi.

Принтер видится через avahi-browse, но простейший пинг выдаёт, что хост не найден (пингуется только по IP). А хочу, чтобы нормально ресолвил имя.

Подправил nsswitch.conf, теперь там напротив hosts такая строчка (я просто дописал mdns4_minimal [NOTFOUND=return] перед resolve, всё остальное там уже было):

hosts: files mymachines myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

Однако это не помогло.

Если что systemd-сервисы avahi-daemon и avahi-dnsconfd запущены.

Что ещё можно сделать?

 ,

KivApple
()

RSS подписка на новые темы