LINUX.ORG.RU

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

pdf и djvu

Форум — General

Народ, а чем вы pdf открываете, ну кроме браузера? Интересует программа, позволяющая работать с файлом как с электронной книгой, закладки ставить и прочее?
Также вопрос, чем сейчас модно читать djvu?
Программы, тянующие при установке Gnome или KDE просьба не предлагать. И желательно, чтобы интерфейс был не такой, чтобы от него трясло.

 ,

sunny1983
()

как сделать локальное (по окнам) переключение раскладок средствами X?

Форум — Desktop

здравствуйте

в kde есть очень удобная опция настройки раскладок клавиатуры

в Layout Switching Policy можно выбрать Global , Window … итд

как можно сделать то же самое но без kde?

 , , ,

brothermechanic
()

А тут все вкурсе что бывает при переполении int?

Форум — Development

Задача. Монотонно растущий счетчик времени который в какой то момент может переполнится.
Код делает типовые операции

uint16_t startTime = millis();
...
uint16_t stopTime = millis();
uint16_t runSpeed = stopTime - startTime;

Вопрос что будет если startTime будет равно 65535 а stopTime будет равно 1?
Какой будет runSpeed?
Код теста
//# ./a 1 - 65535
#include <stdio.h>
#include <stdint.h>

int main(int argc, char * argv[]) {
  uint16_t a = atoi(argv[1]);
  uint16_t b = atoi(argv[3]);
  
  printf("%d", (uint16_t)(a - b));
  
  return 0;
}

Итого все хорошо 1 - 65535 будет равно 2 как и предполагалось. Спасибо бинарной логике процессора. И никаких лишних проверок сравнений лепить не надо.

 ,

bga_
()

Нужно ли противодействовать зловредному ПО? Как вы это делаете?

Форум — Linux-install

И снова здравствуйте, мои дорогие. Как вы боритесь с неблагонадёжным программным обеспечением? Вот, возьмём к примеру браузер. Браузер тащит подсистему печати и следовательно дырявый как ситечко ghostscript. Ни то ни другое мне не нужно (в браузере так точно).

Итак, я создаю заглушку, делаю следующее:

desktop ~ # cat cupsnop.c
void cupsGetOption(void){return;}
void cupsLastError(void){return;}
void cupsFreeDests(void){return;}
void cupsGetDests2(void){return;}
void cupsGetDests(void){return;}
void cupsGetDest(void){return;}
void cupsGetNamedDest(void){return;}
void cupsGetPPD2(void){return;}
void httpError(void){return;}
void cupsGetPPD(void){return;}
void httpConnectEncrypt(void){return;}
void httpClose(void){return;}
void httpBlocking(void){return;}
void ppdOpenFile(void){return;}
void ppdMarkDefaults(void){return;}
void ppdLastError(void){return;}
void ppdErrorString(void){return;}
void cupsParseOptions(void){return;}
void cupsMarkOptions(void){return;}
void cupsFreeOptions(void){return;}
void ppdFindMarkedChoice(void){return;}
void ppdFindOption(void){return;}
void ppdFindChoice(void){return;}
void ppdFindAttr(void){return;}
void ppdClose(void){return;}
desktop ~ # cat make.sh
#!/bin/sh

gcc -s -shared -fpic -march=native -O2 -pipe -fstack-clash-protection -fstack-protector-strong --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,relro -Wl,-z,now -Wl,--hash-style=gnu -Wl,--no-copy-dt-needed-entries -Wall -Wextra cupsnop.c -olibcups.so.2

mv -v libcups.so.2 /lib64/libcups.so.2
desktop ~ # ./make.sh
renamed 'libcups.so.2' -> '/lib64/libcups.so.2'

И всё хорошо, все довольны и счастливы. Но браузер также тащит кучу дряни вроде gtk, а та в свою очередь тащит atk, at-spi2-atk с at-spi2-core, причём, не найдя любую из зависимостей категорически отказывается собираться. Я считаю, это не дело, так не должно быть.

В браузерах есть огромная беда с файловыми диалогами на гтк – они неудобные, выглядят очень инородно, и сразу затирают иксовый буфер выделения среди прочего. Это ужасно. Как мне рассказывали старшие товарищи, в opensuse файловые диалоги как-то патчили, чтобы сделать те человеческими. Можно ли такое же сделать, например, с хромом?

И ещё, браузер запускается без ffmpeg (выдаёт libffmpeg.so => not found), при этом с видео даже проблем нет. Ну или они есть, это не важно (их нет). А вот с cups так не работает, приложение отказывается запускаться, если библиотека не найдена. Что это такое? Пробовал patchelf или что-то подобное для удаления зависимостей, так программа молча зависала при попытке её запустить.

 , , , ,

linuxnewb13
()

Какие есть ещё source based пакетные менеджеры с проверкой зависимостей?

Форум — Linux-install

Кроме portage? Какие пакетные менеджеры есть на slackware-based дистрибутивы с разруливанием зависимостей?
Как обстоят дела с ABS и Sourcery?

