LINUX.ORG.RU

Сообщения LinuxUser

 

Кому-нибудь удалось купить мини ПК Geekom?

Форум — Talks

Неделю назад заказал на geekom.ru мини ПК A7 (Ryzen 9 7940HS, 32 ГБ DDR5, 2ТБ SSD) с целью поставить на него Linux.

Подскажите, кто-нибудь из здесь присутствующих покупал у них мини ПК? Были ли проблемы с доставкой?

Дело в том, что мой заказ до сих пор в статусе «Обработка». Писал им в поддержку – отвечают, что «груз на московской таможне в ожидании оплаты пошлин» и рекомендуют выбрать другой ПК, если срочно. На мой вопрос как определить какие ПК доставят быстро – не отвечают. Ещё обнаружил, что у них на сайте написано, что при возврате средств они забирают 5%. В связи с чем возникает опасение, что они вообще ничего не доставят, а просто заберут 5% когда я потребую вернуть деньги.

 geekom, ,

LinuxUser
()

Нормальное масштабирование в Xfce и GTK на экране с высоким DPI

Форум — Desktop

Имеется ноутбук с 16 дюймовым экраном 2560x1600 со свежеустановленной стабильной версией Debian 11 Bullseye.

Среда рабочего стола - Xfce.

По умолчанию все элементы графического интерфейса на экране мелкие.

Испробовал разные способы увеличения размера (см. ниже).
Ни один из способов не дал полностью удовлетворительного результата.
Какое масштабирование вы используете в Linux на экранах с большим DPI?
Буду рад любым рекомендациям, в том числе по смене дистрибутива и DE.

Вот какие способы я испробовал:

1) Задать в редакторе настроек «xsettings - Gtk - IconSizes» кастомные размеры иконок gtk-menu=24,24:gtk-button=24,24:panel-applications-menu=32,32:panel-directory-menu=32,32

Увеличить шрифт до 18 или указать размер шрифта 9 и DPI в 2 раза больше реального.

2) Указать размер шрифта 9 и включить в настройках «Внешний вид» масштабирование окон 2x.

3) Задать масштабирование (1.5x, 2x) в «Настройки - Дисплей».

Результаты:

Способ увеличения иконок в 1) как оказалось работал до версии GTK 3.10. Потом разработчики GTK решили, что нужно прекратить брать размеры иконок из «xsettings - Gtk - IconSizes». Теперь, как я понял, их предлагают увеличивать настройкой toolbar image, menu image { -gtk-icon-transform: scale(2.0); } в ~/.config/gtk-3.0/gtk.css. Но от этого иконки увеличиваются с потерей качества (размываются).

Способ 2) также портит иконки в меню xfce, файловом менеджере. А в GIMP масштабирование почему-то не применяется и в нём все мелкое.

Способ 3) вообще не работает, настройка масштабирования даже не сохраняется.

 , ,

LinuxUser
()

Выбор ноутбука: экран матовый 100% sRGB 15"—16", CPU на уровне ≈ i7, 16 ГБ ОЗУ, встроенная GPU, до 100 тыс. руб

Форум — Linux-hardware

Необходим ноутбук с матовым экраном со 100% sRGB цветовым охватом, размером 15—16 дюймов, не совсем ущербным CPU, желательно встроенная графика, хотя бы один USB 3. Бюджет до 100 тыс. руб.

Поиски привели к Lenovo IdeaPad 5 Pro 16ARH7, AMD Ryzen 5 6600HS (3.3 ГГц 6 ядер), RAM 16 ГБ, AMD Radeon, SSD 512 ГБ (82SN0043RK). На официальном сайте пишут, что на нём 100% sRGB и матовый экран.

Будет ли нормально работать Linux со встроенной AMD Radeon Graphics 660M?

Или может кто посоветует что-нибудь другое под указанное ТЗ?

 100 srgb, , ,

LinuxUser
()

Параллельная обработка запросов для одного URL

Форум — Development

Всем привет!

Как в Go сделать, чтоб функция заданная в http.HandleFunc на один и тот же паттерн URL работала параллельно, а не последовательно?

Например, если запустить код размещённый ниже и открыть два раза http://127.0.0.1:8080/test, то в первый раз страница загружается через 10 секунд, а во второй раз – через 20 сек., вместо 10, а это означает, что обработка запросов выполняется последовательно. Как сделать чтоб было параллельно?

