LINUX.ORG.RU

Сообщения MOPKOBKA

 

Как в Nautilus создать файл, и тут же ему назначить имя?

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

И второй вопрос, file roller выкинули из gnome, как зайти в большой архив и извлечь один файл?

 

MOPKOBKA
()

(neo)vim, разные отступы для html, css, js, php в одном файле php

Я обычно пишу все в одном файле *.php, иначе потом забываю какие файлы нужно закинуть через WinSCP на сервер, а какие нет. Там есть php, html, js, css.

Но я привык иметь для css и html отступ в два пробела, а для php и js в четыре. Как мне это настроить? Речь про авто-отступ.

 ,

MOPKOBKA
()

Как ограничить доступ к ~/.config/google-chrome?

Вот есть всякие флатпаки, firejail, они требуют что бы приложения запускались через них, но как мне ограничить доступ всем к папке ~/.config/google-chrome, кроме избранных приложений, thunar, mousepad и самого google chrome?

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

 

MOPKOBKA
()

Несколько flexible array member

Почему не добавят в стандарт, и какие приемы используют что бы реализовать это?

Описание того что я хочу:

struct String {
  int length;
  char str[length]; // == char str[];
                    // указание длинны, просто подсказка для компилятора
};

struct Item {
  struct String name; 
  struct String description;
  bool flag1, flag2, flag3;
  int elements_length;
  struct Element elements[elements_length]
};


// Item *i = malloc(999999999);
// (char*)&i->description.length == ((char*)&i->name.str) + i->name.length

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

 ,

MOPKOBKA
()

Есть ли программа для очереди заданий?

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

Писать сам это не собираюсь, хотелось бы что то не васянское, может systemd такое уже умеет?

 

MOPKOBKA
()

Си. Почему бы не запретить запись в стек?

Решил немного разобраться как работают уязвимости. Как я понял, весомая их часть модифицирует стек.

#include <stdio.h>

register long unsigned rsp asm("rsp");

void print_arg(int arg) {
    ((int*)rsp)[3] = 0xBADC0DE;
    printf("arg = %x\n", arg);
}

int main(int argc, char **argv) {
    print_arg(0xF00D);
    return 0;
}

Этот код отрабатывает и не выводит ошибкок с

-fhardened -fcf-protection=full

На мой взгляд выглядит небезопасно.

Почему бы не вставлять проверки на ассемблере при записи в память, на включаемость в регион стека? Если нужно записать что то в аргумент на стеке (int), то проверку можно не вставлять. При записи по указателю, уже обязательно вставлять. Если адрес стека то ошибка. В memset проверять пересечение двух диапазонов.

Если на стек пишет fread(), то нужно вставить еще проверку на разрешающий диапазон буфера в который он пишет. Но тут компилятору нужно обязательно отслеживать откуда приходит поинтер, но если мы говорим про значения на стеке, то это не должно представлять сложности, значение всегда лежит в прошлых значениях стека, а значит вычислить размер буфера можно в момент компиляции, ну или записать в какую нибудь дополнительную переменную на стеке, если речь о сложном потоке управления и alloca.

void read_file(const char *name)
{
        char buff[999];
        FILE *f = fopen(name, "rb");
        read_block(f, buff);
}

void read_block(FILE *f, char *buff)
{
        // тут компилятор должен вывести что len(buff) == 999
        fread(buff, 1, 9999, f);
}

Что бы все идеально работало, нужно будет:

  • Пометить libc функции
  • Если функция работает со стеком как у меня в верхнем примере, но это правильное поведение, пометить и ее
  • Перекомпилировать основные библиотеки, что бы не ломать ABI можно ввести экспорт двух прототипов, с доп.значениями для проверки диапазонов и без, дублирование прототипов понадобится для малого числа функций

 

MOPKOBKA
()

Orage (программа для организации времени) из Xfce портирована на gtk3

Orage - программа для Xfce для организации времени. Раннее она оставалась на gtk2 и не была доступна для новых версий Xfce.

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

Подробности

Перемещено hobbit из office

 ,