P.S. Мне нужен fglrx (старая видюха), а это значит xorg-server не новее 1.17.49, если верить ебилду.

 , source based,

teod0r
()

Получить корректный размер используемой памяти из /proc/meminfo

Форум — Development

Приветствую!

Как получить корректный размер используемой памяти из файла /proc/meminfo чтобы он совпадал с размером из htop

Я пробовал:

MemTotal - MemFree

MemTotal - (MemFree + Buffers + Cached)

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

 , ,

user988
()

Аддон для ЛОРа

Форум — Talks

В чёртовой Лисе рубанулись аддоны (обсуждалось многократно). Ну и пёс с ним. Но вот без аддона для ЛОРа ну очень не ice. Кто что может подсказать?

Решение: коментарий: eternal_sorrow (10.05.19 12:53:11).

 , ,

Deleted
()

У каджита есть товар, если у тебя есть монеты, друг!

Форум — Talks

Я просто оставлю это здесь. OpenWM теперь с тенями. Писателям новостей - ну вы поняли да?

А зачем это всё это ненужно конкретно вам и что теперь с этим всем делать решать тебе мой красноглазый читатель.

 

init_6
()

Linux sandboxing

Форум — Security

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

У меня практический вопрос: что сейчас используется для sandboxing'а? Задача проста: есть недовереннные приложения (бинарники из левых источников). Надо запустить их, обеспечивая максимальную безопасность с минимальными затратами. Вариант - не запускать левые бинариники не подходит.

 , ,

maverik
()

Удалить все совпадающие линии в файле

Форум — General

Есть файл с содержимым

9
7
1
8
2
1
3
2
4
2
5
2
6
6

из него нужно сделать файл

9
7
1
8
2
3
4
5
6
 — то есть оставить только по одному экземпляру каждой совпадающей строки.

Продолжение тем Сравнение двух списков в bash Как в Arch Linux вывести список всех дополнительных зависимостей для каждого установленного пакета?

 

Vsevolod-linuxoid
()

Примочки для терминала

Форум — Talks

Иногда делаю для себя маленькие открытия типа таких:

autojump: https://github.com/wting/autojump/

hstr: https://github.com/dvorka/hstr

О каких ещё полезных при работе в терминале штуках я не знаю?

P.S. Использую zsh без oh-my-zsh.

 , ,

aquadon
()

Облагородить логику bash-скрипта

Форум — Development

Привет, ЛОР!

Обучаясь bash велосипедю такое нечто. И вот в case 3 у меня цикл, который ждёт подходящий $ANSWER.

Если отрабатывается case 1 и case 2 то всё корректно - или заново проигрывается скрипт или выход из него.

А в случае case 3 получается, что при выходе из цикла и выходе из case скрипт попадает в старший цикл и поскольку переменная $TIME_LAST пустая, то срабатывает условие и ожидается ввод от пользователя.

Данное поведение подходит, если пользователь хочет повторно завести таймер и не подходит, если он хочет закончить работу.

Т.е. если пользователь ответил Y или ответил N, то всё ок. А если он ответил «qwerty», его переспросили, он ответил N, то всё равно скрипт будет продолжать работу.

Как это организовать по-человечески?

#!/bin/bash
# timer.sh
# Таймер с интерактивным вводом. 
# Умеет звенеть колокольчиком на старых терминалах. 
# На некоторых современных может посылать уведомления

TIME_LAST="$1" # Время таймера
FLAG=TRUE # Флажок
INTEGER=^[0-9]+$ # Шаблон проверки числа. В данном случае целое положительное число, не строка

while [[ "$FLAG" = "TRUE" ]]; do

if [[ -z "$TIME_LAST" ]]; then

	echo -e "\nИспользование: \"`basename $0` время_в_минутах\" или введите в интерактивном режиме"
	echo -e "Введите время в минутах (для отмены нажмите Ctrl+C)\n"
	read TIME_LAST

                until [[ "$TIME_LAST" =~ $INTEGER ]]; do
                echo -e "\nОшибка ввода. \"$TIME_LAST\" не является целым положительным числом.\nПовторите ввод\n"
                read TIME_LAST
                done
                
echo -e "\nОтсчёт $TIME_LAST мин. пошёл!"

fi


sleep $(( $TIME_LAST * 1 )) && echo -e "\nВремя вышло!\a" # ДЛЯ ТЕСТА ТУТ УКАЗАНО УМНОЖЕНИЕ МИНУТ НА 5, А НАДО НА 60!!!

TIME_LAST="" # Подметаем за собой

echo -e "\nХотите завести новый таймер? y / n\n"

read ANSWER

case "$ANSWER" in

#1 case
"Y" | "y" )
;;

#2 case
"N" | "n" )
FLAG=FALSE # Переключается флажок и выход из цикла
;;

#3 case
* )
echo -e "\nВведите \"y\" или \"n\"\n"
# Пока не будет получен нужный ответ переспрашивать
until [ "$ANSWER" = "y" -o "$ANSWER" = "Y" -o "$ANSWER" = "n" -o "$ANSWER" = "N" ]; do 
    read ANSWER