package main

import (
	"net/http"
	"time"
)

func main() {
	http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {
		time.Sleep(10 * time.Second)
		w.Write([]byte("Hello world!"))
	})

	http.ListenAndServe(":8080", nil)
}

 , ,

LinuxUser
()

Не работает nvidia 340xx из sid в Debian 11 Bullseye

Форум — Desktop

Имеется ноут Thinkpad T410i с видеокартой Nvidia GT218 NVS 3100M.

Т.к. из репозитория Debian 11 убрали 340xx драйвер nvidia, то взял его из sid (по совету ZenitharChampion).
Для этого выкачал все пакеты *nvidia-legacy-340xx* из sid c зависимостями и установил их (полный список ниже).
Драйвер встал без ошибок.

# lsmod | grep nvidia
nvidia              10600448  1
drm                   626688  3 nvidia
Но иксы не запускаются (процесс Xorg зависает намертво), а при загрузке в лог ядра пишется:
[    6.793532] BUG: kernel NULL pointer dereference, address: 0000000000000038
[    6.793637] #PF: supervisor read access in kernel mode
[    6.793727] #PF: error_code(0x0000) - not-present page
и так далее (если нужно размещу полный лог).

Помогите советом, как исправить проблему?

Ядро: 5.10.0-18-amd64
Полный список установленных из sid пакетов:

libc6_2.35-3_amd64.deb
libc6-dev_2.35-3_amd64.deb
libc-bin_2.35-3_amd64.deb
libc-dev-bin_2.35-3_amd64.deb
libc-l10n_2.35-3_all.deb
libegl1-nvidia-legacy-340xx_340.108-16_amd64.deb
libgl1-nvidia-legacy-340xx-glx_340.108-16_amd64.deb
libgles1-nvidia-legacy-340xx_340.108-16_amd64.deb
libgles2-nvidia-legacy-340xx_340.108-16_amd64.deb
libnvidia-legacy-340xx-cfg1_340.108-16_amd64.deb
libnvidia-legacy-340xx-compiler_340.108-16_amd64.deb
libnvidia-legacy-340xx-cuda1_340.108-16_amd64.deb
libnvidia-legacy-340xx-eglcore_340.108-16_amd64.deb
libnvidia-legacy-340xx-encode1_340.108-16_amd64.deb
libnvidia-legacy-340xx-fbc1_340.108-16_amd64.deb
libnvidia-legacy-340xx-glcore_340.108-16_amd64.deb
libnvidia-legacy-340xx-ifr1_340.108-16_amd64.deb
libnvidia-legacy-340xx-ml1_340.108-16_amd64.deb
libnvidia-legacy-340xx-nvcuvid1_340.108-16_amd64.deb
locales_2.35-3_all.deb
locales_2.35-3_all.deb.1
nvidia-legacy-340xx-alternative_340.108-16_amd64.deb
nvidia-legacy-340xx-driver_340.108-16_amd64.deb
nvidia-legacy-340xx-driver-bin_340.108-16_amd64.deb
nvidia-legacy-340xx-driver-libs_340.108-16_amd64.deb
nvidia-legacy-340xx-kernel-dkms_340.108-16_amd64.deb
nvidia-legacy-340xx-kernel-source_340.108-16_amd64.deb
nvidia-legacy-340xx-kernel-support_340.108-16_amd64.deb
nvidia-legacy-340xx-opencl-icd_340.108-16_amd64.deb
nvidia-legacy-340xx-smi_340.108-16_amd64.deb
nvidia-legacy-340xx-vdpau-driver_340.108-16_amd64.deb

 ,

LinuxUser
()

Wine dxvk чёрный экран при запуске игр с DirectX 11

Форум — Games

Всем привет!

При запуске через wine игр, которые требуют DirectX 11, отображается чёрный экран. Пробовал Carto и Tohu.

Буду благодарен за любые идеи куда копать, чтобы победить эту проблему.

Дистрибутив: Debian 10.8 (buster)
Видеокарта: GeForce GTX 950 (проприетарный драйвер 460.39 из репозитория)
Wine: wine-6.3 (Staging)
DXVK: 1.8.1

