LINUX.ORG.RU

Сообщения dimgel

 

wine 7 белый плоский GUI

Форум — Desktop

Обновил wine 6.22 на 7.7. (Долго тянул т.к. глючная дрянь этот ваш wine.) Вид всех контролов в прогах (дочерних окон в MDI, кнопок, таблиц и т.п.) стал отвратительным: бьющим по глазам ярко белым и плоским. Весь гуй превратился в равномерно-ярко-белое пятно. В т.ч. в самом winecfg: тут не вполне белый, но светло-серый и тоже плоский (e.g. кнопки того же цвета что фон окна). Как вернуть взад?

 , ,

dimgel ()

Вышел QtCreator 7, в котором clangd включён по дефолту.

Форум — Talks

Конец тормозам. УРА ТОВАРИЩИ!!!

 ,

dimgel ()

mount bind + mount tmpfs на поддиректорию.

Форум — Admin
fstab:
tmpfs  /a/b  tmpfs  size=1M  0 0
/a1  /a  auto  bind  0 0
/a2  /a  auto  bind  0 0

Независимо от того, монтирую я /a/b до или после /a1 и /a2, оно не видно в /a1/b и /a2/b/. Т.е. делаю touch /a/b/xxx – и xxx не виден в /a1/b и /a2/b. А хочется чтобы был виден, т.е. чтобы /a/b, /a1/b и /a2/b ссылались на один и тот же tmpfs. Можно ли как-нибудь вылечить?

 

dimgel ()

Хочу gcc warning если во внутреннем scope есть переменная с тем же именем, что и во внешнем.

Форум — Development

Можно ли как-нибудь gcc заставить это делать?

class C {
    int x;
    void f(int x) {   // хочу тут warning: x уже есть в scope, объявлен в такой-то строке
        if (...) {
            int x   // и тут тоже
        }
    }
}

 , ,

dimgel ()

А что, mpv / smplayer не умеют в DVD menu?

Форум — Desktop

Сабж. В smplayer жму «Open / Disk / Play DVD from folder» – и оно запускает первый chapter, меню не открывает вообще.

 , ,

dimgel ()

VLC виснет без интернета

Форум — Desktop

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

Версия 3.0.16.

Галка «Allow Metadata Network Access» в настройках снята.

Инет запрещён через iptables: -A OUTPUT -m owner --uid-owner 1000 -j DROP

Чё делать?

Предложения вида «снести его нахрен» просьба сопровождать указанием удобных альтернатив. Помнится, что smplayer меня морозил громоздкостью и аляповатостью морды.

 ,

dimgel ()

Почему operator<=>() не генерирует operator==()?

Форум — Development
struct X {
    std::string s;
    inline auto operator <=>(const X& x) const { return s <=> x.s; }
};

https://godbolt.org/z/E8Y5Y3bs5

В итоге определены все операции сравнения кроме ==. (Во, теперь ещё и != неопределён. Только что ж пробовал.) Наличие constructor/assignment не влияет.

И самое смешное, в точно такой же структуре (с конструкторами, объявлена внутри namespace dimgel и по-другому называется) в моём проекте не определён ещё и operator<(). Что это за долбаная магия?

 ,

dimgel ()

Обновился pipewire* 1:0.3.43-5 -> 1:0.3.44-1, ругается что нет прав для nice -11

Форум — Desktop

И звука, соответственно, нет. Откатился – прекрасненько висят процессы под nice -11, что нихрена не удивительно: я в группе realtime, для которой в /etc/security выставлен этот лимит.

Что ни обновление – то досвидос. Зато эти черти в ченжлоге новой версии гордо заявили что что-то там соптимизировали с латентностью. Молодцы.

 ,

dimgel ()

Обновился firefox 96.0.2-1 -> 96.0.3-1, отвалилось почти всё видео на reddit, ЯП и т.п.: кодеков говорит нет.

Форум — Desktop

Кто виноват и что делать?

Ютуб работает.

 ,

dimgel ()

И чего этот VoidLinux хвалят?..

Форум — General

Об названия команд пакетного менеджера пальцы сломаешь.