done
;;

esac

done

echo -e "\nBye-bye"

exit 0

 

kma21
()

Bash смена заголовка терминала

Форум — General

Подскажите можно ли на «лету» менять заголовок скрипта

Например при запуске скрипта будет заголовок


printf '\033]2;Test\a'

а позже в работе скрипта вызывается функция которая меняет заголовок на Test2

 

vbox
()

Маскировка OpenVPN под HTTPS

Форум — General

Вот здесь умный человек пишет как настроить OpenVPN так, чтобы при обращении к серверу браузером получать вебовую страницу, а если обратиться OpenVPN'овым клиентом, то устанавливается соединение.

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

Так вот, возможно ли надёжно замаскировать VPN под HTTPS, да так чтобы при обращении браузером получать странички? Что для этого требуется кроме nginx'а, OpenVPN'а и сертификата (хотя бы) от LetsEncrypt? Shadowsocks, stunnel, obfsproxy? Есть ссылка на пример такой настройки?

 , , маскировка

Camel
()

Как сделать cat file | grep text > file?

Форум — General

Знаю, что нельзя, но очень хочется.

 

crutch_master
()

Сглаживание шрифтов. Debian 9.

Форум — General

Шрифты ужасные! Как можно сгладить шрифты в этом дистрибутиве? .fonts.conf - не помогает.

 , ,

jek04
()

Как сделать регулярное выражение регистро-независимым?

Форум — General

В конфиге Metricbeat есть список регулярных выражений (по правилам Lucene), по которым фильтруются добавляемые в поисковик данные. В моём случае это — просто список слов в ASCII. Требуется, чтобы эти слова искались вне зависимости от регистра.

Пока обрабатываю файл-список командой

sed 's/[Aa]/[Aa]/g; s/[Bb]/[Bb]/g; s/[Cc]/[Cc]/g; s/[Dd]/[Dd]/g; s/[Ee]/[Ee]/g; s/[Ff]/[Ff]/g; s/[Gg]/[Gg]/g; s/[Hh]/[Hh]/g; s/[Ii]/[Ii]/g; s/[Jj]/[Jj]/g; s/[Kk]/[Kk]/g; s/[Ll]/[Ll]/g; s/[Mm]/[Mm]/g; s/[Nn]/[Nn]/g; s/[Oo]/[Oo]/g; s/[Pp]/[Pp]/g; s/[Qq]/[Qq]/g; s/[Rr]/[Rr]/g; s/[Ss]/[Ss]/g; s/[Tt]/[Tt]/g; s/[Uu]/[Uu]/g; s/[Vv]/[Vv]/g; s/[Ww]/[Ww]/g; s/[Xx]/[Xx]/g; s/[Yy]/[Yy]/g; s/[Zz]/[Zz]/g'
и вставляю в конфиг. Некрасиво. Громоздко. Можно улучшить?

------------------------------------------------------------

Ответ:

Команду для sed можно записать короче:

sed 's/\([A-Za-z]\)/[\u\1\l\1]/g'

А в самом списке вместо имён можно поставить

'(?i:firefox)'

 ,

olegd
()

tar убрать полный путь

Форум — General

исходная команда tar cf - /home/user/Pictures/|pigz>Pictures.tar.gz
в архиве получаю путь /home/user/Pictures
как убрать путь? в идеале пусть файлы будут сразу в корне архива
пробовал пихать параметр -С но не получилось

 

kommersant
()

Этот стон у нас песней зовется (видео в браузере)

Форум — Desktop

Товарищи! Киньте кто-нибудь рецепт, как привинтить хотя бы внешний плеер к современным версиям лисы или хрома, чтобы иметь аппаратное ускорение, причем не только на ютубе, а и на всяких онлайн-кинотеатрах. В браузерах на это положен, похоже, болт, менять железо пока не вариант :(

 ,

olegkrutov
()

Вечные закладки

Форум — Talks

Дело такое: я живу, закладки накапливаются, сайты закрываются, закладки становятся недействительными. Подумалось мне исправить это, чтобы я мог не волноваться о доступности своих закладок. Но вот беда: не могу найти способ как этого добиться. Пробовал onenote clipper — лишь скриншоты он делает; попробовал evernote clipper — какие-то непонятные баги с отображением изображений, частично едет заметка — лучше, но всё равно не то, ибо надо каждый раз проверять корректность заметки, и фиксить ручками, если что не так.

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

Есть ли что-то близкое к запрошенному? Возможно тут XY problem. Мне просто надо чтобы под рукой были вечные закладки, скорость доступа к которым и удобство как минимум не ниже дефолтных браузерных.

P.S. Не стесняйтесь, если о чем-то знаете — расскажите. Повторы — не так страшно, как пропуск чего-то интересного. Я обязательно проверю все варианты и выберу лучший. Если нет возможности сделать это тут, можете написать мне на почту letni@imap.cc

 

letni
()