LINUX.ORG.RU

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

Wine WoW64: запускаем приложения i386 без multilib

 , ,

Привет, ЛОР.
Захотелось странного: запускать win32-приложения без multilib в системе. к сожалению, технология слишком новая, чтобы для этого был мануал в интернете, и тем более для того, чтобы была инструкция или пакеты для Debian Stable. Поэтому придётся собирать самому. За основу возьмём wine-staging из официального репозитория wine для Testing – там WOW64 включен по умолчанию…

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

ann_lortemp2
()

Небольшая панелька для LOR

 , , ,

Так как мне надоело вручную жонглировать десятками вкладок ЛОРа и запоминать, где я что читал, вручную перематывать вверх-вниз - пришлось сделать такую панельку.

https://ns.fiber-gate.ru/uploads/images/img_1778830448139_d366e4cd.png

Вот она, справа. Подстраивается автоматически под выбранную тему:

https://ns.fiber-gate.ru/uploads/images/img_1778830555340_a770df86.png

https://ns.fiber-gate.ru/uploads/images/img_1778830658445_22500337.png

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

Все возможности подробно описаны в настройках, во вкладке «Справка»:

https://ns.fiber-gate.ru/uploads/images/img_1778926219370_df3bc737.png

Что умеет панель

Навигация:

▲ и ▼ - перемотка в начало и в конец страницы

💬 - переход к своему последнему комментарию

📢 - переход к последнему комментарию, где вас упомянули

Быстрый доступ к разделам:

📋 Форум и ☰ Трекер: левый клик открывает раздел, правый клик показывает текущие темы с подсветкой изменений и количеством новых комментариев

🔔 Уведомления: левый клик - страница уведомлений, правый клик - модальное окно со списком, на кнопке отображается счётчик непрочитанных

Новые кнопки:

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

💾 Сохранённые - правый клик сохраняет текущую тему (запоминается позиция скролла и количество комментариев), левый клик открывает список сохранённого с проверкой новых сообщений. Повторный правый клик по кнопке в сохранённой теме обновляет информацию о ней. Автоматически ничего не сбрасывается - всё под вашим контролем. При первом заходе на сохранённую страницу позиция скролла восстанавливается автоматически

Прочее:

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

Все данные хранятся в localStorage вашего браузера

Настройки панели (открываются при ПКМ на кнопку профиля): масштаб, видимость рамки, выборочное отключение кнопок

Код буду дорабатывать, обновления здесь: https://github.com/Vladgobelen/NSLorPanel/

Это скрипт для расширения Violentmonkey (или аналогичных - Greasemonkey, Tampermonkey (но не тестировал)).

Основная панель: NSLorPanel.user.js

Дополнение для обработки черного списка авторов: NSLorNewsFilter.user.js

Так же есть настройки: можно выбрать что игнорировать от ника - новости, его сообщения или овтеты на его сообщения.

Модификация для редактора теста. Вставляется отдельным скриптом. Требует для настроек основную панель, но может работать и без нее: NSLorPanel-MarkdownToolbar.user.js

Модификация для подсветки модераторов. Вставляется отдельным скриптом, ищет основную панель, если находит - подхватывает настроки, если основной панели нет - работает без нее безусловно: NSLorModHighlighter.user.js

Поиск по теме в комментариях, плюс изменение кнопок «Мои сообщения» и «Упоминания» - при ПКМ можно искать по другим юзерам (может работать без основной панели): NSLorNavPlus.user.js

ОТДЕЛЬНО сортировка таблиц вне панели, если не нужна панель. Если используеся панель, этот скрипт не нужен: lor-table-sorting.user.js


Исправление блэк темы для смартфонов: lor-black-mobile-fix.user.js


Звуки при уведомлениях: https://github.com/Vladgobelen/NSLorPanel/blob/main/NSLorSound.user.js

Если лениво искать звуки, есть готовые: https://github.com/Vladgobelen/NSLorPanel/raw/refs/heads/main/lorSounds.zip


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

Перемещено maxcom из talks

LightDiver
()

DPI для любопытствующих

 , ,

Движок DPI на C: от захвата пакетов до классификации протоколов.

