The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Представлен RubyWM, оконный менеджер, написанный целиком на Ruby, opennews (??), 23-Янв-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


84. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +2 +/
Сообщение от jjklh (?), 23-Янв-24, 17:13 
Глянул на гитхабе. Ты молодец. Не думал что встречу перлхакера на опеннете.

Можно вопрос? А yaml конфигурация принципиальна? Обрезает же возможности расширения.

Вместо простыни из
<code>
  mod_ctrl_1: 'tag_append(1)'
  mod_ctrl_2: 'tag_append(2)'
  mod_ctrl_3: 'tag_append(3)'
  mod_ctrl_4: 'tag_append(4)'
  mod_ctrl_5: 'tag_append(5)'
  mod_ctrl_6: 'tag_append(6)'
  mod_ctrl_7: 'tag_append(7)'
  mod_ctrl_8: 'tag_append(8)'
  mod_ctrl_9: 'tag_append(9)'
  mod_shift_1: 'win_move_tag(1)'
  mod_shift_2: 'win_move_tag(2)'
  mod_shift_3: 'win_move_tag(3)'
  mod_shift_4: 'win_move_tag(4)'
  mod_shift_5: 'win_move_tag(5)'
  mod_shift_6: 'win_move_tag(6)'
  mod_shift_7: 'win_move_tag(7)'
  mod_shift_8: 'win_move_tag(8)'
  mod_shift_9: 'win_move_tag(9)'
</code>

написал бы:
<code>
for my $i (1..9) {
  definekey "mod_ctrl_$i" tag_append($i)
  definekey "mod_shift_$i" win_move_tag($i)
</code>
не говоря уже о возможности определять свои функции в конфиге, наследовать поведение и расширять базовые возможности on-the-fly, что-то типа emacs/vim'a.

Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

93. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +2 +/
Сообщение от zhmylove (ok), 23-Янв-24, 19:34 
Это да, в lib/X11/korgwm/Config.pm так и написано.
Например: "(map {; "mod_ctrl_$_" => "tag_append($_)" } 1..9),"

Почему не сделал "do $config_file"?
Не было необходимости, но это всегда легко дописать :)

Почему взял YAML? Никакой религии за этим нет. Взял потому, что это простой способ читать структурированные файлы. Предварительно поговорил с ребятами из Modern::Perl, кто чем сейчас пользуется.

Лично я обычно, как ты и предлагаешь, как раз конфиги пишу в perl коде и потом просто исполняю их.
Здесь мне хотелось чего-то, что смогут править не знающие perl люди.

Как-то так :)

P.S. я планирую как-нибудь написать статейку о korgwm, как и зачем я его писал. Просто пока времени нет. Но использую я его каждый день, это не PoC, а мой рабочий инструмент :)

Ответить | Правка | Наверх | Cообщить модератору

105. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +1 +/
Сообщение от jjklh (?), 23-Янв-24, 21:40 
>[оверквотинг удален]
> Почему взял YAML? Никакой религии за этим нет. Взял потому, что это
> простой способ читать структурированные файлы. Предварительно поговорил с ребятами из
> Modern::Perl, кто чем сейчас пользуется.
> Лично я обычно, как ты и предлагаешь, как раз конфиги пишу в
> perl коде и потом просто исполняю их.
> Здесь мне хотелось чего-то, что смогут править не знающие perl люди.
> Как-то так :)
> P.S. я планирую как-нибудь написать статейку о korgwm, как и зачем я
> его писал. Просто пока времени нет. Но использую я его каждый
> день, это не PoC, а мой рабочий инструмент :)

Ну, большой разницы для незнающих Perl между "key: val" и "$key = 'val'" особо нет. Тем более, что ты сам тестируешь перл код, только тратишь время еще и на вынос этих переменных в yaml. А для новичков всегда можно в конфиге explicitly написать, без map'a, от А до Я, тогда разницы вообще никакой. Зато, если в "Apply Rules" если мне захотелось бы сделать матчинг не только по WM_CLASS, но и по WM_NAME, или по WM_ROLE, то при соответствующей организации кода я бы получил возможность:


$config->{rules} = {
  { class => "Sylpheed", title => "sylpheed", role => "Input Password" } =>
     { screen => 2, tag => 2, follow => 0, urgent => 1, },

  { class => "Sylpheed", title => "sylpheed", } =>
     { screen => 2, tag => 2, follow => 0, },
};

Тобишь, просто добавить пару ключей, и переписать обработчик. Разумеется при должной организации кода, на что требуются дополнительные усилия с твоей стороны. А если охота сохранить возможность выноса этих переменных в yaml - то и еще дополнительных усилий. На что я само-собой не имею права, и прошу не воспринимать как указания. Кто я вообще такой... Ты сделал классную штуку, это достойно уважения и похвалы, снимаю шляпу. От меня звезда и подписка на RSS коммитов в гитхабе.

P.S. Но просто знай, если вдруг, еееееесли, вдруг... не смею надеяться, но ееееесли... задумаешь повторить возможности хакинга stumpwm только на Perl'e, как перловщик и изредка непредумышленный коммитер в Perl, я опакечу korgwm в свой дистр, и буду контрибьютером. Ты забацал нереально классную штуку)

Ответить | Правка | Наверх | Cообщить модератору

109. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +2 +/
Сообщение от zhmylove (ok), 23-Янв-24, 22:24 
Круть, спасибо!

А что у тебя за дистр?

BTW для ArchLinux и FreeBSD я уже сделал пакет в AUR и порт, соответственно.

Ответить | Правка | Наверх | Cообщить модератору

110. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +1 +/
Сообщение от jjklh (?), 23-Янв-24, 22:52 
Опеннет вроде режет ссылки, потому напишу так: github/zeppe-lin

Вдохновлялся NetBSD и CRUX. ^_^

Ответить | Правка | Наверх | Cообщить модератору

111. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +1 +/
Сообщение от zhmylove (ok), 23-Янв-24, 23:02 
Спасибо. Посмотрел на гитхабе -- отличный проект. Так что снимаю шляпу и ставлю звезду взаимно :)
Ответить | Правка | Наверх | Cообщить модератору

112. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +/
Сообщение от jjklh (?), 23-Янв-24, 23:10 
Ну, после столь нетипичных для опеннета любезностей, мы просто обязаны жениться. :-D
Шучу, спасибо бро. Удачи с проектом, и как говорится, have fun.
Ответить | Правка | Наверх | Cообщить модератору

114. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +/
Сообщение от Аноним (98), 23-Янв-24, 23:19 
Now kiss.
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

151. "Представлен RubyWM, оконный менеджер, написанный целиком на ..."  +/
Сообщение от Аноним (151), 24-Янв-24, 19:26 
> для ArchLinux и FreeBSD я уже сделал пакет

Ах ты мой хороший!

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру