LINUX.ORG.RU

Сообщения thm

 

Кто хочет яблочек?

Галерея — Скриншоты

Всем привет!

Давно я ничего не писал про свой проект, причина тому в переписывании почти всей кодовой базы (многие архитектурные решения в виду недостаточной опытности на момент разработки plainDE 0.x оказались неудачными). В ходе этого процесса сместилась и цель разработки проекта. Окружение рабочего стола по-прежнему остается легковесным, но теперь, в основном, нацелено на повторение стиля старых версий Aqua (конфиги сделаю под разные версии Mac OS X, все не будет ограничиваться темой эпохи 10.5 - 10.7). Кастомизация, конечно же, в некоторых аспектах остается. Более того, в каком-то роде даже расширяется, поскольку уже готовы библиотеки и API для написания апплетов. Все апплеты (включая те, что на скриншоте выше) написаны и будут писаться с их помощью, поэтому пользователи смогут быстро и легко разрабатывать свои апплеты (планируется запуск каталога таких апплетов, подобно extensions.gnome.org, но я не планирую пока что никакого своего механизма установки апплетов - все ограничится ссылками на пакеты в официальных репозиториях дистрибутивов). Т.е. разработчики кастомных апплетов будут иметь ровно такие же возможности (а они достаточно широкие).

При разработке учитываются мельчайшие особенности look & feel Mac OS X. Например, иконки в Dock панели при открытии приложений подпрыгивают, а при выборе пункта в меню апплета, он моргает перед закрытием меню

Релиз 1.0 все еще находится на стадии активной разработки и пока что недоступен в публичном доступе. Вместе с обновленной панелью будут представлены сервер уведомлений, файловый менеджер и еще несколько небольших компонентов

 , , , ,

thm
()

X-Plane 12 и Intel Arc

Форум — Games

Здравствуйте! Такая проблема. Решил сделать апгрейд с GTX1660s до Arc B580. X-Plane 12, судя по системным требованиям, поддерживает видеокарты Arc, начиная с версии 12.3.0. Обновился до 12.3.0-r3, но FPS ужасный и XP падает с ошибкой

Encountered Vulkan device loss error! X-Plane cannot continue running and will now quit.

BIOS последний, поддержка Re-Bar включена, ядро последнее (6.17.8), mesa последняя (пробовал сначала из оф репозиториев Арча - 25.2.7, затем поставил mesa-git из AUR, версия 26.0.0_devel.215112.f0465ced7f9.d41d8cd-1), vulkan-intel последний

Настройки XP удалял, с Live CD запускать пробовал - ничего не помогает

При том, с видеокартой самой явно все нормально. я скачал бенчмарк Superposition (1080p, high) - там полный порядок (но там и используется OpenGL)

vulkaninfo: https://paste.debian.net/1409974/

inxi -G: https://paste.debian.net/1409975/

lspci -nnkvv: https://paste.debian.net/1409976/

Подскажите, пожалуйста, куда еще можно копать?

ASUS PRIME B560-Plus / i7-11700F / ASRock Intel Arc B580 / Arch Linux

UPD: при включении ‘Safe mode’ в X-Plane, он перестает падать, но FPS по прежнему ~10-15

UPD 2: GravityMark на Vulkan’е тоже все в порядке. проблема видать таки в XP

UPD 3: обновил прошивку видеокарты с помощью igsc (на сайте Intel сказано, что в линуксе она автоматически не обновляется вместе с драйвером). не помогло, Все то же самое

 , ,

thm
()

Void Linux на Air M1

Форум — Linux-install

Здравствуйте! Пытаюсь установить Void на Air M1 (в Феврале вышел образ для Apple Silicon)

У меня уже стоит Asahi Linux Fedora Remix. Я записал образ на флешку и по гайду в документации Void’а в U-Boot’е прописал:

setenv boot_targets "usb"

setenv bootmeths "efi"

boot

появляется меню GRUB, выбираю пункт, выводится несколько ошибок и загрузка встает

пробовал оба Thunderbolt’а, разные загрузочные пункты - все то же самое

сообщения, которые появляются при загрузке: https://paste.ubuntu.com/p/qJv6ycTfVh/

