Dual JList Layout

I am trying to create a JPanel that has a JList on the left, one on the right and a tool bar in the middle. (JLists are in a JScrollPane) It is for selecting items and moving them between the two lists. That part works fine but I cannot get the layout to work out. I can get it to look nice in one container, but it will not re-size correctly. What I want is with a horizontal re-size both lists expand equally and the tool bar stays the same size, and vertical re-size the lists grow and the tool bar does not change. I have tried border, flow, box, group layouts and each one has some kind of issue. I need the lists to expand and re-size properly within the panel, and the tool bar to stay the same and in the center. So far group worked out the best, but the left list box was the only one that would re-size. After the lists where created, they will not re-size or expand with the border layout. Any suggestions and is there a way to specify what components will re-size and in what direction, and what ones will stay at a static size. I am using Jigloo to help with the group layouts, but I did the others by hand.
try {
               BorderLayout thisLayout = new BorderLayout();
               this.setLayout(thisLayout);
               this.setEnabled(false);
                    JPanel inPanel = new JPanel();
                    includeModel = new DefaultListModel();
                    include = new JList();
                    include.setModel(includeModel);
                    include.setCellRenderer(new CListCellRenderer());
                    inPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED),
                              "Selected", TitledBorder.LEADING, TitledBorder.DEFAULT_POSITION));
                    inPanel.add(new JScrollPane(include));
                    JPanel avaPanel = new JPanel();
                    avalibleModel = new DefaultListModel();
                    avalible = new JList();
                    avalible.setModel(avalibleModel);
                    avalible.setCellRenderer(new CListCellRenderer());
                    avaPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED),
                              "Avalible", TitledBorder.LEADING, TitledBorder.DEFAULT_POSITION));
                    avaPanel.add(new JScrollPane(avalible));
                    tools = new JToolBar();
                    tools.setOrientation(SwingConstants.VERTICAL);
                    tools.setFloatable(false);
                    this.add(inPanel, BorderLayout.LINE_START);
                    this.add(tools, BorderLayout.CENTER);
                    this.add(avaPanel, BorderLayout.LINE_END);
                         add = new JButton();
                         tools.add(add);
                         add.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Support/Back24.gif")));
                         add.setActionCommand("add");
                         add.setToolTipText("Add Item(s)");
                         add.addActionListener(this);
                         del = new JButton();
                         tools.add(del);
                         del.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Support/Forward24.gif")));
                         del.setActionCommand("del");
                         del.setToolTipText("Remove Item(s)");
                         del.addActionListener(this);
                         up = new JButton();
                         tools.add(up);
                         up.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Support/Up24.gif")));
                         up.setActionCommand("up");
                         up.setToolTipText("Shift Item Up");
                         up.addActionListener(this);
                         down = new JButton();
                         tools.add(down);
                         down.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Support/Down24.gif")));
                         down.setActionCommand("down");
                         down.setToolTipText("Shift Item Down");
                         down.addActionListener(this);
          } catch (Exception e) {
               e.printStackTrace();
          }

kb9mfd wrote:
I think I answered my own question, I did not try gridbaglayout. It looks like that is the one I need to use.Here's one way, using GridBagLayout. Keep in mind:
1) This is only one of many different ways to do this. Nested panels with varying LayoutManagers, which is a common technique, could also be implemented
2) This code is for illustrative purposes only. Those who use GBL frequently (like myself) usually have a helper class or two to make the code easier to read and manage. As a result, the sample code here wouldn't be nearly as long.
3) You described desired behaviors for stretching horizontally and vertically. You didn't mention shrinking. Regardless of LM used, I typically wrap my content panel in a JScrollPane (not shown here) to prevent unwanted results due to shrinkage ("I WAS IN THE POOL! I WAS IN THE POOL!!!").
import java.awt.*;
import javax.swing.*;
public class Demo implements Runnable {
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Demo());
  public void run() {
    String[] items = new String[] { "apple", "banana", "carrot", "date" };
    JPanel swapPanel = createSwapPanel(items);
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.add(swapPanel, BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
  private JPanel createSwapPanel(Object[] items) {
    JList availableList = new JList(items);
    availableList.setPrototypeCellValue("XXXXXXXXXX");
    availableList.setVisibleRowCount(6);
    JScrollPane availableScroll = new JScrollPane(availableList);
    availableScroll.setHorizontalScrollBarPolicy(
        JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    availableScroll.setVerticalScrollBarPolicy(
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    JList selectedList = new JList();
    selectedList.setPrototypeCellValue("XXXXXXXXXX");
    selectedList.setVisibleRowCount(6);
    JScrollPane selectedScroll = new JScrollPane(selectedList);
    selectedScroll.setHorizontalScrollBarPolicy(
        JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    selectedScroll.setVerticalScrollBarPolicy(
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    JButton addButton = new JButton(">");
    JButton removeButton = new JButton("<");
    JPanel p = new JPanel(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weightx = 0.5;
    gbc.weighty = 1.0;
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.fill = GridBagConstraints.BOTH;
    gbc.gridheight = 4;
    p.add(availableScroll, gbc);
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.5;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.VERTICAL;
    gbc.gridheight = 1;
    p.add(Box.createVerticalGlue(), gbc);
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.NONE;
    gbc.gridheight = 1;
    p.add(addButton, gbc);
    gbc.gridx = 1;
    gbc.gridy = 2;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.NONE;
    gbc.gridheight = 1;
    p.add(removeButton, gbc);
    gbc.gridx = 1;
    gbc.gridy = 3;
    gbc.weightx = 0.0;
    gbc.weighty = 0.5;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.VERTICAL;
    gbc.gridheight = 1;
    p.add(Box.createVerticalGlue(), gbc);
    gbc.gridx = 2;
    gbc.gridy = 0;
    gbc.weightx = 0.5;
    gbc.weighty = 1.0;
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.fill = GridBagConstraints.BOTH;
    gbc.gridheight = 4;
    p.add(selectedScroll, gbc);
    return p;
}

Similar Messages

  • Need a Dual-Pane vertical layout instead of Tri-Pane

    We are designing a help module with vertical dual pane layout
    instead of default tri-pane layout. The top pane should contain the
    usual buttons to search glossary etc.. the search box and the
    results should come in the bottom pane only. Is there any way we
    can archive this? Thanks in advance

    With my search and experiment till date, i am concluding this
    as not possible.

  • Dual automatic numbering in 1 page

    hello
    I need a way to add automatic numbering in a page, I know indesign can add this based on the page number, but I need to add 2 numberings in the same page.
    So let's say I want to have a page from 10 to 26, I want to have in page 1 the numbers 10,11, in page 2 the numbers 12,13 and so on.
    Is there a way to do this automatically and not by hand? I want to add a great number of pages which make it impossible to be done one by one.
    thanks

    I want to print invoice booklets.
    Traditionally I just make one page and then the printshop make a dual page layout and print them with an offset press. Before the offset deliver the paper it also do the numbering at both pages. That's all analog, so if you don't have the numbering module you have to use another machine to pass the papers again. So the numbering is the only variable on the print.
    This is the cheaper method around so far, but I want to find a way to do it with a digital printer because the cost is comparable for short runs.
    So I though the best way to do it is to make a big PDF with indesign with the page as master and automatic numbering and just generate as many pages as I need.
    But I want to be able to print a composition of 2-3 pages at each A4 page I print, so I can cut down on cost, so the automatic numbering is of no help since I need to have 3 variable numbers on each page of indesign.

  • XFCE - switch to US keyboard layout on screen lock

    I have a dual keyboard layout, and when xscreensaver triggers, I have no indication which language am I in. This is not a problem with gnome screen saver, but with xscreensaver that comes with xfce4 there is no indicator, which is annoying. Also, no indication that caps-lock is on, but at least this could be detected by the LED.
    I modified /usr/bin/xflock4, adding following line to beginning of the file:
    /usr/bin/setxkbmap -layout "us,ru" -option "grp:lalt_lshift_toggle,terminate:ctrl_alt_bksp"
    it works, but only when I lock the screen using "lock screen" button on xfce panel. When screen locks up due to timeout, keyboard layout stays as-is. It looks like there is a different command being used by power manager to turn off screen. Anyone knows how to hook into this?
    Last edited by asg1448 (2014-07-28 22:40:09)

    More detail:  Some keys on the keyboard do work, ie: caps lock toggles the led, and the function keys across the top seem to work {that is I can adjust brightness, and so forth}
    the letter and numbers, and perhap others do not work.

  • Simple dual screen issue.

    Hi,
    for some reason ever since I rebooted my macpro the dual screen layout has switched. On my right screen is the dock and upper info bar but I want that on the left screen. It has always been on the left screen till the reboot. I cant seem to find anything in the settings.
    Thanks
    Neil toor

    System Preferences -> Displays -> Arrangement.
    Drag the menu bar to the screen you want it to be on, the Dock will follow.

  • 10g Layout Extension

    In 10g preview (9.0.5.0.0 Build 1375) there was support for configurable IDE layouts under Tools-&gt;Preferences-&gt;Layouts. In 10g (9.0.5.1 Build 1605) this feature is gone. Is there some way to configure this to work again? I have tried migrating from a previous version and starting a new install. Neither brings this feature back.
    This was a nice feature it would be great to return it to the product.

    Is there any chance that feature could be returned to the product? Also, is there any work-around that would allow me to restore the layout to the JDeveloper default?
    This feature very useful. For instance, I prefer a different editing view when doing code reviews. I use another view for doing day to day coding. Also, I have two monitors, but when I access my computer remotely I can only utilize one monitor. The custom layout feature allowed me to have single and dual monitor layouts. It allowed me to easily switch between the two. In the current product, if I move one of the windows to the second monitor and forget to return it, there is no way to restore that window to the primary monitor.

  • Awesome systray is not showing all icons, perhaps overlapping widgets?

    I have a problem with my Awesome configuration that results in some of the icons being missing or partially missing from my systray. I suspect this is because of some overlapping, since they are partially hidden. You can see the problem in the top right corner.
    rc.lua:
    -- Standard awesome library
    require("awful")
    require("awful.autofocus")
    require("awful.rules")
    -- Theme handling library
    require("beautiful")
    -- Notification library
    require("naughty")
    --Wiget Library
    require("vicious")
    -- awesoMPD Widget
    --require("awesompd/awesompd")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init("/usr/share/awesome/themes/blind-alien/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "urxvt"
    editor = os.getenv("EDITOR") or "vim"
    editor_cmd = terminal .. " -e " .. editor
    -- Enable or disable widgets:
    -- You also have to edit the wiboxes!
    useSysInfo = true
    usePacman = true
    useMpd = true
    useWifi = false
    useNet = true
    useBat = false
    useCpu = true
    useMem = true
    useTemp = false
    -- Widget Settings
    cpuCores = 2 --Number of CPU Cores
    thermalZone = "coretemp.0" --Thermal Zone to read cpu temperature from (check vicious docu)
    thermalData = "core" --Data Source: "proc", "core" or "sys"
    netAdapter = "eth0" --Network adapter to monitor
    wifiAdapter = "wlan0" --Wifi adapter for wifi widget
    pacUpdate = "yaourt -Sy" --Command to update pacman cache
    pacUpgrade = "yaourt -Su" --Command to upgrade system
    networkManager = terminal .. " -e wicd-curses"
    battery = "BAT1" --Battery to monitor
    widthMpd = 420 --Width of MPD widget
    -- Widget update intervals in seconds
    updateCpu = 1
    updatePac = 1801
    updateMpd = 1
    updateWifi = 7
    updateNet = 1
    updateBat = 31
    updateMem = 7
    -- For Dual-Screen setups:
    -- Set "dualScreen" to "2" if you want a different, optimized widget layout for every screen.
    -- If you set it to "-1" it will copy the same widget layout to both screens. (default Awesome behavior)
    dualScreen = -1
    screencount = screen.count()
    -- 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 =
    awful.layout.suit.tile,
    awful.layout.suit.tile.left,
    awful.layout.suit.tile.bottom,
    awful.layout.suit.tile.top,
    awful.layout.suit.fair,
    awful.layout.suit.fair.horizontal,
    awful.layout.suit.magnifier,
    awful.layout.suit.floating,
    awful.layout.suit.max
    -- {{{ Tags
    -- Define a tag table which will hold all screen tags.
    tags = {
    --names = { "1", "2", "3", "4", "5", "6"},
    --names = { "⌘", "♐", "⌥", "ℵ"},
    --names = { "⠪", "⠫", "⠬", "⠭", "⠮", "⠳"},
    names = { "⠐", "⠡", "⠪", "⠵", "⠻", "⠿" },
    --names = { " ∙", "⠡", "⠲", "⠵", "⠻", "⠿"},
    --names = { " ⠐ ", " ⠡ ", " ⠲ ", " ⠵ ", " ⠾ ", " ⠿ "},
    --names = { "⢷", "⣨", "⡪", "⣌", "⣪", "⡝"},
    layout = {
    layouts[8], layouts[8], layouts[8], layouts[5], layouts[8], layouts[8]
    for s = 1, screencount do
    tags[s] = awful.tag(tags.names, s, tags.layout)
    end
    -- {{{ Menu
    -- 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 WM", awesome.restart },
    { "logout", awesome.quit },
    { "shutdown" , "sudo /sbin/halt -p" },
    { "reboot" , "sudo /sbin/reboot" }
    myinternet = {
    { "Chromium", "chromium" },
    { "Firefox" , "firefox" },
    { "IM" , "pidgin" },
    { "IRC" , "xchat"}
    mymedia = {
    { "Spotify", "spotify" },
    { "Rhythmbox", "rhythmbox" },
    { "ncmpcpp", "urxvt -e ncmpcpp" },
    { "Gnome Mplayer", "gnome-mplayer" },
    { "VLC" , "vlc" }
    mygraphics = {
    { "GIMP" , "gimp" },
    { "Inkscape" , "inkscape" },
    { "Image viewer" , "eog" }
    myoffice = {
    { "Base" , "lobase" },
    { "Calc" , "localc" },
    { "Impress" , "loimpress" },
    { "LibreOffice" , "loffice" },
    { "Writer" , "lowriter" },
    { "Lyx" , "lyx" },
    { "Document viewer" , "evince" }
    mysystem = {
    { "htop" , "urxvt -e htop" },
    { "Partition" , "gksudo gparted" },
    { "Sys mon" , "gnome-system-monitor" }
    myutilities = {
    { "Gedit" , "gedit" },
    { "Virtualbox" , "VirtualBox" },
    { "File Manager" , "nautilus --no-desktop" }
    myplaces = {
    { "Home" , "nautilus --no-desktop /home/johan/" },
    { "Documents" , "nautilus --no-desktop /home/johan/Documents/" },
    { "Downloads" , "nautilus --no-desktop /home/johan/Downloads/" },
    { "Music" , "nautilus --no-desktop /home/johan/Music/" },
    { "Pictures" , "nautilus --no-desktop /home/johan/Pictures/" }
    myserverplaces = {
    { "Server root" , "nautilus --no-desktop /srv/" },
    { "Downloads" , "nautilus --no-desktop /srv/download/" },
    { "Movies" , "nautilus --no-desktop /srv/movies/" },
    { "Tv-Series" , "nautilus --no-desktop /srv/tv-series/" },
    { "Misc" , "nautilus --no-desktop /srv/misc/" }
    mymainmenu = awful.menu({ items = {
    { "Terminal", terminal },
    { "Places" , myplaces },
    { "Server" , myserverplaces },
    { "Internet" , myinternet },
    { "Media" , mymedia },
    { "Graphics" , mygraphics },
    { "Office" , myoffice },
    { "Utilities" , myutilities },
    { "Systools" , mysystem },
    { "Awesome", myawesomemenu }
    mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
    menu = mymainmenu })
    -- Separators
    bubble = widget({ type = "textbox" })
    spacer = widget({ type = "textbox" })
    space = widget({ type = "textbox" })
    separator = widget({ type = "textbox" })
    bracketl = widget({ type = "textbox" })
    bracketr = widget({ type = "textbox" })
    vertline = widget({ type = "textbox" })
    dash = widget({ type = "textbox" })
    bubble.text = " ∘ "
    spacer.text = " "
    space.text = " "
    --separator.text = "<span font_desc='ClearlyU'> ⡾ </span>"
    separator.text = "] ["
    vertline.text = "|"
    dash.text = "-"
    bracketl.text = "["
    bracketr.text = "]"
    -- Status Labels
    cpuLabel = {}
    for s = 1, cpuCores do
    cpuLabel[s] = widget({ type = "textbox" })
    cpuLabel[s].text = "Core " .. s
    end
    rlabel = widget({ type = "textbox" })
    rlabel.text = "Root:"
    hlabel = widget({ type = "textbox" })
    hlabel.text = "Home:"
    -- WIDGETS --
    -- OS info
    if useSysInfo == true then
    sys = widget({ type = "textbox" })
    vicious.register(sys, vicious.widgets.os, "$1 $2")
    end
    -- Pacman updates
    if usePacman == true then
    -- Widget
    pnoghosticon = widget({ type = "imagebox" })
    pnoghosticon.image = image(beautiful.widget_pacnoghost)
    pnoghosticon.visible = true
    pghosticon = awful.widget.launcher({
    image = beautiful.widget_pacghost,
    command = terminal .. " -e " .. pacUpgrade .. " && echo -e 'vicious.force({ pacup, })' | awesome-client"
    pghosticon.visible = false
    -- Icon
    -- picon = widget({ type = "imagebox" })
    -- picon.image = image(beautiful.widget_pacnew)
    -- Use the Pacman icon as launcher to update the package list (change to fit your package-management system)
    picon = awful.widget.launcher({
    image = beautiful.widget_pacnew,
    command = pacUpdate .. " && echo -e 'vicious.force({ pacup, })' | awesome-client"
    runpicon = awful.widget.launcher({
    image = beautiful.widget_pacman_run,
    command = pacUpdate .. " && echo -e 'vicious.force({ pacup, })' | awesome-client"
    runpicon.visible = false
    pacup = widget({ type = "textbox" })
    vicious.register(pacup, vicious.widgets.pkg,
    function(widget, args)
    local nr = tonumber(args[1])
    if nr ~= 0 then
    pnoghosticon.visible = false
    pghosticon.visible = true
    picon.visible = false
    runpicon.visible = true
    else
    pghosticon.visible = false
    pnoghosticon.visible = true
    runpicon.visible = false
    picon.visible = true
    end
    end, updatePac, "Arch")
    end
    -- MPD Widget
    if useMpd == true then
    -- PLAY, STOP, PREV/NEXT Buttons
    -- requires modification of /usr/share/awesome/lib/awful/widget/launcher.lua
    -- b = util.table.join(w:buttons(), button({}, 1, nil, function () util.spawn(args.command) end))
    -- to:
    -- b = util.table.join(w:buttons(), button({}, 1, nil, function () util.spawn_with_shell(args.command) end))
    music_play = awful.widget.launcher({
    image = beautiful.widget_play,
    command = "mpc toggle && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_pause = awful.widget.launcher({
    image = beautiful.widget_pause,
    command = "mpc toggle && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_pause.visible = false
    music_stop = awful.widget.launcher({
    image = beautiful.widget_stop,
    command = "mpc stop && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_prev = awful.widget.launcher({
    image = beautiful.widget_prev,
    command = "mpc prev && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_next = awful.widget.launcher({
    image = beautiful.widget_next,
    command = "mpc next && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    mpdicon = widget({ type = "imagebox" })
    mpdicon.image = image(beautiful.widget_mpd)
    -- Initialize widget
    mpdwidget = widget({ type = "textbox" })
    --mpdwidget.wrap = "none"
    mpdwidget.width = widthMpd
    --mpdwidget.wrap = "word_char"
    -- Register Widget
    --vicious.register(mpdwidget, vicious.widgets.mpd, "(${state}) : ${Artist} - ${Title} ]", 13)
    -- Set the maximum width of the MPD widget inside the string.format function as "%.<length>s"
    vicious.register(mpdwidget, vicious.widgets.mpd,
    function(widget, args)
    --local maxlength = 85
    local font = beautiful.font
    local string = args["{Artist}"] .. " - " .. args["{Title}"]
    --local string = "[" .. args["{state}"] .. "]" .. " : " .. args["{Artist}"] .. " - " .. args["{Title}"]
    --[[ if maxlength < string.len(string) then
    return "<span font_desc='" .. font .. "'>" .. string.sub(string, 0, maxlength-6) .. "</span> ..."
    else
    return "<span font_desc='" .. font .. "'>" .. string .. "</span>"
    end]]
    if args["{state}"] == "Play" then
    music_play.visible = false
    music_pause.visible = true
    else
    music_play.visible = true
    music_pause.visible = false
    end
    return string
    end, updateMpd)
    end
    ---- WIFI Widget
    --if useWifi == true then
    -- wifiwidget = widget({ type = "textbox" })
    -- wifiwidget.width = 22
    -- wifiwidget.align = "right"
    -- --wifiimage = widget({ type = "imagebox" })
    -- wifiimage0 = awful.widget.launcher({
    -- image = beautiful.widget_wifi0,
    -- command = networkManager
    -- wifiimage0.image.visible = true
    -- wifiimage1 = awful.widget.launcher({
    -- image = beautiful.widget_wifi1,
    -- command = networkManager
    -- wifiimage1.image.visible = false
    -- wifiimage2 = awful.widget.launcher({
    -- image = beautiful.widget_wifi2,
    -- command = networkManager
    -- wifiimage2.image.visible = false
    -- wifiimage3 = awful.widget.launcher({
    -- image = beautiful.widget_wifi3,
    -- command = networkManager
    -- wifiimage3.image.visible = false
    -- wifiimage4 = awful.widget.launcher({
    -- image = beautiful.widget_wifi4,
    -- command = networkManager
    -- wifiimage4.image.visible = false
    -- -- Register Widget
    -- -- change to the desired network adapter if needed
    -- --vicious.register(wifiwidget, vicious.widgets.wifi, "~ ${link}%", 5, "wlan0")
    -- vicious.register(wifiwidget, vicious.widgets.wifi,
    -- function(widget, args)
    -- if tonumber(args["{link}"]) > 75 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = false
    -- wifiimage2.visible = false
    -- wifiimage3.visible = false
    -- wifiimage4.visible = true
    -- elseif tonumber(args["{link}"]) > 50 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = false
    -- wifiimage2.visible = false
    -- wifiimage3.visible = true
    -- wifiimage4.visible = false
    -- elseif tonumber(args["{link}"]) > 25 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = false
    -- wifiimage2.visible = true
    -- wifiimage3.visible = false
    -- wifiimage4.visible = false
    -- elseif tonumber(args["{link}"]) > 0 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = true
    -- wifiimage2.visible = false
    -- wifiimage3.visible = false
    -- wifiimage4.visible = false
    -- else
    -- wifiimage0.visible = true
    -- wifiimage1.visible = false
    -- wifiimage2.visible = false
    -- wifiimage3.visible = false
    -- wifiimage4.visible = false
    -- end
    -- return string.format("%02d%%", tonumber(args["{link}"]))
    -- end, updateWifi, wifiAdapter)
    --end
    -- NETWORK Widget
    if useNet == true then
    dnicon = widget({ type = "imagebox" })
    upicon = widget({ type = "imagebox" })
    dnicon.image = image(beautiful.widget_down)
    upicon.image = image(beautiful.widget_up)
    -- Initialize widget
    netdnwidget = widget({ type = "textbox" })
    netdnwidget.width = 55
    --netdnwidget.align = "right"
    netupwidget = widget({ type = "textbox" })
    netupwidget.width = 55
    --netupwidget.align = "right"
    -- Register widget
    -- change to the desired network adapter if needed
    --vicious.register(netdnwidget, vicious.widgets.net, "${eth0 down_kb} kB/s", 1)
    --vicious.register(netupwidget, vicious.widgets.net, "${eth0 up_kb} kB/s", 1)
    -- The following code formats the output to fill with zeroes at the beginning i.e. 013 kB/s instead of 13 kB/s.
    -- It also automatically switches to MB/s if there is more than 999 kB/s
    vicious.register(netdnwidget, vicious.widgets.net,
    function(widget, args)
    if tonumber(args["{" .. netAdapter .. " down_kb}"]) > 999 then
    return string.format("%04.1f MB/s", tonumber(args["{" .. netAdapter .. " down_mb}"]))
    else
    return string.format("%03d kB/s", tonumber(args["{" .. netAdapter .. " down_kb}"]))
    end
    end, updateNet)
    vicious.register(netupwidget, vicious.widgets.net,
    function(widget, args)
    if tonumber(args["{" .. netAdapter .. " up_kb}"]) > 999 then
    return string.format("%04.1f MB/s", tonumber(args["{" .. netAdapter .. " up_mb}"]))
    else
    return string.format("%03d kB/s", tonumber(args["{" .. netAdapter .. " up_kb}"]))
    end
    end, updateNet)
    end
    ---- BATTERY widget
    --if useBat == true then
    -- baticon = widget({ type = "imagebox" })
    -- --baticon.image = image(beautiful.widget_batfull)
    -- --Initialize widget
    -- batwidget = widget({ type = "textbox" })
    -- batwidget.width = 22
    -- batwidget.align = "right"
    -- --Register widget
    -- --vicious.register(batwidget, vicious.widgets.bat, "$1$2", 31, "BAT1")
    -- vicious.register(batwidget, vicious.widgets.bat,
    -- function(widget, args)
    -- if string.match(args[1], "[+↯]") then
    -- baticon.image = image(beautiful.widget_ac)
    -- elseif tonumber(args[2]) > 40 then
    -- baticon.image = image(beautiful.widget_batfull)
    -- elseif tonumber(args[2]) > 20 then
    -- baticon.image = image(beautiful.widget_batlow)
    -- else
    -- baticon.image = image(beautiful.widget_batempty)
    -- end
    -- if tonumber(args[2]) == 100 then
    -- return "Full"
    -- end
    -- return args[2] .. "%"
    -- end, updateBat, battery)
    --end
    -- {{{ CPU
    --if useTemp == true then
    -- -- Core Temp
    -- tempwidget = widget({ type = "textbox" })
    -- tempwidget.width = 26
    -- tempwidget.align = "right"
    -- vicious.register(tempwidget, vicious.widgets.thermal, "$1 C", updateCpu, { thermalZone, thermalData })
    -- --vicious.register(tempwidget, vicious.widgets.thermal, "$1°C", 5, { "thermal_zone0", "sys" })
    -- -- Icon
    -- tempicon = widget({ type = "imagebox" })
    -- tempicon.image = image(beautiful.widget_temp)
    --end
    -- Readout
    if useCpu == true then
    -- Icon
    cpuicon = widget({ type = "imagebox" })
    cpuicon.image = image(beautiful.widget_cpu)
    -- Core 1 Meter
    cpubar = {}
    freq = {}
    displayCores = {}
    displayCpu = {}
    for s = 1, cpuCores do
    cpubar[s] = awful.widget.progressbar()
    cpubar[s]:set_width(50)
    cpubar[s]:set_height(6)
    cpubar[s]:set_vertical(false)
    cpubar[s]:set_background_color("#434343")
    --cpubar:set_color(beautiful.fg_normal)
    cpubar[s]:set_gradient_colors({ beautiful.fg_normal, beautiful.fg_normal, beautiful.fg_normal, beautiful.bar })
    --Delete the following line if you want to put the widget on the left side of the wibox
    cpubar[s].layout = awful.widget.layout.horizontal.rightleft
    vicious.register(cpubar[s], vicious.widgets.cpu, "$" .. s, updateCpu)
    awful.widget.layout.margins[cpubar[s].widget] = { top = 6 }
    -- Frequency
    freq[s] = widget({ type = "textbox" })
    freq[s].width = 44
    freq[s].align = "right"
    --vicious.register(freq1, vicious.widgets.cpufreq, "$2 GHz", 9, "cpu0")
    vicious.register(freq[s], vicious.widgets.cpufreq,
    function(widget, args)
    return string.format("%03.1f GHz", args[2])
    end, updateCpu, "cpu" .. s - 1)
    -- Cache that shit
    vicious.cache(vicious.widgets.cpu)
    end
    end
    -- }}} CPU
    -- {{{ MEM
    if useMem == true then
    -- Icon
    memicon = widget({ type = "imagebox" })
    memicon.image = image(beautiful.widget_mem)
    -- Percentage
    --mem = widget({ type = "textbox" })
    --vicious.register(mem, vicious.widgets.mem, "$1%")
    -- Meter
    membar = awful.widget.progressbar()
    membar:set_width(50)
    membar:set_height(6)
    membar:set_vertical(false)
    membar:set_background_color("#434343")
    --membar:set_color(beautiful.fg_normal )
    membar:set_gradient_colors({ beautiful.fg_normal, beautiful.fg_normal, beautiful.fg_normal, beautiful.bar })
    --This bar should be placed on the right side of the wibox unless
    --it's a dual-screen config in which case the default (leftright)
    --layout is used... change that if you need!
    if screencount ~= dualScreen then
    membar.layout = awful.widget.layout.horizontal.rightleft
    end
    --Register the widget
    vicious.register(membar, vicious.widgets.mem, "$1", updateMem)
    -- Align progressbars
    awful.widget.layout.margins[membar.widget] = { top = 6 }
    -- MEM Usage
    --mem_total = widget({ type = "textbox" })
    --vicious.register(mem_total, vicious.widgets.mem, "$3 MB", 9)
    --mem_used = widget({ type = "textbox" })
    --vicious.register(mem_total, vicious.widgets.mem, "$2 MB", 9,)
    -- Cache that shit
    vicious.cache(vicious.widgets.mem)
    end
    -- }}} MEM
    -- Create a textclock widget
    mytextclock = awful.widget.textclock({ align = "right" }, "%H:%M")
    awful.widget.layout.margins[mytextclock] = { top = -1 }
    -- Create a systray
    mysystray = widget({ type = "systray"})
    -- Create a wibox for each screen and add it
    mywibox = {}
    mybottomwibox = {}
    mypromptbox = {}
    mylayoutbox = {}
    mytaglist = {}
    mytaglist.buttons = awful.util.table.join(awful.button({}, 1, awful.tag.viewonly),
    awful.button({ modkey }, 1, awful.client.movetotag),
    awful.button({}, 3, awful.tag.viewtoggle),
    awful.button({ modkey }, 3, awful.client.toggletag),
    awful.button({}, 4, awful.tag.viewnext),
    awful.button({}, 5, awful.tag.viewprev))
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(awful.button({}, 1, function(c)
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    client.focus = c
    c:raise()
    end),
    awful.button({}, 3, function()
    if instance then
    instance:hide()
    instance = nil
    else
    instance = awful.menu.clients({ width = 250 })
    end
    end),
    awful.button({}, 4, function()
    awful.client.focus.byidx(1)
    if client.focus then client.focus:raise() end
    end),
    awful.button({}, 5, function()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end))
    for s = 1, screencount do
    -- Set a screen margin for borders
    awful.screen.padding(screen[s], { top = 0 })
    -- Create a promptbox for each screen
    mypromptbox[s] = awful.widget.prompt()
    -- Create an imagebox widget which will contains an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    mylayoutbox[s] = awful.widget.layoutbox(s)
    mylayoutbox[s]:buttons(awful.util.table.join(awful.button({}, 1, function() awful.layout.inc(layouts, 1) end),
    awful.button({}, 3, function() awful.layout.inc(layouts, -1) end),
    awful.button({}, 4, function() awful.layout.inc(layouts, 1) end),
    awful.button({}, 5, function() awful.layout.inc(layouts, -1) end)))
    mylayoutbox[s].resize = false
    -- Create a taglist widget
    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons)
    awful.widget.layout.margins[mytaglist[s]] = { top = -2 }
    -- WARNING: In order to properly view the tasklist some lua files have been modified. For the
    -- tasklist_floating_icon icon to be placed on the left side of the task name instead of the
    -- right alignment, /usr/share/awesome/lib/awful/widget/tasklist.lua in function new(label, buttons) the
    -- variable widgets.textbox has to be modified like this:
    -- remove bg_align = "right" and
    -- modify the left margin from 2 to icon width + 2 (i.e.: 18).
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(function(c)
    return awful.widget.tasklist.label.currenttags(c, s,
    -- WARNING: Requires modified /usr/share/awesome/lib/awful/widget/tasklist.lua !!!
    -- This basically hides the application icons on the tasklist. If you don't want this or
    -- prefer not to change your tasklist.lua remove the following line!
    { hide_icon = true })
    end, mytasklist.buttons)
    awful.widget.layout.margins[mytasklist[s]] = { top = 2 }
    -- WIBOXES --
    -- Here we create the wiboxes if it's not a dual-screen layout
    if screencount ~= dualScreen then
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s, border_width = 0, height = 18 })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
    mytaglist[s],
    mypromptbox[s],
    displaySysInfo,
    layout = awful.widget.layout.horizontal.leftright
    mytextclock,
    mylayoutbox[s],
    s == 1 and mysystray or nil,
    mytasklist[s],
    layout = awful.widget.layout.horizontal.rightleft
    mybottomwibox[s] = awful.wibox({ position = "bottom", screen = s, border_width = 0, height = 18 })
    mybottomwibox[s].widgets = {
    space, music_play, music_pause, music_stop, music_prev, music_next, space, mpdwidget,
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    bracketr,
    -- spacer, batwidget, spacer, baticon, spacer,
    -- separator,
    -- spacer, wifiwidget, spacer, wifiimage0, wifiimage1, wifiimage2, wifiimage3, wifiimage4, spacer,
    -- separator,
    -- spacer, tempwidget, spacer, tempicon, spacer,
    -- separator,
    spacer, freq[1], spacer, cpubar[1], spacer,
    --cpuLabel[1], spacer,
    cpuicon, spacer,
    separator,
    spacer, membar, spacer, memicon, spacer,
    separator,
    spacer, netupwidget, spacer, upicon, spacer, separator, spacer, netdnwidget, spacer, dnicon, spacer,
    separator,
    space, pghosticon, pnoghosticon, runpicon, picon, space,
    bracketl,
    layout = awful.widget.layout.horizontal.rightleft
    end
    end
    if screencount == dualScreen then
    -- Here we create the wiboxes if it is a dual screen configuration:
    mywibox[1] = awful.wibox({ position = "top", screen = 1, border_width = 0, height = 18 })
    -- Add widgets to the wibox - order matters
    mywibox[1].widgets = {
    mytaglist[1],
    spacer,
    mypromptbox[1],
    mytasklist[1],
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    mytextclock,
    -- spacer,
    mylayoutbox[1],
    -- spacer,
    -- mytasklist[1],
    layout = awful.widget.layout.horizontal.rightleft
    mybottomwibox[1] = awful.wibox({ position = "bottom", screen = 1, border_width = 0, height = 18 })
    mybottomwibox[1].widgets = {
    space, music_play, music_pause, music_stop, music_prev, music_next, space, mpdwidget,
    layout = awful.widget.layout.horizontal.leftright
    space,
    s == 1 and mysystray or nil,
    layout = awful.widget.layout.horizontal.rightleft
    mywibox[2] = awful.wibox({ position = "top", screen = 2, border_width = 0, height = 18 })
    mywibox[2].widgets = {
    space,
    mytaglist[2],
    spacer,
    mypromptbox[2],
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    mytextclock,
    space,
    mylayoutbox[2],
    spacer,
    mytasklist[2],
    layout = awful.widget.layout.horizontal.rightleft
    mybottomwibox[2] = awful.wibox({ position = "bottom", screen = 2, border_width = 0, height = 18 })
    mybottomwibox[2].widgets = {
    spacer,
    bracketl,
    spacer, sys, spacer,
    separator,
    space, runpicon, picon, pghosticon, pnoghosticon, space,
    separator,
    spacer, dnicon, spacer, netdnwidget, spacer, separator, spacer, upicon, spacer, netupwidget, spacer,
    separator,
    spacer, memicon, spacer, membar, spacer,
    bracketr,
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    bracketr,
    spacer, tempwidget, spacer, tempicon, spacer,
    separator,
    spacer, freq[2], spacer, cpubar[2], spacer,
    cpuLabel[2], spacer,
    cpuicon, spacer,
    separator,
    spacer, freq[1], spacer, cpubar[1], spacer,
    cpuLabel[1], spacer,
    cpuicon, spacer,
    bracketl,
    layout = awful.widget.layout.horizontal.rightleft
    end
    -- {{{ Mouse bindings
    root.buttons(awful.util.table.join(awful.button({}, 3, function() mymainmenu:toggle() end),
    awful.button({}, 4, awful.tag.viewnext),
    awful.button({}, 5, awful.tag.viewprev)))
    -- {{{ Key bindings
    globalkeys = awful.util.table.join(awful.key({ modkey, }, "Left", awful.tag.viewprev),
    awful.key({ }, "Print", function () awful.util.spawn("gnome-screenshot") end),
    awful.key({ modkey, }, "Right", awful.tag.viewnext),
    awful.key({ modkey, }, "Escape", awful.tag.history.restore),
    awful.key({ modkey, }, "j",
    function()
    awful.client.focus.byidx(1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey, }, "k",
    function()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey, }, "w", function() mymainmenu:show({ keygrabber = true }) end),
    --Volume manipulation
    -- awful.key({}, "XF86AudioRaiseVolume", function() awful.util.spawn("amixer set Master 5+") end),
    -- awful.key({}, "XF86AudioLowerVolume", function() awful.util.spawn("amixer set Master 5-") end),
    -- Layout manipulation
    awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end),
    awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end),
    awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end),
    awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end),
    awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
    awful.key({ modkey, }, "Tab",
    function()
    awful.client.focus.history.previous()
    if client.focus then
    client.focus:raise()
    end
    end),
    -- Standard program
    awful.key({ modkey, }, "Return", function() awful.util.spawn(terminal) end),
    awful.key({ modkey, "Control" }, "r", awesome.restart),
    awful.key({ modkey, "Shift" }, "q", awesome.quit),
    awful.key({ modkey, }, "l", function() awful.tag.incmwfact(0.05) end),
    awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end),
    awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1) end),
    awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1) end),
    awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1) end),
    awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1) end),
    awful.key({ modkey, }, "space", function() awful.layout.inc(layouts, 1) end),
    awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(layouts, -1) end),
    -- Prompt
    awful.key({ modkey }, "r", function() mypromptbox[mouse.screen]:run() end),
    awful.key({ modkey }, "x",
    function()
    awful.prompt.run({ prompt = "Run Lua code: " },
    mypromptbox[mouse.screen].widget,
    awful.util.eval, nil,
    awful.util.getdir("cache") .. "/history_eval")
    end))
    clientkeys = awful.util.table.join(awful.key({ modkey, }, "f", function(c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, }, "q", function(c) c:kill() end),
    awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle),
    awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end),
    awful.key({ modkey, }, "o", awful.client.movetoscreen),
    awful.key({ modkey, "Shift" }, "m", function () awful.util.spawn("urxvt -T ncmpcpp -e 'ncmpcpp'") end),
    awful.key({ modkey, "Shift" }, "w", function () awful.util.spawn("chromium") end),
    awful.key({ modkey, }, "b", function () awful.util.spawn("nautilus --no-desktop") end),
    awful.key({ modkey, "Shift" }, "r", function(c) c:redraw() end),
    awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end),
    awful.key({ modkey, }, "n", function(c) c.minimized = not c.minimized end),
    awful.key({ modkey, }, "m",
    function(c)
    c.maximized_horizontal = not c.maximized_horizontal
    c.maximized_vertical = not c.maximized_vertical
    end))
    -- Compute the maximum number of digit we need, limited to 9
    keynumber = 0
    for s = 1, screencount do
    keynumber = math.min(9, math.max(#tags[s], keynumber));
    end
    -- Bind all key numbers to tags.
    -- Be careful: we use keycodes to make it works on any keyboard layout.
    -- This should map on the top row of your keyboard, usually 1 to 9.
    for i = 1, keynumber do
    globalkeys = awful.util.table.join(globalkeys,
    awful.key({ modkey }, "#" .. i + 9,
    function()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end),
    awful.key({ modkey, "Control" }, "#" .. i + 9,
    function()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewtoggle(tags[screen][i])
    end
    end),
    awful.key({ modkey, "Shift" }, "#" .. i + 9,
    function()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.movetotag(tags[client.focus.screen][i])
    end
    end),
    awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
    function()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.toggletag(tags[client.focus.screen][i])
    end
    end))
    end
    clientbuttons = awful.util.table.join(awful.button({}, 1, function(c) client.focus = c; c:raise() end),
    awful.button({ modkey }, 1, awful.mouse.client.move),
    awful.button({ modkey }, 3, awful.mouse.client.resize))
    -- Set keys
    root.keys(globalkeys)
    -- {{{ Rules
    awful.rules.rules = {
    -- All clients will match this rule.
    rule = {},
    properties = {
    border_width = beautiful.border_width,
    border_color = beautiful.border_normal,
    size_hints_honor = false,
    focus = true,
    keys = clientkeys,
    buttons = clientbuttons
    rule = { class = "MPlayer" },
    properties = { floating = true }
    rule = { class = "pinentry" },
    properties = { floating = true }
    rule = { class = "gimp" },
    properties = { floating = true }
    { rule = { class = "firefox" },
    properties = { tag = tags[1][2] } },
    { rule = { class = "Chromium" },
    properties = { tag = tags[1][2] } },
    { rule = { class = "Pidgin" },
    properties = { tag = tags[1][3] } },
    { rule = { class = "Xchat" },
    properties = {tag = tags[1][4] } },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    -- properties = { tag = tags[1][2] } },
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    client.add_signal("manage", function(c, startup)
    -- Add a titlebar
    -- awful.titlebar.add(c, { modkey = modkey })
    -- Enable sloppy focus
    c:add_signal("mouse::enter", function(c)
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
    and awful.client.focus.filter(c) then
    client.focus = c
    end
    end)
    if not startup then
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- awful.client.setslave(c)
    -- Put windows in a smart way, only if they does not set an initial position.
    if not c.size_hints.user_position and not c.size_hints.program_position then
    awful.placement.no_overlap(c)
    awful.placement.no_offscreen(c)
    end
    end
    end)
    client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    -- {{{ Tag signal handler - selection
    -- - ASCII tags 1 [2] 3 4...
    -- - start with tag 1 named [1] in tag setup
    for s = 1, screencount do
    for t = 1, #tags[s] do
    tags[s][t]:add_signal("property::selected", function ()
    if tags[s][t].selected then
    tags[s][t].name = "[" .. tags[s][t].name .. "]"
    else--]]
    --tags[s][t].name = tags[s][t].name:gsub("[%[%]]", "")
    --[[ end
    end)
    end
    end
    I have tried to search around for a solution to this, but I am coming up short. Any idea on how to solve this?
    Last edited by kveras (2011-11-21 09:01:47)

    First of all, did you check the wiki and forums? We'll help you, but you have to try to fix it yourself first.
    You will need to provide more info if you want help.
    Did you set up Gnome to force fallback mode?
    Did you look at the Gnome wiki article? There's a few sections that sound like what your looking to do, but the examples are USING OTHER WM's. They still might be able to point you in the right direction.

  • How to display the first page alone first and two pages (back and front) then ?

    Hi
    I use acrobat 9 (beginner).
    I have a document which should be displayed "as a book", ie two pages on the screen at the same time, the back of the first sheet and the front of the second one.
    The problem I have is to manage to display the cover sheet as a single page (alone) and then to have the dual page layout as described above.
    How could I do that ?
    Thanks for your help
    Regards
    Fanch

    Hi Bernd
    Thanks a lot.

  • Working with multiple screens

    I am new to Dreamweaver and the first thing I noticed was
    that it does not appear to allow me to 'undock' panel groups and
    move them to my second monitor. This is one of my favorite features
    of Photoshop, but I can't figure out how to do it in Dreamweaver.
    Am I missing something or did Macromedia not include this feature?
    If it doesn't exist, does anyone know of any plans to add it
    to future versions. I am using MX2004.

    "dvanamburg" <[email protected]> wrote in
    message
    news:e4vi47$rcp$[email protected]..
    >I am new to Dreamweaver and the first thing I noticed was
    that it does not
    > appear to allow me to 'undock' panel groups and move
    them to my second
    > monitor.
    > This is one of my favorite features of Photoshop, but I
    can't figure out
    > how to
    > do it in Dreamweaver. Am I missing something or did
    Macromedia not include
    > this
    > feature?
    >
    > If it doesn't exist, does anyone know of any plans to
    add it to future
    > versions. I am using MX2004.
    >
    In Dreamweaver 8 you can go to dual screen layout
    Window menu > Workspace Layout > Dual Screen
    You can also separate the panel groups into pallets just like
    in Photoshop
    in the
    Panel menu > Group With.. > New Panel Group.
    I don't know if this was available in MX 2004 as I am pretty
    new to this
    program. Also, I am referring to the Windows version.
    ss.

  • Audition CS6 Load Screen messed up

    Not sure if this is even anything to be concerrned about, but starting just a few days ago, possibly with the last windows updates, when I start Audition, the green load box/splash screen is messed up.  It looks like it is jumbled up or kind of overlapped on itself, and my workspace, which I am using a dual screen layout, his layered with one window on top of the other.  Has anyone else noticed this or know if this is something that can be fixed?  I tried uninstalling and removing all the audition files and registry entries I could find and reinstalling, but it hasn't helped.  I'm running this on Windows 7 Ultimate 64 bit.

    That's what the screen looks like.  I'm running 2 Asus Radeon 7790 2 GB video cards cross-fired.

  • A little help about multiple monitors...

    I’ll try to explain what I need help on in the simplest way possible.
    I connected my macbook pro to another LCD monitor I have at home. That way when I work on sites I can have one thing on my monitor and another thing on my Mac. My question is...
    I see that on WINDOWS the whole program (Dreamweaver or Photoshop, illustrator blah blah blah) is in one window. Which means I can drag it on one monitor or back to the other. How do I make those programs get on one window like WINDOWS(OS). I can drag my browsers, iTunes, steam and other applications between each monitor but I cannot do it with the adobe products.
    Any help?

    Hi sppanch007. Welcome to the Adobe user-to-user forums!
    You can certainly drag components of the Dreamweaver application, such as panels (and panel groups) and document windows and drag them between your monitors.
    In doing this, you could create a custom workspace that has all the panels and such in the desired locations and then save it by going to Window > Workspace Layout > New Workspace.
    There is a "Dual Screen" layout you could try to give you a starting point.
    A little more info about re-arranging the workspace:
    http://help.adobe.com/en_US/dreamweaver/cs/using/WS8599BC5C-3E44-406c-9288-C3B3BBEB5E88.ht ml
    If you want the application to function differently, such as to have its own application frame (like applications on Windows do), then please let the Dreamweaver development team know:
    http://bit.ly/DWReq
    Kind regards,

  • What Workspace(s) Do You Use? (Screenshots)

    So I wanted to start a thread where people showed off their workspace setups, and maybe showed others a better way to utilize their limited real estate.
    So set up your workspace just how you like it, hit the PrintScreen button on the upper right of you keyboard, open up Paint.exe, hit CTRL-C.
    The pictures are pretty small so be sure to include a decription of what the panels are.
    Ive got 2 custom workspace.
    They span (2) 24in monitors, and include:
    Editing Workspace
    1. Project
    2. Effects
    3. Effects Controls
    4. History
    5. Program
    6. Reference
    7. Timeline
    MultiCamera Workspace
    1. Multi-Cam
    2. Timeline
    P.S.   I'm planning on doing the same thread for Encore cs4 and After Effects CS4,
              and CS5.5 as soon as it comes in the mail next week (Yay!) So check out those posts too.
    http://forums.adobe.com/message/3815732

    I have a main "Dual Monitor" layout with some docked Panels in Panes, but then some floating Panels, that I tile, so that little areas of each is easily clickable.
    Next, I use an extended Timeline view, and probably next, my expanded Project Panel view.
    Hunt

  • Getting the DW panes across two monitors

    I work with two monitors and have CS3.
    I'd like to be able to have DW across both or at least to let me move a pane onto the other screen. is tis possible?
    Related to this: is it possible to have the Code pane AND the Design pane visible at the same time?
    thank you........... liz

    You should be able to simply drag any of the palettes onto your second monitor.  See the attached image -- which shows an unsolved problem I'm having with dual monitors, but also shows you an example of a dual-monitor layout.
    John

  • IPhone 6 Folio?

    Is it possible to designate a separate folio for the iPhone 6 or 6+? iTunes Connect has a separate area for screenshots for the two devices and frankly a dual orientation layout looks a heck of a lot better on an iPhone 6+ than an iPhone 5.

    Not at this time. Optimizing for iPhone 6 and 6 Plus is something the engineering team is investigating, but the current apps you create from App Builder are not optimized. With the current viewer continue to design for iPhone 5 size.

  • I have a dual-screen setup - Workspace Layout Panels - not functioning properly.

    I have a dual-screen setup and since updating to 10.10.2, the panels open on the main screen - and not in the positions as they were saved in a Workspace layout.
    Tried trashing the prefs - which works, but when I save a new Workspace layout, it does the exact same thing.
    Any help is greatly appreciated. Thanks.

    Hi Christopher,
    This is a known issue and the product team is working with Apple to address it. Stay tuned.
    Thanks,
    Preran    

Maybe you are looking for