Видео ролики бесплатно онлайн

Смотреть мамочки видео

Официальный сайт welinux 24/7/365

Смотреть видео бесплатно

philosoft 04.01.2011 14:45

Я рекомендуюkbdd - запоминание раскладки для каждого окна в тайловых wm

Kbdd — это небольшой демон, для пооконного запоминания раскладок, написанный на чистом C и распространяющийся под лицензией GPL-3. Особенность данного демона в том, что он не зависит от сторонних WM и/или DE. (из заметки автора программы на хабре)

Вся соль программы в независимости от WM/DE, что означает — она будет работать там, где xxkb пасует. В моём случае это awesome.

Пользователи gentoo могут установить kbdd из оверлея rion, а пользователи archlinux из AUR. Для остальных: стабильную версию можно взять здесь. Гит https://github.com/qnikst/kbdd.git

Скрипт для автоматической сборки из гита:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

RED=$(tput setaf 1)
YELLOW=$(tput setaf 3)
DEFAULT=$(tput sgr0)

check_err()
{
if << $? -ne 0 >>; then
echo "${RED}ERROR${DEFAULT}";
exit 1;
fi
}

if << -d 'kbdd' >>; then
cd kbdd;
res=$(git pull);
check_err;
if << $res = 'Already up-to-date.' >>; then
echo $res;
exit 2;
fi
else
git clone https://github.com/qnikst/kbdd.git
check_err;
cd kbdd;
fi

aclocal
autoconf
automake --add-missing
autoreconf
./configure && make


UPD:
Виджет для awesome.


Тэги: kbdd setxkbmap tiling wm xxkb
+ 10 -
Похожие Поделиться

kstep 04.01.2011 15:00 #
+ 0 -
Вот спасибо! Давно искал такую штуку.
IamCrazy 05.01.2011 08:07 #
+ 0 -
Что-то я немного не понял как прикрутить это к awesome.
Никто не разъяснит это на пальцах?
philosoft 05.01.2011 12:12 #
+ 2 -
Запускать вместе с ним, например через .xinitrс или rc.lua. У меня первый вариант, выглядит так: #!/bin/bash

# Настройка клавиатуры
setxkbmap us -option
setxkbmap "us,ru" -variant ",winkeys" -model pc105 -option "grp:toggle,grp_led:scroll,compose:rwin,ctrl:nocaps"
#numlockx on

# Настройка иксов
xrdb -merge "${HOME}/.Xdefaults"
xrdb -merge "${HOME}/.XCompose"

# Настройка курсора
xsetroot -cursor_name left_ptr

# Автозагрузка
dropbox start &
xscreensaver -no-splash &
deluge &
kbdd &

# Запуск WM
exec awesome
IamCrazy 05.01.2011 12:58 #
+ 0 -
я про виджет в awesome
чтобы он переключался, когда раскладка меняется
то есть по ссылке в посте
куда вставлять
dbus.request_name("session", "ru.gentoo.kbdd")
dbus.add_match("session", "interface='ru.gentoo.kbdd',member='layoutChanged'")
dbus.add_signal("ru.gentoo.kbdd", function(...)
local data = {...}
local layout = data<2>
lts = {<0> = "Eng", <1> = "Рус"}
kbdwidget.text = " "..lts.." "
end
)

philosoft 05.01.2011 13:28 #
+ 2 -
Можно сразу после кода самого виджета.
IamCrazy 05.01.2011 20:12 #
+ 0 -
Ну это-то я сразу попробовал.
Только при переключении раскладки ничего не меняется.

Вообщем, мне просто нужно что-нибудь, что показывало бы текущую раскладку
philosoft 05.01.2011 20:29 #
+ 3 -
А сам виджет на панельку-то добавил? Вот мой, не-модульный, вариант: -- Keyboard layout widget
kbdwidget = widget({type = "textbox", name = "kbdwidget"})
kbdwidget.border_width = 1
kbdwidget.border_color = beautiful.fg_normal
kbdwidget.text = " Eng "

dbus.request_name("session", "ru.gentoo.kbdd")
dbus.add_match("session", "interface='ru.gentoo.kbdd',member='layoutChanged'")
dbus.add_signal("ru.gentoo.kbdd", function(...)
local data = {...}
local layout = data<2>
lts = {<0> = "Eng", <1> = "Rus"}
kbdwidget.text = " "..lts.." "
end
)

-- <skip>

for s = 1, screen.count() do
-- <skip>

-- Add widgets to the wibox - order matters
mywibox.widgets = {
{
mylauncher,
mytaglist
,
mypromptbox,
layout = awful.widget.layout.horizontal.leftright
},
mylayoutbox
,
kbdwidget, -- ? добовляем индикатор после часиков
mytextclock,
s == 1 and mysystray or nil,
mytasklist,
layout = awful.widget.layout.horizontal.rightleft
}
end
IamCrazy 05.01.2011 22:49 #
+ 1 -
Да вроде все то же самое, но не меняется ничего при переключении раскладки.
Правда у меня переключение не в .xinitrс
evdev этим занимается
philosoft 05.01.2011 23:03 #
+ 2 -
Ну так если демон работает как положено, скомпилен с поддержкой dbus, то всё должно работать.
kstep 05.01.2011 14:27 #
+ 4 -
Я сделал для себя так:

$ cat ~/.config/awesome/rc/widget/keyboard.lua

local capi = { widget = widget, dbus = dbus }
local util = require("awful.util")
local theme = require("beautiful")
local setmetatable = setmetatable

module("rc.widget.keyboard")

widget = capi.widget({ type = "textbox" })
layouts = { <0> = "<span color='#000000' bgcolor='" .. theme.kbd<0> .. "'> En </span>", <1> = "<span color='#000000' bgcolor='" .. theme.kbd<1> .. "'> Ru </span>" }
widget.text = layouts<0>

capi.dbus.request_name("session", "ru.gentoo.kbdd")
capi.dbus.add_match("session", "interface='ru.gentoo.kbdd',member='layoutChanged'")
capi.dbus.add_signal("ru.gentoo.kbdd", function (src, layout)
widget.text = layouts
widget.background_color = theme.kbd
end)

function set_layout(layout)
util.spawn('dbus-send --type=method_call --session --dest=ru.gentoo.kbdd /ru/gentoo/kbdd ru.gentoo.kbdd.set_layout uint32:' .. (layout or 0))
end

setmetatable(_M, { __call = function (_, ...) return widget end })


А в rc.lua добавляю примерно так (очень упрощённо, т.к. у меня всё модулями подключается):

require('rc.widget.keyboard')

for s = 1, screen.count() do
kbdwidget = rc.widget.keyboard(s)
topbar = wibox({ position = "top", screen = s })
topbar.widgets = {
-- тут всякие виджеты для тегов, лейаутов, часиков и т.п.
kbdwidget,

layout = awful.widget.layout.rightleft
}
end


В качестве бонуса у виджета rc.widget.keyboard есть метод set_layout() для установки раскладки, так что можно написать свой байндинг на переключение раскладки или вообще логику переключения свою придумать и написать.

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн