Page 1 of 14 12311 ... LastLast
Results 1 to 10 of 137

Thread: HOWTO: Set up AwesomeWM 2.1

  1. #1
    Join Date
    Dec 2005
    Location
    Kingston, Ontario
    Beans
    1,919
    Distro
    Ubuntu 12.04 Precise Pangolin

    HOWTO: Set up AwesomeWM 2.1

    Recently I've been trying out several different WM's in order to find the one that suits me needs; one that fits perfectly. I stumbled upon tiling window managers and started with DWM. It seemed perfect. It was then suggested to me to try "Awesome". I figured, why not? I came to find that one of the greatest things about Awesome is the ability to reload the config on the fly. With DWM, you had to recompile and restart the xserver. Granted, that wasn't too difficult, but it can become inconvenient. With Awesome, a simple key combination (in my case, mod4 + ctrl + r) reloads the entire config without you haven't to compile anything, or lose any of your open programs. In addition to this, Awesome also has magnificent support for multi-display setups. You're able to have two completely different status bars, two completely different sets of tags, keybindings, color schemes, etc. I couldn't ask for more.

    So, here I am writing a guide for those considering trying Awesome. Recently, version 2.1 was released and the configuration setup completely changed. I figure it warrants another guide in order to clear up a bit of the conclusion. There's already an excellent guide written here, but that's for the most basic set up ust to get things working and I'm inclined to provide as much information as I can get my hands on. Perhaps we can all learn something here. So, let's begin.

    ### Step 1 -- Dependencies
    In order to install Awesome, we need some dependencies.
    Code:
    sudo aptitude install build-essential libxinerama-dev libxrandr-dev libcairo2-dev libxft-dev asciidoc xmlto doxygen checkinstall rxvt-unicode feh ## feh is only necessary if you want to use it to set a wallpaper
    And we need to compile libconfuse2.6 from source to get the latest version....
    Code:
    cd ~/ && wget http://bzero.se/confuse/confuse-2.6.tar.gz && tar xvf confuse*.tar.gz && cd confuse* && ./configure && make && sudo checkinstall
    ### Step 2 -- Installing Awesome
    Now we have to get Awesome itself! What we'll do here it download it and extract it. I've lumped everything together into one line like above to make it as easy as possible.
    Code:
    cd ~/ && wget http://awesome.naquadah.org/download/awesome-2.1.tar.gz && tar xvf awesome*.tar.gz && cd awesome* && ./configure && make && sudo checkinstall
    ### Step 3 -- Starting Awesome
    The easiest way to start Awesome is with a GDM entry. To make one, type the following into the terminal. I use Gedit with gksu, but you're free to use whichever editor you prefer.
    Code:
    gksu gedit /usr/share/xsessions/awesome.desktop
    Paste the following in:
    Code:
    [Desktop Entry]
    Encoding=UTF-8
    Name=Awesome
    Comment=AwesomeWM
    Exec=/home/username/.scripts/awesome.sh
    Icon=
    Type=Application
    Remember to change username to your username!

    Now we need a start up script to get the ball rolling.
    Code:
    mkdir ~/.scripts
    Code:
    gedit ~/.scripts/awesome.sh
    Paste in the following:
    Code:
    exec awesome
    Then run this...
    Code:
    chmod +x ~/.scripts/awesome.sh
    Now, if you're anything like me, you'll want to have several programs start automatically. In the same file, ~/.scripts/awesome.sh, you'll want to add a few things depending on what you want starting automatically. We'll start with something simple: a wallpaper, pidgin and a clock.

    Code:
    ~/.fehbg &
    pidgin &
    /usr/bin/awesome-monitor &
    exec awesome ## this has to be the last line
    ### Step 4 -- ~/.awesomerc
    This part will seem considerably confusing. The file in general is a bit of a mess compared to the previous version, but I'll do my best to make it work. To start, here's the most basic config to make it "just work". This is for single display only. Adding a config for a second display is easy, and I'll cover that later. Type the following into the terminal:
    Code:
    gedit ~/.awesomerc
    Then paste in the following:
    Code:
    screen "0"
    {
    	general
    	{
    		# this is the border around your windows
    		border = 1
    		# snap to edges within 8 pixels
    		snap = 8
    		resize_hints = true
    		opacity_unfocused = 100
    		focus_move_pointer = false
    		allow_lower_floats = false
    		sloppy_focus = true
    		new_become_master = true
    		new_get_focus = true
    		# this is the font you'll see on your status bar, use whatever you'd like
    		font = "sans-7"
    	}
    	statusbar "mystatusbar"
    	{
    		# you can put the status bar anywhere; top, bottom, left, right
    		position = "top"
    		height = 0
    		width = 0
    		# this section allows you to use the mouse to tag windows and switch to them, leave it as it is for now unless you know what you're doing
    		taglist "mytaglist"
    		{
    			x = -1
    			y = -1
    			mouse 
    			{
    				modkey = {}
    			        button = "1"
    				command = "tag_view"
    			}
    			mouse
    			{
    		        	modkey = {"Mod4"}
    		        	button = "1"
    			        command = "client_tag"
    			}
          			mouse
    			{
    			        modkey = {}
        		   		button = "3"
    				command = "tag_toggleview"
       			}
          			mouse
    			{
    	        		modkey = {"Mod4"}
    	        		button = "3"
    	        		command = "client_toggletag"
    		    	}
          			mouse
    			{
            			modkey = {}
            			button = "4"
            			command = "tag_viewnext"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "5"
            			command = "tag_viewprev"
          			}
    		}
    		# this section is basically the same...
        		layoutinfo "mylayoutinfo"
    		{
          			x = -1
          			y = -1
          			mouse
    			{
            			modkey = {}
            			button = "1"
            			command = "tag_setlayout"
            			arg = "+1"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "4"
            			command = "tag_setlayout"
            			arg = "+1"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "3"
            			command = "tag_setlayout"
            			arg = "-1"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "5"
            			command = "tag_setlayout"
            			arg = "-1"
          			}
        		}
    		# and so is this one....
        		tasklist "mytasklist" 
    		{
          			x = -1
          			y = -1
          			mouse
    			{
            			modkey = {}
            			button = "4"
            			command = "client_focusnext"
            			# arg = ""
          			}
          			mouse
    			{
            			modkey = {}
            			button = "5"
            			command = "client_focusprev"
            			# arg = ""
         			}
          			mouse
    			{
            			modkey = {"Mod4"}
            			button = "4"
            			command = "client_swapnext"
            			# arg = ""
          			}
          			mouse
    			{
            			modkey = {"Mod4"}
            			button = "5"
            			command = "client_swapprev"
           				# arg = ""
          			}
          			align = "left"
          			show_icons = false
          			show_all = false
        		}
    		# this section is rather important.  This is your statusbar widget for the clock.  This will put a clock at the far right side of your monitor. 
    		# you can add other widgets too, like mpd info, gmail scripts, etc.
    	    	textbox clock  # "clock" is the name of your widget
    		{
    			text = "-" # the - will be replaced by the date and time
    		}
      	}
    	# these are your tags.  Basically it defines how the statusbar is set up to look.  You can add/remove as many tags as you'd like, change their names, how their behave, etc.
      	tags
    	{
    		tag ":main" # :main is the display name of the tag.  You can change this to say whatever you want, it's completely up to you.
    		{
    			layout = "max" # this tells the tag how to display windows.  "max" forces all your windows in that tag to be...maximized!  You can still make them float by moving them by hand
    			mwfact = 0.500000 # leave this for now
          			nmaster = 1 # leave this for now
          			ncol = 1 # leave this for now
        		}
        		tag ":devel"
    		{
    	      		layout = "tile"
    	      		mwfact = 0.500000
     	     		nmaster = 1
    	      		ncol = 1
    		}
        		tag ":term"
    		{
          			layout = "tile"
          			mwfact = 0.500000
         			nmaster = 1
          			ncol = 1
        		}
    	}
    	colors
    	{
    		# here we define our colors.  I'll have an example screenshot at the bottom of this page.  You can change these colors to whatever you want.
    		normal_border = "#777777"  # window border when selected
            	normal_bg = "#000000" # background for the statusbar
            	normal_fg = "#a8bcff" # foreground color for the statusbar (unselected tags)
           		focus_border = "#000000" # border color of fucsed windows
            	focus_bg = "#000000" # focused background for the status bar, it's what decides the color for the background of the selected tag
            	focus_fg = "orange" # focused foreground color, the color of the selected tag and title
        		urgent_bg = "#000000" # background
        		urgent_fg = "orange" # foreground
        		tab_border = "#ff0000" # I have absolutely no idea.
    	}
    	layouts
    	{
    		# you can add whichever images you want here.  They'll display as the layout options on the statusbar.  I use a black background, and these images are black
    		# basically that "hides" them, but they're still available to use.
    		layout "tile"		{image = "/usr/local/share/awesome/icons/layouts/tile.png"} ## use tilew.png for white
    		layout "tileleft"	{image = "/usr/local/share/awesome/icons/layouts/tileleft.png"} ## use tileleftw.png for white
        		layout "max"		{image = "/usr/local/share/awesome/icons/layouts/max.png"} ## use maxw.png for white
    	   	layout "spiral"		{image = "/usr/local/share/awesome/icons/layouts/spiral.png"} ## use spiralw.png for white
    	    	layout "dwindle"	{image = "/usr/local/share/awesome/icons/layouts/dwindle.png"} ## use dwindlew.png for white
    		layout "floating"	{image = "/usr/local/share/awesome/icons/layouts/floating.png"} ## use floatingw.png for white
    	}
    	# padding around screen.
    	padding
    	{
        		top = 0
        		bottom = 0
        		right = 0
        		left = 0
      	}
    }
    # rules...the only kind I actually like!  These "rules" tell your windows where to go.  Basically, you can tell all your terminal to go to one tag
    # and have your browser go to a different one.   There's no limit on how many rules you have, just make sure they have a corresponding tag.
    # you can also tell these windows how to display, more information later!
    rules
    	{
    	rule
    	{
    		name = "firefox" 		# this is the name of the window.  It's not case sensitive as far as I know
    		tags = ":main" 			# this is the name of the tag you want Firefox to appear on.
    		float = "false"			# this is the layout style.  You can have it maximized,  floating, etc.  We'll have Firefox maximized.
    		screen = "0"				# which monitor to display on.  I have two monitors so I choose to have it on screen 0.  Leave it as it is.
    		not_master = false 	# we want it to be the master window
    	}
      	rule
    	{
    		name = "Gimp"
    		tags = ":devel"
    		float = "true"
    		screen = 0
    		not_master = false
    	}
    	rule
    	{
    		name = "urxvt"
    		tags = ":term"
    		float = "true"
    		screen = 0
    		not_master = true
    	}
    }
    # this section allows you to set hotkeys.  These are most excellent because they remove the need for a menu.  You can have as many as you want.
    keys
    	{
    	key
    	{	
    	    modkey = {"Mod4"} 	# mod4 by default is the windows key.
    	    key = "Return" 			# this is the key on your keyboard
    	    command = "spawn" # what it should do, usually always "spawn"
    	    arg = "exec urxvt" 	# what to exec.  In this case, mod4 + enter will start urxvt
    	}
    	key
    	{
    		modkey = {"Mod4"}
    		key = "f"
    		command = "spawn"
    		arg = "exec firefox"
    	}
      	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "space"
    	    	command = "tag_setlayout"
    	    	arg = "+1"
    	}
    	key
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	key = "space"
    	    	command = "tag_setlayout"
    	    	arg = "-1"
    	}
    	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "b"
    	    	command = "statusbar_toggle"
    	    	# arg = ""
    	}
    	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "j"
    	    	command = "client_focusnext"
    	    	# arg = ""
    	}
    	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "k"
    	    	command = "client_focusprev"
    	    	# arg = ""
    	}
    	key
    	{
    	   	modkey = {"Mod4"}
    	    	key = "Tab"
    	    	command = "focus_history"
    	    	arg = "-1"
    	}
    	key
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	key = "j"
    	    	command = "client_swapnext"
    	    	# arg = ""
    	}
    	key
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	key = "k"
    	    	command = "client_swapprev"
    	    	# arg = ""
      	}
    	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "j"
    	    	command = "screen_focus"
    	    	arg = "+1"
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "k"
    	    	command = "screen_focus"
    	    	arg = "-1"
      	}
    	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "h"
    	    	command = "tag_setmwfact"
    	    	arg = "-0.05"
      	}
      	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "l"
    	    	command = "tag_setmwfact"
    	    	arg = "+0.05"
      	}
      	key
    	{
        		modkey = {"Mod4", "Shift"}
        		key = "h"
        		command = "tag_setnmaster"
        		arg = "+1"
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	key = "l"
    	    	command = "tag_setnmaster"
    	   	arg = "-1"
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "h"
    	    	command = "tag_setncol"
    	    	arg = "+1"
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	   	key = "l"
    	    	command = "tag_setncol"
    	    	arg = "-1"
      	}
     	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "Escape"
    	    	command = "tag_viewprev_selected"
    	    	# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "Left"
    	    	command = "tag_viewprev"
    	    	# arg = ""
      	}
      	key	
    	{
    	    	modkey = {"Mod4"}
    	    	key = "Right"
    	    	command = "tag_viewnext"
    	    	# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4"}
    	    	key = "m"
    	    	command = "client_togglemax"
    	    	# arg = ""
    	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "Return"
    	    	command = "client_zoom"
    	    	# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "space"
    	    	command = "client_togglefloating"
    	    	# arg = ""
      	}
    	key
    	{
            	modkey = {"Mod4", "Control"}
            	key = "Left"
            	command = "spawn"
            	arg = "exec mpc prev"
    	}
        	key
        	{
           	 	modkey = {"Mod4", "Control"}
            	key = "Right"
            	command = "spawn"
            	arg = "exec mpc next"
       	}
      	key
    	{
    	   	modkey = {"Mod4", "Shift"}
    	    	key = "c"
    	    	command = "client_kill"
    	    	# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	key = "q"
    	    	command = "quit"
    	    	# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "r"
    	    	command = "exec"
    	    	arg = "awesome"
      	}
      	key
    	{
        		modkey = {"Mod4"}
        		key = "0"
        		command = "tag_view"
        		# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	key = "0"
    	    	command = "tag_toggleview"
    	    	# arg = ""
      	}
      	key
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	key = "0"
    	    	command = "client_tag"
    	    	# arg = ""
    	}
      	key
    	{
    	   	modkey = {"Mod4", "Shift", "Control"}
    	    	key = "0"
    	    	command = "client_toggletag"
    	    	# arg = ""
      	}
      	keylist
    	{
    	    	modkey = {"Mod4"}
    	    	keylist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
    	    	command = "tag_view"
    	    	arglist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
    	}
      	keylist
    	{
    	    	modkey = {"Mod4", "Control"}
    	    	keylist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
    	    	command = "tag_toggleview"
    	    	arglist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
      	}
      	keylist
    	{
    	    	modkey = {"Mod4", "Shift"}
    	    	keylist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
    	    	command = "client_tag"
    	    	arglist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
      	}
      	keylist
    	{
    	    	modkey = {"Mod4", "Shift", "Control"}
        		keylist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
        		command = "client_toggletag"
        		arglist = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}
      	}
    }
    mouse
    	{
    	root
    	{
    	    	modkey = {}
    	   	button = "3"
    	    	command = "spawn"
    	    	arg = "exec urxvt"
      	}
      	root
    	{
    	    	modkey = {}
    	    	button = "4"
    	    	command = "tag_viewnext"
    	    	# arg = ""
      	}
      	root
    	{
    	    	modkey = {}
    	    	button = "5"
    	   	command = "tag_viewprev"
    	    	# arg = ""
      	}
      	client
    	{
    	    	modkey = {"Mod4"}
    	    	button = "1"
    	    	command = "client_movemouse"
    	    	# arg = ""
      	}
      	client
    	{
    	    	modkey = {"Mod4"}
    	    	button = "2"
    	    	command = "client_zoom"
    	    	# arg = ""
      	}
      	client
    	{
    	    	modkey = {"Mod4"}
    	    	button = "3"
    	    	command = "client_resizemouse"
    	    	# arg = ""
    	}
    }
    *WHEW*

    ### Step 5 -- A Clock?
    Now, I do believe I promised a clock earlier on. So let's make that happen. Type this into the terminal:
    Code:
    gedit ~/awesome-monitor
    And paste in the following:
    Code:
    while true
    do
    echo 0 widget_tell clock "[`date '+%a %b %d %r'`]" | /usr/local/bin/awesome-client
    sleep 1
    done
    Then, we need to make it executable and put it in the proper directory. So, save and close the file then type the following into the terminal:
    Code:
    sudo chmod +x ~/awesome-monitor && sudo mv ~/awesome-monitor /usr/bin/
    Now we need to make it run. If you followed my advice earlier, your ~/.scripts/awesome.sh should look something like this:
    Code:
    ~/.fehbg &
    pidgin &
    /usr/bin/awesome-monitor &
    exec awesome ## this has to be the last line
    The second last line is what gives us the clock!

    All should work now. You're free to restart GDM and give Awesome a shot (Sessions -> Awesome).

    I'll try to keep this guide updated with as much information as I can give you. This is just the "basics" and I'll go through it to see if I've missed anything. If you have any questions, ask them. I'll try my best to answer them.

    Oh, and as promised, a screenshot of Awesome 2.1. Mind you, this is after a lot of customization, which I'll later show you how to do.



    More of my desktop shots can be seen here
    Last edited by ~LoKe; August 19th, 2008 at 02:17 AM.
    +Solace @DeviantArt | Awesome Guide | Beginners Team Member
    Canadian Forces 2007-present

  2. #2
    Join Date
    Dec 2005
    Location
    Kingston, Ontario
    Beans
    1,919
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: HOWTO: Set up AwesomeWM 2.1

    FAQ

    Question #1: I started Awesome but I don't know what to do. I have no start menu, and no right-click. I think it's broken!
    Answer #1: You're not alone here. They had me confused for a while. By default, Awesome doesn't have any menus. To "get going", press mod4 + enter (mod4 is usually the Windows key). This should open up a terminal, which allows you to do what you need.

    Question #2: Whenever I load awesome I have this ugly gray screen with a blue and black status bar. This is not what I set up in my ~/.awesomerc.
    Answer #2: The screen you're seeing is the fall back config. This means there's a problem with your ~/.awesomerc. It's possible that you forgot a curly brace or something else as simple. If you can't find the problem, post your ~/.awesomerc here within the [code] [/code] tags.

    Question #3: Awesome is ugly. All my fonts are big and I can't find any themes for awesome.
    Answer #3: This one is quite common. By default, the only theming available to awesome is that of the statusbar. However, you can use gnome-settings-daemon or gtk-theme-switch to apply one of your GTK themes. To get it to apply automatically when awesome starts, add the necessary line to ~/.xinitrc. Here's an example of what I would use:
    Code:
    /usr/bin/awesome-monitor &
    gnome-settings-daemon &
    
    exec awesome
    Question #4: How do I set a wallpaper? There's no right-click menu!
    Answer #4: This is usually what confuses most beginners. There is no right click menu. To set an image as your wallpaper, you can either open it up in an image viewer and choose view -> set as desktop wallpaper, or you can use an application like feh.
    Code:
    sudo apt-get install feh
    Feh is run from the command line. To set a wallpaper, type the following into the terminal:
    Code:
    feh --bg-scale /home/username/path/to/wallpaper.jpg
    There are several different options for feh, so type man feh in the terminal to find them all.
    |
    |___ Sub-question #1: Every time I log out and log back in, my wallpaper is gone. How do I make it stay?
    |___ Answer #1: To have your wallpaper start automatically, add the following to ~/.xinitrc:
    Code:
    feh --bg-scale /home/username/path/to/wallpaper.jpg &
    Question #5: I use two monitors, so awesome is showing two status bars. Can I make them look different, and have different tags for each?
    Answer #5: Yes! One of the greatest features of Awesome is its excellent support for dual display. To add a customized statusbar on your second display, add this right above the ## rules section of your ~/.awesomerc:
    Code:
    screen "1"
    {
    	general
    	{
    		# this is the border around your windows
    		border = 1
    		# snap to edges within 8 pixels
    		snap = 8
    		resize_hints = true
    		opacity_unfocused = 100
    		focus_move_pointer = false
    		allow_lower_floats = false
    		sloppy_focus = true
    		new_become_master = true
    		new_get_focus = true
    		# this is the font you'll see on your status bar, use whatever you'd like
    		font = "sans-7"
    	}
    	statusbar "mystatusbar"
    	{
    		# you can put the status bar anywhere; top, bottom, left, right
    		position = "top"
    		height = 0
    		width = 0
    		# this section allows you to use the mouse to tag windows and switch to them, leave it as it is for now unless you know what you're doing
    		taglist "mytaglist"
    		{
    			x = -1
    			y = -1
    			mouse 
    			{
    				modkey = {}
    			        button = "1"
    				command = "tag_view"
    			}
    			mouse
    			{
    		        	modkey = {"Mod4"}
    		        	button = "1"
    			        command = "client_tag"
    			}
          			mouse
    			{
    			        modkey = {}
        		   		button = "3"
    				command = "tag_toggleview"
       			}
          			mouse
    			{
    	        		modkey = {"Mod4"}
    	        		button = "3"
    	        		command = "client_toggletag"
    		    	}
          			mouse
    			{
            			modkey = {}
            			button = "4"
            			command = "tag_viewnext"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "5"
            			command = "tag_viewprev"
          			}
    		}
    		# this section is basically the same...
        		layoutinfo "mylayoutinfo"
    		{
          			x = -1
          			y = -1
          			mouse
    			{
            			modkey = {}
            			button = "1"
            			command = "tag_setlayout"
            			arg = "+1"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "4"
            			command = "tag_setlayout"
            			arg = "+1"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "3"
            			command = "tag_setlayout"
            			arg = "-1"
          			}
          			mouse
    			{
            			modkey = {}
            			button = "5"
            			command = "tag_setlayout"
            			arg = "-1"
          			}
        		}
    		# and so is this one....
        		tasklist "mytasklist" 
    		{
          			x = -1
          			y = -1
          			mouse
    			{
            			modkey = {}
            			button = "4"
            			command = "client_focusnext"
            			# arg = ""
          			}
          			mouse
    			{
            			modkey = {}
            			button = "5"
            			command = "client_focusprev"
            			# arg = ""
         			}
          			mouse
    			{
            			modkey = {"Mod4"}
            			button = "4"
            			command = "client_swapnext"
            			# arg = ""
          			}
          			mouse
    			{
            			modkey = {"Mod4"}
            			button = "5"
            			command = "client_swapprev"
           				# arg = ""
          			}
          			align = "left"
          			show_icons = false
          			show_all = false
        		}
    		# this section is rather important.  This is your statusbar widget for the clock.  This will put a clock at the far right side of your monitor. 
    		# you can add other widgets too, like mpd info, gmail scripts, etc.
    	    	textbox clock  # "clock" is the name of your widget
    		{
    			text = "-" # the - will be replaced by the date and time
    		}
      	}
    	# these are your tags.  Basically it defines how the statusbar is set up to look.  You can add/remove as many tags as you'd like, change their names, how their behave, etc.
      	tags
    	{
    		tag ":main" # :main is the display name of the tag.  You can change this to say whatever you want, it's completely up to you.
    		{
    			layout = "max" # this tells the tag how to display windows.  "max" forces all your windows in that tag to be...maximized!  You can still make them float by moving them by hand
    			mwfact = 0.500000 # leave this for now
          			nmaster = 1 # leave this for now
          			ncol = 1 # leave this for now
        		}
        		tag ":devel"
    		{
    	      		layout = "tile"
    	      		mwfact = 0.500000
     	     		nmaster = 1
    	      		ncol = 1
    		}
        		tag ":term"
    		{
          			layout = "tile"
          			mwfact = 0.500000
         			nmaster = 1
          			ncol = 1
        		}
    	}
    	colors
    	{
    		# here we define our colors.  I'll have an example screenshot at the bottom of this page.  You can change these colors to whatever you want.
    		normal_border = "#777777"  # window border when selected
            	normal_bg = "#000000" # background for the statusbar
            	normal_fg = "#a8bcff" # foreground color for the statusbar (unselected tags)
           		focus_border = "#000000" # border color of fucsed windows
            	focus_bg = "#000000" # focused background for the status bar, it's what decides the color for the background of the selected tag
            	focus_fg = "orange" # focused foreground color, the color of the selected tag and title
        		urgent_bg = "#000000" # background
        		urgent_fg = "orange" # foreground
        		tab_border = "#ff0000" # I have absolutely no idea.
    	}
    	layouts
    	{
    		# you can add whichever images you want here.  They'll display as the layout options on the statusbar.  I use a black background, and these images are black
    		# basically that "hides" them, but they're still available to use.
    		layout "tile"		{image = "/usr/local/share/awesome/icons/layouts/tile.png"} ## use tilew.png for white
    		layout "tileleft"	{image = "/usr/local/share/awesome/icons/layouts/tileleft.png"} ## use tileleftw.png for white
        		layout "max"		{image = "/usr/local/share/awesome/icons/layouts/max.png"} ## use maxw.png for white
    	   	layout "spiral"		{image = "/usr/local/share/awesome/icons/layouts/spiral.png"} ## use spiralw.png for white
    	    	layout "dwindle"	{image = "/usr/local/share/awesome/icons/layouts/dwindle.png"} ## use dwindlew.png for white
    		layout "floating"	{image = "/usr/local/share/awesome/icons/layouts/floating.png"} ## use floatingw.png for white
    	}
    	# padding around screen.
    	padding
    	{
        		top = 0
        		bottom = 0
        		right = 0
        		left = 0
      	}
    }
    Customize that to your hearts content; you can do whatever you want with it.

    MORE TO COME
    Last edited by ~LoKe; January 27th, 2008 at 04:58 PM.
    +Solace @DeviantArt | Awesome Guide | Beginners Team Member
    Canadian Forces 2007-present

  3. #3
    Join Date
    Jun 2007
    Beans
    638
    Distro
    Ubuntu 9.04 Jaunty Jackalope

    Re: HOWTO: Set up AwesomeWM 2.1

    Very good complement to shearn's excellent guide.

    I'll tinker with the awesomerc now..
    Ubuntu User # 17490
    Currently: Fisheye 2, Diana F+, Viv UWS
    Lomografix

  4. #4
    Join Date
    Jul 2006
    Location
    Germany
    Beans
    1,805

    Re: HOWTO: Set up AwesomeWM 2.1

    I predict that awesome will become the new fluxbox/openbox.

    Just two questions..

    Why install libconfuse-dev from the repositories? (It will be the wrong version.)

    Why not install confuse 2.6 with checkinstall as well?

  5. #5
    Join Date
    Dec 2005
    Location
    Kingston, Ontario
    Beans
    1,919
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: HOWTO: Set up AwesomeWM 2.1

    Quote Originally Posted by mali2297 View Post
    Why install libconfuse-dev from the repositories? (It will be the wrong version.)

    Why not install confuse 2.6 with checkinstall as well?
    That's what I get from carrying things over from the old installation. I'll modify the guide to remove that step.

    As for checkinstall, I hadn't really thought too much about it. I figured I'd just add it in for awesome itself (personally, I keep all libraries even if I don't need them). But for the sake of consistency and elegance, I'll make the amendment.

    Thanks!
    +Solace @DeviantArt | Awesome Guide | Beginners Team Member
    Canadian Forces 2007-present

  6. #6
    Join Date
    Jun 2007
    Location
    Over the mountain
    Beans
    42
    Distro
    Ubuntu 7.10 Gutsy Gibbon

    Re: HOWTO: Set up AwesomeWM 2.1

    thanks loki!

    actually got this to work on ubuntu this time lol, i moved to arch just to try awesome, liked it, but couldn't get my wireless to work, so i moved back and saw your post

    ----
    few things i had to change from your guide

    if i used your .xinitrc x gave me an error when loading awesome from gdm saying X-- could not find $HOME/.xinitrc and falling back to default (which was gnome)

    what i changed was :
    after gksudo blah blah awesome.desktop

    [Desktop Entry]
    Encoding=UTF-8
    Name=Awesome
    Comment=GDM entry for AwesomeWM
    Exec=/home/username/awesome.sh
    Icon=
    Type=Application
    then

    sudo gedit /awesome.sh

    #!/bin/bash
    #AUTOSTARTED APPS AND SETTINGS

    #STATUSBAR TEXT

    #Launch awesome
    feh --bg-scale /home/username/path/to/pic.jpg &
    gnome-settings-daemon &
    restricted-manager --check &
    sleep 5 && exec awesome
    then

    chmod +x awesome.sh
    and then logged out, changed session, and it worked!

    not sure why the original xinitrc didn't work.........

    and another thing the awesome-monitor (clock) didn't work :s....

    thanks again!
    On the road to Linux enlightenment ......

  7. #7
    Join Date
    Dec 2005
    Location
    Kingston, Ontario
    Beans
    1,919
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: HOWTO: Set up AwesomeWM 2.1

    Hm...not sure why it didn't work. I thought I could skip the executable script, but apparently not. Looks like I have a few edits to make.

    EDIT: The corrections have been made. Thanks again! As for your clock, try editing /usr/bin/awesome-monitor and changing:
    echo 1 widget_tell clock
    To...
    echo 0 widget_tell clock
    Last edited by ~LoKe; January 28th, 2008 at 12:00 AM.
    +Solace @DeviantArt | Awesome Guide | Beginners Team Member
    Canadian Forces 2007-present

  8. #8
    Join Date
    Jun 2007
    Location
    Over the mountain
    Beans
    42
    Distro
    Ubuntu 7.10 Gutsy Gibbon

    Re: HOWTO: Set up AwesomeWM 2.1

    :S ok, so having the same problem i had with arch

    when i login to Awesome right away *i set it to auto log me in when i boot up* my wireless doesn't work. but when i log in to gnome, the little wireless icon in the top right corner starts to work, and then i am connected. then i need to log out, then log in to awesome, then the internet works. can someone tell me how to get my wireless to work in awesome right away, aka what daemon or something do i need to add to my awesome.sh ?

    another thing loke: how do i "move" my windows when i put it in floating mode. like all the windows are ontop of each other when i do (Mod 4, ctrl, space) until the mode is set to float, but i still can't re-positon/re-adjust the open programs.
    On the road to Linux enlightenment ......

  9. #9
    Join Date
    Dec 2005
    Location
    Kingston, Ontario
    Beans
    1,919
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: HOWTO: Set up AwesomeWM 2.1

    Ah, I'll add a section for that, too. But quickly: Mod4 (windows key) + left click allows you to move a window. Mod4 + right click for resizing.

    As for your wireless; that's a good question. I'll try to find out which daemon controls that (unless someone else finds it first).
    +Solace @DeviantArt | Awesome Guide | Beginners Team Member
    Canadian Forces 2007-present

  10. #10
    Join Date
    Dec 2007
    Location
    Belgium
    Beans
    185

    Re: HOWTO: Set up AwesomeWM 2.1

    I would suggest using WICD for wireless. That puts up a system daemon regardless of which WM/DE you're in.
    [Configuration files]
    Linux IS user-friendly, it's just picky about its friends.

Page 1 of 14 12311 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •