Focus on disabled JComponent

How do i get the focus in a JComponent, say a JTextField or a JComboBox, that is disabled?
I noticed that the DefaultKeyboardFocusManager ignores disabled fields when the i go through them with the tab button
from DefaultKeyboardFocusManager
public boolean dispatchKeyEvent(KeyEvent e) {
        Component focusOwner = (((AWTEvent)e).isPosted) ? getFocusOwner() : e.getComponent();
       if (focusOwner != null && focusOwner.isShowing() &&
            focusOwner.isFocusable() && focusOwner.isEnabled()) {
            if (!e.isConsumed()) {
                Component comp = e.getComponent();
                if (comp != null && comp.isEnabled()) {
                   redispatchEvent(comp, e);
        }is it possible?
Edited by: u_steven on Jul 12, 2012 9:53 AM

You can't. For text fields you can make them not editable instead of disabled, but that doesn't work for comboboxes.

Similar Messages

  • Allow focus after disabling JTextField

    I have a form with several textfields. Two textfields are mutually exclusive; you can modify one or the other, but not both. Upon edit of one, I disable the other. This works perfectly. My problem is the tab order disappears upon disabling the textfield. If I edit fieldA, fieldB is appropriately disabled upon focusLost of fieldA. I can use the tab key multiple times, but focus is never set to another component on the form. How can I get around this?
    Here's the sample code:
          fieldA.addFocusListener(
                new FocusAdapter()
                   public void focusLost(FocusEvent focusEvent)
                         JTextField field = (JTextField)focusEvent.getSource();
                         // if the value was changed, disallow editing in trade field
                         String newValue = field.getText();
                         if (!newValue.equalsIgnoreCase(original))
                            fieldB.setEnabled(false);
                         // need else block in case the user changes the value, then changes it back to the original value
                         else
                            fieldB.setEnabled(true);
             );

    public void focusLost(FocusEvent e)
         if (textField2 == e.getOppositeComponent())
              textField2.transferFocus();
         textField2.setEnabled( false );
    }

  • Prevent BEx from stealing windows focus and disable nag screen

    Hi all,
    Whenever I start BEx Analyzer or QueryDesigner (3.5) it takes a couple of minutes until the application is loaded. During that time a welcome screen turns up, which prevents me from doing anything else but staring at the photo of the SAP Building.
    For some reason the log on pad pops up as well.
    When reloading a query in Bex Analyzer, the application steals the windows focus several times.
    Does anyone know how I can disable these "features"?
    Thanks
    Gerrit

    We have the same problem when reloading queries in BeX Analyzer.
    Did you find a solution to prevent the application to steal the windows focus several times.
    Thanks for your answer.

  • Focusing any JComponent in a JTree

    Hi !
    I have a problem with the focus in my jtree. the problem is, that i have a jcomponent hierarchie as theUserObject of every DefaultMutableTreeNode, which has the following structure:
    abstract MyPanel extends JPanel / (has flowlayout and adds a jlabel)
    MyJComponentPanel extends MyPanel / adds a JComponent to the MyPanel (behind the jlabel)
    now i want to set the focus on the JComponent in 2 ways:
    1. when going through the tree with the cursor-keys (i think the panel gains the focus, but not the component.)
    2. by pressing tab or return and putting the focus on the next jcomponent in such structure
    thanks for any suggestion
    andreas

    No idea anybody on how I could insert JComponents of my own in a JEditorPane ?
    Why the simple Document.insertString () don't work in a JEditorPane if the style is not HTML ?
    Is it possible to tweak JTextPane to make it render HTML (using a Kit) then insert my own styles in it ?
    Thx.
    Matthieu

  • Giving focus to a component

    Hi all,
    How does one give focus back or just plain giving focus to a JComponent
    e.g. JTextField, JButton, etc.
    This puzzles, me please help?

    That method was introduced in 1.4, but the API recommends you use requestFocusInWindow()

  • Flex and accessibility/disability

    Hi All
    Given the recent focus on disability discrimination, how do
    Flex apps perform with assistive technologies such as screen
    readers?
    What about complying with standards such as
    Section 508 and
    WCAG?
    I know it's a dull question, but any information would be
    extremely helpful.
    Many Thanks
    Barry

    I know the Flex Developer's Guide has a chapter on "Creating
    Accessible Applications" that will probably answer many of your
    questions if you haven't read it yet.
    Tim

  • Focusing userObject of a Node

    Hi everyone!
    I have the following problem:
    my JTree has DefaultMutableTreeNodes. Every userObject of a node is a JPanel with a JLabel and a JComponent.
    Now I want to put the focus on the JComponent !!!
    it works, by clicking on the JComponent, but not if i go through the tree with the cursor-keys (although the selection is changed to the nodes!)
    requestFocusInWindow() does not work, because isDisplayable() of the JComponent returns false!
    PEASE HELP !!!
    Thanks for any suggestions !

    Hi,
    May be you need this :
    DECLARE
    htree ITEM;
    parent_node NODE;
    BEGIN
    -- Find the tree itself.
    htree := Find_Item('tree_block.htree3');
    -- Get the parent of the node clicked on.
    parent_node := Ftree.Get_Tree_Node_Parent(htree, :SYSTEM.TRIGGER_NODE);
    ...END;
    And then
    node_value := Ftree.Get_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_VALUE);

  • JTree - focusing userObjects (JComponents)

    Hi everyone!
    I have the following problem and i am despairing:
    my JTree has DefaultMutableTreeNodes. Every userObject of a node is a JPanel with a JLabel and a JComponent (normally JTextFields or JComboBoxes).
    Now I want to put the focus on the JComponent !!!
    it works, by clicking on the JComponent, but not if i go through the tree with the cursor-keys (although the selection is changed to the nodes!)
    requestFocusInWindow() does not work, because isDisplayable() of the JComponent returns false!
    PEASE HELP !!!
    Thanks for any suggestions !

    Hi Denis !
    I think I haven't configured the editor in the right way !?! Here's more information:
    I have a cellRenderer, a cellEditor and a selectionListener.
    From the selectionListener I call the startEditing Method:
    public void valueChanged(TreeSelectionEvent e) {
          TreePath tp = e.getNewLeadSelectionPath();
          DefaultMutableTreeNode node = (DefaultMutableTreeNode) tp.getLastPathComponent();
          if (node == null)
            return;
          if (MyTreeCellEditor.isCellEditable(node))
         theTree.startEditingAtPath(tp);
    }startEditingAtPath throws a NullPointerException if I click on a Node
    at javax.swing.plaf.basic.BasicLookAndFeel.compositeRequestFocus(BasicLookAndFeel.java:1748)
    and going through the tree with the cursor-keys doesn't work at all !!?!?!?
    the cellEditor Method:
    public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected,
                                                boolean expanded, boolean leaf, int row) {
          DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
          Object userObject = node.getUserObject();
          if (userObject instanceof MyPanel)
            return (MyPanel) userObject;
           // else:
          return super.getTreeCellEditorComponent(tree, value, isSelected, expanded, leaf, row);
    }Thanks for help !
    Andreas

  • Client focus awesome wm

    i have the bad habit of using keyboard to navigate among awesome clients and forgetting that the mouse in an inconvenient position (ie conferring focus to the client that it is positioned over rather than the one which i have chosen with mod4+j/k).  i have perused the rc.lua file briefly but im not that familliar with the object model of awesome (at least the way its defined there) so im reluctant to hack away if someone else has a cut and paste solution.  awesome is awesome, but its an acquired taste.
    TIA

    that worked, thanks anrxc.  however it would be convenient to be able to toggle soft focus as the need arises.  i tried to edit the rc.lua file to incorporate this functionality but it seems the soft focus is still disabled (like i want it to be 99% of the time) when i try to enable it with "modkey+Shift s"
    global variable to tell awesome whether the follow the mouse:
    makesloppy = 1
    added global keybinding for toggling makesloppy
    -- Toggle Sloppy focus
    awful.key({ modkey, "Shift" }, "s",
    function ()
    if makesloppy then
    makesloppy = 0
    else
    makesloppy = 1
    end
    end)
    in the hooks section which you pointed out earlier, added a conditional to the focus statement
    awful.hooks.mouse_enter.register(function (c)
    -- Sloppy focus, but disabled for magnifier layout
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
    and awful.client.focus.filter(c)
    and makesloppy then
    client.focus = c
    end
    end)
    my stupid mistake is going to pop right out at you!
    Last edited by poopship21 (2009-10-27 18:28:25)

  • Awesome not reading rc.lua

    I'm trying to give awesome3.1 a go, but it isn't reading my rc.lua. It just keeps the default everything. Really all I've changed is the theme.
    -- Include awesome libraries, with lots of useful function!
    require("awful")
    require("beautiful")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    theme_path = "/home/shawn/.config/awesome/theme"
    -- Actually load theme
    beautiful.init(theme_path)
    -- This is used later as the default terminal and editor to run.
    terminal = "xterm"
    editor = os.getenv("EDITOR") or "vi"
    editor_cmd = terminal .. " -e " .. editor
    -- Default modkey.
    -- 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.
    -- However, you can use another modifier like Mod1, but it may interact with others.
    modkey = "Mod4"
    -- Table of layouts to cover with awful.layout.inc, order matters.
    layouts =
    "tile",
    "tileleft",
    "tilebottom",
    "tiletop",
    "fairh",
    "fairv",
    "magnifier",
    "max",
    "fullscreen",
    "spiral",
    "dwindle",
    "floating"
    -- Table of clients that should be set floating. The index may be either
    -- the application class or instance. The instance is useful when running
    -- a console app in a terminal like (Music on Console)
    -- xterm -name mocp -e mocp
    floatapps =
    -- by class
    ["MPlayer"] = true,
    ["pinentry"] = true,
    ["gimp"] = true,
    -- by instance
    ["mocp"] = true
    -- Applications to be moved to a pre-defined tag by class or instance.
    -- Use the screen and tags indices.
    apptags =
    -- ["Firefox"] = { screen = 1, tag = 2 },
    -- ["mocp"] = { screen = 2, tag = 4 },
    -- Define if we want to use titlebar on all applications.
    use_titlebar = false
    -- {{{ Tags
    -- Define tags table.
    tags = {}
    for s = 1, screen.count() do
    -- Each screen has its own tag table.
    tags[s] = {}
    -- Create 9 tags per screen.
    for tagnumber = 1, 3 do
    tags[s][tagnumber] = tag({ name = tag_settings[tagnumber].name, layout = tag_settings[tagnumber].layouts })
    -- Add tags to screen one by one
    tags[s][tagnumber].screen = s
    end
    -- I'm sure you want to see at least one tag.
    tags[s][1].selected = true
    end
    tag_settings = {
    { name="main", layout=layouts[1] },
    { name="work", layout=layouts[1] },
    { name="float", layout=layouts[12] }
    -- {{{ Wibox
    -- Create a textbox widget
    mytextbox = widget({ type = "textbox", align = "right" })
    -- Set the default text in textbox
    mytextbox.text = "<b><small> " .. AWESOME_RELEASE .. " </small></b>"
    -- Create a laucher widget and a main menu
    myawesomemenu = {
    { "manual", terminal .. " -e man awesome" },
    { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
    { "restart", awesome.restart },
    { "quit", awesome.quit }
    mymainmenu = awful.menu.new({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
    { "open terminal", terminal }
    mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
    menu = mymainmenu })
    -- Create a systray
    mysystray = widget({ type = "systray", align = "right" })
    -- Create a wibox for each screen and add it
    mywibox = {}
    mypromptbox = {}
    mylayoutbox = {}
    mytaglist = {}
    mytaglist.buttons = { button({ }, 1, awful.tag.viewonly),
    button({ modkey }, 1, awful.client.movetotag),
    button({ }, 3, function (tag) tag.selected = not tag.selected end),
    button({ modkey }, 3, awful.client.toggletag),
    button({ }, 4, awful.tag.viewnext),
    button({ }, 5, awful.tag.viewprev) }
    mytasklist = {}
    mytasklist.buttons = { button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ }, 3, function () awful.menu.clients({ width=250 }) end),
    button({ }, 4, function () awful.client.focus.byidx(1) end),
    button({ }, 5, function () awful.client.focus.byidx(-1) end) }
    for s = 1, screen.count() do
    -- Create a promptbox for each screen
    mypromptbox[s] = widget({ type = "textbox", align = "left" })
    -- Create an imagebox widget which will contains an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    mylayoutbox[s] = widget({ type = "imagebox", align = "right" })
    mylayoutbox[s]:buttons({ button({ }, 1, function () awful.layout.inc(layouts, 1) end),
    button({ }, 3, function () awful.layout.inc(layouts, -1) end),
    button({ }, 4, function () awful.layout.inc(layouts, 1) end),
    button({ }, 5, function () awful.layout.inc(layouts, -1) end) })
    -- Create a taglist widget
    mytaglist[s] = awful.widget.taglist.new(s, awful.widget.taglist.label.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist.new(function(c)
    return awful.widget.tasklist.label.currenttags(c, s)
    end, mytasklist.buttons)
    -- Create the wibox
    mywibox[s] = wibox({ position = "top", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = { mylauncher,
    mytaglist[s],
    mytasklist[s],
    mypromptbox[s],
    mytextbox,
    mylayoutbox[s],
    s == 1 and mysystray or nil }
    mywibox[s].screen = s
    end
    -- {{{ Mouse bindings
    awesome.buttons({
    button({ }, 3, function () mymainmenu:toggle() end),
    button({ }, 4, awful.tag.viewnext),
    button({ }, 5, awful.tag.viewprev)
    -- {{{ Key bindings
    -- Bind keyboard digits
    -- Compute the maximum number of digit we need, limited to 9
    keynumber = 0
    for s = 1, screen.count() do
    keynumber = math.min(9, math.max(#tags[s], keynumber));
    end
    for i = 1, keynumber do
    keybinding({ modkey }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end):add()
    keybinding({ modkey, "Control" }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    tags[screen][i].selected = not tags[screen][i].selected
    end
    end):add()
    keybinding({ modkey, "Shift" }, i,
    function ()
    if client.focus then
    if tags[client.focus.screen][i] then
    awful.client.movetotag(tags[client.focus.screen][i])
    end
    end
    end):add()
    keybinding({ modkey, "Control", "Shift" }, i,
    function ()
    if client.focus then
    if tags[client.focus.screen][i] then
    awful.client.toggletag(tags[client.focus.screen][i])
    end
    end
    end):add()
    end
    keybinding({ modkey }, "Left", awful.tag.viewprev):add()
    keybinding({ modkey }, "Right", awful.tag.viewnext):add()
    keybinding({ modkey }, "Escape", awful.tag.history.restore):add()
    -- Standard program
    keybinding({ modkey }, "Return", function () awful.util.spawn(terminal) end):add()
    keybinding({ modkey, "Control" }, "r", function ()
    mypromptbox[mouse.screen].text =
    awful.util.escape(awful.util.restart())
    end):add()
    keybinding({ modkey, "Shift" }, "q", awesome.quit):add()
    -- Client manipulation
    keybinding({ modkey }, "m", awful.client.maximize):add()
    keybinding({ modkey }, "f", function () if client.focus then client.focus.fullscreen = not client.focus.fullscreen end end):add()
    keybinding({ modkey, "Shift" }, "c", function () if client.focus then client.focus:kill() end end):add()
    keybinding({ modkey }, "j", function () awful.client.focus.byidx(1); if client.focus then client.focus:raise() end end):add()
    keybinding({ modkey }, "k", function () awful.client.focus.byidx(-1); if client.focus then client.focus:raise() end end):add()
    keybinding({ modkey, "Shift" }, "j", function () awful.client.swap.byidx(1) end):add()
    keybinding({ modkey, "Shift" }, "k", function () awful.client.swap.byidx(-1) end):add()
    keybinding({ modkey, "Control" }, "j", function () awful.screen.focus(1) end):add()
    keybinding({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end):add()
    keybinding({ modkey, "Control" }, "space", awful.client.togglefloating):add()
    keybinding({ modkey, "Control" }, "Return", function () if client.focus then client.focus:swap(awful.client.getmaster()) end end):add()
    keybinding({ modkey }, "o", awful.client.movetoscreen):add()
    keybinding({ modkey }, "Tab", awful.client.focus.history.previous):add()
    keybinding({ modkey }, "u", awful.client.urgent.jumpto):add()
    keybinding({ modkey, "Shift" }, "r", function () if client.focus then client.focus:redraw() end end):add()
    -- Layout manipulation
    keybinding({ modkey }, "l", function () awful.tag.incmwfact(0.05) end):add()
    keybinding({ modkey }, "h", function () awful.tag.incmwfact(-0.05) end):add()
    keybinding({ modkey, "Shift" }, "h", function () awful.tag.incnmaster(1) end):add()
    keybinding({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end):add()
    keybinding({ modkey, "Control" }, "h", function () awful.tag.incncol(1) end):add()
    keybinding({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end):add()
    keybinding({ modkey }, "space", function () awful.layout.inc(layouts, 1) end):add()
    keybinding({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end):add()
    -- Prompt
    keybinding({ modkey }, "F1", function ()
    awful.prompt.run({ prompt = "Run: " }, mypromptbox[mouse.screen], awful.util.spawn, awful.completion.bash,
    awful.util.getdir("cache") .. "/history")
    end):add()
    keybinding({ modkey }, "F4", function ()
    awful.prompt.run({ prompt = "Run Lua code: " }, mypromptbox[mouse.screen], awful.util.eval, awful.prompt.bash,
    awful.util.getdir("cache") .. "/history_eval")
    end):add()
    keybinding({ modkey, "Ctrl" }, "i", function ()
    local s = mouse.screen
    if mypromptbox[s].text then
    mypromptbox[s].text = nil
    elseif client.focus then
    mypromptbox[s].text = nil
    if client.focus.class then
    mypromptbox[s].text = "Class: " .. client.focus.class .. " "
    end
    if client.focus.instance then
    mypromptbox[s].text = mypromptbox[s].text .. "Instance: ".. client.focus.instance .. " "
    end
    if client.focus.role then
    mypromptbox[s].text = mypromptbox[s].text .. "Role: ".. client.focus.role
    end
    end
    end):add()
    -- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on them
    keybinding({ modkey }, "t", awful.client.togglemarked):add()
    for i = 1, keynumber do
    keybinding({ modkey, "Shift" }, "F" .. i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    for k, c in pairs(awful.client.getmarked()) do
    awful.client.movetotag(tags[screen][i], c)
    end
    end
    end):add()
    end
    -- {{{ Hooks
    -- Hook function to execute when focusing a client.
    awful.hooks.focus.register(function (c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_focus
    end
    end)
    -- Hook function to execute when unfocusing a client.
    awful.hooks.unfocus.register(function (c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_normal
    end
    end)
    -- Hook function to execute when marking a client
    awful.hooks.marked.register(function (c)
    c.border_color = beautiful.border_marked
    end)
    -- Hook function to execute when unmarking a client.
    awful.hooks.unmarked.register(function (c)
    c.border_color = beautiful.border_focus
    end)
    -- Hook function to execute when the mouse enters a client.
    awful.hooks.mouse_enter.register(function (c)
    -- Sloppy focus, but disabled for magnifier layout
    if awful.layout.get(c.screen) ~= "magnifier"
    and awful.client.focus.filter(c) then
    client.focus = c
    end
    end)
    -- Hook function to execute when a new client appears.
    awful.hooks.manage.register(function (c)
    if use_titlebar then
    -- Add a titlebar
    awful.titlebar.add(c, { modkey = modkey })
    end
    -- Add mouse bindings
    c:buttons({
    button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ modkey }, 1, function (c) c:mouse_move() end),
    button({ modkey }, 3, function (c) c:mouse_resize() end)
    -- New client may not receive focus
    -- if they're not focusable, so set border anyway.
    c.border_width = beautiful.border_width
    c.border_color = beautiful.border_normal
    -- Check if the application should be floating.
    local cls = c.class
    local inst = c.instance
    if floatapps[cls] then
    c.floating = floatapps[cls]
    elseif floatapps[inst] then
    c.floating = floatapps[inst]
    end
    -- Check application->screen/tag mappings.
    local target
    if apptags[cls] then
    target = apptags[cls]
    elseif apptags[inst] then
    target = apptags[inst]
    end
    if target then
    c.screen = target.screen
    awful.client.movetotag(tags[target.screen][target.tag], c)
    end
    -- Do this after tag mapping, so you don't see it on the wrong tag for a split second.
    client.focus = c
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- awful.client.setslave(c)
    -- Honor size hints: if you want to drop the gaps between windows, set this to false.
    -- c.honorsizehints = false
    end)
    -- Hook function to execute when arranging the screen.
    -- (tag switch, new client, etc)
    awful.hooks.arrange.register(function (screen)
    local layout = awful.layout.get(screen)
    if layout then
    mylayoutbox[screen].image = image(beautiful["layout_" .. layout])
    else
    mylayoutbox[screen].image = nil
    end
    -- Give focus to the latest client in history if no window has focus
    -- or if the current window is a desktop or a dock one.
    if not client.focus then
    local c = awful.client.focus.history.get(screen, 0)
    if c then client.focus = c end
    end
    -- Uncomment if you want mouse warping
    if client.focus then
    local c_c = client.focus:fullgeometry()
    local m_c = mouse.coords()
    if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
    m_c.y < c_c.y or m_c.y >= c_c.y + c_c.height then
    if table.maxn(m_c.buttons) == 0 then
    mouse.coords({ x = c_c.x + 5, y = c_c.y + 5})
    end
    end
    end
    end)
    -- Hook called every second
    awful.hooks.timer.register(1, function ()
    -- For unix time_t lovers
    mytextbox.text = " " .. os.time() .. " time_t "
    -- Otherwise use:
    -- mytextbox.text = " " .. os.date() .. " "
    end)
    Then if I try this one, I just get a black screen, I have all the required things:
    -- Version 2
    -- This config is for use with awesome 3.0 stable.
    -- If you have any suggestions or questions, feel free
    -- to pass me a message, find me in #awesome on OFTC, or
    -- email me at <lucas[at]glacicle.com>
    -- I use both wicked and eminent, so to use it,
    -- you'll need to get both those helper libraries too.
    -- Note that I use all-custom keybindings, so you might
    -- want to copy the default rc.lua's keybindings
    -- into here if you wish to use those, although you might
    -- find you like mine better :P
    ---- {{{ Require lua libraries
    -- Shipped with awesome
    require("awful")
    require("beautiful")
    -- External
    require("wicked") -- Widgets
    require("eminent") -- Dynamic tagging
    ---- {{{ 'Beautiful' theme settings
    -- Font
    beautiful.font = "Dina 8"
    -- Background
    beautiful.bg_normal = '#414141'
    beautiful.bg_focus = '#414141'
    beautiful.bg_sbfocus = '#414141'
    beautiful.bg_urgent = '#414141'
    -- Foreground
    beautiful.fg_normal = '#999999'
    beautiful.fg_focus = '#335565'
    beautiful.fg_urgent = '#A000000'
    -- Border
    beautiful.border_width = 2
    beautiful.border_normal = '#414141'
    beautiful.border_focus = '#335565'
    beautiful.border_marked = '#91231c'
    -- Wallpaper
    -- wallpaper_cmd = awsetbg /storage/images/backgrounds/nature/looking.jpg
    ---- {{{ Modkeys
    key = {}
    key.none = {}
    key.alt = {"Mod1"}
    key.super = {"Mod4"}
    key.shift = {"Shift"}
    key.control = {"Control"}
    key.super_alt = {key.super[1], key.alt[1]}
    key.super_shift = {key.super[1], key.shift[1]}
    key.super_control = {key.super[1], key.control[1]}
    key.control_alt = {key.control[1], key.alt[1]}
    key.shift_alt = {key.shift[1], key.alt[1]}
    ---- {{{ Settings
    -- Initialise tables
    settings = {}
    settings.widget = {}
    settings.apps = {}
    settings.tag = {}
    settings.bindings = {}
    -- {{{ General
    -- Widget spacer and separator
    settings.widget_spacer = " "
    settings.widget_separator = " "
    -- Warp mouse
    settings.warp_mouse = true
    -- New become master
    settings.new_become_master = false
    -- Tag mwfact
    settings.tag.mwfact = 0.618033988769
    -- {{{ Applications
    -- Terminal application
    settings.apps.terminal = 'urxvt'
    -- Command to lock the screen
    settings.apps.lock_screen = 'xscreensaver-command -lock'
    -- Command to turn screen off with DPMS
    settings.apps.screen_off = 'sleep 1; xset dpms force off'
    -- File manager application
    settings.apps.filemanager = settings.apps.terminal..' -e zsh -c "vifm %s"'
    -- {{{ Floating windows
    settings.floating = {
    ["gimp"] = true,
    ["urxvtcnotify"] = true,
    ["MPlayer"] = true,
    -- {{{ Other
    -- Check what widget mode to use
    settings.widget_mode = 'desktop'
    -- Highlight statusbar of focussed screen on multiple-monitor setups
    if screen.count() > 1 then
    settings.statusbar_highlight_focus = {true, 1}
    end
    ---- {{{ Keybindings
    -- Initialise table
    settings.bindings.wm = {}
    settings.bindings.mouse = {}
    -- {{{ Open the filemanager at specific locations
    settings.bindings.filemanager = {
    -- Alt+d: Data partition
    ["/storage"] = {key.alt, "#40"},
    -- Alt+a: Home Directory
    [os.getenv("HOME")] = {key.alt, "#38"},
    -- {{{ Run specific commands
    settings.bindings.commands = {
    -- Alt+q: Open Terminal
    [settings.apps.terminal] = {key.alt, "#24"},
    -- Mod+k: GNU Screen
    -- [settings.apps.gnu_screen] = {key.super, "#45"},
    -- Mod+l: Lock screen
    [settings.apps.lock_screen] = {key.super, "#46"},
    -- Mod+o: Screen off with DPMS
    [settings.apps.screen_off] = {key.super, "#32"},
    -- {{{ Tag bindings
    settings.bindings.wm.tag = {
    -- Mod+a: Switch to previous tag
    [function() eminent.tag.prev(mouse.screen) end] = {key.super, "#38"},
    -- Mod+s: Switch to next tag
    [function() eminent.tag.next(mouse.screen) end] = {key.super, "#39"},
    -- Alt+\: Switch to float layout
    [function() awful.layout.set('floating') end] = {key.alt, "#51"},
    -- Alt+z: Switch to max layout
    [function() awful.layout.set('max') end] = {key.alt, "#52"},
    -- Alt+x: Switch to tile layout
    [function() awful.layout.set('tile') end] = {key.alt, "#53"},
    -- {{{ Prompt bindings
    settings.bindings.prompt = {
    -- Alt+w: Run prompt
    [{awful.spawn, " Run: "}] = {key.alt, "#25"},
    -- Mod+Alt+w: Lua eval prompt
    [{awful.eval, " Run Lua: "}] = {key.super_alt, "#25"},
    -- {{{ Miscellaneous bindings
    settings.bindings.wm.misc = {
    -- Mod+Alt+r: Restart awesome
    [awesome.restart] = {key.super_alt, "#27"},
    -- Mod+e: Switch focus to next screen
    [function() awful.screen.focus(1) end] = {key.super, "#26"},
    -- Mod+d: Switch focus to previous screen
    [function() awful.screen.focus(-1) end] = {key.super, "#40"},
    -- {{{ Keyboard digit bindings
    settings.bindings.digits = {
    -- Mod+##: View tag
    [awful.tag.viewonly] = key.super,
    -- Mod+Shift+##: Toggle tag view
    [function(t) t.selected = not t.selected end] = key.super_shift,
    -- Mod+Control+##: Move window to tag
    [awful.client.movetotag] = key.super_control,
    -- Mod+Alt+##: Toggle window on tag
    [awful.client.toggletag] = key.super_alt,
    -- {{{ Mouse bindings
    settings.bindings.mouse.desktop = {
    -- Right click on desktop: Open terminal
    [function() awful.spawn(settings.apps.terminal) end] = {key.none, 3},
    settings.bindings.mouse.client = {
    -- Alt+Left: Move window
    [function(c) c:mouse_move() end] = {key.alt, 1},
    -- Alt+Right: Resize window
    [function(c) c:mouse_resize({corner="bottomright"}) end] = {key.alt, 3},
    ---- {{{ Markup helper functions
    -- Inline markup is a tad ugly, so use these functions
    -- to dynamically create markup, we hook them into
    -- the beautiful namespace for clarity.
    beautiful.markup = {}
    function beautiful.markup.bg(color, text)
    return '<bg color="'..color..'" />'..text
    end
    function beautiful.markup.fg(color, text)
    return '<span color="'..color..'">'..text..'</span>'
    end
    function beautiful.markup.font(font, text)
    return '<span font_desc="'..font..'">'..text..'</span>'
    end
    function beautiful.markup.title(t)
    return t
    end
    function beautiful.markup.title_normal(t)
    return beautiful.title(t)
    end
    function beautiful.markup.title_focus(t)
    return beautiful.markup.bg(beautiful.bg_focus, beautiful.markup.fg(beautiful.fg_focus, beautiful.markup.title(t)))
    end
    function beautiful.markup.title_urgent(t)
    return beautiful.markup.bg(beautiful.bg_urgent, beautiful.markup.fg(beautiful.fg_urgent, beautiful.markup.title(t)))
    end
    function beautiful.markup.bold(text)
    return '<b>'..text..'</b>'
    end
    function beautiful.markup.heading(text)
    return beautiful.markup.fg(beautiful.fg_focus, beautiful.markup.bold(text))
    end
    ---- {{{ Widgets
    settings.statusbars = {}
    settings.widgets = {}
    settings.statusbars[1] = {{
    position = "top",
    height = 18,
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal,
    name = "mainstatusbar",
    }, "all"}
    settings.promptbar = {
    position = "top",
    height = 18,
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal,
    name = "promptbar",
    -- {{{ Taglist
    maintaglist = widget({
    type = 'taglist',
    name = 'maintaglist'
    function maintaglist.label(t)
    return awful.widget.taglist.label.noempty(t)
    end
    maintaglist:mouse_add(mouse(key.none, 1, function (o, t) awful.tag.viewonly(t) end))
    table.insert(settings.widgets, {1, maintaglist})
    if settings.widget_mode ~= 'none' then
    -- {{{ MPD Widget
    mpdwidget = widget({
    type = 'textbox',
    name = 'mpdwidget',
    align = 'right'
    wicked.register(mpdwidget, wicked.widgets.mpd, function (widget, args)
    -- I don't want the stream name on my statusbar, so I gsub it out,
    -- feel free to remove this bit
    return settings.widget_spacer..beautiful.markup.heading('MPD')..': '
    ..args[1]:gsub('AnimeNfo Radio | Serving you the best Anime music!: ','')
    ..settings.widget_spacer..settings.widget_separator end)
    table.insert(settings.widgets, {1, mpdwidget})
    -- {{{ GMail Widget
    gmailwidget = widget({
    type = 'textbox',
    name = 'gmailwidget',
    align = 'right'
    gmailwidget:mouse_add(mouse(key.none, 1, function () wicked.update(gmailwidget) end))
    function read_gmail_temp(format)
    local f = io.open('/tmp/gmail-temp')
    if f == nil then
    return {'n/a'}
    end
    local n = f:read()
    if n == nil or f == ' ' or f == '' then
    f:close()
    return {'n/a'}
    end
    return {n}
    end
    wicked.register(gmailwidget, read_gmail_temp, function (widget, args)
    local n = args[1]
    local out = settings.widget_spacer..beautiful.markup.heading('GMail')..': '
    if n ~= "n/a" and tonumber(n) > 0 then
    out = out..beautiful.markup.bg(beautiful.bg_urgent, beautiful.markup.fg(beautiful.fg_urgent, tostring(n)))
    else
    out = out..tostring(n)
    end
    out = out..settings.widget_spacer..settings.widget_separator
    return out
    end, 120)
    -- Start timer to fill the temp file
    awful.hooks.timer.register(110, function ()
    -- Call GMail check script to check for new email
    os.execute(os.getenv("HOME")..'/other/.gmail.py > /tmp/gmail-temp &')
    end, true)
    wicked.update(gmailwidget)
    table.insert(settings.widgets, {1, gmailwidget})
    -- {{{ Load Averages Widget
    loadwidget = widget({
    type = 'textbox',
    name = 'loadwidget',
    align = 'right'
    function widget_loadavg(format)
    -- Use /proc/loadavg to get the average system load on 1, 5 and 15 minute intervals
    local f = io.open('/proc/loadavg')
    local n = f:read()
    f:close()
    -- Find the third space
    local pos = n:find(' ', n:find(' ', n:find(' ')+1)+1)
    return {n:sub(1,pos-1)}
    end
    wicked.register(loadwidget, widget_loadavg,
    settings.widget_spacer..beautiful.markup.heading('Load')..': $1'..settings.widget_spacer..settings.widget_separator, 2)
    table.insert(settings.widgets, {1, loadwidget})
    -- {{{ CPU Usage Widget
    cputextwidget = widget({
    type = 'textbox',
    name = 'cputextwidget',
    align = 'right'
    wicked.register(cputextwidget, wicked.widgets.cpu,
    settings.widget_spacer..beautiful.markup.heading('CPU')..': $1%'..settings.widget_spacer..settings.widget_separator,
    nil, nil, 2)
    table.insert(settings.widgets, {1, cputextwidget})
    -- {{{ CPU Graph Widget
    cpugraphwidget = widget({
    type = 'graph',
    name = 'cpugraphwidget',
    align = 'right'
    cpugraphwidget.height = 0.85
    cpugraphwidget.width = 45
    cpugraphwidget.bg = '#333333'
    cpugraphwidget.border_color = '#0a0a0a'
    cpugraphwidget.grow = 'left'
    cpugraphwidget:plot_properties_set('cpu', {
    fg = '#AEC6D8',
    fg_center = '#285577',
    fg_end = '#285577',
    vertical_gradient = false
    wicked.register(cpugraphwidget, wicked.widgets.cpu, '$1', 1, 'cpu')
    table.insert(settings.widgets, {1, cpugraphwidget})
    -- {{{ Memory Usage Widget
    memtextwidget = widget({
    type = 'textbox',
    name = 'memtextwidget',
    align = 'right'
    wicked.register(memtextwidget, wicked.widgets.mem,
    settings.widget_spacer..beautiful.markup.heading('MEM')..': '..
    '$1% ($2/$3)'..settings.widget_spacer..settings.widget_separator,
    3, nil, {2, 4, 4})
    table.insert(settings.widgets, {1, memtextwidget})
    -- {{{ Memory Graph Widget
    memgraphwidget = widget({
    type = 'graph',
    name = 'memgraphwidget',
    align = 'right'
    memgraphwidget.height = 0.85
    memgraphwidget.width = 45
    memgraphwidget.bg = '#333333'
    memgraphwidget.border_color = '#0a0a0a'
    memgraphwidget.grow = 'left'
    memgraphwidget:plot_properties_set('mem', {
    fg = '#AEC6D8',
    fg_center = '#285577',
    fg_end = '#285577',
    vertical_gradient = false
    wicked.register(memgraphwidget, wicked.widgets.mem, '$1', 1, 'mem')
    table.insert(settings.widgets, {1, memgraphwidget})
    -- {{{ Other Widget
    settings.widget_spacerwidget = widget({ type = 'textbox', name = 'settings.widget_spacerwidget', align = 'right' })
    settings.widget_spacerwidget.text = settings.widget_spacer..settings.widget_separator
    table.insert(settings.widgets, {1, settings.widget_spacerwidget})
    end
    -- You shouldn't have to edit the code after this,
    -- it takes care of applying the settings above.
    ---- {{{ Initialisations
    -- Register beautiful with awful
    awful.beautiful.register(beautiful)
    -- Set default colors
    awesome.colors_set({
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal })
    -- Set default font
    awesome.font_set(beautiful.font)
    -- Table of layouts to cover with awful.layout.inc, order matters.
    layouts =
    "tile",
    "tileleft",
    "tilebottom",
    "tiletop",
    "fairh",
    "fairv",
    "magnifier",
    "max",
    "fullscreen",
    "spiral",
    "dwindle",
    "floating"
    -- Define tag tables
    tag_settings = {
    { name="main", layout=layouts[1] },
    { name="work", layout=layouts[1] },
    { name="float", layout=layouts[12] }
    -- Initialize tags in awesome 3.1
    tags = {}
    for s = 1, screen.count() do
    tags[s] = {}
    for tagnumber = 1, 3 do
    tags[s][tagnumber] = tag({ name = tag_settings[tagnumber].name, layout = tag_settings[tagnumber].layout })
    tags[s][tagnumber].screen = s
    awful.layout.set(layouts[1], tags[s][tagnumber])
    end
    tags[s][1].selected = true
    end
    ---- {{{ Create statusbars
    local mainstatusbar = {}
    for i, b in pairs(settings.statusbars) do
    mainstatusbar[i] = {}
    for s=1,screen.count() do
    this_screen = false
    if b[2] ~= "all" then
    for sc in pairs(b[2]) do
    if sc == s then
    this_screen = true
    break
    end
    end
    end
    if b[2] == "all" or this_screen then
    mainstatusbar[i][s] = statusbar(b[1])
    local widgets = {}
    for ii, w in pairs(settings.widgets) do
    if w[1] == i then
    table.insert(widgets, w[2])
    end
    end
    mainstatusbar[i][s]:widgets(widgets)
    mainstatusbar[i][s].screen = s
    end
    end
    end
    ---- {{{ Create prompt statusbar
    local mainpromptbar = statusbar(settings.promptbar)
    local mainpromptbox = widget({type = "textbox", align = "left", name = "mainpromptbox"})
    mainpromptbar:widgets({mainpromptbox})
    mainpromptbar.screen = nil
    ---- {{{ Useful functions
    -- {{{ Mouse warp function
    function mouse_warp(c, force)
    -- Allow skipping a warp
    if warp_skip then
    warp_skip = false
    return
    end
    -- Get vars
    local sel = c or client.focus
    if sel == nil then return end
    local coords = sel:coords()
    local m = mouse.coords()
    -- Settings
    mouse_padd = 6
    border_area = 5
    -- Check if mouse is not already inside the window
    if (( m.x < coords.x-border_area or
    m.y < coords.y-border_area or
    m.x > coords.x+coords.width+border_area or
    m.y > coords.y+coords.height+border_area
    ) and (
    table.maxn(m.buttons) == 0
    )) or force
    then
    mouse.coords({ x=coords.x+mouse_padd, y=coords.y+mouse_padd})
    end
    end
    -- {{{ Prompt with statusbar
    function prompt_statusbar(s, callback, prompt)
    if not callback then callback = awful.spawn end
    if not prompt then prompt = " Run: " end
    for i, b in pairs(mainstatusbar) do
    for ii, bb in pairs(b) do
    if bb.screen == s then
    bb.screen = nil
    end
    end
    end
    mainpromptbar.screen = s
    awful.prompt.run({prompt = prompt}, mainpromptbox, callback,
    awful.completion.bash, os.getenv("HOME") .. "/.cache/awesome_history", 50, function ()
    mainpromptbar.screen = nil
    for i, b in pairs(mainstatusbar) do
    for ii, bb in pairs(b) do
    if ii == s then
    bb.screen = ii
    end
    end
    end
    end)
    end
    ---- {{{ Create bindings
    --- This reads the binding tables and turns them into actual keybindings
    -- Always qwerty
    -- WM Bindings
    for i,table in pairs(settings.bindings.wm) do
    for f, keys in pairs(table) do
    keybinding(keys[1], keys[2], f):add()
    end
    end
    -- Keyboard digit bindings
    for i=1,9 do
    for f, mod in pairs(settings.bindings.digits) do
    keybinding(mod, i, function()
    t = eminent.tag.getn(i, nil, true)
    if not t then return end
    f(t)
    end):add()
    end
    end
    -- Prompt Bindings
    for prompt, keys in pairs(settings.bindings.prompt) do
    keybinding(keys[1], keys[2], function() prompt_statusbar(mouse.screen, unpack(prompt)) end):add()
    end
    -- Filemanager bindings
    for loc, keys in pairs(settings.bindings.filemanager) do
    keybinding(keys[1], keys[2], function() awful.spawn(string.format(settings.apps.filemanager, loc)) end):add()
    end
    -- Custom command bindings
    for command, keys in pairs(settings.bindings.commands) do
    keybinding(keys[1], keys[2], function() awful.spawn(command) end):add()
    end
    -- Desktop mouse bindings
    for f, keys in pairs(settings.bindings.mouse.desktop) do
    awesome.mouse_add(mouse(keys[1], keys[2], f))
    end
    ---- {{{ Set hooks
    -- {{{ Focus hook
    awful.hooks.focus.register(function (c)
    -- Skip over my urxvtcnotify
    if c.name and c.name:lower():find('urxvtcnotify') and awful.client.next(1) ~= c then
    awful.client.focusbyidx(1)
    return
    end
    -- Set border
    c.border_color = beautiful.border_focus
    -- Raise the client
    c:raise()
    -- Set statusbar color
    if settings.statusbar_highlight_focus and settings.statusbar_highlight_focus[1] then
    if last_screen == nil or last_screen ~= c.screen then
    mainstatusbar[settings.statusbar_highlight_focus[2]][c.screen].bg = beautiful.bg_sbfocus
    if last_screen then
    mainstatusbar[settings.statusbar_highlight_focus[2]][last_screen].bg = beautiful.bg_normal
    end
    end
    last_screen = c.screen
    end
    end)
    -- {{{ Unfocus hook
    awful.hooks.unfocus.register(function (c)
    -- Set border
    c.border_color = beautiful.border_normal
    end)
    -- {{{ Mouseover hook
    awful.hooks.mouseover.register(function (c)
    -- Set focus for sloppy focus
    client.focus = c
    end)
    -- {{{ Manage hook
    awful.hooks.manage.register(function (c)
    local class = ""
    local name = ""
    if c.class then
    class = c.class:lower()
    end
    if c.name then
    name = c.name:lower()
    end
    -- Create border
    c.border_width = beautiful.border_width
    c.border_color = beautiful.border_normal
    -- Add mouse bindings
    for f, keys in pairs(settings.bindings.mouse.client) do
    c:mouse_add(mouse(keys[1], keys[2], f))
    end
    -- Check if floating
    for app, i in pairs(settings.floating) do
    if class:find(app) or name:find(app) then
    c.floating = i
    break
    end
    end
    if name:find('urxvtcnotify') then
    -- I got sick of libnotify/notification-daemon
    -- and their dependencies, so I'm using a little
    -- urxvtc window with some text in it as notifications :P
    -- This makes it appear at the correct place,
    -- feel free to remove the whole section, you probably
    -- won't need it.
    c.screen = 3
    c:coords({
    x = 1680*2+1400,
    y = 18,
    width = 276,
    height = 106
    c.border_color = beautiful.border_normal
    local tags = {}
    for i,t in pairs(eminent.tags[3]) do
    if eminent.tag.isoccupied(3, t) then
    table.insert(tags, t)
    end
    end
    c:tags(tags)
    return 0
    end
    -- Focus new clients
    client.focus = c
    -- Prevent new windows from becoming master
    if not settings.new_become_master then
    awful.client.swap(1, c)
    end
    -- Don't honor size hints
    c.honorsizehints = false
    end)
    -- {{{ Arrange hook
    awful.hooks.arrange.register(function(s)
    -- Warp the mouse
    if settings.warp_mouse then
    mouse_warp()
    end
    -- Check focus
    if not client.focus then
    local c = awful.client.focus.history.get(s, 0)
    if c then client.focus = c end
    end
    end)
    -- vim: set filetype=lua fdm=marker tabstop=4 shiftwidth=4 expandtab smarttab autoindent smartindent nu:

    The most likely reason for you seeing the default settings, or nothing is that there is some error in the configuration file. You would have to take a look at the error output of xorg. Since I start X using startx I can look at it on the first sterminal (ALT - CTRL - F1). I don't know where the output would go if you use GDM or something similar.
    If there are errors you could post them here and people might be able to help.
    If the comment of the second config file is correct then the config most likely wont work with awesome 3.1 since the sytax of the config file changed between 3.0 and 3.1
    Another possibility to get a working config would be to copy the default awesome config into your ~/.config/awesome folder and then gradually make changes to it, exchanging content for stuff from other configs, that way you'd know which change brakes something.

  • [SOLVED] dual-screen problem with awesome3.2 and firefox/gedit

    Hi,
    my problem is that firefox/gedit (+maybe other apps, i don't know yet) are starting in awesome like they are fullscreen apps. Firefox covers the wibox at the top of the screen, and even overlaps a bit to the seconds screen. So the keyboard-shortcuts doenst work well, because awesome then changes the tags in bots screens when on one tag firefox is opened.
    I dont know why this happens, here is my rc.lua:
    -- Load libraries
    require("awful")
    require("beautiful")
    require("wicked")
    -- {{{ Variable definitions
    -- User styles for windows, statusbars, titlebars and widgets
    theme_path = os.getenv("HOME") .. "/.config/awesome/themes/zenburn"
    beautiful.init(theme_path)
    -- Modifier keys
    modkey = "Mod4" -- Super_L
    -- Window titlebars
    use_titlebar = true
    -- Window management layouts
    layouts = {
    awful.layout.suit.tile, -- 1
    awful.layout.suit.tile.left, -- 2
    awful.layout.suit.tile.bottom, -- 3
    awful.layout.suit.tile.top, -- 4
    awful.layout.suit.fair, -- 5
    awful.layout.suit.fair.horizontal, -- 6
    awful.layout.suit.max, -- 7
    -- awful.layout.suit.max.fullscreen, -- /
    awful.layout.suit.magnifier, -- 8
    awful.layout.suit.floating -- 9
    -- Application specific behaviour
    apprules = {
    -- Class Instance Name Screen Tag Floating
    { "Firefox", nil, nil, nil, 2, false },
    { "Firefox", "Download", nil, nil, nil, true },
    { "Firefox", "Places", nil, nil, nil, true },
    { "Firefox", "Extension", nil, nil, nil, true },
    { "MPlayer", nil, nil, nil, nil, true },
    { nil, nil, "VLC media player", nil, nil, true },
    { "Gimp", nil, nil, nil, nil, true },
    { "Xmessage", "xmessage", nil, nil, nil, true },
    { "Skype", nil, nil, nil, 1, true },
    { "Pidgin", nil, nil, nil, 1, true },
    -- {{{ Tags
    -- Define tags table
    tags = {}
    tags.settings = {
    { name = "im", layout = layouts[9] },
    { name = "www", layout = layouts[1] },
    { name = "terms", layout = layouts[3] },
    { name = "dev", layout = layouts[3] },
    { name = "other", layout = layouts[5] },
    -- Initialize tags
    for s = 1, screen.count() do
    tags[s] = {}
    for i, v in ipairs(tags.settings) do
    tags[s][i] = tag(v.name)
    tags[s][i].screen = s
    awful.tag.setproperty(tags[s][i], "layout", v.layout)
    awful.tag.setproperty(tags[s][i], "setslave", v.setslave)
    end
    tags[s][1].selected = true
    end
    -- {{{ Wibox
    -- Widgets configuration
    -- Reusable separators
    myspace = widget({ type = "textbox", name = "myspace", align = "right" })
    myseparator = widget({ type = "textbox", name = "myseparator", align = "right" })
    myspace.text = " "
    myseparator.text = "|"
    -- Date, time and...
    mydateicon = widget({ type = "imagebox", name = "mydateicon", align = "right" })
    mydateicon.image = image(beautiful.widget_date)
    mydatewidget = widget({ type = "textbox", name = "mydatewidget", align = "right" })
    wicked.register(mydatewidget, wicked.widgets.date, "%b %e, %R", 60)
    -- a Calendar
    function calendar_select(offset)
    local datespec = os.date("*t")
    datespec = datespec.year * 12 + datespec.month - 1 + offset
    awful.util.spawn("cal -m " .. (datespec % 12 + 1) .. " " .. math.floor(datespec / 12) .. " | xmessage -geometry +1135+17 -file -")
    end
    mydatewidget:buttons({
    button({ }, 1, function () calendar_select(0) end),
    button({ }, 4, function () calendar_select(1) end),
    button({ }, 5, function () calendar_select(-1) end)
    -- System tray
    mysystray = widget({ type = "systray", align = "right" })
    -- Create a wibox and...
    mywibox = {}
    mypromptbox = {}
    mylayoutbox = {}
    mytaglist = {}
    mytaglist.buttons = { button({ }, 1, awful.tag.viewonly),
    button({ modkey }, 1, awful.client.movetotag),
    button({ }, 3, function (tag) tag.selected = not tag.selected end),
    button({ modkey }, 3, awful.client.toggletag),
    button({ }, 4, awful.tag.viewnext),
    button({ }, 5, awful.tag.viewprev) }
    -- ...add it to each screen
    for s = 1, screen.count() do
    -- Create a promptbox
    mypromptbox[s] = widget({ type = "textbox", align = "left" })
    -- Create an imagebox widget with icons indicating active layout
    mylayoutbox[s] = widget({ type = "imagebox", align = "left" })
    mylayoutbox[s]:buttons({ button({ }, 1, function () awful.layout.inc(layouts, 1) end),
    button({ }, 3, function () awful.layout.inc(layouts, -1) end),
    button({ }, 4, function () awful.layout.inc(layouts, 1) end),
    button({ }, 5, function () awful.layout.inc(layouts, -1) end) })
    -- Create the taglist
    mytaglist[s] = awful.widget.taglist.new(s, awful.widget.taglist.label.all, mytaglist.buttons)
    -- Create the wibox
    mywibox[s] = wibox({ position = "top", height = "14", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
    -- Add widgets to the wibox (order matters)
    mywibox[s].widgets = { mylayoutbox[s],
    mytaglist[s],
    mypromptbox[s],
    myspace,
    mydateicon, mydatewidget,
    myspace,
    s == screen.count() and mysystray or nil
    mywibox[s].screen = s
    end
    -- {{{ Mouse bindings
    root.buttons({
    button({ }, 4, awful.tag.viewnext),
    button({ }, 5, awful.tag.viewprev)
    -- {{{ Key bindings
    globalkeys = {
    -- Applications
    key({ modkey }, "Return",function () awful.util.spawn("uxterm") end),
    -- Prompt menus
    key({ modkey }, "F2", function () awful.prompt.run({ prompt = "Run: " }, mypromptbox[mouse.screen],
    awful.util.spawn, awful.completion.shell, awful.util.getdir("cache") .. "/history")
    end),
    -- Awesome controls
    key({ modkey, "Shift" }, "q", awesome.quit),
    key({ modkey, "Shift" }, "r", function () mypromptbox[mouse.screen].text = awful.util.escape(awful.util.restart()) end),
    -- Layout manipulation
    key({ modkey, "Shift" }, "Plus", function () awful.client.incwfact(-0.05) end),
    key({ modkey, "Shift" }, "Minus", function () awful.client.incwfact(0.05) end),
    key({ modkey }, "space", function () awful.layout.inc(layouts, 1) end),
    key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
    -- Focus controls
    key({ modkey }, "Tab", function () awful.client.focus.history.previous(); if client.focus then client.focus:raise() end end),
    key({ modkey }, "Down", function () awful.client.focus.bydirection("down"); if client.focus then client.focus:raise() end end),
    key({ modkey }, "Up", function () awful.client.focus.bydirection("up"); if client.focus then client.focus:raise() end end),
    key({ modkey }, "Left", function () awful.client.focus.bydirection("left"); if client.focus then client.focus:raise() end end),
    key({ modkey }, "Right", function () awful.client.focus.bydirection("right");if client.focus then client.focus:raise() end end),
    key({ modkey, "Shift" }, "Down", function () awful.client.swap.bydirection("down") end),
    key({ modkey, "Shift" }, "Up", function () awful.client.swap.bydirection("up") end),
    key({ modkey, "Shift" }, "Left", function () awful.client.swap.bydirection("left") end),
    key({ modkey, "Shift" }, "Right", function () awful.client.swap.bydirection("right") end),
    -- Client manipulation
    clientkeys = {
    key({ modkey, "Control" }, "space", awful.client.floating.toggle),
    -- Bind keyboard digits
    keynumber = 0
    for s = 1, screen.count() do
    keynumber = math.min(9, math.max(#tags[s], keynumber));
    end
    -- Tag controls
    for i = 1, keynumber do
    table.insert(globalkeys,
    key({ modkey }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end))
    table.insert(globalkeys,
    key({ modkey, "Shift" }, i,
    function ()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.movetotag(tags[client.focus.screen][i])
    end
    end))
    end
    -- Set keys
    root.keys(globalkeys)
    -- {{{ Hooks
    -- Hook function to execute when focusing a client
    awful.hooks.focus.register(function (c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_focus
    end
    end)
    -- Hook function to execute when unfocusing a client
    awful.hooks.unfocus.register(function (c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_normal
    end
    end)
    -- Hook function to execute when marking a client
    awful.hooks.marked.register(function (c)
    c.border_color = beautiful.border_marked
    end)
    -- Hook function to execute when unmarking a client
    awful.hooks.unmarked.register(function (c)
    c.border_color = beautiful.border_focus
    end)
    -- Hook function to execute when the mouse enters a client
    awful.hooks.mouse_enter.register(function (c)
    -- Sloppy focus (but disabled for magnifier layout)
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
    and awful.client.focus.filter(c) then
    client.focus = c
    end
    end)
    -- Hook function to execute when a new client appears
    awful.hooks.manage.register(function (c)
    -- If we are not managing this application at startup, move it to the screen where the mouse is
    if not startup and awful.client.focus.filter(c) then
    c.screen = mouse.screen
    end
    -- Add a titlebar to each client
    if use_titlebar then
    awful.titlebar.add(c, { modkey = modkey })
    end
    -- Set client mouse bindings
    c:buttons({
    button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ modkey }, 1, awful.mouse.client.move),
    button({ modkey }, 3, awful.mouse.client.resize)
    -- New clients may not receive focus if they're not focusable, so set the border anyway
    c.border_width = beautiful.border_width
    c.border_color = beautiful.border_normal
    -- Check application->screen/tag mappings and floating state
    local target_screen
    local target_tag
    local target_float
    for index, rule in pairs(apprules) do
    if (((rule[1] == nil) or (c.class and c.class == rule[1]))
    and ((rule[2] == nil) or (c.instance and c.instance == rule[2]))
    and ((rule[3] == nil) or (c.name and string.find(c.name, rule[3], 1, true)))) then
    target_screen = rule[4]
    target_tag = rule[5]
    target_float = rule[6]
    end
    end
    -- Apply mappings, if any
    if target_float then
    awful.client.floating.set(c, target_float)
    end
    if target_screen then
    c.screen = target_screen
    awful.client.movetotag(tags[target_screen][target_tag], c)
    end
    -- Focus after tag mapping
    client.focus = c
    -- Set client key bindings
    c:keys(clientkeys)
    -- Put windows at the end of others instead of setting them as a master
    --awful.client.setslave(c)
    -- ...or do it selectively for certain tags
    if awful.tag.getproperty(awful.tag.selected(mouse.screen), "setslave") then
    awful.client.setslave(c)
    end
    -- New floating windows don't cover the wibox and don't overlap until it's unavoidable
    awful.placement.no_offscreen(c)
    --awful.placement.no_overlap(c)
    -- Honoring size hints: false to remove gaps between windows
    c.size_hints_honor = false
    end)
    -- Hook function to execute when arranging the screen
    awful.hooks.arrange.register(function (screen)
    -- Update layout imagebox widget with an icon indicating active layout
    local layout = awful.layout.getname(awful.layout.get(screen))
    if layout and beautiful["layout_" ..layout] then
    mylayoutbox[screen].image = image(beautiful["layout_" .. layout])
    else
    mylayoutbox[screen].image = nil
    end
    -- Give focus to the latest client in history if no window has focus
    -- or if the current window is a desktop or a dock one
    if not client.focus then
    local c = awful.client.focus.history.get(screen, 0)
    if c then client.focus = c end
    end
    -- Fine grained border controls
    local visible_clients = awful.client.visible(screen)
    if #visible_clients > 0 then
    for unused, current in pairs(visible_clients) do
    -- Floating clients always have borders
    if awful.client.floating.get(current) or (layout == 'floating') then
    current.border_width = beautiful.border_width
    -- Floating clients always on top
    if not current.fullscreen then
    current.ontop = true
    end
    -- Don't draw the border if there is only one tiled client visible
    elseif (#visible_clients == 1) or (layout == 'max') then
    visible_clients[1].border_width = 0
    else
    current.border_width = beautiful.border_width
    end
    end
    end
    end)
    I added "xrandr --output DVI-1 -- right-of DVI-0" to the .xinitrc to get the extended desktop i want.
    Any suggestions?
    Last edited by Wishes (2009-03-29 10:52:00)

    Still the same
    Edit: i deleted my ~/.mozilla folder. Now firefox starts not overlapping with the wibox, but still a bit overlapping to the other screen, so hat my keystrokes toggle both screens. it seems that it start in floating mode, because i can move it with the mouse. When i move it a bit towarts the wibox and a bit right, it seems to get stuck in the chosen tile-layout and everything is fine... until i quit firefox and start it again.
    Edit2: Hmmm, ok, i think i found it... or at least something:
    -- New floating windows don't cover the wibox and don't overlap until it's unavoidable
        --awful.placement.no_offscreen(c)  //THIS was first uncommented
        awful.placement.no_overlap(c)  //THIS was first commented
    So now with no_overlap it seems to work finde (although i cannot move gedit between the screens with the mouse, but i dont know if this isn't normal. Firefox is moveable between the screens.), no overlapping anymore with the wibox or to the other screen.
    When i uncomment both lines, firefox and gedit are starting both on the 2nd screen (the left one), and gedit cannot be moved to the right one (although firefox can be moved.).
    Last edited by Wishes (2009-03-28 20:24:52)

  • Awesome3 dialog boxes and pop-ups appearing partly offscreen

    Dialog boxes like when opening a specific file in evince (with C-o or file->open) are appearing floating (as they should) but with almost half of the box offscreen. Its irritating to have to move my hand to my mouse every time and move the window into full view as otherwise I use the keyboard exclusively, so I'm wondering if anyone knows how to set a default location on screen for pop-up dialog boxes like this.
    Thanks for any help provided.
    here is my rc.lua:
    -- awesome 3 configuration file
    -- Include awesome library, with lots of useful function!
    require("awful")
    require("tabulous")
    require("beautiful")
    --extra non-default library
    require("wicked")
    -- {{{ Variable definitions
    -- This is a file path to a theme file which will defines colors.
    theme_path = "/home/ojcp/.config/awesome/themes/default"
    -- This is used later as the default terminal to run.
    terminal = "terminal"
    editor = "emacs"
    browserName = "Gran Paradiso"
    browser = "firefox"
    pdfview = "evince"
    office = "abiword"
    spreadsheet = "Gnumeric"
    -- Default modkey.
    -- 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.
    -- However, you can use another modifier like Mod1, but it may interact with others.
    modkey = "Mod4"
    -- Table of layouts to cover with awful.layout.inc, order matters.
    layouts =
    "tile",
    "tileleft",
    "tilebottom",
    "tiletop",
    "fairh",
    "fairv",
    "magnifier",
    "max",
    "spiral",
    "dwindle",
    "floating"
    -- Table of clients that should be set floating. The index may be either
    -- the application class or instance. The instance is useful when running
    -- a console app in a terminal like (Music on Console)
    -- xterm -name mocp -e mocp
    floatapps =
    -- by class
    ["MPlayer"] = true,
    ["pinentry"] = true,
    ["gimp"] = true,
    -- by instance
    ["mocp"] = true
    -- Applications to be moved to a pre-defined tag by class or instance.
    -- Use the screen and tags indices.
    apptags =
    [browserName] = {screen = 1, tag = 2},
    [editor] = {screen = 1, tag = 4},
    [office] = {screen = 1, tag = 3},
    [pdfview] = {screen = 1, tag = 3},
    [spreadsheet] = {screen = 1, tag = 3}
    -- Define if we want to use titlebar on all applications.
    use_titlebar = false
    -- {{{ Initialization
    -- Initialize theme (colors).
    beautiful.init(theme_path)
    -- Register theme in awful.
    -- This allows to not pass plenty of arguments to each function
    -- to inform it about colors we want it to draw.
    awful.beautiful.register(beautiful)
    -- Uncomment this to activate autotabbing
    -- tabulous.autotab_start()
    -- {{{ Tags
    -- Define tags table.
    tags = {}
    for s = 1, screen.count() do
    -- Each screen has its own tag table.
    tags[s] = {}
    tagnames = {"chmu","net","doc","emacs", "misc", "float"}
    -- Create 9 tags per screen.
    for tagnumber = 1, 6 do
    if tagnumber < 6 then
    tags[s][tagnumber] = tag({ name = tagnames[tagnumber], layout = layouts[1] })
    else
    tags[s][tagnumber] = tag({ name = tagnames[tagnumber], layout = layouts[11] })
    end
    -- Add tags to screen one by one
    tags[s][tagnumber].screen = s
    end
    -- I'm sure you want to see at least one tag.
    tags[s][1].selected = true
    end
    -- {{{ Statusbar
    -- Create a taglist widget
    mytaglist = widget({ type = "taglist", name = "mytaglist" })
    mytaglist:mouse_add(mouse({}, 1, function (object, tag) awful.tag.viewonly(tag) end))
    mytaglist:mouse_add(mouse({ modkey }, 1, function (object, tag) awful.client.movetotag(tag) end))
    mytaglist:mouse_add(mouse({}, 3, function (object, tag) tag.selected = not tag.selected end))
    mytaglist:mouse_add(mouse({ modkey }, 3, function (object, tag) awful.client.toggletag(tag) end))
    mytaglist:mouse_add(mouse({ }, 4, awful.tag.viewnext))
    mytaglist:mouse_add(mouse({ }, 5, awful.tag.viewprev))
    mytaglist.label = awful.widget.taglist.label.all
    -- Create a tasklist widget
    mytasklist = widget({ type = "tasklist", name = "mytasklist" })
    mytasklist:mouse_add(mouse({ }, 1, function (object, c) client.focus = c; c:raise() end))
    mytasklist:mouse_add(mouse({ }, 4, function () awful.client.focusbyidx(1) end))
    mytasklist:mouse_add(mouse({ }, 5, function () awful.client.focusbyidx(-1) end))
    mytasklist.label = awful.widget.tasklist.label.currenttags
    -- Create a textbox widget
    mytextbox = widget({ type = "textbox", name = "mytextbox", align = "right" })
    -- Set the default text in textbox
    mytextbox.text = "<b><small> awesome " .. AWESOME_VERSION .. " </small></b>"
    mypromptbox = widget({ type = "textbox", name = "mypromptbox", align = "left" })
    -- Create an iconbox widget
    myiconbox = widget({ type = "textbox", name = "myiconbox", align = "left" })
    myiconbox.text = "<bg image=\"/usr/share/awesome/icons/awesome16.png\" resize=\"true\"/>"
    -- Create a systray
    mysystray = widget({ type = "systray", name = "mysystray", align = "right" })
    -- Create an iconbox widget which will contains an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    mylayoutbox = {}
    for s = 1, screen.count() do
    mylayoutbox[s] = widget({ type = "textbox", name = "mylayoutbox", align = "right" })
    mylayoutbox[s]:mouse_add(mouse({ }, 1, function () awful.layout.inc(layouts, 1) end))
    mylayoutbox[s]:mouse_add(mouse({ }, 3, function () awful.layout.inc(layouts, -1) end))
    mylayoutbox[s]:mouse_add(mouse({ }, 4, function () awful.layout.inc(layouts, 1) end))
    mylayoutbox[s]:mouse_add(mouse({ }, 5, function () awful.layout.inc(layouts, -1) end))
    mylayoutbox[s].text = "<bg image=\"/usr/share/awesome/icons/layouts/tilew.png\" resize=\"true\"/>"
    end
    -- Create battery widget
    batterytext = widget({type = "textbox", name = "batterytext", align = "right"})
    batterytext.text = " bat: "
    mybatterymonitor = widget({type = "progressbar", name = "batterywidget", align = "right" })
    mybatterymonitor.width = 50
    mybatterymonitor.height = 0.6
    mybatterymonitor.border_padding = 1
    mybatterymonitor.border_width = 1
    mybatterymonitor.ticks_count = 20
    mybatterymonitor.ticks_gap = 1
    mybatterymonitor.vertical = false
    mybatterymonitor:bar_properties_set('bat', {
    bg = 'black',
    fg = 'blue4',
    fg_off = 'black',
    reverse = false,
    min_value = 0,
    max_value = 100
    -- Create membar
    membartext = widget({ type = "textbox", name = "membartext", align = "right" })
    membartext.text = " mem: "
    membarwidget = widget({
    type = 'progressbar',
    name = 'membarwidget',
    align = 'right'
    membarwidget.width = 50
    membarwidget.height = 0.6
    membarwidget.border_padding = 1
    membarwidget.gap = 5
    membarwidget.ticks_count = 20
    membarwidget.ticks_gap = 1
    membarwidget:bar_properties_set('mem', {
    bg = 'black',
    fg = '#285577',
    fg_center = '#285577',
    fg_end = '#285577',
    fg_off = 'black',
    reverse = false,
    min_value = 0,
    max_value = 100
    wicked.register(membarwidget, wicked.widgets.mem, '$1', 1, 'mem')
    -- CPU graph
    cputext = widget ({ type = "textbox", name = "cputext", align = "right"})
    cputext.text = " cpu: "
    cpugraphwidget = widget({
    type = 'graph',
    name = 'cpugraphwidget',
    align = 'right'
    cpugraphwidget.height = 0.85
    cpugraphwidget.width = 45
    cpugraphwidget.bg = 'black'
    cpugraphwidget.border_width = 1
    cpugraphwidget.grow = 'left'
    cpugraphwidget:plot_properties_set('cpu', {
    fg = '#AEC6D8',
    fg_center = '#285577',
    fg_end = '#285577',
    vertical_gradient = false
    wicked.register(cpugraphwidget, wicked.widgets.cpu, '$1', 1, 'cpu')
    -- mpd display
    --mpdwidget = widget({
    -- type = 'textbox',
    -- name = 'mpdwidget',
    -- align = 'left'
    --wicked.register(mpdwidget, wicked.widgets.mpd,
    -- function (widget, args)
    -- if args[1]:find("volume:") == nil then
    -- return ' <span color="white">Now Playing:</span> '..args[1]
    -- else
    -- return ''
    -- end
    -- end)
    -- Create a statusbar for each screen and add it
    mystatusbar = {}
    for s = 1, screen.count() do
    mystatusbar[s] = statusbar({ position = "top", name = "mystatusbar" .. s,
    fg = beautiful.fg_normal, bg = beautiful.bg_normal })
    -- Add widgets to the statusbar - order matters
    mystatusbar[s]:widgets({
    mytaglist,
    --mytasklist,
    myiconbox,
    mypromptbox,
    mytasklist,
    --mpdwidget,
    cputext,
    cpugraphwidget,
    membartext,
    membarwidget,
    batterytext,
    mybatterymonitor,
    mytextbox,
    mylayoutbox[s],
    s == 1 and mysystray or nil
    mystatusbar[s].screen = s
    end
    --bottomStatusBar = {}
    --for s = 1, screen.count() do
    -- bottomStatusBar[s] = statusbar({ position = "bottom", name = "bottomStatusBar" .. s,
    -- fg = beautiful.fg_normal, bg = beautiful.bg_normal })
    -- -- Add widgets to the statusbar - order matters
    -- bottomStatusBar[s]:widgets({
    -- --mytaglist,
    -- mytasklist,
    -- --myiconbox,
    -- --mypromptbox,
    -- --testbox,
    -- --mytextbox,
    -- --mylayoutbox[s],
    -- --s == 1 and mysystray or nil
    -- bottomStatusBar[s].screen = s
    --end
    -- {{{ Mouse bindings
    awesome.mouse_add(mouse({ }, 3, function () awful.spawn(terminal) end))
    awesome.mouse_add(mouse({ }, 4, awful.tag.viewnext))
    awesome.mouse_add(mouse({ }, 5, awful.tag.viewprev))
    -- {{{ Key bindings
    -- Bind keyboard digits
    -- Compute the maximum number of digit we need, limited to 9
    keynumber = 0
    for s = 1, screen.count() do
    keynumber = math.min(9, math.max(#tags[s], keynumber));
    end
    for i = 1, keynumber do
    keybinding({ modkey }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end):add()
    keybinding({ modkey, "Control" }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    tags[screen][i].selected = not tags[screen][i].selected
    end
    end):add()
    keybinding({ modkey, "Shift" }, i,
    function ()
    local sel = client.focus
    if sel then
    if tags[sel.screen][i] then
    awful.client.movetotag(tags[sel.screen][i])
    end
    end
    end):add()
    keybinding({ modkey, "Control", "Shift" }, i,
    function ()
    local sel = client.focus
    if sel then
    if tags[sel.screen][i] then
    awful.client.toggletag(tags[sel.screen][i])
    end
    end
    end):add()
    end
    keybinding({ modkey }, "Left", awful.tag.viewprev):add()
    keybinding({ modkey }, "Right", awful.tag.viewnext):add()
    keybinding({ modkey }, "Escape", awful.tag.history.restore):add()
    -- Standard program
    keybinding({ modkey }, "Return", function () awful.spawn(terminal) end):add()
    keybinding({ }, "F4", function () awful.spawn(browser) end):add()
    keybinding({ modkey, "Control" }, "r", awesome.restart):add()
    keybinding({ modkey, "Shift" }, "q", awesome.quit):add()
    -- Client manipulation
    keybinding({ modkey }, "m", awful.client.maximize):add()
    keybinding({ modkey, "Shift" }, "c", function () client.focus:kill() end):add()
    keybinding({ modkey }, "d", function () awful.client.focusbyidx(1); client.focus:raise() end):add()
    keybinding({ modkey }, "f", function () awful.client.focusbyidx(-1); client.focus:raise() end):add()
    keybinding({ modkey, "Shift" }, "d", function () awful.client.swap(1) end):add()
    keybinding({ modkey, "Shift" }, "f", function () awful.client.swap(-1) end):add()
    keybinding({ modkey, "Control" }, "d", function () awful.screen.focus(1) end):add()
    keybinding({ modkey, "Control" }, "f", function () awful.screen.focus(-1) end):add()
    keybinding({ modkey, "Control" }, "space", awful.client.togglefloating):add()
    keybinding({ modkey, "Control" }, "Return", function () client.focus:swap(awful.client.master()) end):add()
    keybinding({ modkey }, "o", awful.client.movetoscreen):add()
    keybinding({ modkey }, "Tab", awful.client.focus.history.previous):add()
    keybinding({ modkey }, "u", awful.client.urgent.jumpto):add()
    keybinding({ modkey, "Shift" }, "r", function () client.focus:redraw() end):add()
    -- Layout manipulation
    keybinding({ modkey }, "l", function () awful.tag.incmwfact(0.05) end):add()
    keybinding({ modkey }, "h", function () awful.tag.incmwfact(-0.05) end):add()
    keybinding({ modkey, "Shift" }, "h", function () awful.tag.incnmaster(1) end):add()
    keybinding({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end):add()
    keybinding({ modkey, "Control" }, "h", function () awful.tag.incncol(1) end):add()
    keybinding({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end):add()
    keybinding({ modkey }, "space", function () awful.layout.inc(layouts, 1) end):add()
    keybinding({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end):add()
    -- Prompt
    keybinding({ modkey }, "F1", function ()
    awful.prompt.run({ prompt = "Run: " }, mypromptbox, awful.spawn, awful.completion.bash,
    os.getenv("HOME") .. "/.cache/awesome/history") end):add()
    keybinding({ modkey }, "F4", function ()
    awful.prompt.run({ prompt = "Run Lua code: " }, mypromptbox, awful.eval, awful.prompt.bash,
    os.getenv("HOME") .. "/.cache/awesome/history_eval") end):add()
    keybinding({ modkey, "Ctrl" }, "i", function ()
    if mypromptbox.text then
    mypromptbox.text = nil
    else
    mypromptbox.text = nil
    if client.focus.class then
    mypromptbox.text = "Class: " .. client.focus.class .. " "
    end
    if client.focus.instance then
    mypromptbox.text = mypromptbox.text .. "Instance: ".. client.focus.instance .. " "
    end
    if client.focus.role then
    mypromptbox.text = mypromptbox.text .. "Role: ".. client.focus.role
    end
    end
    end):add()
    --- Tabulous, tab manipulation
    keybinding({ modkey, "Control" }, "y", function ()
    local tabbedview = tabulous.tabindex_get()
    local nextclient = awful.client.next(1)
    if not tabbedview then
    tabbedview = tabulous.tabindex_get(nextclient)
    if not tabbedview then
    tabbedview = tabulous.tab_create()
    tabulous.tab(tabbedview, nextclient)
    else
    tabulous.tab(tabbedview, client.focus)
    end
    else
    tabulous.tab(tabbedview, nextclient)
    end
    end):add()
    keybinding({ modkey, "Shift" }, "y", tabulous.untab):add()
    keybinding({ modkey }, "y", function ()
    local tabbedview = tabulous.tabindex_get()
    if tabbedview then
    local n = tabulous.next(tabbedview)
    tabulous.display(tabbedview, n)
    end
    end):add()
    -- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on them
    keybinding({ modkey }, "t", awful.client.togglemarked):add()
    keybinding({ modkey, 'Shift' }, "t", function ()
    local tabbedview = tabulous.tabindex_get()
    local clients = awful.client.getmarked()
    if not tabbedview then
    tabbedview = tabulous.tab_create(clients[1])
    table.remove(clients, 1)
    end
    for k,c in pairs(clients) do
    tabulous.tab(tabbedview, c)
    end
    end):add()
    for i = 1, keynumber do
    keybinding({ modkey, "Shift" }, "F" .. i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    for k, c in pairs(awful.client.getmarked()) do
    awful.client.movetotag(tags[screen][i], c)
    end
    end
    end):add()
    end
    -- {{{ Hooks
    -- Hook function to execute when focusing a client.
    function hook_focus(c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_focus
    end
    end
    -- Hook function to execute when unfocusing a client.
    function hook_unfocus(c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_normal
    end
    end
    -- Hook function to execute when marking a client
    function hook_marked(c)
    c.border_color = beautiful.border_marked
    end
    -- Hook function to execute when unmarking a client
    function hook_unmarked(c)
    c.border_color = beautiful.border_focus
    end
    -- Hook function to execute when the mouse is over a client.
    function hook_mouseover(c)
    -- Sloppy focus, but disabled for magnifier layout
    if awful.layout.get(c.screen) ~= "magnifier" then
    client.focus = c
    end
    end
    -- Hook function to execute when a new client appears.
    function hook_manage(c)
    -- Set floating placement to be smart!
    c.floating_placement = "smart"
    if use_titlebar then
    -- Add a titlebar
    awful.titlebar.add(c, { modkey = modkey })
    end
    -- Add mouse bindings
    c:mouse_add(mouse({ }, 1, function (c) client.focus = c; c:raise() end))
    c:mouse_add(mouse({ modkey }, 1, function (c) c:mouse_move() end))
    c:mouse_add(mouse({ modkey }, 3, function (c) c:mouse_resize() end))
    -- New client may not receive focus
    -- if they're not focusable, so set border anyway.
    c.border_width = beautiful.border_width
    c.border_color = beautiful.border_normal
    client.focus = c
    -- Check if the application should be floating.
    local cls = c.class
    local inst = c.instance
    if floatapps[cls] then
    c.floating = floatapps[cls]
    elseif floatapps[inst] then
    c.floating = floatapps[inst]
    end
    -- Check application->screen/tag mappings.
    local target
    if apptags[cls] then
    target = apptags[cls]
    elseif apptags[inst] then
    target = apptags[inst]
    end
    if target then
    c.screen = target.screen
    awful.client.movetotag(tags[target.screen][target.tag], c)
    end
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- awful.client.setslave(c)
    -- Honor size hints
    c.honorsizehints = true
    end
    -- Hook function to execute when arranging the screen
    -- (tag switch, new client, etc)
    function hook_arrange(screen)
    local layout = awful.layout.get(screen)
    if layout then
    mylayoutbox[screen].text =
    "<bg image=\"/usr/share/awesome/icons/layouts/" .. awful.layout.get(screen) .. "w.png\" resize=\"true\"/>"
    else
    mylayoutbox[screen].text = "No layout."
    end
    -- If no window has focus, give focus to the latest in history
    if not client.focus then
    local c = awful.client.focus.history.get(screen, 0)
    if c then client.focus = c end
    end
    -- Uncomment if you want mouse warping
    local sel = client.focus
    if sel then
    local c_c = sel:coords()
    local m_c = mouse.coords()
    if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
    m_c.y < c_c.y or m_c.y >= c_c.y + c_c.height then
    if table.maxn(m_c.buttons) == 0 then
    mouse.coords({ x = c_c.x + 5, y = c_c.y + 5})
    end
    end
    end
    end
    -- Hook called every second
    function hook_timer ()
    -- For unix time_t lovers
    -- mytextbox.text = " " .. os.time() .. " time_t "
    -- Otherwise use:
    mytextbox.text = " " .. os.date() .. " "
    end
    -- Custom functions
    local function get_bat()
    local a = io.open("/sys/class/power_supply/BAT0/energy_full")
    for line in a:lines() do
    full = line
    end
    a:close()
    local b = io.open("/sys/class/power_supply/BAT0/energy_now")
    for line in b:lines() do
    now = line
    end
    b:close()
    batt=math.floor(now*100/full)
    mybatterymonitor:bar_data_add("bat",batt)
    end
    -- Set up some hooks
    awful.hooks.focus.register(hook_focus)
    awful.hooks.unfocus.register(hook_unfocus)
    awful.hooks.marked.register(hook_marked)
    awful.hooks.unmarked.register(hook_unmarked)
    awful.hooks.manage.register(hook_manage)
    awful.hooks.mouseover.register(hook_mouseover)
    awful.hooks.arrange.register(hook_arrange)
    awful.hooks.timer.register(1, hook_timer)
    awful.hooks.timer.register(5, get_bat)
    --startup script

    Same problem here. Also happens to me in wmii. I think if the WM puts the window in floating mode without telling it where to appear somethings will appear wrong.
    For me it's the Firefox Upload selection box.
    It doesn't happen in ratpoison, but you can tell the floating window is getting moved after it spawns. (ratpoison has editable rules for where to put these windows)
    Last edited by Procyon (2008-11-07 22:34:40)

  • In need of some help with awesome

    So I got it installed, and I started editing everything, but what I can't seem to figure out, is how to add items to the root-esque "awesome-menu". I see the lines of code in rc.lua but from there I'm lost to say the least lol. The documentation on the site seems to be outdated as well; seeing as its not even in the same syntax, let alone the same language in all probability.
    If somebody would be so kind as to post their menu setup, or at least give me a point in the right direction id be really thankful.

    the way i figured it out was by examining other peoples rc.lua  (available at awesome wiki)
    as an example i will show you mine..
    -- Include awesome libraries, with lots of useful function!
    require("awful")
    require("beautiful")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    -- The default is a dark theme
    theme_path = "/usr/share/awesome/themes/default/theme"
    -- Uncommment this for a lighter theme
    -- theme_path = "/usr/share/awesome/themes/sky/theme"
    -- Actually load theme
    beautiful.init(theme_path)
    -- These are used later as the default apps to run.
    terminal = "gnome-terminal"
    editor = os.getenv("EDITOR") or "nano"
    editor_cmd = terminal .. " -e " .. editor
    browser = "/usr/bin/swiftfox"
    gimp = "/usr/bin/gimp"
    transmission = "/usr/bin/transmission"
    -- Default modkey.
    -- 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.
    -- However, you can use another modifier like Mod1, but it may interact with others.
    modkey = "Mod4"
    -- Table of layouts to cover with awful.layout.inc, order matters.
    layouts =
    "tile",
    "tileleft",
    "tilebottom",
    "tiletop",
    "fairh",
    "fairv",
    "magnifier",
    "max",
    "fullscreen",
    "spiral",
    "dwindle",
    "floating"
    -- Table of clients that should be set floating. The index may be either
    -- the application class or instance. The instance is useful when running
    -- a console app in a terminal like (Music on Console)
    -- xterm -name mocp -e mocp
    floatapps =
    -- by class
    ["MPlayer"] = true,
    ["pinentry"] = true,
    ["gimp"] = true,
    ["gimp-2.6"] = true,
    -- by instance
    ["mocp"] = true
    -- Applications to be moved to a pre-defined tag by class or instance.
    -- Use the screen and tags indices.
    apptags =
    -- ["Firefox"] = { screen = 1, tag = 2 },
    -- ["mocp"] = { screen = 2, tag = 4 },
    -- Define if we want to use titlebar on all applications.
    use_titlebar = false
    -- {{{ Tags
    -- Define tags table.
    tags = {}
    for s = 1, screen.count() do
    -- Each screen has its own tag table.
    tags[s] = {}
    -- Create 6 tags per screen.
    tags[1][1] = tag({ name = "One", layout = layouts[6] })
    tags[1][2] = tag({ name = "Two", layout = layouts[6] })
    tags[1][3] = tag({ name = "Three", layout = layouts[6] })
    tags[1][4] = tag({ name = "Four", layout = layouts[6] })
    tags[1][5] = tag({ name = "Five", layout = layouts[6] })
    tags[1][6] = tag({ name = "Six", layout = layouts[6] })
    -- Add tags to screen one by one
    for tagnumber = 1, 6 do
    tags[s][tagnumber].screen = s
    end
    -- I'm sure you want to see at least one tag.
    tags[s][1].selected = true
    end
    -- {{{ Wibox
    -- Create a textbox widget
    mytextbox = widget({ type = "textbox", align = "right" })
    -- Set the default text in textbox
    mytextbox.text = "<b><small> " .. AWESOME_RELEASE .. " </small></b>"
    -- Create a laucher widget and a main menu
    myawesomemenu = {
    { "manual", terminal .. "man awesome" },
    { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
    { "restart", awesome.restart },
    { "quit", awesome.quit }
    mymainmenu = awful.menu.new({ items = { { "web browser", browser },
    { "transmission", transmission },
    { "terminal", terminal },
    { "gimp", gimp },
    { "awesome", myawesomemenu, beautiful.awesome_icon }
    mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
    menu = mymainmenu })
    -- Create a systray
    mysystray = widget({ type = "systray", align = "right" })
    -- Create a wibox for each screen and add it
    mywibox = {}
    mypromptbox = {}
    mylayoutbox = {}
    mytaglist = {}
    mytaglist.buttons = { button({ }, 1, awful.tag.viewonly),
    button({ modkey }, 1, awful.client.movetotag),
    button({ }, 3, function (tag) tag.selected = not tag.selected end),
    button({ modkey }, 3, awful.client.toggletag),
    button({ }, 4, awful.tag.viewnext),
    button({ }, 5, awful.tag.viewprev) }
    mytasklist = {}
    mytasklist.buttons = { button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ }, 3, function () awful.menu.clients({ width=250 }) end),
    button({ }, 4, function () awful.client.focus.byidx(1) end),
    button({ }, 5, function () awful.client.focus.byidx(-1) end) }
    for s = 1, screen.count() do
    -- Create a promptbox for each screen
    mypromptbox[s] = widget({ type = "textbox", align = "left" })
    -- Create an imagebox widget which will contains an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    mylayoutbox[s] = widget({ type = "imagebox", align = "right" })
    mylayoutbox[s]:buttons({ button({ }, 1, function () awful.layout.inc(layouts, 1) end),
    button({ }, 3, function () awful.layout.inc(layouts, -1) end),
    button({ }, 4, function () awful.layout.inc(layouts, 1) end),
    button({ }, 5, function () awful.layout.inc(layouts, -1) end) })
    -- Create a taglist widget
    mytaglist[s] = awful.widget.taglist.new(s, awful.widget.taglist.label.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist.new(function(c)
    return awful.widget.tasklist.label.currenttags(c, s)
    end, mytasklist.buttons)
    -- Create the wibox
    mywibox[s] = wibox({ position = "top", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = { mylauncher,
    mytaglist[s],
    mytasklist[s],
    mypromptbox[s],
    mytextbox,
    mylayoutbox[s],
    s == 1 and mysystray or nil }
    mywibox[s].screen = s
    end
    -- {{{ Mouse bindings
    awesome.buttons({
    button({ }, 3, function () mymainmenu:toggle() end),
    button({ }, 4, awful.tag.viewnext),
    button({ }, 5, awful.tag.viewprev)
    -- {{{ Key bindings
    -- Bind keyboard digits
    -- Compute the maximum number of digit we need, limited to 9
    keynumber = 0
    for s = 1, screen.count() do
    keynumber = math.min(9, math.max(#tags[s], keynumber));
    end
    for i = 1, keynumber do
    keybinding({ modkey }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end):add()
    keybinding({ modkey, "Control" }, i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    tags[screen][i].selected = not tags[screen][i].selected
    end
    end):add()
    keybinding({ modkey, "Shift" }, i,
    function ()
    if client.focus then
    if tags[client.focus.screen][i] then
    awful.client.movetotag(tags[client.focus.screen][i])
    end
    end
    end):add()
    keybinding({ modkey, "Control", "Shift" }, i,
    function ()
    if client.focus then
    if tags[client.focus.screen][i] then
    awful.client.toggletag(tags[client.focus.screen][i])
    end
    end
    end):add()
    end
    keybinding({ modkey }, "Left", awful.tag.viewprev):add()
    keybinding({ modkey }, "Right", awful.tag.viewnext):add()
    keybinding({ modkey }, "Escape", awful.tag.history.restore):add()
    -- XF86Audio
    keybinding( {none}, "XF86AudioMute", function () awful.util.spawn("amixer -c 0 set Master toggle") end):add()
    keybinding( {none}, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -c 0 set Master 1%+") end):add()
    keybinding( {none}, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -c 0 set Master 1%-") end):add()
    -- Standard program
    keybinding({ modkey }, "Return", function () awful.util.spawn(terminal) end):add()
    keybinding({ modkey, "Control" }, "r", function ()
    mypromptbox[mouse.screen].text =
    awful.util.escape(awful.util.restart())
    end):add()
    keybinding({ modkey, "Shift" }, "q", awesome.quit):add()
    -- Client manipulation
    keybinding({ modkey }, "m", awful.client.maximize):add()
    keybinding({ modkey }, "f", function () if client.focus then client.focus.fullscreen = not client.focus.fullscreen end end):add()
    keybinding({ modkey, "Shift" }, "c", function () if client.focus then client.focus:kill() end end):add()
    keybinding({ modkey }, "j", function () awful.client.focus.byidx(1); if client.focus then client.focus:raise() end end):add()
    keybinding({ modkey }, "k", function () awful.client.focus.byidx(-1); if client.focus then client.focus:raise() end end):add()
    keybinding({ modkey, "Shift" }, "j", function () awful.client.swap.byidx(1) end):add()
    keybinding({ modkey, "Shift" }, "k", function () awful.client.swap.byidx(-1) end):add()
    keybinding({ modkey, "Control" }, "j", function () awful.screen.focus(1) end):add()
    keybinding({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end):add()
    keybinding({ modkey, "Control" }, "space", awful.client.togglefloating):add()
    keybinding({ modkey, "Control" }, "Return", function () if client.focus then client.focus:swap(awful.client.getmaster()) end end):add()
    keybinding({ modkey }, "o", awful.client.movetoscreen):add()
    keybinding({ modkey }, "Tab", awful.client.focus.history.previous):add()
    keybinding({ modkey }, "u", awful.client.urgent.jumpto):add()
    keybinding({ modkey, "Shift" }, "r", function () if client.focus then client.focus:redraw() end end):add()
    -- Layout manipulation
    keybinding({ modkey }, "l", function () awful.tag.incmwfact(0.05) end):add()
    keybinding({ modkey }, "h", function () awful.tag.incmwfact(-0.05) end):add()
    keybinding({ modkey, "Shift" }, "h", function () awful.tag.incnmaster(1) end):add()
    keybinding({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end):add()
    keybinding({ modkey, "Control" }, "h", function () awful.tag.incncol(1) end):add()
    keybinding({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end):add()
    keybinding({ modkey }, "space", function () awful.layout.inc(layouts, 1) end):add()
    keybinding({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end):add()
    -- Prompt
    keybinding({ modkey }, "F1", function ()
    awful.prompt.run({ prompt = "Run: " }, mypromptbox[mouse.screen], awful.util.spawn, awful.completion.bash,
    awful.util.getdir("cache") .. "/history")
    end):add()
    keybinding({ modkey }, "F4", function ()
    awful.prompt.run({ prompt = "Run Lua code: " }, mypromptbox[mouse.screen], awful.util.eval, awful.prompt.bash,
    awful.util.getdir("cache") .. "/history_eval")
    end):add()
    keybinding({ modkey, "Ctrl" }, "i", function ()
    local s = mouse.screen
    if mypromptbox[s].text then
    mypromptbox[s].text = nil
    elseif client.focus then
    mypromptbox[s].text = nil
    if client.focus.class then
    mypromptbox[s].text = "Class: " .. client.focus.class .. " "
    end
    if client.focus.instance then
    mypromptbox[s].text = mypromptbox[s].text .. "Instance: ".. client.focus.instance .. " "
    end
    if client.focus.role then
    mypromptbox[s].text = mypromptbox[s].text .. "Role: ".. client.focus.role
    end
    end
    end):add()
    -- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on them
    keybinding({ modkey }, "t", awful.client.togglemarked):add()
    for i = 1, keynumber do
    keybinding({ modkey, "Shift" }, "F" .. i,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    for k, c in pairs(awful.client.getmarked()) do
    awful.client.movetotag(tags[screen][i], c)
    end
    end
    end):add()
    end
    -- {{{ Hooks
    -- Hook function to execute when focusing a client.
    awful.hooks.focus.register(function (c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_focus
    end
    end)
    -- Hook function to execute when unfocusing a client.
    awful.hooks.unfocus.register(function (c)
    if not awful.client.ismarked(c) then
    c.border_color = beautiful.border_normal
    end
    end)
    -- Hook function to execute when marking a client
    awful.hooks.marked.register(function (c)
    c.border_color = beautiful.border_marked
    end)
    -- Hook function to execute when unmarking a client.
    awful.hooks.unmarked.register(function (c)
    c.border_color = beautiful.border_focus
    end)
    -- Hook function to execute when the mouse enters a client.
    awful.hooks.mouse_enter.register(function (c)
    -- Sloppy focus, but disabled for magnifier layout
    if awful.layout.get(c.screen) ~= "magnifier"
    and awful.client.focus.filter(c) then
    client.focus = c
    end
    end)
    -- Hook function to execute when a new client appears.
    awful.hooks.manage.register(function (c)
    if use_titlebar then
    -- Add a titlebar
    awful.titlebar.add(c, { modkey = modkey })
    end
    -- Add mouse bindings
    c:buttons({
    button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ modkey }, 1, function (c) c:mouse_move() end),
    button({ modkey }, 3, function (c) c:mouse_resize() end)
    -- New client may not receive focus
    -- if they're not focusable, so set border anyway.
    c.border_width = beautiful.border_width
    c.border_color = beautiful.border_normal
    -- Check if the application should be floating.
    local cls = c.class
    local inst = c.instance
    if floatapps[cls] then
    c.floating = floatapps[cls]
    elseif floatapps[inst] then
    c.floating = floatapps[inst]
    end
    -- Check application->screen/tag mappings.
    local target
    if apptags[cls] then
    target = apptags[cls]
    elseif apptags[inst] then
    target = apptags[inst]
    end
    if target then
    c.screen = target.screen
    awful.client.movetotag(tags[target.screen][target.tag], c)
    end
    -- Do this after tag mapping, so you don't see it on the wrong tag for a split second.
    client.focus = c
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- awful.client.setslave(c)
    -- Honor size hints: if you want to drop the gaps between windows, set this to false.
    -- c.honorsizehints = false
    end)
    -- Hook function to execute when arranging the screen.
    -- (tag switch, new client, etc)
    awful.hooks.arrange.register(function (screen)
    local layout = awful.layout.get(screen)
    if layout then
    mylayoutbox[screen].image = image(beautiful["layout_" .. layout])
    else
    mylayoutbox[screen].image = nil
    end
    -- Give focus to the latest client in history if no window has focus
    -- or if the current window is a desktop or a dock one.
    if not client.focus then
    local c = awful.client.focus.history.get(screen, 0)
    if c then client.focus = c end
    end
    -- Uncomment if you want mouse warping
    if client.focus then
    local c_c = client.focus:fullgeometry()
    local m_c = mouse.coords()
    if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
    m_c.y < c_c.y or m_c.y >= c_c.y + c_c.height then
    if table.maxn(m_c.buttons) == 0 then
    mouse.coords({ x = c_c.x + 5, y = c_c.y + 5})
    end
    end
    end
    end)
    -- Hook called every second
    awful.hooks.timer.register(1, function ()
    -- For unix time_t lovers
    -- mytextbox.text = " " .. os.time() .. " time_t "
    -- Otherwise use:
    mytextbox.text = " " .. os.date() .. " "
    end)
    first, notice this part
    -- These are used later as the default apps to run.
    terminal = "gnome-terminal"
    editor = os.getenv("EDITOR") or "nano"
    editor_cmd = terminal .. " -e " .. editor
    browser = "/usr/bin/swiftfox"
    gimp = "/usr/bin/gimp"
    transmission = "/usr/bin/transmission"
    then this part
    -- Create a laucher widget and a main menu
    myawesomemenu = {
    { "manual", terminal .. "man awesome" },
    { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
    { "restart", awesome.restart },
    { "quit", awesome.quit }
    mymainmenu = awful.menu.new({ items = { { "web browser", browser },
    { "transmission", transmission },
    { "terminal", terminal },
    { "gimp", gimp },
    { "awesome", myawesomemenu, beautiful.awesome_icon }
    mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
    menu = mymainmenu })
    Last edited by tjwoosta (2009-01-03 05:22:55)

  • Need help modifying third-party "template" in DW! 3 questions [subject edited by moderator]

    This is re:398 nature template
    I'm using CC, if that matters.
    I'm amateur, please be kind If you will kindly reference the template, I will compensate with appreciation.
    Problem A.) I have tried for HOURS--cannot make this image fill the page (I plan to have a different background image on different pages). I read around and pasted in it's exact size, etc. It doesn't move and it's cut off top & bottom. Left & right are perfect. Here is where I am so far:
    <div class="image-section">
      <div class="image-container">
      <img src="images/cover_A.jpg" id="home-img" class="main-img inactive" alt="Home" height="2700" width="3946" >
      <img src="images/main_modified.jpg" id="about-img" class="inactive" alt="About">
      <img src="images/main_modified.jpg" id="news-img" class="inactive" alt="news">
      <img src="images/main_modified.jpg" id="excerpt-img" class="inactive" alt="excerpt">
      <img src="images/main_modified.jpg" id="purchase-img" class="inactive" alt="Contact">
      </div>
      </div>
    .image-section {
      position: fixed;
    .image-container {
      position: relative;
    max-height:2700px;
    max-width:3946px;
    padding: 100px 5px 2px;
    .image-container img {
      position:relative;
    height:2700px;
    width:3946px;
    padding: 100px 5px 2px;
    Problem B.) This somewhat transparent block..I need to move it. I can't figure out what it's called and Dreamweaver hardly lets me select it.
    <div class="row">
      <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 col-lg-offset-6 col-md-offset-6 templatemo-content-wrapper">
      <div class="templatemo-content">
    <section id="home-text" class="active templatemo-content-section">
    I'm not even sure if this applies to it:
    .templatemo-site-title a, .templatemo-site-title a:hover {
    color: #fff;
    text-decoration: none;
    font-family: raleway;
    font-weight: 500;
    font-size: 37pt;
    font-style: normal;
    img.slide {
      width: 100%;
      z-index: -9999999;
      position: absolute;
    .active {
      display: block;
    .inactive {
      left: 703px;
      display: none;
    Problem C.) Probably simple: I was able to get the menu horizontal (actually through this forum's help) how can I get it to center on the top of the page?
    .menu {
      position: fixed;
      width:auto;
      z-index: 1;
      top: 28px;
    #menu-list {
      background-color: rgba(0, 0, 0,0.5);
      font-size:18px;
      padding: 0;
    float: left;
    list-style: none;
    width: 100%;
    #menu-list > li {
    float:left;
    #menu-list > li > a {
      font-family: 'Raleway', sans-serif;
      padding: 10px 50px 10px 50px;
      text-decoration: none;
      display: block;
      color: #fff;
    font-weight:bold;
    If this is totally messed up (possibly a great chance of this..), don't be shy to politely ask or see the template! I am desperate and will reply immediately. THANKS SO MUCH! The floating white square (I want to use it on some pages, but in a different place) and the image being cut off are particularly painful. I am sure I'll run into other things, but I have exhausted my time on the problems above and am stuck

    Hi! Oh I am so glad someone replied!
    Unfortunately, it's not on a server yet. I can paste the full code here, if that's ok.
    <!DOCTYPE html>
    <!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
    <!--[if IE 7]>        <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
    <!--[if IE 8]>        <html class="no-js lt-ie9"> <![endif]-->
    <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
        <head>
            <meta charset="utf-8">
            <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
            <title>AdobeForumHelpPlaceholder</title>
            <meta name="keywords" content="" />
            <meta name="description" content="" />
    <!--
    Nature Template
    http://www.templatemo.com/preview/templatemo_398_nature
    -->
            <meta name="viewport" content="width=device-width">
            <!-- Google Web Font Embed -->
            <link href='http://fonts.googleapis.com/css?family=Raleway:400,600,500,300,700' rel='stylesheet' type='text/css'>
            <link rel="stylesheet" href="css/bootstrap.min.css">
            <link rel="stylesheet" href="css/templatemo_main.css">
        <!--The following script tag downloads a font from the Adobe Edge Web Fonts server for use within the web page. We recommend that you do not modify it.--><script>var __adobewebfontsappname__="dreamweaver"</script><script src="http://use.edgefonts.net/raleway:n1,n5:default.js" type="text/javascript"></script>
    </head>
        <body>
            <div id="main-wrapper">
                <!--[if lt IE 7]>
                    <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a rel="nofollow" href="http://browsehappy.com">upgrade your browser</a> or <a rel="nofollow" href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
                <![endif]-->
                <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 affix text-center" style="z-index: 1;">
    <ul id="responsive" style="display:none" class="hidden-lg hidden-md"></ul><!-- /.responsive -->
                </div>
                <div class="menu visible-md visible-lg">
                    <ul id="menu-list">
                        <li class="active home-menu"><a href="#home">Home</a></li>
                        <li class="about-menu"><a href="#about">The Author</a></li>
                        <li class="news-menu"><a href="#news">News Release</a></li>
                        <li class="excerpt-menu"><a href="#excerpt">Excerpt</a></li>
                        <li class="purchase-menu"><a href="#purchase">Buy the Book!</a></li>
                    </ul>
                </div><!-- /.menu -->
                <div class="image-section">
                    <div class="image-container">
                      <img src="images/cover_A.jpg" id="home-img" class="main-img inactive" alt="Home" height="2700" width="3946" >
                        <img src="images/main_modified.jpg" id="about-img" class="inactive" alt="About">
                        <img src="images/main_modified.jpg" id="news-img"  class="inactive" alt="news">
                        <img src="images/main_modified.jpg" id="excerpt-img" class="inactive" alt="excerpt">
                        <img src="images/main_modified.jpg" id="purchase-img" class="inactive" alt="Contact">
                    </div>
                </div>
                      <div class="row">
                    <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 col-lg-offset-6 col-md-offset-6 templatemo-content-wrapper">
                        <div class="templatemo-content">
    <section id="home-text" class="active templatemo-content-section">
                  <h1 class="text-center">Welcome</h1>
                  <div class="col-sm-12 col-md-12 col-lg-12">
    <p>Quisque non tempus lacus, non placerat arcu. Donec nibh ipsum, pharetra nec pellentesque at, mattis ut lorem. Fusce dapibus tristique neque, eget ultricies lorem tincidunt vitae. Aliquam erat volutpat. Integer vulputate ultricies nisl, sed vehicula justo accumsan non.</p>
              </div>
                          </section><!-- /.home-text -->
                            <section id="about-text" class="inactive">
                                <h2 class="text-center">About Us</h2>
                                <div class="col-sm-6 col-md-6">
                                    <p>Nullam sit amet enim vitae magna malesuada pharetra. Etiam sodales consequat purus non vulputate. Aliquam erat volutpat. Pellentesque rutrum, ligula vel fermentum imperdiet, lectus eros volutpat urna, id mollis dolor justo vulputate justo ut sit amet ante luctus metus.</p>
                                </div>
                                <div class="col-sm-6 col-md-6">
                                    <p>Vestibulum sodales nulla eu tortor condimentum venenatis. In tellus ipsum, ullamcorper vitae justo sit amet, mattis consequat tortor. Suspendisse risus urna, posuere id orci ut, facilisis accumsan ipsum. Sed vehicula lacinia porta. Vivamus faucibus dui nulla, a aliquet nunc porta in.</p>
                                </div>
                            </section><!-- /.about-text -->
                            <section id="news-text" class="inactive">
                                <h2 class="text-center">News Release</h2>
                                <div class="col-sm-4 col-md-4">
                                    <h3>Web Design</h3>
                                    <p>Integer posuere quam a orci tempor, ut eleifend est vulputate. Nullam vitae lectus dui. Donec vulputate ac tortor id convallis. Sed nisi mauris, laoreet vitae lacus at, viverra viverra neque. Curabitur nec aliquam lacus.</p>
                                </div>
                                <div class="col-sm-4 col-md-4">
                                    <h3>Mobile Ready</h3>
                                    <p>This is a <a href="#">mobile website template</a> that can be viewed in mobile phones. Maecenas aliquam vitae urna sit amet elementum. Cras consequat libero nisi, vel condimentum nibh eleifend ut. Donec consequat arcu id diam viverra.</p>
                                </div>
                                <div class="col-sm-4 col-md-4">
                                    <h3>Pixel Perfect</h3>
                                    <p>Vestibulum sodales nulla eu tortor condimentum venenatis. In tellus ipsum, ullamcorper vitae justo sit amet, mattis consequat tortor. Suspendisse risus urna, posuere id orci ut, facilisis accumsan ipsum. Sed vehicula lacinia porta.</p>
                                </div>
                            </section><!-- /.news-text -->
                            <section id="excerpt-text" class="inactive">
                                <div class="col-sm-12 col-md-12">
                                    <h2>Excerpt</h2>
                                    <p>Aenean quis semper metus. Maecenas adipiscing, leo a facilisis tempor, mi quam feugiat eros, ullamcorper porttitor elit turpis ac risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Suspendisse non sem a leo mattis dapibus. Duis vel ornare arcu. Quisque at malesuada tortor.</p>
                                    <p>Quisque non tempus lacus, non placerat arcu. Donec nibh ipsum, pharetra nec pellentesque at, mattis ut lorem. Fusce dapibus tristique neque, eget ultricies lorem tincidunt vitae. Aliquam erat volutpat. Integer vulputate ultricies nisl, sed vehicula justo accumsan non.</p>
                                </div>
                            </section><!-- /.excerpt-text -->
                            <section id="purchase-text" class="inactive">
                                <div class="col-sm-12 col-md-12">
                                    <div class="row">
                                        <div class="col-sm-12 col-md-12"><h2>Contact</h2></div>
                                        <div class="clearfix"></div>
                                    </div>
                                    <div class="row">
                                        <div class="col-sm-6 col-md-6">
                                            <div id="map-canvas"></div>
                                            <p>120 Aenean quis semper. Maecenas adipiscing, facilisis tempor, mi quam feugiat 10450</p>
                                        </div>
                                        <div class="col-sm-6 col-md-6">
                                            <form action="#" method="post">
                                                    <div class="form-group">
                                                        <!--<label for="contact_name">Name:</label>-->
                                                        <input type="text" id="contact_name" class="form-control" placeholder="Name" />
                                                    </div>
                                                    <div class="form-group">
                                                        <!--<label for="contact_email">Email:</label>-->
                                                        <input type="text" id="contact_email" class="form-control" placeholder="Email Address" />
                                                    </div>
                                                    <div class="form-group">
                                                        <!--<label for="contact_message">Message:</label>-->
                                                        <textarea id="contact_message" class="form-control" rows="9" placeholder="Write a message"></textarea>
                                                    </div>
                                                    <button type="submit" class="btn btn-primary">Send</button>
                                            </form>
                                        </div>
                                        <div class="clearfix"></div>
                                    </div>
                                </div>
                            </section><!-- /.purchase-text -->
                      </div><!-- /.templatemo-content -->
                    </div><!-- /.templatemo-content-wrapper -->
                </div>
    <!-- /.row -->
                <div class="row">
                    <div class="image-container">
                      <p class="footer-text">Copyright &copy; 2015</p>
                    </div><!-- /.footer -->
                </div>
        </div><!-- /#main-wrapper -->
            <div id="preloader">
                <div id="status"> </div>
            </div><!-- /#preloader -->
            <script src="js/jquery.min.js"></script>
            <script src="js/jquery.backstretch.min.js"></script>
            <script src="js/templatemo_script.js"></script>
            <!-- templatemo 398 nature -->
        </body>
    </html>      
    Nature Template
    http://www.templatemo.com/preview/templatemo_398_nature
    body, html { overflow-x: hidden; }
    body {
        font-size: 1em;
        line-height: 1.4;
        font-family: 'Raleway', sans-serif;
        font-style: normal;
        -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
        -webkit-text-size-adjust: 100%;
    h1, h2, h3, h4, h5, h6, span, p { font-family: 'Raleway', sans-serif; }
    hr {
        display: block;
        height: 1px;
        border: 0;
        border-top: 1px solid #ccc;
        margin: 1em 0;
        padding: 0;
    img {
        vertical-align: middle;
    /* Preloader */
    #preloader {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: #fff; /* change if the mask should have another color then white */
        z-index: 99; /* makes sure it stays on top */
    #status {
        width: 200px;
        height: 200px;
        position: absolute;
        left: 50%; /* centers the loading animation horizontally one the screen */
        top: 50%; /* centers the loading animation vertically one the screen */
        background-image: url(../images/status.gif); /* path to your loading animation */
        background-repeat: no-repeat;
        background-position: center;
        margin: -100px 0 0 -100px; /* is width and height divided by two */
    /* General */
    #main-wrapper {
        overflow: hidden;
    .templatemo-site-title {
        color: #fff !important;
        text-shadow: 0px 2px 3px rgba(0, 0, 0, 1);
        font-size: 48px;
    .templatemo-site-title a, .templatemo-site-title a:hover {
        color: #fff;
        text-decoration: none;
        font-family: raleway;
        font-weight: 500;
        font-size: 37pt;
        font-style: normal;
    img.slide {
        width: 100%;
        z-index: -9999999;
        position: absolute;
    .active {
        display: block;
    .inactive {
        left: 703px;
        display: none;
    .image-section {
        position: fixed;
    .image-container {
        position: relative;
        max-height:2700px;
        max-width:3946px;
        padding: 100px 5px 2px;
    .image-container img {
        position:relative;
        height:2700px;
        width:3946px;
        padding: 100px 5px 2px;
    .templatemo-content {
        position: static;
        overflow: hidden;
        margin-top: 36%;
    .templatemo-content section {
        font-family: 'Raleway', sans-serif;
        position: relative;
        overflow: hidden;
        top: 0;
        background-color: rgba(255,255,255,0.75);
        padding-bottom: 20px;
    .templatemo-content-wrapper {
        overflow: hidden;
    .templatemo-content h2 {
        color: #000;
        font-family: 'Raleway', sans-serif;
    .templatemo-content p {
        font-family: 'Raleway', sans-serif;
        color: #000;
        font-size: 16px;
    .menu {
        position: fixed;
        width:auto;
        z-index: 1;
        top: 28px;
    #menu-list {
        background-color: rgba(0, 0, 0,0.5);
        font-size:18px;
        padding: 0;
        float: left;
        list-style: none;
        width: 100%;
    #menu-list > li {
        float:left;
    #menu-list > li > a {
        font-family: 'Raleway', sans-serif;
        padding: 10px 50px 10px 50px;
        text-decoration: none;
        display: block;
        color: #fff;
        font-weight:bold;
    #menu-list > .active > a,
    #menu-list > li > a:hover {
        background-color: rgba(255,255,255,0.25);
    #responsive {
        font-size: 16px;
        padding: 0;
        background-color: rgba(0,0,0,0.5);
    #responsive li {
        display: block;
    #responsive li a {
        font-family: 'Raleway', sans-serif;
        color: #fff;
        text-decoration: none;
        padding: 10px 0;
        display: block;
    #responsive > .active > a,
    #responsive li a:hover {
        background-color: rgba(0,0,0,0.5);
    #map-canvas {
        height: 256px;
        margin-bottom: 10px;
    .templatemo-content {
        padding-bottom: 6%;
    .footer {
        overflow: hidden;
        position: fixed;
        bottom: 10px;
    .footer-text {
        font-family: 'Raleway', sans-serif;
        color: #fff;
        text-shadow: 0px 2px 3px rgba(0, 0, 0, 1);
        margin-left: 30px;
        font-size: 14px;
    .footer-text a, .footer-text a:hover {
        color: #fff;
        text-decoration: none;
    #menu-list .about-menu a {
    @media (max-width: 992px) {
        .footer {
            overflow:hidden;
            position:static;
            text-align: center;
        .footer-text {
            margin-left: 0;
    bootstrap
    * Bootstrap v3.1.1 (http://getbootstrap.com)
    * Copyright 2011-2014 Twitter, Inc.
    * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
    /*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}bod y{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,s ummary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:basel ine}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{backgroun d:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0 ;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}sv g:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}cod e,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select, textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-tr ansform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor: pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0; padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:borde r-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit- outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-siz ing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]:: -webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appeara nce:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{bor der-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important; box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:av oid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}s elect{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000! important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:bor der-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing :border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-famil y:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;backgro und-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-hei ght:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decora tion:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.i mg-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%; height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571 43;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50% }hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidde n;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inheri t;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;marg in-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4 ,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal }.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.t ext-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-p rimary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c} .text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.tex t-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534 }.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071 a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-in fo{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{backgroun d-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f 2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40 px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-lef t:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px ;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font -weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellip sis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border -right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-styl e:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Couri er New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius :4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;colo r:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:tran sparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{marg in-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-lef t:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col -xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col -sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col -md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col -lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col -xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-x s-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;p adding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.c ol-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-x s-11{width:92.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width: 66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667% }.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{w idth:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:92.66666667%}.col-xs-pul l-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs -pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col -xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}. col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-p ush-11{left:92.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs -push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs -push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs -push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-of fset-12{margin-left:100%}.col-xs-offset-11{margin-left:92.66666667%}.col-xs-offset-10{marg in-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.6666 6667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-o ffset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset- 3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8 .33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,. col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col- sm-11{width:92.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width :66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667 %}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{ width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:92.66666667%}.col-sm-pu ll-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-s m-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.co l-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%} .col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm- push-11{left:92.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-s m-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-s m-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-s m-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-o ffset-12{margin-left:100%}.col-sm-offset-11{margin-left:92.66666667%}.col-sm-offset-10{mar gin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.666 66667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm- offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset -3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left: 8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,. col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col- md-11{width:92.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width :66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667 %}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{ width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:92.66666667%}.col-md-pu ll-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-m d-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.co l-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%} .col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md- push-11{left:92.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-m d-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-m d-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-m d-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-o ffset-12{margin-left:100%}.col-md-offset-11{margin-left:92.66666667%}.col-md-offset-10{mar gin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.666 66667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md- offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset -3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left: 8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7, .col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col -lg-11{width:92.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{widt h:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.6666666 7%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1 {width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:92.66666667%}.col-lg-p ull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col- lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.c ol-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667% }.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg -push-11{left:92.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col- lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col- lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col- lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg- offset-12{margin-left:100%}.col-lg-offset-11{margin-left:92.66666667%}.col-lg-offset-10{ma rgin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66 666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg -offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offse t-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left :8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transpa rent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbo dy>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{paddi ng:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.tabl e>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgro up+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table> tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.t able-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.tabl e-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th, .table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border :1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.tab le-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background -color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-co lor:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,. table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody> tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td ,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoo t>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover >tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.acti ve:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success ,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>t foot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.s uccess>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th {background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th. success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>t h{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr >td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>th ead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.ta ble>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>t r>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.t able-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.tab le>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody> tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warnin g>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.tab le>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.ta ble-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tb ody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr >td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,. table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot> tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th {background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.d anger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{ba ckground-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overf low-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-res ponsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>t foot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.tabl e-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{borde r:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bor dered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.t able-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered> tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-l eft:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bo rdered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.ta ble-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tb ody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right :0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-borde red>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table -responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;mar gin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;fo nt-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{- webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=r adio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;widt h:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]: focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-si ze:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34 px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-im age:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:- ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form- control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{he ight:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.fo rm-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px ;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margi n-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bo ttom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.c heckbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled], input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled ],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-he ight:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;pa dding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-h eight:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position: relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height :34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-succe ss .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warni ng .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{dis play:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align :middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-we ight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;bord er:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-mo z-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn .active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decora tion:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit- box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color :#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.bt n-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[dis abled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disa bled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[di sabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[d isabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca; border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primar y.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.bt n-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[dis abled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disa bled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[di sabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[d isabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb8 5c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-suc cess.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.bt n-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[dis abled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disa bled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[di sabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[d isabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de; border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.op en .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-i nfo:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fi eldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad 4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-war ning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.bt n-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[dis abled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disa bled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[di sabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[d isabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534 f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger. active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn -danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabl ed],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disable d] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disab led] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disa bled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor :pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link, .btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover, .btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn- link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding :5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding: 1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%; padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn -block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0 ;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{p osition:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons -halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregu lar) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyp hicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antiali ased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon -plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{ content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content :"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"} .glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphico n-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empt y:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{con tent:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e01 1"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{con

  • Aperture is displaying the metering grid on my images - how do I turn this off?

    Aperture is displaying the metering grid from my camera - how do I turn this off?  If I use the loop the grid is not there.....any thoughts whould be appericated.

    Does the command "View > Show Focus Points" disable the grid? I don't know of any other control that would show the metering details.

Maybe you are looking for

  • Stock Aging report with current date

    Dear Experts Can we able to take stock aging report with current date? Thanks&Regards, Vinoth Raj K

  • Movie with BEST POSSIBLE QUALITY on DVD

    Hi, I completed a short family movie (15 min) in PAL format with Final Cut Express HD. How do I get it from there onto a DVD in PAL format with the BEST POSSIBLE QUALITY? Thank you in advance for your help, Thomas Dual 2.7 GHz Power Mac G5   Mac OS X

  • RAM issues when plugging in external devices

    When I plug external devices in such as a USB drive, iPhone or a Firewire external HDD the RAM usage on my Mac shoots up beyond normal levels. This has only started happening recently. Say for example I plug in my iPhone to sync it. With only iTunes

  • Mac Pro 5,1 processor compatibility?

    I have a 2010 8 core 2.4GHz Mac Pro and for curiosity's sake I wanted to know what my options were in terms of upgrade? I just got the unit, so no changes are immediate. But it's my understanding that I could eventually swap the 2.4 chips for faster

  • Handling Image Drag Event in MVVM?

    HI All, Am Developing WPF App Where in my requirement is drag and drop images,I can do this easily using code behind file but i need to do the same thing in Viewmodel. I tried Following Code. <Grid> <DockPanel> <ListBox x:Name="Images"> <ListBox.Reso