LINUX.ORG.RU

Сообщения bryak

 

Сегодня мне 36

 

Сабж

bryak
()

Не работает смена layout'a

 

Есть вот такой код, который на определенных тегах включает monocle. Он работает на 6.1, Но не работает на 6.2. Есть патч cyclelayouts, который циклически переключает layout. Так вот, он в 6.2 перестал переключать layout. Т.е панельке отображается, что я переключил из монокля в tile, а фактически стоит monocle. Как это пофиксить?

Monitor *
createmon(void)
{
	Monitor *m;
	unsigned int i;

	m = ecalloc(1, sizeof(Monitor));
	m->tagset[0] = m->tagset[1] = 1;
	m->mfact = mfact;
	m->nmaster = nmaster;
	m->showbar = showbar;
	m->topbar = topbar;
	m->lt[0] = &layouts[0];
	m->lt[1] = &layouts[1 % LENGTH(layouts)];
	strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
	m->pertag = ecalloc(1, sizeof(Pertag));
	m->pertag->curtag = m->pertag->prevtag = 1;

	for (i = 0; i <= LENGTH(tags); i++) {
          m->pertag->nmasters[i] = m->nmaster;
          m->pertag->mfacts[i] = m->mfact;
		
          // change layout in tags & hide bar
          if(i == 1 || i == 4 || i == 9) {
            // set monocle
            m->pertag->ltidxs[i][0] = m->lt[1]; // set monocle
          } else {
            m->pertag->ltidxs[i][0] = m->lt[0];
          }
          
          m->pertag->ltidxs[i][1] = m->lt[1];
          m->pertag->sellts[i] = m->sellt;
          m->pertag->showbars[i] = m->showbar;
	}

	return m;
}
bryak
()

Как вставить аргумент с выхлопа find?

 

К примеру, я делаю в директории find . |grep run.sh

./docker/python/script/run.sh
./docker/python/script1/run.sh
./docker/python/script3/run.sh

Далее я мышью выделяю ./docker/python/script/run.sh и вставляю его перед vi

vi ./docker/python/script/run.sh

Как бы так сделать, чтобы мышью не выделять какой-то из результатов выхлопа find?

Чтобы сделать что-то типа

vi $1

и в строке осуществилась подстановка

vi ./docker/python/script/run.sh

или

vi $3

и в строке осуществилась подстановка

vi ./docker/python/script3/run.sh
bryak
()

Кто возьмется сделать православный мониторинг для dwm?=)

 , ,

Появилась мысль сделать кикстартер проект. Сформировать всем месте ТЗ по этому проекту и вложиться деньгами(скажем по $1-2 с человека). По результатам выложить это на suckless, чтобы у всех у нас был хороший гибкий мониторинг. Вообще, такой proj хорош тем, кто хочет поднять свой скилл на си, но если таких не найдется, давайте соберемся шекелями и пусть нам запилят мониторинг

В общем есть у меня скрипт на питоне, который имеет конфиг:

data = {
    'item0':
    {
        'job': 'myout',
        'type': 'system',
        'timeout': 2,
        'state': 'enable',
    },
    'item1':
    {
        'name': '',
        'bracket': '',
        'job': 'internet',
        'type': 'function',
        'timeout': 5,
        'state': 'enable',
        'result': 'UP:LOAD'
    },
    'item2':
    {
        'name': '',
        'bracket': '',
        'job': "weather",
        'type': 'function',
        'timeout': 300,
        'state': 'enable',
        # 'result': '☔:0'
        'result': 'W:0'
    },
    'item4':
    {
        'name': '',
        'bracket': '',
        'job': 'traffic',
        'type': 'function',
        'timeout': 1,
        'state': 'enable',
        'result': 'D:0B    U:0B   '
    },
    'item5':
    {
        'name': '',
        'bracket': '||',
        'job': 'disk',
        'type': 'function',
        'timeout': 60,
        'state': 'enable',
        'result': 'RH:-1,-1,-1'
    },
    'item6':
    {
        'name': '',
        'bracket': '',
        'job': "day",
        'type': 'function',
        'timeout': 15,
        'state': 'enable',
        'result': 'Дн.'
    },
}

Скрипт обходит все item, парсит что это «функция», берет имя функции, и выполняет функцию с указанным таймаутом. Далее пишет информацию в общий массив и отдельный тред берет весь массив и пишет информацию в xsetroot -name. Но в целом всё это я так бы сейчас не написал. Это не православно. Православно как?

делаем конфиг в yml вида:

- item1
   - path: /some/script.py
   - timeout: 15
   - state: enable
   - result: 'UP:LOAD'

Далее в сишке обходим все item, запускаем скрипты с заданным таймаутом и пишем в какой-то общий массив. И с таймаутом 2 секунды запускаем xsetroot и подставляем всю инфу. Таким образом мы можем в мониторинг добавлять свои скрипты хоть на питоне, хоть на луа, хоть на sh и мониторинг будет забирать от них выхлоп. Было бы круто:)

А то некрасиво это:

ps_mem |grep monitoring.py

17.3 MiB + 241.5 KiB =  17.5 MiB       monitoring.py

ps_mem |grep dwm

1.3 MiB + 199.5 KiB =   1.5 MiB       dwm

Сам мониторинг занимает больше памяти, чем wm, лол

Кто возьмётся написать православный monitoring на си для dwm? =)

bryak
()

Как сформировать правильный патч?

 ,

Допустим, есть патч1 и патч2, в патч1 есть

@@ -2145,6 +2152,7 @@ main(int argc, char *argv[])
        checkotherwm();
        setup();
        scan();
+       runAutostart();
        run();
        cleanup();
        XCloseDisplay(dpy);

Когда я накладываю патч1, то всё ок. Но если я накладываю патч2, который изменяет положение main c

@@ -2145,6 +2152,7

На другое, то если я попробую наложить патч1 после патч2, то он не наложится, т.к сместился main. Как сделать так, чтобы не привязываться к позиции строки, а привязываться к строке т.е ищем main(int argc, char *argv[]) и добавляем после scan runAutostart();. Это возможно?

bryak
()

Симулятор космоса

 ,

Есть ли какой-то симулятор космоса, с реальными полигонами планет? Чтобы интерактивно можно полетать

bryak
()

Про игнорировние пользователей

Я считаю, что этот функционал не нужен. Или нужен, но с применением условия. Допустим, можно игнорировать юзеров, только если у них < 1/2 звезды. Потому как получается, что если ты на начальном этапе активно задавал вопросы, которые кому-то казались глупыми, то вполне вероятно, что к 3 или 4 звезде ты в игноре у половины лора. Толк от такого аккаунта? Легче его бросить и завести новый.

Если человек дожил до 2 или 3 звезд и его не забанили, значит он более-менее адекватный и к тому же, к такому кол-ву звезд он уже немного поумнел(я конечно же исключение :)) У меня есть второй аккаунт с почти двумя звездами, так вот: я задаю вопросы - там нет ответов. Что говорит о том, что не только бряк в игноре у половины лора, а и второй аккаунт. Если интересен вопрос, напишите мне в почту, а дам второй аккаунт, сделаете выборку по бряку и по второму аккаунту и посмотрите, мои слова имеют под собой основание или нет

PS: а вообще, сделайте глобальную выборку с каунтом игнорирования юзеров с 2+ звездами и посмотрите результат

PPSS: долгих лет ЛОР’у! Я считаю, что это самый лучший ресурс по обмену знаниями. Пусть он будет еще лучше

bryak
()

В последний раз о slackware

 , ,

Специально для тех, кто думает «попробовать это или не попробовать?». Дело в том, что это не «личный дистрибутив Патрика», а «личный коммерческий проект Патрика». Который он использует в личных коммерческих целях. Есть замечательный пост Патрика, который сидит под ником volkerdi на linuxquestions.org

https://www.linuxquestions.org/questions/slackware-14/donating-to-slackware-4175634729/#post5882751