MOPKOBKA
()

Linux непригоден для просмотра котиков

Решил запустить последний RoboCop на Linux, в меню меня встретили фризы в пару секунд, поэтому я побежал в магазин за новой видеокартой, но фризы не прошли, и я поставил Windows, а там тоже самое! Оказалось нужно просто подождать 10-20 секунд, и больше такого не будет, даже при следующем запуске.

Но под протоном испорчены разные вещи, например коты

Proton - https://ibb.co/g7KHmw6

Win - https://ibb.co/6byWNF8

 ,

MOPKOBKA
()

Red Hat угощает Wayland-ом разработчиков Firefox

Мартин Странски из Red Hat написал Wayland-Proxy как C++-версию предыдущей экспериментальной концепции, написанной на Rust

Среди ошибок Firefox Wayland одна из самых распространенных ошибок связана с потерей соединения с компоновщиком Wayland. Чтобы справиться с этим, необходимо иметь прокси-сервер между Firefox и компоновщиком Wayland для кэширования сообщений и предотвращения переполнения очереди сообщений компоновщика.

В комментариях разбирают подробнее

Mutter (и, возможно, другие) завершает работу клиента Wayland, если он распознается как зависший. Обычно это означает, что клиент Wayland недостаточно быстро читает сообщения из сокета дисплея Wayland и буфера вывода сообщений компоновщика. заполнено. Это может быть ошибка в самом приложении (цикл событий не обрабатывается) или это вызвано устройствами ввода, такими как мышь с частотой 1000 Гц, которая генерирует слишком много событий.

Такая ошибка действительно есть, любители Wayland с высокой герцовкой мыши, ранее делились советами не двигать мышкой когда открыт Firefox, иначе это может немедленно привести к его закрытию.

https://www.phoronix.com/news/Wayland-Proxy-Firefox

 

MOPKOBKA
()

ДИН, почему забанили космоспеца?

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

www.linux.org.ru/people/kompospec/profile

 ,

MOPKOBKA
()

Может ли быть software rendering лучше hardware (сюда отнесу OpenGL) по задержке?

Можно заметить что без композитора чистые X11 приложения ощущаются намного более отзывчивыми и быстрыми, так же на Windows приложения использующие GDI с выключенным композитингом чувствуются очень хорошо, в чем причина?

Композитинг тормозит из за того что окна выводятся в промежуточные буферы а потом копируются в итоговый?

 ,

MOPKOBKA
()

Debian/Ubuntu собрать Emacs только с gtk (deb)

Делаю

apt source emacs
если выполню
fakeroot rules/binary
то он начнет собирать со всеми фронтендами, а нужно только с gtk. Как мне это указать?

Нужно https://packages.debian.org/buster/emacs-gtk

Собирает:
https://packages.debian.org/buster/emacs-nox
https://packages.debian.org/buster/emacs-gtk

 , ,

MOPKOBKA
()

gtk3, как сделать такую таблицу

Есть таблица (TreeView) вида

+------+------+------+
| Заг1 | Заг2 | Заг3 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+

Нужно добавить под каждую строку прогресс бар, размером с (Заг1+ Заг2), при этом остальные столбцы должны быть выравнены.

+------+------+------+
| Заг1 + Заг2 | Заг3 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------|      |
+ #######.... |      |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------|      |
+ #######.... |      |
+-------------+------+
| 1234 | 1234 | 1234 |
+------+------|      |
+ #######.... |      |
+-------------+------+

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

 

MOPKOBKA
()

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

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

Что можно такому человеку предоставить на русском языке по Linux? С упором на вещи которые можно применять в обычной жизни, то есть лучше что бы не был упомянут chmod, а было упомянуто как перекинуть файлы на флешку, как заполнить форму в LibreOffice итд. Что бы проходились поверхностно, но по нужным вещам.

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

 

MOPKOBKA
()

А почему у Gtk еще нету официальной React-подобной библиотеки поверх?