Мне было интересно узнать, какие байты бегают по моей домашней сети. Я не нашёл простого инструмента, который можно было бы собрать за вечер и понять от начала до конца — и пришлось написать свой, на C. Эта статья — рассказ о том, как работает Deep Packet Inspection.

Код проекта: gitflic.ru/wirewalk/tiny-dpi-engine

Эпиграфы к разделам — цитаты из мультика «Шрек». (Не то чтобы я был фанат, но история уж очень подходящая. Если у вас есть идея что использовать в качестве источника цитат для следующей статьи — я открыт к предложениям!).

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

wirewalk
()

Гитара + Linux + СПО: быстрое руководство 2025

 , , ,

Рассмотрим сначала базовую задачу — как играть, при использовании преимущественно СПО. Про запись гитары, и про коммерческое ПО - возможно, будет отдельно.

Итак, у вас есть гитара, и вы хотите использовать компьютер как гитарный процессор для нее, вместо гитарного комбика. Что надо знать, актуальный список пунктов на 2025 год:

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

James_Holden
()

Monogram, альтернативный открытый клиент Telegram для Android

 , ,

Группа Android

Привет! Мы создали Monogram — новый открытый Telegram-клиент для Android на Kotlin и Jetpack Compose. Код доступен на GitHub под лицензией GPLv3, а новости — в нашем Telegram-канале.

Почему мы это сделали?

Официальный клиент превратился в переусложненный монолит, исходники которого публикуются с сильной задержкой. Кроме того, нам не нравится навязывание iOS-стиля в ущерб гайдлайнам Android.

Под капотом и фичи:

За ядро и шифрование отвечает официальная TDLib (C++). В остальном мы сделали ставку на нативность:

Интерфейс и реализация

Строгий Material Design 3. Плавный и легкий благодаря встроенным нативным компонентам Android.

>>> GitHub репозиторий (github.com)

gdlbo
()

Cambalache 1.0

 , ,

Группа GNOME

После более 5 лет разработки (визуализация с помощью Gource: YouTube, VK Video) состоялся выпуск 1.0 Cambalache – инструмента для создания UI на GTK 3 и GTK 4.

Проект написан на языке Python и распространяется по лицензии GNU LGPL 2.1.

Версия 1.0 говорит о готовности проекта к широкому использованию. Поддерживается редактирование, визуализация и создание GTK-стилей в формате CSS, редактирование XML-файлов с ресурсами GResources, создание шаблонов и виджетов, использование XML-файлов GtkBuilder и разметки Blueprint.

Модель данных может импортировать и экспортировать разом несколько интерфейсов, поддерживает объекты, свойства и сигналы GtkBuilder, предоставляет стек отката операций (Undo / Redo) и возможность сжатия истории команд. Для генерации модели данных из gir-файлов предоставляется утилита cambalache-db, а для генерации классов GObject из таблиц модели данных – утилита db-codegen.

>>> Подробности на blogs.gnome.org (gnome.org)

Lusine
()

Убыстрить ютуб

 , ,

Делаю по инструкции, blockcheck в конце выдал

* SUMMARY
ipv4 youtube.com curl_test_http : working without bypass
ipv4 youtube.com curl_test_https_tls12 : tpws --split-tls=sni
ipv4 youtube.com curl_test_https_tls12 : nfqws --dpi-desync=split2 --dpi-desync-split-pos=50

Please note this SUMMARY does not guarantee a magic pill for you to copy/paste and be happy.
Understanding how strategies work is very desirable.
This knowledge allows to understand better which strategies to prefer and which to avoid if possible, how to combine strategies.
Blockcheck does it's best to prioritize good strategies but it's not bullet-proof.
It was designed not as magic pill maker but as a DPI bypass test tool.

press enter to continue

Сделал

root@ryzen:/opt/zapret# ./install_easy.sh 
* checking system
system is based on systemd
* checking executables
found architecture "x86_64"
* checking privileges
* checking readonly system
* checking location
running from /opt/zapret
* checking DNS
system DNS is working
* checking virtualization
running on bare metal
* stopping zapret service
Failed to disable unit: Unit file zapret.service does not exist.
Failed to stop zapret.service: Unit zapret.service not loaded.