Если запускать с DXVK_HUD=1 – в левом верхнем углу чёрного экрана отображается информация о видеокарте, версии Vulkan и FPS.

В nvidia-settings отключал Allow Flipping, как советовали вот тут, но эффекта это не возымело.

 ,

LinuxUser
()

Сообщение «Maybe the USB cable is bad» в dmesg

Форум — General

После подключения USB-хаба встроенного в монитор в dmesg (а также в открытых консолях, которые на Ctrl+Alt+F*) примерно каждые 5-10 секунд появляется сообщение:

usb usb3-port4: Cannot enable. Maybe the USB cable is bad?

Но при этом клавиатура, мышь и веб-камера воткнутые в этот порт работают без каких-либо проблем.

Результаты гугления:

  • если USB-устройство глючит, то заменить кабель;
  • если всё работает предлагают игнорить это сообщение.

УМВР, но игнорить его не хочу.

Есть у кого идеи что можно сделать в такой ситуации? Хотелось бы как минимум замьютить это сообщение.

 ,

LinuxUser
()

Измерение входящего трафика в компьютер без внешнего IP

Форум — Admin

Есть два компьютера.
Один с внешним IP в сети интернет, второй – без.

Правильно ли я понимаю, что iperf сможет измерить только скорость исходящего трафика со стороны второго (без внешнего IP) в сторону первого (с внешним IP) и скорость входящего в первый из второго?

Если не правильно, то подскажите, пожалуйста, как измерить скорость входящего трафика в компьютер без внешнего IP?

 ,

LinuxUser
()

Drag and drop в DeaDBeeF не работает

Форум — Desktop

Поставил новый Debian 9. В качестве DE — Xfce.
Из официального debian-multimedia репозитория установил DeaDBeeF.
Попытался привычным движением мыши закинуть в него файлов из PCManFM — не работает! И из Thunar тоже!

Почему такое может быть?

Между PCManFM и Thunar файлы драгэнддропятся нормально.
В Debian 8 я юзал FVWM — там с Drag and drop-ом в DeaDBeeF всё впорядке было.

 , ,

LinuxUser
()

Посоветуйте видеорегистратор для видеонаблюдения

Форум — Linux-hardware

Хочу сделать систему видеонаблюдения в деревне.
«ТЗ»:

  • Камеры:
    • видео от 1280x720, от 20 кадров/с;
    • автоматическая ИК-подсветка ночью;
    • раб. температура от -30..+50°C, IP66—IP67;
    • расстояние до регистратора от 10 до 40м.
  • Регистратор должен уметь:
    • поддерживать запись с 8-ми камер;
    • записывать видео по движению на внутренний жёсткий диск;
    • подключаться к моей OpenVPN сети;
    • записывать видео в низком качестве на удаленный (мой) сервер по протоколу SFTP.
    • отдавать записанные видео по FTP или SFTP;
    • показывать видео с камер через веб-интерфейс.

На данный момент вижу два варианта:
1. IP-камеры, свитч с PoE и x86_64 компьютер. На компьютере – GNU/Linux, motion, OpenVPN, ssh-сервер.
2. Аналоговые AHD/MHD камеры, видеорегистратор с неогороженным Linux (с возможностью настроить на нём запись с помощью motion, поставить OpenVPN и ssh-сервер).

По первому варианту цены за камеру начинаются от 4000р., за свитч – от 5000р., комп с 1ТБ диском – примерно от 15000р. Итого, если 6 камер и UTP-кабеля на 2000р., то 46000р.

По второму варианту цена за камеру от 1250р.. Видеорегистратор - от 3500р. + 4000р. за 1 ТБ диск. Итого, если 6 камер и 5000р. на кабели и блоки питания для камер, то 20000р.

Получается второй вариант более чем в два раза дешевле. Только в Linux там, скорее всего, хрен залезешь.

Вопросы:
1. Посоветуйте видеорегистратор с неогороженным Linux.
2. Посоветуйте плату видеозахвата для компа с 4/8 портами с поддержкой AHD/MHD и Linux.
3. Ну и вообще любые конструктивные соображения приветствуются.

 

LinuxUser
()

Инициализация переменной размером бинарника

Форум — Development

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

Я сделал это так:
1. Собираю временный бинарник с переменной exe_size=1.
2. Его размер записываю в exe_size.
3. Собираю искомый бинарник с новым значением exe_size.

