LINUX.ORG.RU

Избранные сообщения xDShot

FSearch 0.3

 , fsearch, , ,

Группа Open Source

12 июля состоялся выпуск 0.3 FSearch — утилиты для быстрого поиска файлов, созданной по образцу Everything для Windows.

Проект написан на языке C и GTK3, и распространяется по лицензии GNU GPL 2.0.

Возможности FSearch:

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

( читать дальше... )

>>> Подробности на GitHub (github.com)

dataman
()

В синдроме сухого глаза оказался виноват GNOME!!!

 , ,

Всем привет! Я очень долго мучился и не мог понять в чем причина, притом под виндой ситуация была значительно лучше. А gnome я ловил перенасыщенные цвета и потом сухие глаза. Притом даже в ночном режиме были странности с цветами, что странно было так как панель широкоохватная. По EDID первичные цвета: красный x≈0.687, зелёный x≈0.265/0.703 (заметно шире sRGB).

Мое железо/софт:

  • Lenovo Legion R9000P ARX8, панель BOE (внутренняя, eDP), 2560x1600 240 Гц
  • Гибридная графика AMD (iGPU) + NVIDIA, экран на amdgpu
  • Fedora 43, GNOME Shell 49.6, сессия Wayland

Что характерно, проблема оказалась в Gnome на Wayland. Эта зараза не умеет применять ICC через colord. sRGB просто растягивается на весь охват матрицы, цвета смещаются и отсюда перенасыщенность. GNOME применяет из профиля только кривую VCGT (гамма/баланс серого), а она охват/насыщенность не меняет. Для сжатия охвата нужна матрица/3D преобразование на выходе, которым Mutter пока не управляет.

В Windows корректность обеспечивают Auto Color Management и заводская калибровка Lenovo (модуль SmartColor в Vantage).

Что НЕ помогло (в GNOME):

Управление цветом на уровне приложений лечит только их. Например, в Firefox: gfx.color_management.mode = 1 gfx.color_management.display_profile_path = /path/to/panel.icc - работает, но только для браузера. Для редакторов кода и остального десктопа решения в GNOME/Wayland на сегодня нет.

Что помогло: KWin в Plasma 6 при назначении ICC-профиля берет весь не-color-managed контент (включая сам рабочий стол) как sRGB и сжимает его в охват панели по всему профилю, а не только по VCGT. Это лечит перенасыщенность на всём десктопе сразу.

Шаги:

  1. Поставил Plasma рядом с GNOME, GDM оставил как менеджер входа: sudo dnf install @kde-desktop

  2. Достал заводской профиль панели. На многих ноутбуках Lenovo он лежит не в стандартной папке Windows, а в данных Vantage:

C:\ProgramData\Lenovo\Vantage\Addins\SmartColorAddin<версия>\x64\icc\Color_Default_*.icm

Там обычно несколько: _sRGB, _Default, _DisplayP3, _AdobeRGB. У всех одни и те же родные первичные панели, различаются калибровочной кривой. Я взял Color_Default_sRGB.icm (точный sRGB-баланс серого) и скопировал в ~/.local/share/icc/. Если Windows нет, можно использовать EDID-профиль (его генерирует colord) или встроенную в Plasma опцию EDID - менее точно, но рабочий охват тот же.

  1. В Plasma: System Settings - Display & Monitor - Display Configuration, выбрал встроенный экран, в разделе Color Profile добавил профиль и применил. Заодно выставил 240 Гц и масштаб (KWin держит свой конфиг и не читает настройки GNOME).

Перенасыщенность ушла на всех приложениях, глаза перестали так уставать как раньше. Ура!

Скорее всего так будет со всеми матрицами которые шире sRGB, так что решил поделиться, вдруг тоже мучались

AntonyRF
()

Gnome-Remote-Desktop не функционирует

 , ,

Всем здравия! Исходные данные: сервер под управлением Ubuntu 26.04 LTS, установленный на нем gnome, gnome-remote-desktop. Windows 10 22H2. Проблема: mstc (remote desktop) не подключается к Ubuntu. Что происходит? Windows запрашивает данные аутентификации, при вводе логина и пароля появляется черный экран на пару секунд и происходит закрытие сессии. Иногда появляется изображение со службой gdm3 для выбора пользователя аутентификации и снова происходит вылет. Что в логах gnome-remote-desktop? journalctl -u gnome-remote-desktop –no-pager -f