Итак, Патрик всё это время рубил бабло на дистрибутиве игнорируя потребности пользователей. Используя последних - как ботов, для багрепортов. Но в последнее время юзеры разбежались с этого дистрибутива, по причине неюзабельности, Патрик активизировался. И…и? Начал клянчить деньги у комьюнити. При этом Патрик говорит, что на slackware 14 он заработал всего $125к. Чеков он не покажет конечно же и в действительности никто не знает реально сколько он зарабатывал на каждом релизе. Кому интересно - не поленитесь почитать этот тред, в котором Патрик думает, как бы с этого трупика отжать денег и другие крайне интересные моменты. Кроме классной системы инициализации в этом дистрибутиве ничего хорошего нет. Жаль, что этот дистрибутив не развивался по нормальным принципам дистрибутивостроения. Сейчас был бы отличный дистрибутив и скорей всего он был бы сейчас популярен как debian

bryak
()

Годных патчей тред

 

Какие патчи используете? Я остановился на:

1.autostart. Позволяет запускать аплекухи из ~/.dwm/autostart.sh

2.systray. Добавляет systray в панель

3.noborder. Убирает border, если в теге открыто одно окно

4.pertag. Позволяет на каждом теге иметь независимый layout и mfact 

5.cfacts. Добавляет возможность горизонтальный размер окна

6.cyclelayouts. Позволяет циклически менять layout

7.zoomswap. Запоминает расположение окна при его перемещении в мастер область. Если его переместить из мастер области, то окно возвращается на своё место. К примеру, есть три окна 1,2,3. Когда мы перемещаем в мастер область окно по MODKEY+XK_Return в мастер область, а потом делаем еще раз MODKEY+XK_Return, то окно возвращается в позицию 3(по дефолту окно помещается в позицию 2

Интересно было бы услышать, кто что юзает помимо этого

bryak
()

pulseaudio тупит

 ,

Если так сделать, то при старте звука pulseaudio задумывается секунды на 3-4. При этом она как бы засыпает постоянно. Т.е, если взять включить deadbeef, то каждый трек если включать, то он будет звучать с вышеуказанной задержкой. Как это лечить?

## load ladspa module
.ifexists module-ladspa-sink.so
.nofail
load-module module-ladspa-sink sink_name=compressor-stereo plugin=sc4_1882 label=sc4 control=1,1.5,401,-30,20,5,12
.fail
.endif

load-module module-ladspa-sink  sink_name=ladspa_normalized  sink_master=compressor-stereo plugin=fast_lookahead_limiter_1913  label=fastLookaheadLimiter  control=10,0,0.8

set-default-sink ladspa_normalized

load-module module-native-protocol-tcp auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

PS: солёными огурчичиками по трем рецептам уже пробовал лечить - не получилось :)

bryak
()

Что есть в андроид для compress dynamic range?

 ,

Сабж

bryak
()

Оффтопик в темах

Допустим, я создаю тему. Внутри топика начинают постить люди посты никак не связанные с содержанием топика. С этим как-то надо бороться. Допустим, дать возможность топикстартеру помечать сообщения, которые он считает оффтопиком. И эти сообщения пусть попадают админам, которые будут их читать и удалять. Как пример:

Gentoo анонсировали бинарную сборку gentoo-kernel-bin

Там подмешали и nixos и арчлинукс и что угодно. Там паразитных сообщений ~80%

bryak
()

Как изменить межстрочный интервал?

 ,

Скачал шрифты с https://fonts.google.com/specimen/Roboto+Mono

Далее скопировал шрифты в ~/.fonts/ttf

RobotoMono-Medium.ttf
RobotoMono-Regular.ttf

fc-list |grep -i roboto

/home/user/.fonts/ttf/RobotoMono-Medium.ttf: Roboto Mono,Roboto Mono Medium:style=Medium,Regular
/home/user/.fonts/ttf/RobotoMono-Regular.ttf: Roboto Mono:style=Regular

Далее в st выбрал шрифт:

static char *font = "Roboto Mono Medium:style=Medium,Regular:size=10:antialias=true:autohint=true";

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