Выглядит это так:
main.c

#include <stdlib.h>
#include <stdio.h>

extern size_t exe_size;

int main(int argc, char *argv[argc+1]) {
	printf("this file size is %zu\n", exe_size);
	return EXIT_SUCCESS;
}
Makefile
default: tmp main

tmp:
	@mkdir tmp

main: tmp/main.o tmp/exe_size_fill_.o
	gcc $^ -o $@
	@if [ `stat -c %s $@` -ne `stat -c %s tmp/main` ]; then\
		echo 'error: wrong exe_size'; rm $@; exit 1; fi

tmp/main.o: main.c
	gcc $< -c -o $@

tmp/exe_size_fill_.o: tmp/exe_size_fill_.c
	gcc $< -c -o $@

tmp/exe_size_fill_.c: tmp/main
	echo '#include <stdlib.h>' > $@
	echo "size_t exe_size = `stat -c %s $<`;" >> $@

tmp/main: tmp/main.o tmp/exe_size_blank.o
	gcc $^ -o $@

tmp/exe_size_blank.o: tmp/exe_size_blank.c
	gcc $< -c -o $@

tmp/exe_size_blank.c:
	echo '#include <stdlib.h>' > $@
	echo 'size_t exe_size = 1;' >> $@

clean:
	rm -rf main tmp

Запускаем make, затем ./main.
Программа выдаёт что-то типа: this file size is 7399.

Вроде задача решена, но меня терзают смутные сомнения: может я изобрёл велосипед или пытаюсь удалить гланды через одно место?
Хочу узнать на этот счёт мнения лоровских экспертов.
Существуют ли для поставленной задачи более менее стандартные способы?

 ,

LinuxUser
()

Отображение картинки с прозрачностью как OSD

Форум — Desktop

Ищу программу для отображения картинки на экране по типу OSD, с поддержкой прозрачности через композитный менеджер.
Требуется чтобы картинку можно было отображать в реальном её размере с указанием места на экране, а не в виде маленькой иконки как это делают всякие notification-daemon-ы.

Нашёл заброшенный проект ghosd, который похоже делает то, что мне нужно (см. последний скриншот), но ссылка на исходники там уже не работает.

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

 

LinuxUser
()

Не стартует lirc как сервис (Debian 8 Jessie)

Форум — General

Использую устройство Asus Digital Home. Скопировал его конфиг:

# cp /usr/share/lirc/remotes/asus/lircd.conf.asusdh /etc/lirc/lircd.conf
Сконфигурировал /etc/lirc/hardware.conf:
$ grep '^[^#]' /etc/lirc/hardware.conf
LIRCD_ARGS=""
DRIVER="asusdh"
DEVICE="/dev/usb/hiddev0"
MODULES=""
LIRCD_CONF="/etc/lirc/lircd.conf"
LIRCMD_CONF=""
Если запускаю так:
# lircd --nodaemon --driver=asusdh --device=/dev/usb/hiddev0 /etc/lirc/lircd.conf
То всё работает. В другом окне запускаю irw, нажимаю на пульте кнопки и irw их печатает.
Если запускаю как сервис:
# /etc/init.d/lirc start
Пишет: [ ok ] Starting lirc (via systemctl): lirc.service..
При этом lircd в списке процессов не появляется, лог файла /var/log/lircd нет и в /var/log/syslog ничего нового.
Пытался дебажить скрипт запуска сервиса: bash -x /etc/init.d/lirc start.
Обнаружил что всё заканчивается на /bin/systemctl start lirc.service.
При этом # locate lirc.service ничего не находит.

В какой лог файл смотреть чтоб понять почему этот systemctl так в итоге не запускает lircd?
Когда отсутствует lirc.service это нормально? Может дело в этом? Если да, то почему systemctl не руается?

 ,

LinuxUser
()

Как узнать на изменяемую ли память указывает переменная?

Форум — Development

Вот такой код

	char *s = "change me :)";
	s[0] = 'k';
вызывает ошибку сегментации.

Внимание, вопрос: что в чёрном ящике
Есть ли способ узнать на какой «тип» памяти указывает переменная?
Ну, то есть, можно ли её менять или нет.

 

LinuxUser
()

Потеря цвета при 1-пиксельных контрастных переходах

Форум — Development