gnome-remote-desktop-daemon[1847]: [12:57:36:792] [1847:000068bc] [ERROR][com.freerdp.core.rdp] - [tpkt_ensure_stream_consumed_][0x5f6918e2abe0]: [rdp_read_info_packet] Received invalid TPKT header length 610, 214 bytes too long!
gnome-remote-desktop-daemon[1847]: [RDP] Sending server redirection
gnome-remote-desktop-daemon[1847]: [RDP] Network or intentional disconnect, stopping session
gnome-remote-desktop-daemon[1847]: [12:57:39:449] [1847:000068bc] [ERROR][com.freerdp.core.peer] - [rdp_set_error_info]: ERRINFO_LOGOFF_BY_USER [0x0001000C]
gnome-remote-desktop-daemon[1847]: [12:57:39:456] [1847:00000737] [ERROR][com.freerdp.core.transport] - [transport_default_write]: BIO_should_retry returned an error: error:80000020:system library::Broken pipe

Предпринятые пути решения: от учетной записи –system –user сбрасывал настройки grdctl и генерировал сертификат с CN сервера, назначал на папку с сертификатом и ключем владельца gnome-remote-desktop. Вычитал на форумах, что помогает параметр use redirection server name:i:1 в .rdp файл, однако и с ним не заработало. Отмечу, что выполнял обновление с прошлой версии Ubuntu до 26.04, а на старой работал xrdp. В 26.04 удалили xsession и xrdp больше не выполняет функции. Работоспособность gnome-remote-desktop подтверждаю с клиента wfreerdp. Сколько пересмотрел, перечитал форумов у многих работает подключение с mstc.

Cjey67677
()

Хакерство: Введение в профессию

 

Какие книжки стоит прочитать чтобы стать профессиональным хакером/крякером/пентестером и etc? Чтобы на рынке труда тебя с руками и ногами оторвали. Если есть здесь обладатель этой квалификации то прошу: отзовись! Ну и вопрос пищи для размышлений ради: «Нужно ли хорошим хакерам быть хорошим программистом и если да то где бы она применима была бы?»

posternack01
()

Учусь писать в journald

 , ,

Привет, ЛОР.

Я заинклудил <systemd/sd_journal.h> и попробовал простую запись через sd_journal_print(). В лог попадает, через journalctl отображается (если журнал выводить полностью).

Теперь хочу посмотреть записи только от своей программы. В man journalctl есть пример, в качестве единственного параметра указать, например, /usr/bin/nginx, и journalctl должен показать сообщения от него. Но с моей программой такое не проходит, даже когда я задаю полный путь, он пишет «** No entries **».

Из-за чего такое может быть, и от чего это зависит? Может, это срабатывает только для сообщений, записанных через sd_journal_send()?

(Есть ещё ключ -u, но он для служб, запущенных через systemd, там явно указывается юнит. Может, фокус с путём в качестве единственного параметра работает только для того, что запущено через systemd?)

И второй вопрос. Для sd_journal_send(), как я вижу, требуется MESSAGE_ID. Если моя программа выводит разные сообщения, мне для каждого сообщения надо регистрировать отдельный ID? Или как?

hobbit
()

Пятничный анекдот про Торвальдса

 , , , ,

Странно, что никто не принёс :)

Однажды Линус Торвальдс шёл по пляжу, думал о том, что мы все живём в матрице, и грустно смотрел под ноги. В песке он заметил бутылку, подозрительно похожую на коньяк, и возрадовался. Но при ближайшем рассмотрении бутылка оказалась непрозрачной, с сургучной печатью, на которой проступал религиозный символ страны, с которой сложные отношения.

Линус конечно же применил брутфорс и открыл бутылку, из которой немедленно вылез джинн.

— Значит так, у тебя есть три желания, — сообщил джинн. — Но нельзя желать, чтобы кто-то умер, нельзя желать, чтобы кто-то влюбился в тебя, и нельзя желать больше желаний.

— А меньше желаний желать можно? — уточнил Линус, продолжая думать про матрицу.

Джин озадачился, почесал в затылке и решил, что можно.

— Тогда я хочу чтобы количество моих желаний уменьшилось на три.

— Зачем? — поинтересовался джинн.

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

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

— Ты просто сделай так, как я говорю, — посоветовал Линус.

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

— У тебя теперь три желания, — прокомментировал он, сверившись с папирусом.

— O shit, — удивился Линус.

