LINUX.ORG.RU

Пилю awesome. Коробейники также приглашаются. А ещё параноик детектед.


0

3

Переползал на awesome с гнома, и потихоньку довычищаю остатки. Пока клавиатура не хочет работать как надо до конца — осталось сделать так, чтобы в каждом окне помнилась раскладка, но с xxkb что-то не получается. польую такой конфиг:

$ cat ~/.xxkbrc 
XXkb.mainwindow.enable: no
XXkb.button.enable: no
XXkb.controls.two_state: no

XXkb.controls.add_when_start: no
XXkb.controls.add_when_create: no
XXkb.controls.add_when_change: yes
XXkb.controls.focusout: yes  
Подсмотрел у коробейников кстати. Различные вариации да/нет для add_when… действия также не возымели. xxkb вызывается после того, как я устанавливаю раскладки через setxkbmap.

Заодно хотел поинтересоваться — неужели до сих пор никто не сделал для осома такой штуки, чтоб можно было включать набор лейаутов не скопом, а каждому тэгу давать индивидуальный набор доступных ему лейаутов?

Хотел ещё между делом поинтересоваться насчёт шифрования паролей через pgp, нет ли у кого годной статьи на тему «как держать всё в одном файле и не забыть пароль», а ещё, а ещё как пользоваться разными SSH ключами, не разводя бардак в ~/.ssh? И можно ли ключи и файл с паролями как-то расшифровывать из запасника на рамдиск, когда я логинюсь, и убирать оттуда, когда я не залогинен?

Deleted

http://awesome.naquadah.org/wiki/Keyboard_layouts_with_kbdd

Заодно хотел поинтересоваться — неужели до сих пор никто не сделал для осома такой штуки, чтоб можно было включать набор лейаутов не скопом, а каждому тэгу давать индивидуальный набор доступных ему лейаутов?

Ты уверен, что сейчас такого нет?

Tanger ★★★★★ ()

ититьевомать:)

XXkb.image.path: /usr/share/xxkb

XXkb.group.base: 1
XXkb.group.alt: 2

XXkb.mainwindow.enable: no
XXkb.mainwindow.geometry: 48x48
XXkb.mainwindow.image.1: en48.xpm
XXkb.mainwindow.image.2: ru48.xpm
XXkb.mainwindow.image.3: su48.xpm
XXkb.mainwindow.image.4:
XXkb.mainwindow.label.font: -misc-*-r-*-20-*

XXkb.*.border.color: black
XXkb.*.border.width: 0

XXkb.*.label.foreground: white
XXkb.*.label.background: blue4
XXkb.*.label.enable: no

! XXkb.mainwindow.type:
! possible values - normal, top, tray, wmaker

XXkb.button.enable: no
XXkb.button.geometry: 15x15-60+7
XXkb.button.image.1: en15.xpm
XXkb.button.image.2: ru15.xpm
XXkb.button.image.3: su15.xpm
XXkb.button.image.4:
XXkb.button.label.font: -misc-*-r-*-13-*

XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no
XXkb.controls.focusout: no
XXkb.controls.two_state: yes
XXkb.controls.button_delete: yes
XXkb.controls.button_delete_and_forget: yes
XXkb.controls.mainwindow_delete: yes

XXkb.mousebutton.1.reverse: no
XXkb.mousebutton.3.reverse: no

XXkb.bell.enable: no
XXkb.bell.percent: -50

XXkb.ignore.reverse: no
GHhost ()
Ответ на: комментарий от Tanger

А kbdd отлично работает. Я натыкался в вики на него, но думал, что это какая-то костыльная приблуда для виджета с раскладкой, который мне не нужен. Правда, пришлось выгуглить его оверлей (rion).

Ты уверен, что сейчас такого нет?

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

Deleted ()
Ответ на: комментарий от GHhost

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

Deleted ()
Ответ на: комментарий от Deleted

Мне нужно было не переключать раскладку, а помнить её для каждого окна отдельно

И не влом вам запоминать, у какого окошка какая раскладка?

AnDoR ★★★★★ ()
Ответ на: комментарий от AnDoR

И не влом вам запоминать, у какого окошка какая раскладка?

Очевидно, в большинстве случаев, раскладку не надо помнить, она просто нужная и всё.

baverman ★★★ ()

удачи тебе! маны покури уже

ipwww ★★ ()
Ответ на: комментарий от baverman

И не влом вам запоминать, у какого окошка какая раскладка?