В википедии пишут что VP8 (на котором основан WebP), поддерживает только формат 8-bit YUV 4:2:0, из-за чего в пиксельной графике могут быть потери цвета при 1-пиксельных контрастных переходах.

Вопрос знающим - это возможно даже при кодировании без потери качества или это устаревшая информация ещё с того времени когда WebP не умел кодировать без потери?

 

LinuxUser
()

Зачем нужны GTK_DIALOG(obj), GTK_WINDOW(obj) и т.п.?

Форум — Development

Требовалось сделать аналог виндовой функции MessageBox исключительно для вывода сообщений об ошибках.
Решил динамически грузить GTK-ашную либу и минимальным количеством её функций выводить требуемое.
Вот что получилось:

#include <stdlib.h>
#include <stdio.h>
#ifdef __unix__
	#include <dlfcn.h>
#endif /* __unix__ */

void error_msg_box(const char *msg);

int main() {
	error_msg_box("Test ok.");
	return EXIT_SUCCESS;
}

void error_msg_box(const char *msg) {
	if (msg == NULL)
		msg = "Unknown error.";

#ifdef _WIN32
	int __stdcall MessageBoxA
		(void *wnd, const char *text, const char *caption, unsigned int type);
	#define MB_ICONERROR 0x10
	MessageBoxA(NULL, msg, "Error", MB_ICONERROR);
#else

#ifdef __unix__
	void *lib_gtk = dlopen("libgtk-x11-2.0.so", RTLD_LAZY);
	if (lib_gtk == NULL)
		goto fb;

	typedef void (*GTK_INIT)(int *argc, char ***argv);
	typedef void *(*GTK_MESSAGE_DIALOG_NEW)(void *parent, int flags, int type, int buttons, const char *format, ...);
	typedef void (*GTK_WINDOW_SET_TITLE)(void *window, const char *title);
	typedef void (*GTK_WINDOW_SET_POSITION)(void *window, int position);
	typedef void (*GTK_WINDOW_SET_KEEP_ABOVE)(void *window, int setting);
	typedef int (*GTK_DIALOG_RUN)(void *dialog);
	typedef void (*GTK_WIDGET_DESTROY)(void *widget);

	GTK_INIT gtk_init;
	GTK_MESSAGE_DIALOG_NEW gtk_message_dialog_new;
	GTK_WINDOW_SET_TITLE gtk_window_set_title;
	GTK_WINDOW_SET_POSITION gtk_window_set_position;
	GTK_WINDOW_SET_KEEP_ABOVE gtk_window_set_keep_above;
	GTK_DIALOG_RUN gtk_dialog_run;
	GTK_WIDGET_DESTROY gtk_widget_destroy;

	#define GTK_MESSAGE_ERROR 3
	#define GTK_BUTTONS_CLOSE 2
	#define GTK_WIN_POS_CENTER 1

	if (
		!(gtk_init = dlsym(lib_gtk, "gtk_init")) ||
		!(gtk_message_dialog_new = dlsym(lib_gtk, "gtk_message_dialog_new")) ||
		!(gtk_window_set_title = dlsym(lib_gtk, "gtk_window_set_title")) ||
		!(gtk_window_set_position = dlsym(lib_gtk, "gtk_window_set_position")) ||
		!(gtk_window_set_keep_above = dlsym(lib_gtk, "gtk_window_set_keep_above")) ||
		!(gtk_dialog_run = dlsym(lib_gtk, "gtk_dialog_run")) ||
		!(gtk_widget_destroy = dlsym(lib_gtk, "gtk_widget_destroy"))
	)
		goto fb;

	gtk_init(NULL, NULL);
	void *dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", msg);
	gtk_window_set_title(dialog, "Error");
	gtk_window_set_position(dialog, GTK_WIN_POS_CENTER);
	gtk_window_set_keep_above(dialog, 1);
	gtk_dialog_run(dialog);
	gtk_widget_destroy(dialog);

	if (dlclose(lib_gtk))
		fputs("Warning: Failed to close GTK library.\n", stderr);

	return;
#endif /* __unix__ */

fb: fprintf(stderr, "Error: %s\n", msg);

#endif /* _WIN32 */
}
Компилируется так: gcc main.c -ldl -o main
(Под винду так: i686-w64-mingw32-gcc main.c -o main.exe)