select firewall type :
1 : iptables
2 : nftables
your choice (default : iptables) : 
selected : iptables
* checking prerequisites
required utilities exist : curl ip6tables ipset iptables
* installing binaries
x86_64 is OK
installing binaries ...
linking : ../binaries/x86_64/ip2net => /opt/zapret/ip2net
linking : ../binaries/x86_64/mdig => /opt/zapret/mdig
linking : ../binaries/x86_64/nfqws => /opt/zapret/nfq
linking : ../binaries/x86_64/tpws => /opt/zapret/tpws

enable ipv6 support (default : N) (Y/N) ? 

select MODE :
1 : tpws
2 : tpws-socks
3 : nfqws
4 : filter
5 : custom
your choice (default : tpws) : 1
selected : tpws

TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3 --oob"
do you want to edit the options (default : N) (Y/N) ? Y

..edited..
TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3 --oob --split-tls=sni"
do you want to edit the options (default : N) (Y/N) ? 
select LAN interface to operate in router mode. select NONE for local outgoing traffic only.
WARNING ! This installer will not configure routing, NAT, ... for you. Its your responsibility.
LAN interface :
1 : NONE
2 : enp25s0
3 : lo
4 : virbr0
5 : virbr0-nic
your choice (default : NONE) : 
selected : NONE
select WAN interface for tpws operations. select ANY to operate on any interface.
WAN interface :
1 : ANY
2 : enp25s0
3 : lo
4 : virbr0
5 : virbr0-nic
your choice (default : ANY) : 2
selected : enp25s0

enable http support (default : Y) (Y/N) ? 

enable https support (default : Y) (Y/N) ? 

select filtering :
1 : none
2 : ipset
3 : hostlist
4 : autohostlist
your choice (default : none) : 2
selected : ipset

do you want to auto download ip/host list (default : Y) (Y/N) ? 
1 : get_user.sh
2 : get_antifilter_ip.sh
3 : get_antifilter_ipsmart.sh
4 : get_antifilter_ipsum.sh
5 : get_antifilter_ipresolve.sh
6 : get_antifilter_allyouneed.sh
7 : get_reestr_resolve.sh
8 : get_reestr_preresolved.sh
9 : get_reestr_preresolved_smart.sh
your choice (default : get_antifilter_ipsmart.sh) : 
selected : get_antifilter_ipsmart.sh
* installing zapret service
Created symlink /etc/systemd/system/multi-user.target.wants/zapret.service → /opt/zapret/init.d/systemd/zapret.service.
Created symlink /etc/systemd/system/zapret.service → /opt/zapret/init.d/systemd/zapret.service.
* downloading blocked ip/host list
setting high oom kill priority
clearing all known DNS caches
DNS is working
digging 6 ipv4 domains : /opt/zapret/ipset/zapret-hosts-user-exclude.txt
mdig stats : 00:00:00 : domains=6 success=4 error=2
digging 1 ipv4 domains : /opt/zapret/ipset/zapret-hosts-user.txt
mdig stats : 00:00:00 : domains=1 success=0 error=1
digging 0 ipv4 domains : /opt/zapret/ipset/zapret-hosts-user-ipban.txt
mdig stats : 00:00:00 : domains=0 success=0 error=0
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  416k  100  416k    0     0   438k      0 --:--:-- --:--:-- --:--:--  437k
setting high oom kill priority
reloading ipset backend (forced-update)
Adding to ipset zapret : /opt/zapret/ipset/zapret-ip.txt
Adding to ipset zapret : /opt/zapret/ipset/zapret-ip-user.txt
Adding to ipset ipban : /opt/zapret/ipset/zapret-ip-user-ipban.txt
Adding to ipset nozapret : /opt/zapret/ipset/zapret-ip-exclude.txt
* installing zapret-list-update timer
Failed to disable unit: Unit file zapret-list-update.timer does not exist.
Failed to stop zapret-list-update.timer: Unit zapret-list-update.timer not loaded.
Created symlink /etc/systemd/system/timers.target.wants/zapret-list-update.timer → /opt/zapret/init.d/systemd/zapret-list-update.timer.
Created symlink /etc/systemd/system/zapret-list-update.timer → /opt/zapret/init.d/systemd/zapret-list-update.timer.
* starting zapret service