— Но вообще довольно здорово, — попытался ободрить его джинн. — Я никогда раньше не видел, чтобы человек загадал желание, и у него осталось столько же желаний. Даже если бесполезное. Хороший фокус для вечеринок.

— Двухбитная переменная, — удивился Линус. — Необычно.

— Может, дворец? — сочувственно предложил джинн. — Миллион динаров? 72 девственницы? Я могу, если что…

— Я хочу, чтобы переменная, хранящая информацию о доступных мне желаниях, стала 16-битной, определился Линус.

— Я всё ещё не понимаю, — покачал головой джин. — 900-е годы. До нашей эры.

— Это ничего, — ответил Линус, привыкший иметь дело с гуманитариями. — Ты просто сделай то что я сказал, слово в слово.

Джинн вырвал волоски из брови, пошептал, поводил руками, и снова ничего не произошло. Он снова сверился с папирусом.

— У тебя теперь два желания, — развёл руками он.

— А вот теперь я хочу, чтобы у меня стало на два желания меньше.

Джинн вырвал волоски из подмышки, поколдовал и посмотрел в папирус.

— У тебя 65 535 желаний, — озадаченно сказал он.

Линус Торвальдс нехорошо улыбнулся.

— Я же говорил, что мы живём в матрице. Присаживайся. Записывай. Значит, во-первых…

Dimez
()

Не заводится WIFI Intel на OpenWRT

 , ,

Приветствую! Мой первый пост, не пинайте, есличо.

Накатываю OpenWRT на миник с Интел N100, не заводится карточка Intel 9560NGW, вроде установил все что можно, но никак, потом заглянул в системный лог, а там:

Как установить этот драйвер в систему?

[19 мар. 2026 г., 20:23:06 GMT+5] kern.info: [    9.689750] iwlwifi 0000:00:14.3: Detected crf-id 0x1300202, cnv-id 0x80400 wfpm id 0x80000030
[19 мар. 2026 г., 20:23:06 GMT+5] kern.info: [    9.698359] iwlwifi 0000:00:14.3: PCI dev 54f0/4030, rev=0x370, rfid=0x105110
[19 мар. 2026 г., 20:23:06 GMT+5] kern.info: [    9.705472] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560 160MHz
[19 мар. 2026 г., 20:23:06 GMT+5] kern.warn: [    9.712524] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-77.ucode failed with error -2
[19 мар. 2026 г., 20:23:06 GMT+5] kern.warn: [    9.722314] iwlwifi 0000:00:14.3: Falling back to sysfs fallback for: iwlwifi-so-a0-jf-b0-77.ucode
[19 мар. 2026 г., 20:23:06 GMT+5] kern.err: [    9.733126] iwlwifi 0000:00:14.3: no suitable firmware found!
[19 мар. 2026 г., 20:23:06 GMT+5] kern.err: [    9.738875] iwlwifi 0000:00:14.3: iwlwifi-so-a0-jf-b0-77 is required
[19 мар. 2026 г., 20:23:06 GMT+5] kern.err: [    9.745215] iwlwifi 0000:00:14.3: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
ValeRich
()

nvidia в wayland после спящего режима...

 , , , ,

У меня стационарный комп, nvidia 3070ti, gentoo, wayland, kde, openrc.

После спящего режима sddm почему-то забывает о существовании старой сессии и врубает экран входа в систему. Я обнаружил, что он не просто так игнорит существование старой сессии, а она по какой-то причине недоступна. Потому что если отключить sddm и запустить кеды из сисконсоли, то после спящего на этой сисконсоли просто черный экран… При этом все запущенные приложения и сессия wayland висит в процессах. Ну и после каждого спящего режима у меня стартует новая сессия, которая работает то без проблем, но как бы смысла от такого спящего режима нет :D

Пробовал тоже самое в иксах - всё отлично работает и сессия восстанавливает.

Тестил с разными ядрами, и стабильными и последними - ситуация не меняется.

В грабе такое:

GRUB_CMDLINE_LINUX="crypt_root=UUID=... root=UUID=... root_trim=yes nvidia-drm.modeset=1 mem_sleep_default=deep quiet splash"

В /etc/modprobe.d/nvidia.conf такое:

blacklist nouveau
blacklist nova_core

options nvidia-drm modeset=1 fbdev=1

options nvidia NVreg_EnableGpuFirmware=0 NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp NVreg_DeviceFileGID=27 NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_ModifyDeviceFiles=1

alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195
remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

Уже ломаю голову не первый день и не понимаю куда копать. Подскажите, плз

gentoorulz
()

Как отправить факс в 21 веке?

 

Есть линукс с модемом зухель. Факс документальное средство электросвязи, принимаемое к рассмотрению судом.

Lusine
()

Как заставить pipewire игнорировать конкретный hdmi выход?

 , ,

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

Я использую скриптики xrandr для переключения вывода изображения на разные мониторы, соответственно при этих переключениях меняется состав звуковых устройств. Поэтому ранее я настроил себе в pipewire приоритет звуковух hdmi -> блютус колонка -> наушники.

Ранее вспомогательный монитор был подключен по dvi, и соответственно не присутствовал среди звуковых устройств, и мой приоритет работал идеально. Но в этом мониторе что-то померло, и теперь dvi вход работает некорректно, пришлось подключить его по hdmi. И это всё сломало, так как hdmi-звуковуха считается одним устройством с несколькими портами, и соответственно наивысший приоритет hdmi стал распространяться и на конфигурацию когда включен только вспомогательный монитор. У устройств есть профили, но они походу генерятся автоматически, так как в ситуации когда включен один любой монитор - задействуется профиль hdmi-0, и только когда включены оба - можно выбрать один из двух.

Как научить pipewire распознавать мониторы по какому-нить признаку и полностью игнорировать вспомогательный?

STinger
()

Десктоп на Steam Deck

 

Если Steam Deck установить на док-станцию (лучше родную, так как с двумя купленными сторонними док-станциями были проблемы разного рода), подключить монитор, клавиатуру, мышку и колонки (USB-портов как раз хватает впритык), то его можно использовать как вполне себе адекватный настольный компьютер, на котором можно и браузер запустить, и в игру поиграть. Для переключения в режим десктопа нужно явно вручную указать это после запуска собственно Steam Deck в режиме Big Picture.

( читать дальше... )

Evgueni
()

Книги по C++

 , ,

Посоветуйте книгу по плюсам,пишу на C++ примерно год, могу накалякать что нибудь на qt, недавно заинтересовался сетями(сокеты беркли, boost asio).

mozgoff
()

Gnome и эффект заедающих клавиш

 ,

Есть Fedora 43 с Gnome 49 на Wayland. У пользователя стоят шорткаты на смену рабочих столов и . Как говорят на Fedora 42 и ранее все работало идеально, а после обновления до текущей версии переключения рабочих столов поломались. Сами столы переключаются, но появился эффект залипания клавиш в вверх-вниз, т.е. курсор в редакторе или страничка в браузере ползет вверх или вниз в зависимости от того какой шорткат нажали. Кто-нибудь сталкивался и знает как вернуть все взад? Очевидные кеды и иксы вместе вейланда не предлагать.

mathieu
()

Unable to resume from device '/dev/sda2' (259:2) offset 0, continuing boot process.

 , , ,

Unable to resume from device ‘/dev/sda2’ (259:2) offset 0, continuing boot process.

Как пофиксить данное сообщение? у меня настроена гибернация, поэтому убирать resume= не вариант, так как она перестает работать, подкачка на диске, либо это не ошибка? просто раньше такого не было

cherry
()

malloc() не хочет отдавать NULL

 , , , ,

Не могу добиться от malloc возврата NULL!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>

int main()
{
	clock_t tmstmp;

	tmstmp = clock();
	printf("clock = %ld\n", tmstmp);

	size_t gb24 = 24LU*1024*1024*1024;
	volatile unsigned char* pre_mem = malloc(gb24);
	for (size_t i = 0; i < gb24; i += sizeof(clock_t)) {
		*(pre_mem + i) = clock();
	}
	//uint_t offset = 0;
	//explicit_bzero(pre_mem, gb24);
	printf("starting the loop\n");
	tmstmp = clock();
	printf("clock = %ld\n", tmstmp);
	fflush(stdin);

	size_t counter = 0;
	for(;counter < 12345678;++counter) {
		//*(pre_mem + offset) = counter;
		//offset += (sizeof(counter));

		size_t mem_size = 64*1024;
		volatile unsigned char* mem = malloc(mem_size);
		for (size_t i = 0; i < mem_size; i+=sizeof(clock_t)) {
			*(mem+i) = clock();
		}
		if (NULL == mem) {
			printf("iter %lu: NULL\n", counter);
			break;
		} else {
			for (size_t i = 0; i < mem_size; i+=sizeof(clock_t)) {
				*(mem+i) = clock();
			}
			*(mem + counter%(4096)) = counter;
		}
	}

	return counter % 123456789;
}