Очевидно, в большинстве случаев, раскладку не надо помнить, она просто нужная и всё.

Телепатически включается та, на которой надо вводить?

AnDoR ★★★★★ ()
Ответ на: комментарий от AnDoR

Телепатически включается та, на которой надо вводить?

На которой вводил, же.

baverman ★★★ ()
Ответ на: комментарий от science

Желаю хорошо и удобно запилить.

Ух ты. А почему не в галерее до сих пор?

tazhate ★★★★★ ()
Ответ на: комментарий от Tanger
layouts =
{
    awful.layout.suit.floating,
    awful.layout.suit.tile,
    awful.layout.suit.tile.left,
    awful.layout.suit.tile.bottom,
    awful.layout.suit.max,
    awful.layout.suit.spiral
}

tags = {
   names  = {"λ",
      "ψ",
      "ξ",
      "Σ",
      "#",
      "⢮",
      "⧐",
      "ℵ"},
   layoutTable = {
      layouts[3],
      layouts[3],
      layouts[5],
      layouts[5],
      layouts[5],
      layouts[5],
      layouts[5],
      layouts[5]
   }
}
Array ()

Ах, да, ещё разыскивается кусок кода для rc.lua, с которым мои алиасы из ~/.bashrc станут доступны по modkey+R.

Deleted ()
Ответ на: комментарий от science

Желаю хорошо и удобно запилить.

Спасибо, оно уже хорошо и удобно, остались только пожелания, чтобы сделать вообще волшебно.

В каджом треде про @wesome, я обычно показываю свой, простите.

Слева от памяти и справа от Uрload/download — это что?

Deleted ()
Ответ на: комментарий от Array

Это почти дефолтный конфиг, в котором почему-то layoutTable вместо просто layout

Deleted ()

/usr/share/awesome/lib/awful/tag.lua

--- Create a set of tags and attach it to a screen.
-- @param names The tag name, in a table
-- @param screen The tag screen, or 1 if not set.
-- @param layout The layout or layout table to set for this tags by default.
-- @return A table with all created tags.
function new(names, screen, layout)
    local screen = screen or 1
    local tags = {}
    for id, name in ipairs(names) do
        table.insert(tags, id, add(name, {screen = screen,
                                            layout = (layout and layout[id]) or
                                                        layout}))
        -- Select the first tag.
        if id == 1 then
            tags[id].selected = true
        end
    end

    return tags
end

Tanger ★★★★★ ()
Ответ на: комментарий от science

Mod4 == СКМ

Кто нибудь смог запилить себе Mod-кей на Среднюю клавишу мышки (wheel) ?

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

Я так понимаю это через цикл нужно реализовывать по примеру тэгов?

science ★★☆ ()
Ответ на: комментарий от science

Если помнить, что значение каждого регистра это основание системы счисления в степени порядкового номера регистра, начиная с нуля, то нет. Можно например, написать часы, основанные на семиричной СС и каждому кубику дать один из цветов радуги, например. Все же помнят порядок цветов в радуге? А понадобилось бы всего шесть кубиков.

Deleted ()
Ответ на: комментарий от Tanger

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

layout = (layout and layout[id]) or layout}))
я вижу
layout = (ехал layout[через] layout)
или, как подсказывает шапка, тут назначается дефолтный лейаут для тега, кстати, шапка… А!
-- @param layout The layout or layout table to set for this tags by default.
Намекает, что можно указать или layout, или layoutTable. Так он всё-таки существует! Ну хорошо, если layoutTable это то, о чём я думаю, то как одновременно указать тегу таблицу доступных лейаутов и один из них в качестве дефолтного? Тут же не определено, кого назначать, если мы передаём layoutTable.

Deleted ()
Ответ на: Mod4 == СКМ от science

1.

-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.

2.

man xmodmap
3. ?????
4. PROFIT!

Deleted ()
Ответ на: комментарий от Deleted

У меня возникло предположение, что можно делать

layouts =
{
    {
        awful.layout.suit.tile,
        awful.layout.suit.tile.left,
    },
    {
        awful.layout.suit.tile.bottom,
        awful.layout.suit.tile.top,
        awful.layout.suit.fair,
    },
    {
        awful.layout.suit.fair.horizontal,
        awful.layout.suit.spiral,
    },
    awful.layout.suit.spiral.dwindle,
    awful.layout.suit.max,
    awful.layout.suit.max.fullscreen,
    awful.layout.suit.magnifier
    awful.layout.suit.floating,
    awful.layout.suit.floating,
}