(иногда еще пару ошибок USB сыпется usb usb2-port1: couldn't allocate usb device)

Подскажите, пожалуйста, что можно еще попробовать? Нигде больше не нашел никаких гайдов по установке Void’а на Apple Silicon. Только официальная документация: https://docs.voidlinux.org/installation/guides/arm-devices/apple-silicon.html

 , ,

thm
()

Обновление *.so во время runtime

Форум — Development

Здравствуйте. По прежнему контекст - разработка окружения рабочего стола, в частности, вопрос, относящийся к панели. Апплеты будут динамически подключаемыми *.so библиотеками. Но если в то время, как панель запущена, подменить *.so файл, то при любом взаимодействии с апплетом (а они еще бывают динамические, которые обновляются постоянно), панель крашится. Оно бы все ничего, но в дальнейшем, при обновлении системы, апплеты же тоже будут обновляться (и, возможно, апплеты, которые не входят в состав проекта, а написаны обычными людьми). И сразу же панель крашнется. У меня будет отдельный компонент, который ответственен за запуск сессии, в том числе и панели, и он сможет ее перезапустить, но это какой-то костыль. Есть еще идея при загрузке апплета скопировать его в /tmp, но это тоже как-то так себе вариант, мне кажется (особенно в плане легковесности). Подскажите, пожалуйста, как лучше поступить в данной ситуации, или где можно почитать решение этой проблемы в исходниках других проектов

 , ,

thm
()

4G роутер под OpenWrt

Форум — Linux-hardware

Здравствуйте. Подскажите, пожалуйста, есть ли 4G роутеры, работающие от батарейки, на которые можно прошить OpenWrt? Или такого нигде не найти и можно только сделать что-нибудь DIY с той же Orange Pi?

 , ,

thm
()

Безопасная загрузка и распространение апплетов

Форум — Development

Здравствуйте. Снова контекст разработки окружения рабочего стола. Имеется API для разработки кастомных апплетов. Соответственно, планируется также запустить магазин расширений, где будут представлены различные конфиги, темы и, в том числе, апплеты. Апплет у меня - просто динамически подключаемая *.so библиотека. Перечислю варианты, которые мне приходят в голову

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

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

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

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

Естественно, что ручную модерацию я осуществлять буду перед публикацией, но хочу услышать ваше мнение по поводу всех этих вариантов

 , ,

thm
()

Версия glibc и бинарники

Форум — Development

Здравствуйте! При разработке окружения рабочего стола возник такой вопрос. Со следующего релиза апплеты будут храниться отдельными *.so либами. И те, которые идут из коробки, и те, которые можно будет устанавливать из магазина апплетов. И, собственно, вопрос: а не возникнет ли проблем при обновлении glibc в системе с этими бинарниками? Не придется ли пользователю через какое-то время после установки перекомпилировать апплеты?

 , ,

thm
()

Инициализатор класса или функция

Форум — Development

Здравствуйте! Уже достаточно давно я поправляю людей, которые говорят, что в Python есть ‘функция int’, т.к. int - это, естественно, класс, у которого есть инициализатор. Так что int(‘101’, base=2) - это не вызов функции, а вызов обычного инициализатора класса int

Но недавно я, к своему удивлению, в официальной документации на странице Built-in Functions в табличке увидел все основные типы данных. Т.е. из документации следует, что int(), str(), bool() и т.д. - функции.

Так где же правда?

 ,

thm
()

Координаты виджета в QScrollArea

Форум — Development

Здравствуйте! Столкнулся с такой проблемой. У меня есть много элементов в QFrame, который я указал виджетом для QScrollArea. Когда я пытаюсь получить координаты какого-либо виджета, я получаю их относительно этого QFrame. Т.е. условно (10, 6125). А мне надо получить координаты виджета так, как я его вижу на экране. Т.е. что-то вроде (10, 310). Я могу получить координаты курсора (QCursor::pos()), но меня интересует точная геометрия виджета (т.к. я использую точки topLeft и другие). Пробовал методы mapToGlobal, mapFromGlobal и т.д., но, видимо, я так и не допонял чего-то, ни к чему это не привело. Подскажите, пожалуйста, в каком направлении думать? Спасибо

 , ,

thm
()

Перестал работать Wireguard

Форум — Admin

Здравствуйте. Сегодня днем Wireguard сначала стал очень медленно работать, потом вообще все сдохло и перестало подключаться. Я пробовал посылать UDP-пакеты через nping (быть может как-то не так?), ничем не помогло. Нашел форк официального клиента Wireguard - AmnesiaWG, но как я там ни игрался с параметрами, ничего не работает. Я так и не понял с AmnesiaWG, надо ли менять что-то на стороне сервера? Подскажите, пожалуйста, в каком направлении думать, это очень для меня критично. Спасибо большое

P.S. Дом.ру СПБ + МТС СПБ

UPD: проблему решил поднятием Vless+Reality

 ,

thm
()

Несколько устройств к Wireguard

Форум — Admin

Здравствуйте. Столкнулся с такой проблемой, когда поднимал Wireguard VPN на VPS сервере. Если подключаться с одного устройства, то все работает отлично, но если в этот же момент подключиться с какого-нибудь другого устройства, то все начинает работать дико медленно, а точнее вообще почти не работает. Подскажите, пожалуйста, с чем это может быть связано? Заранее спасибо. P.S. конфиги прилагаю

/etc/wireguard/wg0.conf на сервере

[Interface]
PrivateKey = ...
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
ListenPort = 51820

[Peer]
PublicKey = ...
AllowedIPs = 10.0.0.2/32, 10.0.0.3/32

Конфиг на клиенте

[Interface]
Address = 10.0.0.2/32
PrivateKey = ...
DNS = 8.8.8.8

[Peer]
PublicKey = ...
Endpoint = ...
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

 

thm
()

Окно, требующее внимания

Форум — Development

Здравствуйте! Я решил расширить функционал апплета Launcher на своей панели, чтобы это была не просто иконка, которая запускает то, что прописано в ключе Exec в Desktop Entry, а чтобы она была чуточку умнее и показывала, если приложение открыто (подобно Dock в Mac OS X). Но тут же возник вопрос, как понять, что окно попросило внимания? В Qt, например, есть такой метод QApplication::alert (да и во всех других тулкитах есть подобное). На Mac OS X программа, которая требует внимания, подпрыгивает в доке (но не как при открытии, а посильнее). на винде в таскбаре окно моргает желтым цветом. Собственно, вопрос - как получить этот сигнал, что окно попросило обратить на себя внимание? Никакого подобного сигнала в классах KWindowSystem и KX11Extras я не нашел. Заранее спасибо

 , , ,

thm
()

Кеш для Desktop Entry

Форум — Development

Здравствуйте! Возник такой вопрос (опять же, контекст - разработка легковесного DE). У меня сейчас при каждом открытии меню приложений читаются все *.desktop файлы из /usr/share/applications и ~/.local/share/applications (я знаю, что это не совсем правильно, и на самом деле надо проходиться по всем директориям из $XDG_DATA_DIRS, но пока что так). Я написал с нуля класс, который читает и парсит Desktop Entry (можно было бы использовать QSettings, как я собственно и делал раньше, но формат *.ini не предполагает перечислений через точки с запятыми, а именно это представляет собой параметр Categories, поэтому раньше не было возможности сделать меню по категориям). Но как-то не очень легковесно это, по-моему, каждый раз читать, вполне возможно, за сотню с лишним файлов с диска. Я где-то видел, что для этого используется т.н. menu-cache. Вопросов встает несколько:

  • Стоит ли пользоваться этим menu-cache? Т.е., насколько я понял, создается один файл, в котором закешированы основные параметры из каждого Desktop Entry, и апплет читает уже только его, чтобы снизить нагрузку на диск. Хотя может я и неправильно понял?

  • Является ли он стандартом / есть ли подобный стандарт от тех же Freedesktop, например?

  • А как этот кеш обновляется? Вот я изменил как-нибудь, допустим, файл *.desktop в /usr/share/applicaitons. И что, при добавлении/изменении/удалении надо каждый раз прописывать какую-нибудь команду для обновления кеша? А как сделать, чтобы пакетный мендежер автоматически это делал? Например, в Debian, насколько понимаю, так это и происходит. Мы же, когда ставим пакет, пакетный менеджер этот кеш меню автоматически обновляет.

Или не стоит это все того, и лучше оставить как есть?

UPD: Либо есть еще вариант. Один раз при запуске прочитать все файлы. Допустим, повесить QFileSystemWatcher на ту же /usr/share/applications и при изменении каком-либо обновлять список приложений, чтобы не делать это при каждом открытии меню приложения.

Заранее спасибо.

 , , ,

thm
()

У меня у одного LOR тупит?

Форум — Linux-org-ru

Собственно, сабж. Последние 3-4 дня просто бывает невыносимо. Вроде работает, работает и вдруг повисает намертво, ни страницу не открыть, ни сообщение не отправить. Потом вроде все нормально, и в какой-то момент опять повисает. Это только у меня?

 

thm
()

Как добавить путь к библиотеке в кеш?

Форум — Development

Здравствуйте. Столкнулся с такой проблемой за неимением опыта работы с кастомными библиотеками.

Допустим, я написал библиотеку. Положил header-файлы в /usr/include/mylibrary, положил *.so файлы в /usr/lib/mylibrary, в Qt проекте прописал библиотеку, все компилируется, все хорошо. Но чтобы запустить этот бинарник приходится прописывать что-то подобное:

LD_LIBRARY_PATH="/usr/lib/mylibrary" ./program

Прописал ldconfig -v, моей либы там нет.

Файл называется правильно, ну т.е. условно: /usr/lib/mylibrary/libmylibrary.so.1.0.0 и symlink’и на *.so.1.0, *.so.1 и *.so.

Подскажите, пожалуйста, что делать?

 , , ,

thm
()

Зависают программы после сна/блокировки экрана

Форум — General

Здравствуйте! Уже долгое время достаточно мучаюсь с такой проблемой. Когда я блокирую экран либо отправляю комп в сон, обратно залогинившись, вижу, что element-desktop намертво висит. т.е. даже UI поток стоит, окно прозрачное. Что интересно, увеличивается потребление процессора и температура в этот момент. В основном это только с element-desktop происходит, но замечал пару раз подобное и за VLC (хотя между ними, наверное, общего мало - одно написано на Electron, другое на Qt). Если подождать минут 5-7, то в конце концов он отвисает. Ну либо, если прибить процесс, запустить заново, то тоже работает. Если важно:

  • Arch Linux
  • Дисплейный менеджер: LightDM (+ light-locker для блокировки экрана)
  • Оконный менеджер: Openbox
  • i7-11700F / GTX1660S (проприетарный драйвер NVIDIA ессно стоит) / ASUS PRIME B560-PLUS

Подскажите, пожалуйста, что можно сделать с этим. Мб кто-то знает, с чем это может быть связано?

 , ,

thm
()

Анимация окна

Форум — Development

Здравствуйте! Возник такой вопрос (опять же, контекст - разработка окружения рабочего стола). Есть у меня анимация при запуске панели. Реализую достаточно просто - от координаты x или y (в зависимости от расположения панели) отнимаю/прибавляю толщину панели - это получается начальная точка. А изначальное значение - конечная точка. И обычным QPropertyAnimation делаю анимацию параметра «pos». Но я один момент не учел. Я начал писать сервер уведомлений и туда такую же анимацию решил сделать. А щас, когда начал этот прототип тестить, заметил такую проблему (которую впрочем с самого начала стоило предполагать). Если уведомление справа сверху, то, соответственно, ширину этого уведомления я прибавляю к координате x, чтобы оно, как бы, выезжало с правой стороны экрана. Но у меня справа от основного монитора еще один монитор. И получается, что, естественно, окно появляется там, а затем уже передвигается на основной. Хотелось бы добиться такого поведения, чтобы окно было видно только на целевом мониторе, даже если его координата изначально задана за его пределами. Такое вообще возможно реализовать? Заранее спасибо.

 ,

thm
()

Как сделать, чтобы QWidget был всегда минимального размера?

Форум — Development

Здравствуйте! Имеется панель. У нее есть опция expand, при включении которой, панель разворачивается на всю ширину/высоту экрана. Но если ее выключить панель принимает минимально возможный размер, с учетом апплетов, которые на нее помещены. Это прекрасно работает, когда панель статического размера. Но вот если ее размер по какой-либо причине изменился (например, в списке открытых окон появилась новая кнопка или отработала анимация у Launcher’а), то после того, как все вернулось, как было, размер панели не становится снова минимальным, а остается тем, до которого она увеличилась.

Пробовал (пока что на горизонтальной панели только): this->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);