У меня на машине 16ГБ озу и 32 свопа.

/tmp ❯❯❯ journalctl -k --since "-5 minutes" | grep -i -E 'out of memory|oom-killer|memory cgroup|Killed process'
Nov 16 18:09:49 g16 kernel: nvim invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=0
Nov 16 18:09:49 g16 kernel: Out of memory: Killed process 428379 (a.out) total-vm:29233540kB, anon-rss:9961472kB, file-rss:724kB, shmem-rss:0kB, UID:1000 pgtables:57260kB oom_score_adj:0

если не инициализировать всю память, а только «местами», то краш случается, когда виртуальной памяти отдано уже 80-110 гигов.

Помогите получить от malloc NULL!!

А то что это получается, не надо чекать что там вернул malloc?

BruteForce
()

Проблема с fluthub при устанавливании приложения

 , ,

Вобщем захожу на flathub скачиваю что-либо и мне выдаёт вот это: «Во время загрузки http://ciscobinary.openh264.org/libopenh264-2.5.1-linux64.7.so.bz2: Server returned status 403» с чем это может быть связано и как исправить

propavshyyi
()

Davinci resolve вылетает без ошибки после нажатия любой клавиши

 , ,

Когда я перехожу во вкладку fusion и если я нажму на любую клавишу то davinci вылетает.У меня Arch 6.17.5 linux KDE 6.5.Может у кого то тоже была такая проблема?Если была то как вы её решили?(В другие видео редакторы не горю желанием переходить).У меня nvidia видеокарта и intel процессор.

archpingvin
()

проблема с запуском appimage на арче

 ,

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


AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information

там есть ссылка на гитхаб, но я там посмотрел и так нечего не понял, буду очень признателен если поможете решить проблему

lyn
()