Но это не так. Можно делать разным тегам разные дефолтные лейауты.

Для этого удалить [1] из tag[s] = awful.tag({ ... }, s, layouts[1])

Tanger ★★★★★ ()
Ответ на: комментарий от Deleted

у меня:

XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no

у тебя

XXkb.controls.add_when_start: no
XXkb.controls.add_when_create: no
XXkb.controls.add_when_change: yes
ну и еще там отличия есть, у меня еще есть как его запускать, если просто из под самого wm стартануть то не работает, а если из .xsessionrc то работает, с чем связано не выяснял

GHhost ()

Для раскладки kbdd или perWindowLayoutD. У меня kbdd иногда заклинивал Mod клавишу, хотя у всех других работает вроде нормально о_О

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

Для паролей использую keepassx. Можно также погуглить плагин gpg к vim.

alius-miles ()
Ответ на: комментарий от alius-miles

С kbdd полёт пока нормальный. Жаль только он на каждую вкладку терминала раскладку не помнит.
Ключи рассовал по папкам внутри ~/.ssh и написал скрипт, который при входе меня любимого в систему спрашивает пассфразы и заталкивает в агент. Проблема была собссно в том, что жил без агента.
До паролей руки пока не дошли, но пока склоняюсь к gpg.

Deleted ()
Ответ на: комментарий от Deleted

Каким способом спрашивает, всплывающее окно? И можно сам скрипт?

Keepassx у меня висит в трее, а запускается через scratchpad. Весьма удобно, но нужно мышь для выбора категорий/акков. Думаю запилить пароли через gvim и gpg или openssl. Плюс последнего в фолдинге паролей: http://linsovet.com/vim-as-password-manager

alius-miles ()
Ответ на: комментарий от alius-miles

Каким способом спрашивает, всплывающее окно? И можно сам скрипт&

Можно. Я, правда, писал его под свой зоопарк, а там у меня в ~/.ssh есть папки для каждой сети, и уже в этих папках лежат ключи. Поэтому я сделал так, чтобы Zenity показывал, из какой папки ключ и его имя, чтоб и порядок сохранить и проще было вспомнить. Так что скрипт вполне можно урезать. И да, я из GDM запускаю «custom session», поэтому у меня ~/.xsession. У вас может быть ~/.xinitrc, ~/.xsessionrc или ещё что.

$ grep ssh ~/.xsession
# Load my ssh identities
. ~/repos/my/scripts/ssh-load.sh

$ cat ~/repos/my/scripts/ssh-load.sh 
#!/bin/bash
# Delete all identities from the agent
ssh-add -D
# Find private keys in subdirs under ~/.ssh
for key in `find ~/.ssh/ -mindepth 2 -type f ! -name "*.pub" -print`; do
	export key="${key}"
	# Setting SSH_ASKPASS and DISPLAY is the only way 
	# we can override asking passphrase from the command line.
	# Moreover, standard input must be blocked
	SSH_ASKPASS=$HOME"/repos/my/scripts/ssh-askpass.sh" ssh-add $key </dev/null
	export -n key
done
# Optionally show current keys loaded
#ssh-add -l

$ cat ~/repos/my/scripts/ssh-askpass.sh 
#!/bin/bash
#  Get ‘subdir’ from "~/.ssh/subdir/key"
key_dir=`echo "${key}" | sed -r 's|.*/([^/]+)/[^/]+$|\1|'`
#  Get ‘key’ from "~/.ssh/subdir/key"
key_name=`echo "${key}" | sed -r 's|.*/([^/]+)$|\1|'`
zenity --entry --text="Enter passphrase for key from ‘$key_dir’ named ‘$key_name’:" --hide-text --title="SSH is asking for passphrase"
Deleted ()
Ответ на: комментарий от Deleted

xxkb может рисовать переключатель раскладки (флажок) на каждом окне отдельно, а может быть просто запихнут в трей

с этими настройками он рисует в трей:

...
XXkb.mainwindow.enable: yes
XXkb.mainwindow.type: tray
...
XXkb.button.enable: no
...

а с этими должен рисовать на каждом окне, но не рисует:

...
XXkb.mainwindow.enable: no
...
XXkb.button.enable: yes
...

вылетает с ошибкой типа "... can`t copy area... "

q11q11 ★★★★★ ()
Ответ на: комментарий от q11q11

Понятия не имею. У меня не стоит xxkb. Я смотрю на Scroll Lock, а не на флажки.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.