Но ни к какому результату это не привело.

Подскажите, пожалуйста, что еще можно попробовать.

UPD: раньше эта проблема решалась перезаданием геометрии панели при каждом изменении ее размера, но хотелось бы найти более легковесное решение

 ,

thm
()

Универсальный способ выключения системы

Форум — Development

Здравствуйте. Возник такой вопрос при разработке окружения рабочего стола. У меня до текущего момента кнопки выключения и перезагрузки запускали systemctl poweroff и systemctl reboot соответственно. Но как быть с системами без systemd? Я нашел способ, который работает в Artix Linux, можно прописать loginctl poweroff. Но, насколько я понял, это работает только с elogind (потому что loginctl в Арче сказал, что не знает такой команды - poweroff). Есть какой-то универсальный способ, который будет работать везде, чтобы не городить костыли?

 , , ,

thm
()

Toshiba AC100

Форум — Linux-hardware

Доброго времени суток. Нашел сие чудо в инете, уж очень вдохновил линукс на ARM-ноуте, который такой компактный и столько может держать батарейку. Хочу на барахолке купить. Они многие б/у уже даже с линуксом и продаются. Вопрос в том, что я не видел, чтобы туда кто-то ставил что-то новее, чем убунта 11.10. хз, мб потому что я один такой упоротый. Есть ли там хоть какая-то жизнь на Arch Linux ARM? нашел какой-то гайд по установке ALARM туда (https://gist.github.com/Nokius/81cd46405b537931a472e0a55abb7ccd), надо собирать ядро кастомное. ну, это в принципе не проблема. Просто хотел спросить, мб есть здесь кто-нибудь, кто имел опыт с подобного рода девайсами, как оно?

 , ,

thm
()

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