press enter to continue

Получаю на ютубе

Ошибка. Повторите попытку позже. Идентификатор воспроизведения: ...

И ЛОР тоже не грузится.

Попробовал по-другому

root@ryzen:/opt/zapret# ./install_easy.sh      
* checking system
system is based on systemd
* checking executables
found architecture "x86_64"
* checking privileges
* checking readonly system
* checking location
running from /opt/zapret
* checking DNS
system DNS is working
* checking virtualization
running on bare metal
* stopping zapret service
Removed /etc/systemd/system/multi-user.target.wants/zapret.service.
Removed /etc/systemd/system/zapret.service.

select firewall type :
1 : iptables
2 : nftables
your choice (default : iptables) : 
selected : iptables
* checking prerequisites
required utilities exist : curl ip6tables ipset iptables
* installing binaries
x86_64 is OK
installing binaries ...
linking : ../binaries/x86_64/ip2net => /opt/zapret/ip2net
linking : ../binaries/x86_64/mdig => /opt/zapret/mdig
linking : ../binaries/x86_64/nfqws => /opt/zapret/nfq
linking : ../binaries/x86_64/tpws => /opt/zapret/tpws

enable ipv6 support (default : N) (Y/N) ? 

select MODE :
1 : tpws
2 : tpws-socks
3 : nfqws
4 : filter
5 : custom
your choice (default : tpws) : 3
selected : nfqws

NFQWS_OPT_DESYNC="--dpi-desync=fake --dpi-desync-ttl=0 --dpi-desync-ttl6=0 --dpi-desync-fooling=badsum"
NFQWS_OPT_DESYNC_HTTP=""
NFQWS_OPT_DESYNC_HTTPS=""
NFQWS_OPT_DESYNC_HTTP6=""
NFQWS_OPT_DESYNC_HTTPS6=""
NFQWS_OPT_DESYNC_QUIC="--dpi-desync=fake --dpi-desync-repeats=6"
NFQWS_OPT_DESYNC_QUIC6=""
do you want to edit the options (default : N) (Y/N) ? Y

..edited..
NFQWS_OPT_DESYNC="--dpi-desync=fake --dpi-desync-ttl=0 --dpi-desync-ttl6=0 --dpi-desync-fooling=badsum"
NFQWS_OPT_DESYNC_HTTP=""
NFQWS_OPT_DESYNC_HTTPS="--dpi-desync=split2 --dpi-desync-split-pos=50"
NFQWS_OPT_DESYNC_HTTP6=""
NFQWS_OPT_DESYNC_HTTPS6=""
NFQWS_OPT_DESYNC_QUIC="--dpi-desync=fake --dpi-desync-repeats=6"
NFQWS_OPT_DESYNC_QUIC6=""
do you want to edit the options (default : N) (Y/N) ? 
select WAN interface for nfqws operations. select ANY to operate on any interface.
WAN interface :
1 : ANY
2 : enp25s0
3 : lo
4 : virbr0
5 : virbr0-nic
your choice (default : enp25s0) : 2
selected : enp25s0

enable http support (default : Y) (Y/N) ? 

enable keep alive support only if DPI checks every outgoing packet for http signature
dont enable otherwise because it consumes more cpu resources
enable http keep alive support (default : N) (Y/N) ? 

enable https support (default : Y) (Y/N) ? 

enable quic support (default : N) (Y/N) ? 

select filtering :
1 : none
2 : ipset
3 : hostlist
4 : autohostlist
your choice (default : ipset) :  
selected : ipset