И команды, и опции – менее интуитивные, чем в pacman. Примеры: (1) automatic вместо dependency; (2) для поиска какому пакету принадлежит файл вызываем xlocate, который ищет не конкретный файл (я ему между прочим абсолютный путь подсовываю), а всё сколько-нибудь похожее; других способов не гуглится.

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

И главное. Дистр – бинарный. Инфраструктура xbps-src интегрируется в систему отнюдь не бесшовно: (1) обновление пакетов, собранных из сорцов (с другими билд-опциями, иначе какой смысл?), требует дополнительных приседаний; (2) а самих этих билд-опций – кот наплакал, в большинстве пакетов их нет вообще, т.е. почти всё собрано с рекомендованными апстримом настройками; (3) так что если нужно что-то более гибкое gentoo-style, то добро пожаловать в копирование/редактирование template, т.е. в создание своего пакета; после чего поддержание его актуальности становится обыкновенным мейнтейнерским гимором.

Т.е. это бинарный дистр с выставленной на всеобщее обозрение и задокументированной системой сборки пакетов. Не более того. И это – современная-правильная-без-легаси «лучше чем гента»? Я таки вас умоляю.

Товарищи эстеты, чё вы в этом void вообще находите?

 ,

dimgel ()

Запилил утилитку: check-link-consistency for ArchLinux

Форум — General

Аналог гентушной revdep-rebuild:

https://github.com/dimgel/check-link-consistency

Пробуйте, пользуйтесь.

UPD. Мотивация: пост, камент. Пример вывода. Добавлено в universe-репу ArtixLinux: pacman -Si check-link-consistency.

 ,

dimgel ()

pavucontrol определяет onboard hd-audio как unplugged

Форум — General

С некоторых пор сломался звук.

TL;DR: pavucontrol:

Configuration / Family 17 HD Audio Controller / Profile = "Default (unavailable)"
Output Devices / Port = "Line Out (unplugged)"

Запуск pipewire из ~/.config/openbox/autostart стандартный:

pipewire &
pipewire-pulse &
wireplumber &
pasystray &

pavucontrol / Configuration показывает две карты:

  1. «GP106 High Definition Audio Controller» (полагаю что-то на nvidia 1060), Profile = «Digital Stereo (HDMI 2) Output» (там куча профилей, но остальные unavailable). Она мне не нужна.

  2. «Family 17h (Models 00h-0fh) HD Audio Controller», Profile = «Off». В выпадающем списке есть ещё один профиль, который мне и нужен: «Default (unavailable)».

При каждом старте иксов:

  1. Открываю из систрея этот pavucontrol, выбираю профиль «Default (unavailable)», затем на вкладке «Output Devices» ставлю галку «Set as fallback» у «Family 17h (Models 00h-0fh) HD Audio Controller Line Out» (там в выпадающем списке «Port» – единственное значение «Line Out (unplugged)») и снимаю эту галку у «GP106…»; и даже после этого на вкладке «Playback» приходится вручную выставлять source для индивидуальных приложений; хорошо хоть она запоминает ранее выставленное.

Схрена ли unplugged? Куда копать?

 , ,

dimgel ()

shader cache не сохраняется под другим юзером

Форум — Games

Перетащил я witcher3 под другого юзера (захотелось). Прям весь wineprefix. Запускается, но при каждом запуске заново компиляет шейдеры.

У меня нвидия блоб. Файл witcher3.dxvk-cache (в каталоге witcher3/bin/x64) – 12 байт; так было всегда, никогда не понимал что это и зачем. Каталога ~/.nv и раньше не было. Куда копать? Может какую-нибудь нужную env-переменную не протаскиваю в xsudo (моя утилитка, протаскивающая .XAuthority, DISPLAY и ещё что-то выборочно), но среди них нету ничего с путями в значениях.

 ,

dimgel ()

Какая .so экспортирует символ miRegionCreate? (UPD: Загрузка .so с игнором GLOBAL DEFAULT UNDEF символа?)

Форум — General

Символы miRegion* импортируются /usr/lib/xorg/modules/drivers/nvidia_drv.so. Прочие mi* импортируемые разнообразными x11-драйверами (nvidia, amd, intel) лежат в /usr/lib/Xorg, а этот не могу найти. И при этом видяха-то работает.

 ,

