diff --git a/core/rules.lua b/core/rules.lua index 86cce32..109c949 100644 --- a/core/rules.lua +++ b/core/rules.lua @@ -3,6 +3,8 @@ local gears = require("gears") local beautiful = require("beautiful") -- {{{ Rules -- Rules to apply to new clients (through the "manage" signal). +local dockapps = {} +local dockapp_size = 64 awful.rules.rules = { -- All clients will match this rule. { rule = { }, @@ -54,6 +56,38 @@ awful.rules.rules = { }, properties = { titlebars_enabled = true } }, + -- Rules for dockapps + { rule_any = { name = { + "wmMand", + "wmwork", + "wmmisc", + "wmmon" + } }, + properties = { + skip_taskbar = true, + dockable = true, + titlebars_enabled = false, + sticky = true, + below = true, + placement = awful.placement.top_right+awful.placement.no_offscreen, + callback = function(c) + while (#dockapps > 0) and (not dockapps[#dockapps].valid) do + table.remove(dockapps,#dockapps) + end + if #dockapps > 0 then + awful.placement.next_to(c,{ + geometry = dockapps[#dockapps], + preferred_positions = "bottom", + preferred_anchors = "middle" + }) + end + c.width = dockapps_size + c.height = dockapps_size + table.insert(dockapps,c) + end + }, + }, + -- Set Firefox to always map on the tag named "2" on screen 1. -- { rule = { class = "Firefox" }, -- properties = { screen = 1, tag = "2" } }, diff --git a/core/vars.lua b/core/vars.lua index c8eac77..5e8d832 100644 --- a/core/vars.lua +++ b/core/vars.lua @@ -2,6 +2,7 @@ local awful = require("awful") local gears = require("gears") -- {{{ Variable definitions global = {} +global.debug = true global.awesome_dir = os.getenv("HOME").."/.config/awesome/" global.config_dir = os.getenv("HOME").."/.awesome/" global.themes_dir = os.getenv("HOME").."/.config/awesome/themes/" diff --git a/libs/awmtk2.lua b/libs/awmtk2.lua index fad910c..578384d 100644 --- a/libs/awmtk2.lua +++ b/libs/awmtk2.lua @@ -23,15 +23,13 @@ awmtk.create_class = function(name,overrides,style,parent_class) }) end -awmtk.create_style = function(name,parent,overrides) - local new_style = setmetatable(beautiful[name] or {},{ - __index = parent - }) +awmtk.create_style = function(style_name,parent,overrides) + local new_style = {} for name,parent_class in pairs(parent) do new_style[name] = awmtk.create_class( name, (overrides and overrides[name]) or {}, - new_style, + (beautiful[style_name] or {}), parent_class ) end @@ -76,5 +74,6 @@ awmtk.default.icon = awmtk.create_class("icon",{ inner_margin = 1 },awmtk.default,awmtk.default.base) -return awmtk -- }}} + +return awmtk diff --git a/themes/unity_simplified/theme.lua b/themes/unity_simplified/theme.lua index db5a6cf..97adc85 100644 --- a/themes/unity_simplified/theme.lua +++ b/themes/unity_simplified/theme.lua @@ -236,6 +236,15 @@ theme = require("themes.icons")(theme) theme.awesome_icon = theme_assets.awesome_icon( theme.menu_height, theme.bg_focus, theme.fg_focus ) + +theme.dismal = { + container = { + bg_normal = "#202020", + rounding = 5 + } +} + + -- Define the icon theme for application icons. If not set then the icons -- from /usr/share/icons and /usr/share/icons/hicolor will be used. theme.icon_theme = "Adwaita" diff --git a/widgets/dismal.lua b/widgets/dismal.lua index 8558472..b2efb86 100644 --- a/widgets/dismal.lua +++ b/widgets/dismal.lua @@ -5,12 +5,72 @@ local awful = require("awful") return function(args) local style = awmtk2.create_style("dismal",awmtk2.default,args.style) + local rounded_shape = function(cr,width,height) + return gears.shape.rounded_rect(cr,width,height,style.container.rounding) + end + local separator = wibox.widget({ + widget = wibox.widget.separator, + forced_width = 220, + orientation = "horizontal", + forced_height = 10, + thickness = 1, + color = style.container.bg_focus, + border_width = 0 + }) + local inputbox = wibox.widget { + { + markup = "", + widget = wibox.widget.textbox + }, + widget = wibox.container.margin, + margins = style.container.inner_margin, + id = "inputbox", + bg = style.button.bg_focus + } local launchpad = awful.popup({ widget = { { { + inputbox, { - markup = "[b]Enter[/b] - run; [b]Ctrl+Enter[/b] - run in terminal", + { + { + { + markup = " ", + widget = wibox.widget.textbox, + id = "result1" + }, + separator, + { + markup = " ", + widget = wibox.widget.textbox, + id = "result2" + }, + separator, + { + markup = " ", + widget = wibox.widget.textbox, + id = "result3" + }, + separator, + { + markup = " ", + widget = wibox.widget.textbox, + id = "result4" + }, + layout = wibox.layout.fixed.vertical + }, + widget = wibox.container.margin, + margins = style.container.inner_margin + }, + widget = wibox.container.background, + bg = style.container.bg_normal, + shape_border_width = 1, + shape_border_color = style.container.bg_focus, + shape = rounded_shape + }, + { + markup = "Enter - run; Ctrl+Enter - run in terminal", widget = wibox.widget.textbox }, layout = wibox.layout.fixed.vertical @@ -21,21 +81,37 @@ return function(args) bg = style.container.bg_normal, widget = wibox.container.background }, - shape = gears.shape + placement = awful.placement.no_overlap, + shape = rounded_shape, visible = false, ontop = true }) + local modifiers = {} root.keys(gears.table.join( root.keys(), awful.key({ global.modkey }, "0", function() - launchpad.visible = not launchpad.visible + launchpad.visible = true + if launchpad.visible then + awful.prompt.run { + prompt = "Run: ", + textbox = inputbox.children[1], + hooks = { + { { "Control" }, "Return", function(cmd) + awful.spawn({global.terminal, "-e", cmd}) + end}, + { { }, "Return", function(cmd) + awful.spawn(cmd) + end}, + { {}, 'Escape', function(cmd) + textbox.markup = "" + end} + }, + done_callback = function() + launchpad.visible = false + end + } + end end) )) - io.open("/home/yessiest/.debug2","w"):write( - tostring(style.container.bg_normal).."\n".. - tostring(style.container.inner_margin).."\n".. - tostring(style.icon.inner_margin).."\n".. - tostring(style.base.bg_normal) - ):close() return launchpad end