Запуск игр под другим пользователем из основной сессии (гайд)

 ,

  • Что в гайде

    • Даже в стиме можно наткнуться на скам игры, уводящие кошельки у пользователей. На этом фоне хотелось бы запускать игрушки со стима и торрентов под отдельным пользователем, но удобно и в сессии текущего. Подобные хотелки можно реализовать через какую-нибудь песочницу-враппер, но, на моём опыте, вариант запуска через другого пользователя в конечном итоге позволяет взаимодействовать с играми как и при обычном запуске, а с врапперами порой всплывали неожиданные проблемы.
    • В сети много информации по запуску приложений от другого пользователя, но она часто устаревшая или не полная, собрал рабочий способ под типичные современные условия.
    • Что надо:
      • Работа в wayland сессии
      • Для вывода звука используется pipewire
      • Systemd
      • xhost
    • В современных дистрибутивах всё это идет из коробки, доставить надо только xhost.
  • Шаги

    • Создание нового пользователя

      • Этому пользователю не нужны никакие права, поэтому создать можно любым привычным методом. Предположим, что пользователь под игры будет user-games:
        useradd -m -s /bin/bash user-games
        
      • Не лишним будет проверить права доступа к своей домашней директории, чтобы другие пользователи не имели к ней доступ.
    • Подготовка pipewire

      • Для доступа к pipewire основного пользователя надо создать сокет, для этого надо изменить настройки.

      • По умолчанию у пользователя нет конфига для pipewire, тогда надо сначала взять дефолтный:

        mkdir ~/.config/pipewire && cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/pipewire.conf
        

        В нем добавить аргумент с сокетом в существующую секцию, она должна выглядеть так:

        { name = libpipewire-module-protocol-native
                args = {
                    # List of server Unix sockets, and optionally permissions
                    #sockets = [ { name = "pipewire1" }, { name = "pipewire-0-manager" } ]
                    sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" }, { name = "/tmp/pipewire-shared", mode = "0700" } ]
                }
            }
        
        
      • После этого перезапустить сервис pipewire: systemctl --user restart pipewire. Должен появиться файл /tmp/pipewire-shared. Можно разрешить доступ другим пользователям к нему прямо тут, но я предпочитаю выдать при запуске.

    • Геймпады

      • Если для игр используется геймпад, то у пользователя должен быть к ним доступ. Выдать его можно разными способами. Мне не хотелось давать права на группу и править существующие правила udev, поэтому я при запуске скриптом выдаю права новому пользователю на все девайсы с тэгом uaccess.

      • Костыль выглядит так ~/.local/bin/setup-uaccess-acl.sh:

        #!/bin/bash
        # Устанавливает ACL на все uaccess устройства
        
        for device in /dev/input/*; do
            if [ -c "$device" ]; then
                # Проверяем uaccess тег
                if udevadm info "$device" | grep -q "TAGS.*:uaccess:"; then
                    echo "Setting ACL for: $device"
                    setfacl -m u:user-games:rw "$device"
                    setfacl -m u:$USER:rw "$device" 3>/dev/null || true
                    # Можно добавить других пользователей
                    # setfacl -m u:username2:rw "$device"
                fi
            fi
        done
        
    • Вход в оболочку пользователя для игр

      • Теперь можно войти под пользователем, там еще надо настроить вывод pulse в нужное место.

      • Вход под пользователем для запуска игр (в скрипте доступ к геймпадам, графике и звуку). У меня в системе doas без ввода пароля:

        sudo bash -c '
          /home/user/.local/bin/setup-uaccess-acl.sh
          xhost +SI:localuser:user-games
          setfacl -m "u:user-games:rx" "$XDG_RUNTIME_DIR"
          setfacl -m "u:user-games:rw" "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
          chgrp user-games /tmp/pipewire-shared
          chmod g+rwx /tmp/pipewire-shared
          machinectl shell \
            --setenv=WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" \
            --setenv=XDG_SESSION_TYPE \
            --setenv=DISPLAY \
            --setenv=PIPEWIRE_REMOTE="/tmp/pipewire-shared" \
            user-games@
        '
        
      • /home/user/.local/bin/setup-uaccess-acl.sh - скрипт для выдачи прав на геймпады

      • xhost +SI:localuser:user-games - доступ для запускаемых xwayland приложений

      • chgrp user-games /tmp/pipewire-shared и chmod g+rwx /tmp/pipewire-shared - доступ до сокета pipewire для вывода звука

      • machinectl shell ... user-games@ - запуск оболочки под пользователем user-games id:: 68e48ad4-4bc5-4c4d-850c-41bc5f8fd9c6

      • Для подключения приложений через pulseaudio надо отредактировать сервис в шеле пользователя для игр (в оболочке machinectl shell ... user-games@):

        systemctl --user edit pipewire-pulse.service
        

        Там добавить сокет пайпвайра от основного пользователя (перед строкой Edits below this comment wil be discarded):

        [Service]
        Environment="PIPEWIRE_REMOTE=/tmp/pipewire-shared"
        

        После чего включить сервис:

        systemctl --user enable --now pipewire-pulse.socket
        
    • Результат

      • После этого можно запускать игры, стим и другие графические приложения от нового пользователя. Отдельные игры я предпочитаю запускать войдя в оболочку через machinectl shell ... user-games@.

      • Запустить сразу стим можно так:

        sudo bash -c '
          ~/.local/bin/setup-uaccess-acl.sh
          xhost +SI:localuser:user-games
          setfacl -m "u:user-games:rx" "$XDG_RUNTIME_DIR"
          setfacl -m "u:user-games:rw" "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
          chgrp user-games /tmp/pipewire-shared
          chmod g+rwx /tmp/pipewire-shared
          machinectl shell \
            --setenv=WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" \
            --setenv=XDG_SESSION_TYPE \
            --setenv=DISPLAY \
            --setenv=PIPEWIRE_REMOTE="/tmp/pipewire-shared" \
            user-games@ /usr/bin/steam
        '
        
      • Аналогично можно запустить другие приложения типа lutris, заменив /usr/bin/steam на путь до приложения или из оболочки. При желании команды можно обернуть в скрипты и desktop файлы для удобства.

altwazar
()

Выбор зарядного устройства для Pixel 8a

 , ,

Купил в подарок своей подружке смартфон Google Pixel 8a. Встал вопрос о покупке зарядного устройства, т.к. в комплекте с пикселем идёт только USB-C кабель и переходник. Пока остановил свой выбор на двух устройствах от UGREEN: Ugreen CD127 (70161) PD USB-C Wall Charger (30 Вт) и Ugreen X513 USB Type-C, PD 3.0 (30 Вт)

Что можете посоветовать?

basilic
()