Внимание вопрос: зачем в GTK нужны макросы GTK_DIALOG(obj), GTK_WINDOW(obj) и т.п. если всё вроде как работает и без них?

В документации в эти макросы предлагают оборачивать объекты (виджеты) при передаче в функции, например так:

gtk_dialog_run(GTK_DIALOG(dialog));

 ,

LinuxUser
()

Как узнать что сертификат правильно подписан?

Форум — Admin

Некоторое время назад поднял OpenVPN-сервер по инструкции http://openvpn.net/howto.html
(Используя набор скриптов easy-rsa)
Сгенерировал сертификаты для нескольких клиентов:

. vars
./build-key clientN
Настроил клиентов. Они успешно соединяются и всё у них работает.

Но, сегодня понадобилось добавить ещё одного клиента.
Добавляю также как и раньше.
Копирую на клиентскую машину – не работает, в лог пишет:

AUTH: Received AUTH_FAILED control message

Сравнил старые clientN.crt с новым, у всех есть одинаковые строчки:

X509v3 Authority Key Identifier: 
    keyid:F7:CF:8D:4F:4C:1D:2F:E3:DF:9F:8E:30:DE:87:77:D0:C4:45:7D:FB
    DirName:/C=RU/ST=MO/L=VNIISSOK/O=Home/CN=myserver/name=My Name/emailAddress=user@example.com
    serial:CB:4C:CC:83:9F:EE:BA:A9

Как узнать на сервере - правильно ли подписаны сертификаты?

 

LinuxUser
()

Как сделать, чтоб попытка exclusive flock не давала делать shared flock

Форум — Development

Несколько процессов могут читать из файла одновременно. Достаточно редко происходит запись в файл, при этом другие процессы из него читать не должны (ну и писать тоже).

Пытаюсь организовать блокировку с помощью flock. И вот какая штука получается: когда стоит shared lock, начинаем делать exclusive lock, соответственно происходит ожидание пока shared lock пропадёт. Но засада в том, что в это время другой процесс может сделать свой shared lock, и его тоже придётся ждать.

Как бы сделать так чтоб когда начали делать exclusive lock другие процессы ждали прежде чем получить shared lock?

Вот код для наглядности:

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/types.h>

int open_lockme() {
  int fd = open("lockme.tmp", O_CREAT);
  if (fd == -1) {
    perror("failed to open \"lockme.tmp\"");
    exit(EXIT_FAILURE);
  }
  return fd;
}

main() {
  if (fork() == 0) {
    if (fork() == 0) {
      int fd = open_lockme(); puts("(1): trying to set shared lock");
      flock(fd, LOCK_SH);     puts("(1): shared lock set");
      sleep(3);
      close(fd);              puts("(1): fd closed, shared lock removed");
    }
    else {
      int fd = open_lockme();
      sleep(2);           puts("(2): trying to set shared lock");
      flock(fd, LOCK_SH); puts("(2): shared lock set");
      sleep(2);
      close(fd);          puts("(2): fd closed, shared lock removed");
    }
  }
  else {
    int fd = open_lockme();
    sleep(1);           puts("(3): trying to set exclusive lock");
    flock(fd, LOCK_EX); puts("(3): exclusive lock set");
    sleep(2);
    close(fd);          puts("(3): fd closed, exclusive lock removed");
  }
  return EXIT_SUCCESS;
}
Хочется чтоб (2) ждал (3), а не наоборот.

 

LinuxUser
()

Тетрис для двоих игроков

Форум — Games

Ищу тетрис для двоих игроков. Примерно как на сайте http://www.tetrisfriends.com.
Так как там флеш, а он, как известно, не нужен, вот скриншот.

Хочется играть вдвоём с помощью джойстиков на одном или двух компьютерах.
Подойдут тетрисы для игровых консолей PlayStation/Sega и т.п. если их можно запустить через эмулятор в GNU/Linux.
На худой конец подойдут также тетрисоподобные игры, но чтоб они были качественные и на двоих игроков.

 ,

LinuxUser
()

find и буквы с диакритическими знаками

Форум — Desktop

Как оказалось при использовании диакритических знаков поиск find-ом не работает:

touch уда́рение
find -iname '*удар*'
Кто какое решение может предложить?

 ,

LinuxUser
()

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