Using dmenu/ru

Использование dmenu
Я предпочитаю dmenu из-за его поискового стиля (поиск 'dc' выведет все слова содержащие 'dc', такие как 'linuxdcpp', а не только and not 'dcgui' или 'dc2k' ) awful.key({modkey }, "p", function awful.util.spawn( "dmenu_run" ) end) awful.key({modkey }, "p", function  awful.util.spawn_with_shell( "exe=`dmenu_path | dmenu -b -nf '#888888' -nb '#222222' -sf '#ffffff' -sb '#285577'` && exec $exe") end)
 * Использование dmenu в его реализации по умочанию также просто как добавление клавиатурных сочетаний.
 * Dmenu предлагает широкий спектр опций для настройки его внешнего вида. Чтобы передать параметры настройки в dmenu, испльзуйте awful.util.spawn_with_shell. Опции цветов были взяты из скриптов wmii.
 * При настройке шрифтов, обязательно используйте полное название шрифта (XLFD), как указано в приложении 'xfontsel'. Например: "-xos4-terminus-medium-r-*-*-22-*-*-*-*-*-*-*" (используется "Terminus-22" кажется для работы в shellscripts, но не когда вызывается из awesome в rc.lua)

Интеграция с вашими темами awesome
dmenu это простая утилита, но в то же время отлично настраиваемая. Я использую эти значения Beautiful: awful.key({ modkey },           "r",     function      awful.util.spawn("dmenu_run -i -p 'Run command:' -nb '" .. beautiful.bg_normal .. "' -nf '" .. beautiful.fg_normal .. "' -sb '" .. beautiful.bg_focus .. "' -sf '" .. beautiful.fg_focus .. "'") 	end),

Запуск или скрытие с dmenu
Вместо прямого запуска dmenu_run, вы можете получить результат выполнения команды и позволить awesome самостоятельно запустить команду. Это позволяет проверить запущена ли уже команда, и отобразить прилоежние вместо запуска новой копии:

-- Run or raise applications with dmenu awful.key({ modkey }, "r", function     local f_reader = io.popen( "dmenu_path | dmenu -b -nb '".. beautiful.bg_normal .."' -nf '".. beautiful.fg_normal .."' -sb '#955'")    local command = assert(f_reader:read('*a'))     f_reader:close     if command == "" then return end     -- Check throught the clients if the class match the command     local lower_command=string.lower(command)     for k, c in pairs(client.get) do         local class=string.lower(c.class)         if string.match(class, lower_command) then             for i, v in ipairs(c:tags) do                 awful.tag.viewonly(v)                 c:raise                 c.minimized = false                 return             end         end     end     awful.util.spawn(command) end)

Необходимые привелегии dmenu используя gksudo
Добавьте это в дополнение к обычному dmenu, чтобы запускать от имени root

-- Run or raise applications with dmenu with elevated privileges awful.key({ modkey, "Shift"}, "r", function     local f_reader = io.popen( "dmenu_path | dmenu -i -nb '".. beautiful.bg_urgent .."' -nf '".. beautiful.fg_urgent .."' -sb '#955'")    local command = assert(f_reader:read('*a'))     f_reader:close     if command == "" then return end     awful.util.spawn("gksudo " .. command) end)

Смотрите man dmenu для получения большей инфомрации.

Внешние ссылки
Wikipedia on dmenu