dimgel ()

Non-narrowing cast in C++

Форум — Development

Есть non-narrowing инициализация: long l = 0; int i {l}; = ошибка. Хочу такой же typecast.

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

long l = 0;
void f(int) {}
f((int){l});  // ошибка
f({l});  // тоже ошибка

…но компилятор выплёвывает warning: -Wpedantic: "ISO C++ forbids compound-literals". Гы, неужели я слишком многого хочу? :)

Сделал в итоге вот такую дичь:

template<class R, class P> R safeCast(P x) {
	R y {x};
	return y;
}
f(safeCast<int>(l));   // ошибка

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

Есть ещё варианты?

 ,

dimgel ()

Должен ли я подставлять своё имя в строку «Copyright» в тексте WTFPL, и почему собственно?

Форум — Talks

Т.е. здесь вместо

Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> 

вписать

Copyright (C) 2021-2666 Моё Имя <моё@мыло> 

?

А то вдруг этот (c) относится к автору собственно текста лицензии, а себя любимого я должен ещё куда-нибудь вписать (e.g. AUTHORS.txt).

 

dimgel ()

А я уязвимость нашёл! В su.

Форум — Talks

Если после ввода неправильного пароля сразу нажать Ctrl+C (т.е. послать этому su не помню уж какой сигнал), то можно не дожидаться таймаута перед сообщением «Authentication failure», и перебирать пароли гораздо быстрее.

 ,

dimgel ()

Перехватить ВЕСЬ свой stdout, в т.ч. выводимый чужими подлинкованными либами.

Форум — Development

Как? Набрёл на вот такое:

char buf[SIZE];
freopen("/dev/null", "a", stdout);
setbuf(stdout, buf);

ЯННП как это работает. Почему /dev/null на вход stdout? Каким боком это к задаче его перехвата?

И нельзя ли как-то без фиксированного размера буфера? Чую что надо pipe открыть, но как/куда/каким концом его потом?

 ,

dimgel ()

Объясните плиз по-человечески, что такое NoSpam в ToxID.

Форум — Security

С примером на пальцах если можно. В вике слишком сжато. Нашлась ещё какая-то Rust API дока, но от тамошнего английского у меня глаза на клавиатуру вытекли.

 

dimgel ()

А я всегда говорил, что source-based vs binary — это как статическая vs динамическая типизация.

Форум — Talks

И вот, недели не прошло как я поставил artix:

Там где гента матюгнулась бы ещё в процессе сборки пакета, тут мы обнаруживаем ошибку, пытаясь открыть pdf-ку.

  1. Сначала в иксах – и удивляемся, почему сначала ничего не происходит, а потом вместо моего любимого qpdfview вдруг пытается вылезти firefox (ему запретил: # chown root:root ~me/.mozilla; chmod …), а потом chromium (этот сука успешно).

  2. Потом в консоли – с подозрением на альцгеймер полез в ~/.config/mimeapps.

  3. Потом вызвал из консоли qpdfview и увидел что .so не найден.

  4. Потом ldd ``which qpdfview``, so не увидел.

  5. Потом догадался # pacman -S pax-utils; lddtree ``which qpdfview``.

  6. Потом вспомнил, что обновлялось 3 qt-шных пакета сразу, нашёл их в /var/log/pacman.log, по двум другим вызвал `pacman -Ql {package} | grep -F .so’, по найденным .so прогнал dlltree чтобы убедиться, что они тоже битые.

  7. Ручками отдаунгрейдил 3 пакета (вместе с libreoffice – 4) и прописал в игнор-лист в /etc/pacman.conf.

В будущем этот путь будет короче (как минимум без п.4), но всё равно – напороться на косяк в процессе работы (причём в данном случае – умеренно-срочной) крайне неприятно.

Сижу думаю над правильным аналогом гентушного revdep-rebuild; неправильный в AUR есть и он ни о чём т.к. не различает обязательные и опциональные зависимости. И вообще на питоне написан.

 

dimgel ()

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