do you want to auto download ip/host list (default : Y) (Y/N) ? 
1 : get_user.sh
2 : get_antifilter_ip.sh
3 : get_antifilter_ipsmart.sh
4 : get_antifilter_ipsum.sh
5 : get_antifilter_ipresolve.sh
6 : get_antifilter_allyouneed.sh
7 : get_reestr_resolve.sh
8 : get_reestr_preresolved.sh
9 : get_reestr_preresolved_smart.sh
your choice (default : get_antifilter_ipsmart.sh) : 
selected : get_antifilter_ipsmart.sh
* installing zapret service
Created symlink /etc/systemd/system/multi-user.target.wants/zapret.service → /opt/zapret/init.d/systemd/zapret.service.
Created symlink /etc/systemd/system/zapret.service → /opt/zapret/init.d/systemd/zapret.service.
* downloading blocked ip/host list
setting high oom kill priority
clearing all known DNS caches
DNS is working
digging 6 ipv4 domains : /opt/zapret/ipset/zapret-hosts-user-exclude.txt
mdig stats : 00:00:00 : domains=6 success=4 error=2
digging 1 ipv4 domains : /opt/zapret/ipset/zapret-hosts-user.txt
mdig stats : 00:00:00 : domains=1 success=0 error=1
digging 0 ipv4 domains : /opt/zapret/ipset/zapret-hosts-user-ipban.txt
mdig stats : 00:00:00 : domains=0 success=0 error=0
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  416k  100  416k    0     0   511k      0 --:--:-- --:--:-- --:--:--  511k
setting high oom kill priority
reloading ipset backend (forced-update)
Adding to ipset zapret : /opt/zapret/ipset/zapret-ip.txt
Adding to ipset zapret : /opt/zapret/ipset/zapret-ip-user.txt
Adding to ipset ipban : /opt/zapret/ipset/zapret-ip-user-ipban.txt
Adding to ipset nozapret : /opt/zapret/ipset/zapret-ip-exclude.txt
* installing zapret-list-update timer
Removed /etc/systemd/system/zapret-list-update.timer.
Removed /etc/systemd/system/timers.target.wants/zapret-list-update.timer.
Created symlink /etc/systemd/system/timers.target.wants/zapret-list-update.timer → /opt/zapret/init.d/systemd/zapret-list-update.timer.
Created symlink /etc/systemd/system/zapret-list-update.timer → /opt/zapret/init.d/systemd/zapret-list-update.timer.
* starting zapret service

press enter to continue

Та же самая ошибка на ютубе, но ЛОР есть.

cast dmitry237 ValdikSS

Только тапками и помидорами не кидайтесь, а помогите по-доброму, а то я новичок.

UPD

Убыстрить ютуб (комментарий)

UPD 2

Придумал, как убыстрить ютуб во всей квартире и навсегда

damix9
()

Отключаем PulseAudio в Linux

 , ,

Здравствуйте! Сегодня мы узнаем, как отключить PulseAudio в Linux! Но «для чего?» не узнаем - вы должны знать ответ сами!

Как это сделать?

mkdir ~/.config/pulse
echo "autospawn = no" >> ~/.config/pulse/client.conf
killall pulseaudio

Вообще, тут должен был быть скучный список «если такой-то дистр меньше N-й версии, то ~/.pulse, а если больше, то ~/.config/pulse». Или хитрый скрипт, который проверяет «if ~/.pulse exist, then echo tuda, else echo v ~/.config/pulse». Но сделаем просто:

mkdir ~/.config/pulse
mkdir ~/.pulse
echo "autospawn = no" >> ~/.config/pulse/client.conf
echo "autospawn = no" >> ~/.pulse/client.conf
killall pulseaudio

Вот! Чтобы наверняка.

Почему не работает просто killall pulseaudio?

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

Почему не удалить пульсу?

Многие программы слинкованы с /usr/lib/libpulse.so.0 Upd: Оказывается libpulse и системная служба PulseAudio - в разных пакетах! Значит, удалять всё-таки можно.

То есть, отключаем пульсу - и всё, звук идёт через ALSA?

Да. Попробуйте сами.

Хотя не совсем. В некоторых дистрибутивах Linux не исчезает ALSA-устройство «pulse» - звук, соответственно, идёт в /dev/null. У меня в Debian и Ubuntu ALSA-устройство «pulse» пропадает при отключении пульсы. А в openSUSE пришлось также удалить/переименовать/закомментировать конфигурационный файл /etc/asound-pulse.conf.