Вот смотрю на то как в Rust делают приложения на Gtk, и очень удивляюсь, неужели кому то нравится писать вручную все эти интерфейсы в императивном стиле? А ведь пишут, еще обходя все проблемы, которые исходят из того что у Gtk свой подход к управлению памятью который на Rust не налазит, как и наследование компонентов, из за чего в Rust пришлось добавлять «классы» через макросы - https://gtk-rs.org/gtk4-rs/stable/latest/book/g_object_subclassing.html

Есть ли какая то проблема в создании libgtk-react, где можно будет описывать интерфейс декларативно, с использованием javascript, с удобным получением данных из C++ или Python части?

Вроде есть какие то библиотеки, но они нигде не используются как я понял.

 , ,

MOPKOBKA
()

NVIDIA, EDID и ttyX, как избавиться от «Вход не поддерживается»?

После установки драйверов nvidia-driver:525, после запуска Xorg, если переключиться в tty монитор писал «Вход не поддерживается», переключение обратно в xorg tty не помогало. После добавления в xorg.conf

Section "Screen"
  Option "UseEDID" "False"
EndSection
Переключение обратно в xorg начало приводить к тому, что xorg нормально отображается. Но в tty все равно «Вход не поддерживается», его я никак после запуска xorg увидеть не могу.

Как я понял, проблема в том что переключение на tty пытается ввести монитор в какой то неправильный режим, но как его сделать правильным?

Пробовал ставить по отдельности и вместе nomodeset, nvidia-drm.modeset=1, nvidia-drm.modeset=0, drm.edid_firmware=edid/custom_edid.bin где custom_edid.bin это то что я сгенерировал находясь в графической сессии с помощью nvidia-settings, но ничего не помогло.

В Wayland вообще всегда нет сигнала, как и в tty, как я понимаю настроив tty я смогу и им пользоваться.

Debian 12, Linux 6.1.0, NVIDIA 525.105.17, RTX 3060 LHR

Монитор https://www.dns-shop.ru/product/483fcc72d53b3332/238-monitor-acer-ka242ybi-ce...

Видеокарта https://www.dns-shop.ru/product/49b77a8077562eb0/videokarta-kfa2-geforce-rtx-...

 , ,

MOPKOBKA
()

Баг в названии опроса

www.linux.org.ru/vote-vote.jsp?msgid=17134667

Опрос тут называется:

&#171;Рукость&#187; ЛОРовца: какая рука у вас преобладающая?
Напрягают
&#171;
и
&#187;
maxcom

 

MOPKOBKA
()

Какой VPN поставить на сервер?

Однажды я смог настроить PPTP, но теперь не получается, пробовал WireGuard но там какие то интерфейсы, пиры, ключи, вроде переменных меньше, но слишком сложно, я вообще ничего не понял. Для OpenVPN какие то ключи надо делать, конфиги писать, iptables запускать, неужели еще ничего не придумали простого? И что бы NetworkManager поддерживал.

 

MOPKOBKA
()

Как приходят в Kali Linux

Многие на ЛОРе жалуются, что люди выбирают Kali Linux просто так первым дистрибутивом, в погоне за любимым персонажем из фильма например, и советуют вместо этого читать книжки о Linux, изучить а там уже приступать. Ну и вот что там написано в этих самых книгах, как раз о той самой установке Kali Linux с нуля!

Страницы из книги

Перемещено hobbit из screenshots

 

MOPKOBKA
()

Docker Compose привязка к домену + порту

Я часто работаю над несколькими проектами одновременно, смотрю что то в одном, делаю во втором итд, нужно держать их запущенными.

Если все проекты на Apache2 + PHP, без докера, то я бы использовал VirtualHosts, сделал бы для каждого проекта домен, и тестировал бы все там.

А что можно сделать в docker, docker compose из подобного? Идеальным решением было бы привязать docker-compose.yml к домену, что бы:

curl project-a.dev:8080 это /dev/project-a/docker-compose.yml::httpd

curl project-b.dev:8080 это /dev/project-b/docker-compose.yml::httpd

Как это реализовать?

 ,

MOPKOBKA
()

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