bryak
()

Таблица opposite цветов

 , ,

Допустим, есть match-paren в emacs(подсветка парных скобок. Можно выставлять background foreground парной скобки. Вопрос: какие цвета для этого лучше использовать? Допустим, синий background, а зеленый - foreground. Какие цвета друг для друга являются оппозитными и лучше всего смотрятся?

bryak
()

slackware живо ли?

 

  1. Как обстоят дела с пакетами? Для прода годится оно?
  2. Что с minimal iso?
  3. Есть какие-то скрипты, с помощью которого можно создать своё iso с нужными пакетами и чтобы туда можно было сразу добавить slapt-get?
  4. Как вообще оно для прода?
  5. В целом живо ли оно вообще или нет?
  6. Насколько оно стабильно и как происходит апдейт от релиза к релизу?
  7. Есть ли какие-то примеры install без использования setup? Хочется полной свободы как в Gentoo
bryak
()

mc + bash функция

 ,

как в mc выполнить в Open bash функцию?

Open=(bryak-mpv %f >/dev/null 2>&1), где bryak-mpv - bash функция
bryak
()

Удалить базу postgresql в контейнере

 , ,

docker exec -it profile-data-db psql -U root -d postgres -c "DROP DATABASE django;"

out:

ERROR:  database "django" is being accessed by other users
DETAIL:  There is 1 other session using the database.

Понятно, что не удаётся удалить т.к есть активная сессия, которая не дает это сделать. А force нет в postgre? Как бы так лучше удалить и создать базу django? Может лучше docker rm -f some-data. А потом создать как? docker-compose up -d –build –force-recreate? В общем посоветуйте, как лучше пересоздать базу postgre в контейнере:)

bryak
()

Замена директорий переменными

 

{ config, pkgs, ... }:
{
  home.activation.".emacs.d" = {
    before = [ "linkGeneration" ];
    after = [ ];
    data = "rm -rf ~/.emacs.d;ln -s /etc/nixos/hosts/common/home-manager/emacs/.emacs.d /home/user2/";
  };
}

как заменить на:

data = "rm -rf ${home}/${user}/.emacs.d;ln -s ${pwd}/.emacs.d ${home}/${user}";
bryak
()

Посоветуйте надежный 120gb sdd sata

 

Понятия не имею на что обращать внимание при выборе ssd

bryak
()

Быстрая смена директорий

 ,

Давно хожу вокруг и до окола в этой теме. Попробовал bookmarks, bookmarks+ - Мне нужно быстрая навигация по проектам. Для этого достаточно сделать выставить default-directory

попробовал это сделать через helm-projectile-switch-project. Там вроде как есть опция

(setq projectile-switch-project-action 'some)

По дефолту стоит

(setq helm-projectile-find-file 'projectile-switch-project-action)

Но дело в том, что я не хочу открывать файл проекта. Я хочу только открыть директорию проекта. А дальше искать helm’ом файлы в проекте.

Да, это не только меня интересует, но и других людей. Но ответа я так и не нашел

https://emacs.stackexchange.com/questions/9608/can-i-make-the-projectile-chosen-project-sticky-and-not-follow-the-current-buffe

https://emacs.stackexchange.com/questions/59423/can-i-make-projectile-open-a-default-file-when-i-switch-to-a-project

По этому гайду попробовал сделать

(defun set-main-project (&optional dir)
  "Set the projectile main project based on the current buffer.
When called with argument DIR, make that main project instead."
  (interactive)
  (if dir
      (setq projectile-main-project dir)
      (let ((current-project))
        (let ((projectile-main-project nil))
          (setq current-project (projectile-project-root)))
        (setq projectile-main-project current-project))))

(setq projectile-project-action 'set-main-project)
(setq projectile-switch-project-action 'set-main-project)

У меня после смены проекта в default-directory остается старый путь(т.е не меняется)

projectile-switch-project ведет себя так же. Такое ощущение, что projectile после отработки функции, которая указана в параметре переменной projectile-project-action, устанавливает старый default-directory

bryak
()

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