Это устройство - довольно хитрый «костыль»: те программы, которые поддерживают PulseAudio, выводят звук напрямую в него. А те, которые поддерживают только ALSA, выводят звук в ALSA-устройство default, ведущее в «pulse», которое ведёт в PulseAudio. А потом снова в ALSA, и далее в дом, который построил Джек

Какие проблемы могут быть?

  1. Исчез значок в системном трее

    У меня в KDE такого не было, но было в MATE. В MATE можно установить программку Volti. В репозиториях она собрана с GTK2, а в GIT доступна начальная поддержка GTK3

  2. Перестали работать мультимедийные клавиши клавиатуры

    У меня такого не было, но другие люди жаловались. Если у вас не работает, включите в настройках Volti. Работает либо через HAL, которого в современном линуксе уже нет (но есть в CentOS 6), либо через Xlib (который в современном линуксе ещё есть). Также советую выставить в настройках Volti недефолтный микшер (например этот), потому что дефолтный неудобен.

  3. Исчез звук в Skype 4.3

    Запускайте через apulse (уже в репозиториях!)

  4. Исчез звук в приложениях, использующих SDL (99% игр)

    У меня в KDE такого не было, но было в MATE. Проверить можно этой игрой. Решается так:

    echo "drivers = alsa" > ~/.alsoftrc

    Или:

    export SDL_AUDIODRIVER=alsa
    ./run_game.sh
  5. Как заставить работать Bluetooth-гарнитуру?

    А тут вот что произошло. BlueZ 4 поддерживал ALSA, а BlueZ 5 - перестал. Разработчики сказали «а мы не обязаны! Вот посмотрите: разработчики PulseAudio написали плагин сами. Почему плагин для ALSA должны писать мы?», и удалили поддержку ALSA.

    Bluez-alsa пока доступен не во всех репозиториях, поэтому даю ссылку на исходники. Инструкция по настройке.
ZenitharChampion
()

Захотелось угарнуть…

 , ,

…и поставить dwm в termux. Ранее dwm ни разу не пробовал, хотя хотел, и потыкать его решил прям на телефоне. Накатил dwm-flexipatch, настроил скрипты, прокинул симлинки куда надо и получил вот такое чудо. Сейчас буду настраивать, надеюсь что-то красивое получится, а пока вам вот, почти сырой dwm, наслаждайтесь

daniyal
()

Крыска на термуксе

 , , , ,

Ну, что тут описывать?

  • WM – bspwm
  • DE – xfce4
  • Compositor – xcompmgr
  • Icon-theme – fluent-icon-theme
  • GTK-theme – orchis-dark
  • Shell – fish

На хосте у нас:

  • Клавиатура – unexpected keyboard
  • Прога для вывода – termux:x11
  • И, собсна, труба – redmi 7a

Конфиги тута почти дефолтные, так что скидывать ничё не буду.

daniyal
()

Куда делась X11 сессия из GDM в гноме в манжаро после прилета гнома 49.2 и как вернуть?

 , , ,

А то хромо-браузеры вообще изображаются с очень переменным успехом на экране, а в FF - видео посмотришь и позже дистр зависает намертво и TTY не запускается

votafak
()

Cex.C — making old C cexy again!

 , ,

Александр Веденеев пишет:

https://cex-c.org

Cex.C - Comprehensively Extended C Language
No dependency, cross-platform, single header C language extension. Making old C cexy again!

https://github.com/alexveden/cex

Cex.C (officially pronounced /ˈtsɛk.si/ «tsek-see») was born as alternative answer to a plethora of brand new LLVM based languages which strive to replace old C. Cex.C still remains C language itself, with small, but important tweaks that bring a completely different development experience.

LEGAL NOTICE: Any intentional mispronunciation of Cex.C or cexy$ (build system), officially pronounced /ˈtsɛk.si/ («tsek-see»), into an incorrect form may be considered intentional tseksual harassment of the project — which identifies itself with the code gender (it/its) — and may be subject to legal action under the MIT License. /LOL/

$ stat cex.h:

Size: 680288

#define CEX_IMPLEMENTATION
#include "cex.h"

