LINUX.ORG.RU

Сообщения KennyMinigun

 

XWayland: размытые шрифты

Форум — Desktop

Заценил Plasma под Wayland, особенно «безшовное» масштабирование с несколькими мониторами.

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

  • Разрешение: 3840x2160 (15.6", 282ppi)
  • Scaling factor: 190%

Выхлоп xrandr:

$ xrandr
Screen 0: minimum 16 x 16, current 3941 x 1252, maximum 32767 x 32767
XWAYLAND0 connected 1920x1080+0+172 (normal left inverted right x axis y axis) 350mm x 190mm
   1920x1080     59.96*+
XWAYLAND2 connected 1920x1200+2021+0 (normal left inverted right x axis y axis) 520mm x 320mm
   1920x1200     59.88*+

Причем WAYLAND0 – это 4K

Вот что про него говорит kscreen-console:

Id:  1
Name:  "Y2XND\u0080LQ156D eDP-1-unknown"
Type:  "Panel (Laptop)"
Connected:  true
Enabled:  true
Primary:  false
Rotation:  1
Pos:  QPoint(0,172)
MMSize:  QSize(350, 190)
FollowPreferredMode:  false
Size:  QSize(-1, -1)
Scale:  1.89844
Clones:  None
Mode:  "0"
Preferred Mode:  "0"
Preferred modes:  ("0")
Modes: 
         "0"    "3840x2160@60"   QSize(3840, 2160)   59.997

Вопрос такой: как в XWayland (под kwin) пофиксить размытые шрифты? Мое подозрение – неправильное масштабирование (можно ли его задать вручную для X?).

 , , , ,

KennyMinigun
()

MappedSum есть где нибудь?

Форум — Development

Надо обьект, который будет предоставлять интерфейс подобный std::map<int, int> но при том держать/актуализировать сумму всех значений.

template <typename Element, auto... keys>
class MappedSum;

enum Keys { ONE, TWO, THREE };
MappedSum<int, ONE, TWO, THREE> sum = 0.0;

sum[TWO] = 10;
sum[THREE] = 3;
assert(sum == 13); // 0 + 10 + 3

sum[ONE] = -4;
assert(sum == 9); // -4 + 10 + 3

sum[THREE] = -3;
assert(sum == 3); // -4 + 10 + -3 

Ключи известны во время компиляции (т.е. размер обьекта статический). Надо чтоб сумма была доступна быстро и размер сруктуры минимально возможный.

Может есть что-то такое в std или boost?

Самому написать не сложно, я даже знаю как. Просто велосипедить не хочется.

 

KennyMinigun
()

KDE Plasma 5.18 LTS

Форум — Desktop

Лень писать новость. $subj.

Уже лежит в kubuntu-backports.

tl;dr:

  • Emoji picker (Meta+.)
  • Больше нет ‘‘ручки слива’’ (переработан режим редактирования виджетов)
  • Еще более допилен внешний вид уведомлений
  • (Снова) переработан внешний вид systemsettings

cast @fail2ban

https://kde.org/announcements/plasma-5.18.0

 ,

KennyMinigun
()

Qt Creator 4.11

Новости — Разработка
Группа Разработка

12 декабря увидел свет выпуск QtCreator с номером версии 4.11.

QtCreator имеет модульную архитектуру, вся функциональность предоставляется плагинами (плагин Core является неотключаемым). Ниже представлены нововведения в плагинах.

Projects

  • Тестовая поддержка Qt на WebAssembly и микроконтроллерах.
  • Множественные улучшения в подсистемах конфигурации и сборки проектов.
  • Использование файлового API из CMake 3.14 для конфигурирования и запуска проектов. Данное нововведение делает поведение более надежным и предсказуемым (в сравнении с предыдущим «серверным» режимом). Особенно, если CMake также используется извне (напр. из консоли).

Editing

  • Клиент Language Server Protocol теперь поддерживает расширение протокола для семантической подсветки
  • Явно заданные цвета из KSyntaxHighliting больше не игнорируются
  • Значительно упрощено конфигурирование language server для Python
  • Можно изменить стиль окончания строк также из панели инструментов компонента редактора
  • Редактирование «привязок» QML непосредственно из Qt Quick Designer

Более подробная информация находится в логе изменений.

>>> Подробности

 ,

KennyMinigun
()

Поделитесь рецептом для libffmpeg в Opera

Форум — Desktop

Проблема такова, что временами отпадает проигрывание видео и/или стриминг музыки (aka spotify, deezer, etc). Проблема решается подменой libffmpeg который идет в оригинале с пакетом на тот, что идет в пакете Chromium и/или VS Code (да, там тоже есть libffmpeg):

sudo cp /snap/chromium/971/usr/lib/chromium-browser/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera
# или
sudo cp /usr/share/code/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera

Естественно, после обновления opera-stable приходится все делать снова (не всегда, правда). Так вот, может кто уже решил проблему? Так, чтоб libffmpeg автоматически подменялся с минимум усилий по поддержке решения?

Опера как бровзер очень нравится, и переезжать не сильно хочется (т.е. Chromium/Vivaldi/Firefox/etc попрошу не советовать).

 ,

KennyMinigun
()

Конкурс обоев и видео для KDE Plasma 5.18

Форум — Desktop

Короче, к релизу 5.18 снова проводится конкурс на лучший рисунок рабочего стола. Призом является ноутбук TUXEDO InfinityBook Pro 14.

Также проводится конкурс на лучшее промо видео о Plasma и KDE Applications. Призами являются TUXEDO Gaming PC (для Plasma) и TUXEDO InfinityBox (для KDE Applications).

А также несколько поощрительных призов (футболка, чашка, бейсболка).

Драма по ссылке: https://dot.kde.org/2019/12/23/announcing-kde-plasma-518-wallpaper-and-video-contests

Запилите новость, кому не лень (cast @alexferman)

 ,

KennyMinigun
()

Отмонтирование флешки в KDE удаляет ее девайс с /dev

Форум — Desktop

Суть такова. При физическом подключении флешки (lsusb -v):

$ lsusb  | grep -i toshiba
Bus 004 Device 004: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102/2.0 / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick

$ ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 гру  2 19:39 /dev/sdb
brw-rw---- 1 root disk 8, 17 гру  2 19:39 /dev/sdb1

После размонтирования через GUI (выхлоп lsusb -v такой же как и перед):

$ lsusb | grep -i toshiba
Bus 004 Device 004: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102/2.0 / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick

$ ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 гру  2 19:45 /dev/sdb

Не могу понять, почему нода /dev/sdb1 удаляется. После этого невозможно снова подмонтировать флешку тоже.

Если это баг, то в какой проект под bugs.kde.org рапортовать/искать?

 ,

KennyMinigun
()

Lego как подарок коллеге. Что думаете?

Форум — Talks

Сап ЛОР,

Есть вопрос для аудитории: как бы Вы отнеслись к подарку на некий абстрактный личный празник, если бы подарком был конструктор LEGO?

Какой тип конструктора предпочитаете (Technic (механика, сложнее), Creator (моделирование, проще), Architecture, City, тематический (Star Wars, Harry Potter, Batman)? Был ди у Вас уже опыт складывания Lego?

А Linux здесь при том, что у Raspberry Pi есть интеграция с LEGO. Ну и вообще природа явления очень похожа 😂

 , , ,

KennyMinigun
()

Git: есть ли способ определить состояние forced-update?

Форум — Development

Использую git вместо rsync для синхронизации сырцов на удаленной машине. Ну и часто доводится делать git push -f buildbox на локальной машине (естественно config receive.denyCurrentBranch = warn).

Чтоб потом привести рабочее дерево на удаленнй машине к желаемому состоянию делаю git reset --hard HEAD. Но иногда забываю, и запускаю компиляцию старой версии кода. Думаю написать алиас/фунцию которая бы делала reset при запуске билда если задетектит, что был сделан forced update.

Вопрос: как сделать проверку на forced update? Или может есть другой подход осуществить то, что я хочу?

 ,

KennyMinigun
()

Edge к нам приходит

Форум — Talks

Microsoft серьезно планирует Chromium-based Edge на GNU/Linux.

https://myignite.techcommunity.microsoft.com/sessions/79341?source=sessions

Видео на 8:36.

Для Ъ:

And Linux is comming… at a later time

Ваши мысли?

 , , мерзость,

KennyMinigun
()

Ubuntu 19.10 Eoan Ermine

Новости — Ubuntu Linux
Ubuntu 19.10 Eoan Ermine
Группа Ubuntu Linux

18 октября 2019 вышла очередная итерация популярного дистрибутива GNU/Linux – Ubuntu 19.10 с кодовым названием Eoan Ermine (Восходящий Горностай).

Главные нововведения:

  • Поддержка ZFS в установщике. Используется драйвер ZFS On Linux версии 0.8.1.
  • ISO образы содержат проприетарные драйвера NVIDIA: наряду со свободными драйверами теперь можно выбрать и проприетарные.
  • Ускорение загрузки системы благодаря использованию нового алгоритма сжатия.

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

Скачать Ubuntu

>>> Подробности

 

KennyMinigun
()

Python для школьника

Форум — Development

Для поступления в желаемый универ надо сдать информатику. Не сильно сложно: немного алгоритмов, императивного программирования и декларативного (SQL). Cпециальность не сильно айтишная: дизайн, графика, etc.

Выбор языка программирования – свободный. На экзамене лишь предоставляют задание. Выбор пал на Python 3, поскольку множество литературы нескучной для начала. Платформа – естественно GNU/Linux (Ubuntu). Как варианты рассматривались еще языки Pascal, C, JavaScript (sic!), Java, C#.

На повестке дня выбор инструментария. Понятно, что консолька и vim/nano – это обязательно. Но сейчас скорее вопрос стоит между VS Code, Spyder и Kdevelop. Хотелось бы статический анализатор (aka tidy), дебагер и автокомплит. Есть истории успеха? Может кто тоже начинал с Python? Что стоит учесть?

Дискач.

 ,

KennyMinigun
()

Сьехала верстка на странице профиля

Форум — Linux-org-ru

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

Opera 64.0.3417.54: https://imgur.com/5V8MDeY

@maxcom

 ,

KennyMinigun
()

Дрон c API

Форум — Talks

Недавно узнал, что в «игрушечном» дроне Ryze Tello есть возможность управления/общения через высылку UDP датаграм с командами.

Недавно они еще выпустили некий Tello EDU с обновленным ПО. Там больше команд, и рекламируется возможность создания «роя»: https://github.com/dji-sdk/Tello-Python

Теперь вопрос: есть ли в природе не сильно дорогие дроны, с подобным интерфейсом? А чтоб еще и с GPS?

 , деньги на ветер, ,

KennyMinigun
()

Годный закос

Форум — Linux-org-ru

https://www.linux.org.ru/gallery/screenshots/15254986

Ставлю все свое ничего, что на скрине таки не оффтопик, а годный закос. Потому что:

  • Сглаживание шрифтов линуксовое
  • Значки в трее линуксовые (особенно star-spangled banner в качестве индикатора раскладки)
  • Вендовый значек «пуск» не пропорциональный

Я вижу мерзкий оффтопик 10 каждый день. И уж поверьте мне, такие тонкости сразу в глаза бросаются.

cast @Dimez @VarfolomeyKote4ka @Shaman007

Может все же разудалить?

 , ,

KennyMinigun
()

std::apply и std::integer_sequence

Форум — Development

Захотелось странного (ну, почти): заставить работать std::apply с обьектом std::integer_sequence. Ведь последний – вполне себе кортеж.

А целью было бы упрощение паттерна (хз как называется) с обходом кортежей (С++17*):

template <typename Function, 
          typename Tuple, 
          std::size_t... indexes>
void doFoonktion(Function f, Tuple t, std::index_sequence<indexes...>) {
  (static_cast<void>(f(std::get<indexes>(t))), ...);
}

template <typename Function,
          typename Tuple>
void doFunction(Function f, Tuple t) {
  doFoonktion(f, t, std::make_index_sequence<std::tuple_size_v<Tuple>>{});
}

До такого:

template <typename Function,
          typename Tuple>
void doFunction(Function f, Tuple t) {
  std::apply([](auto... index) {
               (static_cast<void>(f(std::get<index>(t))), ...);
             },
             std::make_index_sequence<std::tuple_size_v<T>>{});
}

  • да, я знаю, что в С++20 можно явно делать шаблонные лямбды и второй «внешней» функции уже не надо было бы.

Значит сделать tuple_size и tuple_element для integer_sequence очень даже просто:

template <auto v>
using constant = std::integral_constant<decltype(v), v>;

template <typename T, T... values>
tuple_size<integer_sequence<T, values...>> : constant<sizeof...(values)>
{};

template <size_t i, typename T, T... values>
tuple_element<i, integral_sequence<T, values...>> { using type = T; };

Докостыливаем std::get:

template <std::size_t i, typename T, T first, T... rest>
T get(integer_sequence<T, first, rest...>) {
  if constexpr (i == 0)
    return first;
  else
    return get<i - 1>(integer_sequence<T, rest...>{});
}

template <std::size_t i, typename T>
T get(integer_sequence<T>) {
  static_assert(i != i, "invalid index");
}

После такого финта ушами начинает работать structured binding:

  auto [zero, one, two, three] = std::make_index_sequence<4>{};

Однако std::apply «не видит» нашего std::get, если заголовок <tuple> был включен ДО нашего определения get. Наверное там нету ADL: https://wandbox.org/permlink/GRDV7VEvalUWATlM

Есть идеи как сделать такое красиво/правильно? Ну и еще было бы круто вообще заставить std::apply работать с пользовательскими типами. Пока что на ум приходит только написание собственную реализацию std::apply c шлюхами и ADL.

 ,

KennyMinigun
()

Как уменьшить размер std::bitset?

Форум — Development

Мне надо запаковать три битовых флага, которые имеют одинаковое значение (напр. как в std::vector<bool> isValid). Только давит жаба использовать std::bitset, ибо sizeof(std::bitset<3>) == 8.

Можно ли как-то в std::bitset подать размер хранилища?

 ,

KennyMinigun
()

Включены ли у вас патчи безопасности от spectre, meltdown, etc?

Голосования — Голосования

Безопасность или производительность?

P.S. Пользуясь случаем, хотел бы прорекламировать хорошо находимый сайт, с параметрами для отключения данных патчей: https://make-linux-fast-again.com

  1. Я не знаю 413 (57%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Включены все 148 (20%)

    ******************************************************************************************************************

  3. Выключены програмно 85 (12%)

    *****************************************************************

  4. Не скомпилированы вообще 59 (8%)

    *********************************************

  5. Включены выборочно 22 (3%)

    *****************

Всего голосов: 727

 , , , ,

KennyMinigun
()

Как изменить target по умолчанию в Clang?

Форум — Development

Есть Clang на оффтопике:

C:\Users>clang++ --version
clang version 8.0.0 (tags/RELEASE_800/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin

По умолчанию он хочет стандартную либу от M$:

C:\Users>clang++ hello.cpp -o hello-clang.exe
clang++: warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt [-Wmsvc-not-found]
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^~~~~~~~~~
1 error generated.

У меня есть MinGW, который я хочу чтоб Clang использовал. Однако надо явно подать аргумент --target:

C:\Users>clang++ --target=x86_64-pc-windows-gnu hello.cpp -o hello-clang.exe

C:\Users>hello-clang.exe
Hello, World!

Можно ли поменять конфигурацию Clang так, чтоб он по умолчанию выбирал target: x86_64-pc-windows-gnu? В интернетах нашел только как пересобрать Clang с таким конфигом. Не очень хочется пересобирать :/ Может есть какая-то переменная среды или текстовый конфиг чтоб поменять умолчания?

 ,

KennyMinigun
()

Установка GNU/Linux в Hyper-V

Форум — Linux-install

Пытаюсь завести Kubuntu 19.04 в мелкомягкой поделке (не спрашивайте почему). Перебираю опции, чтоб машина заработала.

Если устанавливаю как «Generation 1», то LiveDVD загружается до графической менюшки «Try Kubuntu/Use Kubuntu». Try Kubuntu зависает, Install Kubuntu устанавливает, но потом не запускается (тоже зависает).

В «Generation 2» они включают UEFI с проверкой сертификатов (о б-же проверка сертификата для VM (sic!)), и LiveDVD не проходит проверки. Соответственно, не запускается. Одако, для «Generation 2» они обащеют дополнительные фичи виртуализации. Да-да, тот самый Microsoft’овский EEE в действии.

Сейчас думаю, может под Generation 2 таки заработает. Только надо пройти проверку сертификата. Вроди ж LTS релизы должны проходить?

Сорри за нубский вопрос, но может кто-то уже сталвивался и не надо будет копать глубже?

 , ,

KennyMinigun
()

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