int
main(int argc, char** argv)
{
    io.printf("MOCCA - Make Old C Cexy Again!\n");
    return 0;
}
dataman
()

Первый успешный запуск UWP на Linux

 , ,

Один европейский ютубер успешно запустил Minecraft: Bedrock Edition, который является UWP, на Linux. Он использовал WineGDK - форк Wine, целью которого является добавление поддержки UWP в Wine.

UWP впервые появился в Windows 8 и развивался во времена Windows 10. Целью UWP было то, чтобы UWP-приложения одинаково со всеми функциями работали на всех устройствах Microsoft. UWP как вы знаете провалился. Windows Phone давно RIP, а будущее Xbox туманно.

В поддержке UWP в Wine есть две весомые причины:

  1. Возможность играть в игры Xbox GamePass на Linux. Не недооцениваете GamePass.

  2. Поддержка игр Xbox One на Linux через WinDurango

Перемещено CrX из general

ConLenov
()

Включение фичи регистронезависимого режима ext4

 

Зачем это может быть нужно?

Ответ простой — для виндовых игр. Например, авторы модов часто для обливиона, морровинда не заморачиваются с тем, чтобы названия директорий в моде было в том же регистре что и в игре. Таким образом, при подключении модов, игра просто не будет видеть файлы этих модов, потому что она будет искать их по тому пути, который прописан в игре. Аналогично, например, и с Crusader Kings 2, пусть она и нативная. Там моды приходиться портировать под линукс, чтобы все файлы и директории назывались в одном и том же регистре.

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

vbcnthfkmnth123
()

Годный открытый софт для Android

 , ,

Зачем эта тема?

  • Не хотелось бы скатывать предыдущую тему в подборку софта
  • Годнота есть не только в F-Droid

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

Софт

Частично перенесён из темы по ссылке выше

  • MAPS.ME - навигация, использует OpenStreetMap. Maps - форк с вырезанной рекламой и трекерами.
  • Aegis - 2FA аутентификатор. Поддерживает импорт из других аутентификаторов (нужен root), установку пароля на вход (он же будет ключом к расшифровке), вход по отпечатку пальца. Бонусом гайд по подключению сторонних аутентификаторов к Battle.net.
  • ConnectBot - SSH клиент. Поддерживает SSH и Telnet.
  • oandbackup - открытый аналог TitaniumBackup
  • Scarlet Notes FD - замена Google Keep. Есть синхронизация (как я понял, для включения облачной синхронизации нужно установить версию из Google Play).
  • K-9 Mail - почтовый клиент, поддерживает шифрование OpenPGP (требуется OpenKeychain)
  • Nextcloud - клиент для Nextcloud
  • DAVx⁵ - синхронизация (вместо гуглокалендаря)
  • KDE Connect - интеграция телефона с Plasma (в какой-то момент ещё и с Gnome)
  • OsmAnd~ - навигация, использует OpenStreetMap, и насколько я помню, может использовать и другие источники карт. Приложение платное, полная версия находится в магазинах, ссылки на сайте. Переход на MicroG и немного свободного софта (комментарий)
  • andOTP - простой аутентификатор с возможностью экспорта/импорта и шифрования бэкапов
  • EDS Lite - клиент для работы с криптоконтейнерами VeraCrypt, TrueCrypt, LUKS. Полная версия находится здесь.
  • Password Store - клиент для pass
  • Shelter - песочница для изоляции приложений. Некоторые пишут, что приложение может окирпичить телефон, так что будьте аккуратнее.
  • Forecastie - прогноз погоды, использует OSM, есть погодная карта
  • Gadgetbridge - подключение умных часов и браслетов
  • Scrambled Exif - удаление EXIF из фотографий
  • Kiwix - выкачивание Википедии и некоторых других вики-сайтов и чтение их оффлайн
  • Vanilla Music - музыкальный плеер. Насколько я знаю, единственный поддерживающий теги в OGG Opus. По запросу «vanilla» в F-Droid находятся полезные дополнения.
  • Simple Mobile Tools - простые открытые реализации галереи, календаря, файлового менеджера, контактов, заметок, музыкального плеера, фонарика, калькулятора и других приложений
  • GameDealz - неофициальный клиент для сайта IsThereAnyDeal. Вкратце - поиск скидок на игры.
  • Phoenix for VK - открытый клиент для ВКонтакте. Полная версия платная, но можно собрать её самому. Есть опциональное e2e шифрование сообщений.
  • ClassyShark3xodus - сканирование всех приложений в системе на предмет трекеров. Использует базу Exodus Privacy.
  • Revolution IRC - клиент для IRC с неплохим интерфейсом
  • Bromite - форк хромиума, нацеленный на приватность и блокировку рекламы. Синхронизация, экономия данных и прочее - вырезано. Репозиторий для F-Droid - здесь. Имеет свой WebView с автоматической блокировкой рекламы.
  • Carnet - заметки. Поддержка синхронизации через Nextcloud.
  • Aurora Store - альтернативный клиент для Google Play. Имеет возможность установки приложений без аккаунта Google.
  • Aurora Droid - клиент для F-Droid. Интерфейс похож на Aurora Store. Имеет список из большого количества репозиториев, которые включаются по желанию.
  • Silence - обмен зашифрованными СМС
  • Pix-Art Messenger - форк Conversations. Клиент для XMPP. Имеет некоторые улучшения по сравнению с Conversations.

Предлагаю дополнить список в комментариях.

Deleted
()

Наконец-то нормальный способ (кросс-)компиляции под старые glibc

 , , ,

Делюсь находкой: в языке программирования zig есть встроенный кросс-компилятор C и C++ под разные архитектуры, а также возможность указания версии символов glibc (от 2.16: Debian 8+, Ubuntu 13.10+, CentOS 7, Fedora 18+).

zig cc / zig c++ обечпечивает режим совместимости с вызовом cc и cpp.

Иными словами, этими командами можно безболезненно:

  1. Кросс-компилировать (и архитектуры, и ОС, т.е. под Windows и macOS из Linux) без заморочек с sysroot’ами
  2. Собирать современный код (C23, C++23) под дистрибутивы последних 10 лет выпуска

Ранее для этого либо собирали кросс-компилятор со старым glibc, либо использовали различные костыли по замене хедеров glibc (bingcc, glibc_version_header), либо патчили, либо собирали на старых ОС вроде CentOS 7 (благо там можно установить свежие компиляторы).

Теперь же можно:

$ gcc -o hello_gcc hello.c
$ nm -D hello_gcc
                 w __gmon_start__
                 U __libc_start_main@GLIBC_2.34 ←←← минимум glibc 2.34
                 U puts@GLIBC_2.2.5

$ zig cc -o hello_zig hello.c
$ nm -D hello_zig
                 w __gmon_start__
                 U __libc_start_main@GLIBC_2.34 ←←← минимум glibc 2.34
                 U puts@GLIBC_2.2.5

$ zig cc -target x86_64-linux-gnu.2.16 -o hello_zig hello.c
$ nm -D hello_zig
                 U __libc_start_main@GLIBC_2.2.5 ←←← минимум glibc 2.2.5
                 U puts@GLIBC_2.2.5

# И даже под Windows @ ARM64
$ zig cc -target aarch64-windows -o hello_zig hello.c
$ file hello_zig
hello_zig: PE32+ executable for MS Windows 6.00 (console), ARM64, 7 sections

# Или вообще с musl libc
$ zig cc -target aarch64-linux-musl -o hello_zig hello.c
$ file hello_zig
hello_zig: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, with debug_info, not stripped
ValdikSS
()

Без заглавия

21 Ноября 1998, Old Cat, Window Maker
anonymous
()

Получаем OTP-коды для авторизации через терминал

 , ,

Получаем OTP-коды для авторизации через терминал

TOTP (Time-Based One-Time Password) или просто OTP — это алгоритм для генерации одноразовых паролей, который не требует сторонних сервисов. Он работает локально на основе общего секретного ключа и текущего времени. Например, GitHub с 2024 года использует двухфакторную авторизацию (ввод пароля + ввод какого-то кода) только через OTP (в России авторизация через SMS недоступна).

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

rtxtxtrx
()