JProbe vs GC memory graphs

Hello,
When I look at the "Runtime Heap Summary" in JProbe (which shows memory usage) and compare it with graphs plotted in excel using GC output they look completely different. Using the GC output I plotted the before and after memory graphs and neither remotely resembles JProbe's.
Any ideas?

what do you mean?
convert bytes to kilobytes?
what's specifically not matching up?
if the JProbe reports a smaller size than GC output, you might be looking at a subset of the packages in the VM and not everything? just a thought

Similar Messages

  • Is this graphs are for normal performance or the app leaking the memory ?!!

    Hey there,
    I'm new to java profiling and testing and I faced some hang ups so i made some fixes to my code .
    It's medium sized application and i captured some shots of the Memory Heap, Memory GC, Threads/Loaded classes Graphs From NetBeans Profiler.
    If any one may see them and say if this is normal performance or I need some more fixing in the come.
    Note that the graphs are captured when I was doing Load Test on the program
    The Memory Heap Graphs
    http://islamelhosary.mufix.org/profiler/3.png
    http://islamelhosary.mufix.org/profiler/4.png
    http://islamelhosary.mufix.org/profiler/7.png
    The Memory GC Graphs
    http://islamelhosary.mufix.org/profiler/2.png
    http://islamelhosary.mufix.org/profiler/5.png
    http://islamelhosary.mufix.org/profiler/8.png
    The Threads/Loaded classes Graphs
    http://islamelhosary.mufix.org/profiler/1.png
    http://islamelhosary.mufix.org/profiler/6.png
    http://islamelhosary.mufix.org/profiler/9.pngThanks for your time
    Islam El Hosary

    It's always hard to tell if memory is leaking by graphs alone... of course if your memory graph is always increasing and never returning to some base value after GC, then you probably have a leak. You should use a tool like JProfiler on your app server to watch for leaks from a particular application (object within some app). But, in general... watch all graphs Memory, Threads, and CPU usage for abnormal trends. An app can also leak via over usage of resources (spawning threads that are never completing or never released).

  • High Eden Java Memory Usage/Garbage Collection

    Hi,
    I am trying to make sure that my Coldfusion Server is optomised to the max and to find out what is normal limits.
    Basically it looks like at times my servers can run slow but it is possible that this is caused by a very old bloated code base.
    Jrun can sometimes have very high CPU usage so I purchased Fusion Reactor to see what is going on under the hood.
    Here are my current Java settings (running v6u24):
    java.args=-server -Xmx4096m -Xms4096m -XX:MaxPermSize=256m -XX:PermSize=256m -Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 -Dsun.io.useCanonCaches=false -XX:+UseParallelGC -Xbatch ........
    With regards Memory, the only memory that seems to be running a lot of Garbage Collection is the Eden Memory Space. It climbs to nearly 1.2GB in total just under every minute at which time it looks like GC kicks in and the usage drops to about 100MB.
    Survivor memory grows to about 80-100MB over the space of 10 minutes but drops to 0 after the scheduled full GC runs. Old Gen memory fluctuates between 225MB and 350MB with small steps (~50MB) up or down when full GC runs every 10 minutes.
    I had the heap set to 2GB initally in total giving about 600MB to the Eden Space. When I looked at the graphs from Fusion Reactor I could see that there was (minor) Garbage Collection about 2-3 times a minute when the memory usage maxed out the entire 600MB which seemed a high frequency to my untrained eye. I then upped the memory to 4GB in total (~1.2GB auto given to Eden space) to see the difference and saw that GC happened 1-2 times per minute.
    Is it normal in Coldfusion that the Eden memory would grow so quickly and have garbage collection run so often? i.e do these graphs look normal?
    Also should I somehow redistribute the memory available to give the Eden memory more since it seems to be where all the action is?
    Any other advice for performance improvements would be much appreciated.
    Note: These graphs are not from a period where jrun had high CPU.
    Here are the graphs:
    PS Eden Space Graph
    PS Survivor Space Graph
    PS Old Gen Graph
    PS Perm Gen Graph
    Heap Memory Graph
    Heap/Non Heap Memory Graph
    CPU Graph
    Request Average Execution Time Graph
    Request Activity Graph
    Code Cache Graph

    Hi,
    >Is it normal in Coldfusion that the Eden memory would grow so quickly and have garbage collection run so often?
    Yes normal to garbage collect Eden often. That is a minor garbage collection.
    >Also should I somehow redistribute the memory available to give the Eden memory more since it seems to be where all the action is?
    Sometimes it is good to set Eden (Eden and its two Survivor Spaces combined make up New or Young Generation part of JVM heap) to a smaller size. I know your thinking - what make it less, but I want to make it bigger. Give less a try (sometimes less = more, bigger not = better) and monitor the situation. I like to use -Xmn switch, some sources say to use other method/s. Perhaps you could try java.args=-server -Xmx4096m -Xms4096m -Xmn172m etc. I better mention make a backup copy of jvm.config before applying changes. Having said that now you know how you can set the size to bigger if you want.
    I think the JVM is perhaps making some poor decisions with sizing the heap. With Eden growing to 1Gb then being evacuated not many objects are surviving and therefore not being promoted to Old Generation. This ultimately means the object will need to be loaded again latter to Eden rather than being referenced in the Old generation part of the heap. Adds up to poor performance.
    >Any other advice for performance improvements would be much appreciated.
    You are using Parallel garbage collector. Perhaps you could enable that to run multi-threaded reducing the time duration of the garbage collections, jvm args ...-XX:+UseParallelGC -XX:ParallelGCThreads=N etc where N = CPU cores (eg quad core = 4).
    HTH, Carl.

  • Leak memory in xerces DomParser

    Hey,
    I have " leak memory " in my Java application (Stand alone).
    I suspect that this leak caused by xerces DomParser.
    i reached to this conculsion after using in Jprobe as a memory debuger.
    Does any one has a similar problem?
    Thank you.
    code:
    DOMParser parser = new DOMParser();
    parser.parse(new InputSource(new FileInputStream(schemaFile)));

    Hey, which Version of Xerces do you use?

  • I think I've got a memory leak and could use some advice

    We've got ourselves a sick server/application and I'd like to gather a little community advice if I may. I believe the evidence supports a memory leak in my application somewhere and would love to hear a second opinion and/or suggestions.
    The issue has been that used memory (as seen by FusionReactor) will climb up to about 90%+ and then the service will start to queue requests and eventually stop processing them all together. A service restart will bring everything back up again and it could run for 2 days or 2 hours before the issue repeats itself. Due to the inconsistant up time, I can't be sure that it's not some trouble bit of code that runs only occasionally or if it's something that's a core part of the application. My current plan is to review the heap graph on the "sick" server and look for sudden jumps in memory usage then review the IIS logs for requests at those times to try and establish a pattern. If anyone has some better suggestions though, I'm all ears! The following are some facts about this situation that may be usefull.
    The "sick" server:
    - CF 9.0.1.274733 Standard
    - FusionReactor 4.0.9
    - Win2k8 Web R2 (IIS7.5)
    - Dual Xeon 2.8GHz CPUs
    - 4GB RAM
    JVM Config (same on "sick" and "good" servers):
    - Initial and Max heap: 1536
    -server -Xss10m -Dsun.io.useCanonCaches=false -XX:PermSize=192m  -XX:MaxPermSize=256m -XX:+UseParNewGC -Xincgc -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib -Dcoldfusion.dotnet.disableautoconversion=true
    What I believe a "healthy" server graph should look like (from "good" server):
    And the "sick" server graph looks like this:

    @AmericanWebDesign, I would concur with BKBK (in his subsequent reply) that a more reasonable explanation for what you’re seeing (in the growth of heap) is something using and holding memory, which is not unusual for the shared variables scopes: session, application, and/or server. And the most common is sessions.
    If that’s enough to get you going, great. But I suspect most people need a little more info. If this matter were easy and straightforward, it could be solved in a tweet, but it’s not, so it can’t.
    Following are some more thoughts, addressing some of your concerns and hopefully pointing you in some new directions to find resolution. (I help people do it all the time, so the good news is that it can be done, and answers are out there for you.)
    Tracking Session Counts
    First, as for the observation we’re making about the potential impact of sessions, you may be inclined to say “but I don’t put that much in the session scope”. The real question to start with, though, is “how many sessions do you have”, especially when memory use is high like that (which may be different than how many you have right now). I’ve helped many people solve such problems when we found they had tens or hundreds of thousands of sessions.  How can you tell?
    a) Well, if you were on CF Enterprise, you could look at the Server Monitor. But since you’re not, you have a couple of choices.
    b) First, any CF shop could use a free tool called ServerStats, from Mark Lynch, which uses the undocumented servicefactory objects in CF to report a count of sessions, overall and per application, within an instance. Get it here: http://www.learnosity.com/techblog/index.cfm/2006/11/9/Hacking-CFMX--pulling-it-all-togeth er-serverStats . You just drop the files (within the zip) into a web-accessible directory and run the one CFM page to get the answer instantly.
    c) Since you mention using FusionReactor 4.0.9, here’s another option: those using FR 4 (or 4.5, a free update for you since you’re on FR 4) can use its available (but separately installed) FusionReactor Extensions for CF, a free plugin (for FR, at http://www.fusion-reactor.com/fr/plugins/frec.cfm). It causes FR to grab that session count (among many other really useful things about CF) to log it every 5 seconds, which can be amazingly helpful. And yes, FREC can grab that info whether one is on CF Standard or Enterprise.
    And let’s say you find you do have tens of thousands of sessions (or more). You may wonder, “how does that happen?“ The most common explanation is spiders and bots hitting your site (from legit or unexpected search engines and others). Some of these visit your site perhaps daily to gather up the content of all the pages of your site, crawling through every page. Each such page hit will create a new session. For more on why and how (and some mitigation), see:
    http://www.carehart.org/blog/client/index.cfm/2006/10/4/bots_and_spiders_and_poor_CF_perfo rmance
    About “high memory”
    All that said, I’d not necessarily conclude so readily that your “bad” memory graph is “bad”. It could just be “different”.
    Indeed, you say you plan to “look for sudden jumps in memory usage“, but if you look at your “bad” graph, it simply builds very slowly. I’d think this supports the notion that BKBK and I are asserting: that this is not some one request that “goes crazy” and uses lots of memory, but instead is the “death by a thousand cuts” as memory use builds slowly.  Even then, I’d not jump at a concern that “memory was high”.
    What really matters, when memory is “high” is whether you (or the JVM) can do a GC (garbage collection) to recover some (or perhaps much) of that “high, used memory”. Because it’s possible that while it “was” in use in the past (as the graph shows), it might no longer be “in use” at the moment . 
    Since you have FR, you can use its “System Metrics page” to do a GC, using the trash can in the top left corner of the top right-most memory graph. (Those with the CFSM can do a GC on its “Memory Usage Summary” page, and SeeFusion users can do it on its front page.)
    If you do a GC, and memory drops q lot, then you had memory that “had been” but no longer ”still was” in use, and so the high memory shown was not a problem. And the JVM can sometimes be lazy (because it’s busy) about getting to doing a GC, so this is not that unusual. (That said, I see you have added the Xincgc arg to your JVM. Do you realize that tells the JVM not to do incremental GCs? Do you really want that? I understand that people trade jvm args like baseball cards, trying to solve problems for each other, but I’d argue that’s not the place to start. In fact, rarely do I find myself that any new JVM args are needed to solve most problems.)
    (Speaking of which, why did you set the – xss value? And do you know if you were raising or lowering it form the default?)
    Are you really getting “outofmemory” errors?
    But certainly, if you do hit a problem where (as you say) you find requests hanging, etc., then you will want to get to the bottom of that. And if indeed you are getting “outofmemory” problems, you need to solve those. To confirm if that’s the case, you’ll really want to look at the CF logs (specifically the console or “out” logs). For more on finding those logs, as well as a general discussion of memory issues  (understanding/resolving them), see:
    http://www.carehart.org/blog/client/index.cfm/2010/11/3/when_memory_problems_arent_what_th ey_seem_part_1
    This is the first of a planned series of blog entries (which I’ve not yet finished) on memory issues which you may find additionally helpful.
    But I’ll note that you could have other explanations for “hanging requests” which may not necessarily be related to memory.
    Are you really getting “queued” requests?
    You also say that “the service will start to queue requests and eventually stop processing them all together”. I’m curious: do you really mean “queuing”, in the sense of watching something in CF that tells you that? You can find a count of queued requests, with tools like CFSTAT, jrun metrics, the CF Server Monitor, or again FREC. Are you seeing one of those? Or do you just mean that you find that requests no longer run?
    I address matters related to requests hanging and some ways to address them in another entries:
    http://www.carehart.org/blog/client/index.cfm/2010/10/15/Lies_damned_lies_and_CF_timeouts
    http://www.carehart.org/blog/client/index.cfm/2009/6/24/easier_thread_dumps
    Other server differences
    You presented us a discussion of two servers, but you’ve left us in the dark on potential differences between them. First, you showed the specs for the “sick” server, but not the “good” one. Should we assume perhaps you mean that they are identical, like you said the JVM.config is?
    Also, is there any difference in the pattern of traffic (and/or the sites themselves) on the two servers? If they differ, then that could be where the explanation lies. Perhaps the sites on one are more inclined to be visited often by search engine spiders and bots (if they sites are more popular or just have become well known to search engines). There are still other potential differences that could explain things, but these are all enough to hopefully get you started.
    I do hope that this is helpful. I know it’s a lot to take in. Again, if it was easier to understand and explain, there wouldn’t be so much confusion. I do realize that many don’t like to read long emails (let alone write them), which only exacerbates the problem. Since all I do each day is help people resolve such problems (as an independent consultant, more at carehart.org/consulting), I like to share this info when I can (and when I have time to elaborate like this), especially when I think it may help someone facing these (very common) challenges.
    Let us know if it helps or raises more questions. :-)
    /charlie

  • Memory Leak in 8.1 sp5

    Has anyone experienced a memory leak when a webservice (jws)
    returns a large string (5-15 Meg). The string itself is a XML. When the webservice is called numerous times it eventually runs out of memory.

    We have seen exactly the same behaviour you just described, also related to webservices that return large XML response documents. Initially we had the test console enabled, which consumed all the memory rapidly. Once this was disabled, we've been seeing the exception messages that you've been getting. We did have an issue where the JVM was configured with too much memory (sounds counter intuitive), and we found the max JVM size should be less than 2MB (we're now using 1.3MB). This reduce the frequency of the error occuring, but it does still occasionally happen.
    I did some testing where I watched the memory used by weblogic when returning a large XML document. The XML document size was around 8MB when saved as a txt file. From the weblogic console server->monitor->performance page, the memory consumed by weblogic when returning this XML document was much larger than I expected. In fact weblogic used about 100MB of memory and the memory graph went up very steeply when returning this document. I adjusted my JVM memory settings and found that if I had less than approximately 80MB of free memory, then my webservice couldn't return this large XML response document without getting the OutOfMemory error. This test was done using a weblogic server that had just booted up and so had no scope for garbage collection of memory.

  • AIR runtime Memory Leak?

    Hi,
    I have an app developed with AIR 3.7 for iOS (iPad)
    The app gets very sluggish after a while, eventually crashes.
    I've been -very- careful to pool objects where possible and cleanup / nullify all objects once they're not needed any more.
    Profiling the app in Scout returns a pretty stable memory profile (the peaks and the lows translate very well to what's happening on screen)
    Simultenously profiling the app using XCode's Instruments, shows me that the memory consumption off the app constantly rises up to the point the systems spends more time throwing memory warning than anything else.
    Here are screenshots of both profilers: they show as3 memory usage being pretty stable, on the app level, memory keeps rising...
    https://dl.dropboxusercontent.com/u/608333/AIR_memory_leak.zip
    If AS3 is not leaking any memory (according to scout), but the app is (according to Instruments), would I be right assuming there's a memory leak in the AIR-runtime itself?
    thanks for your feedback!
    bart.

    ok, lots of trial and error has showed me the following:
    There are two issues when loading assets using the Loader Class with its LoaderContext set to ImageDecodingPolicy.ON_LOAD.
    These issues typically arise in a magazine-like app, where many images are loaded and unloaded continously.
    Issue 1:
    When initializing a load() on a Loader class with LoaderContext to ImageDecodingPolicy.ON_LOAD, all image decoding seems to be queued in a seperate thread. With several large images, especially on mobile devices, the time to crunch through a queue like this can easily go into dozens of seconds. During that time, some of the loaders can be unloaded, cleared, nulled and deleted. Yet, the loader isn't removed from the decoding queue.
    In other words: once you fire the 'load' method on a Loader instance, you're not able to cancel the decompression process, even though the decompression might not even have started yet, as queued by other decompressions.
    Issue 2:
    When a Loader instance is unloaded, cleared, nulled and deleted while its decompression is still queued and not yet fully decompressed, there seems to be a memory leak. With several dozens of images loading and interupting the loading, you'll notice a difference in memory consumtion when comparing memory output in Scout and in Instruments. Both memory graphs build up very similar yet after the runtime's garbarge collection kicks in, the memory graph in Instruments seems to not release memory fully. Consumption gradually rises until the app eventually crashes.
    https://dl.dropboxusercontent.com/u/608333/AIRMemoryLeakExample.zip
    This example app allows you to create loaders in bursts by touching the screen.
    You'll instantly see the massive waiting times for decompression, despite the fact there's only a few Loader instances in memory at the same time. After several short bursts and wait-a-bit-for-decompression-to-catch-up, you should also notice the difference in memory profiling between Scout and Instruments.
    I managed to work around both issues by making a LoaderQueueManager class.
    This class instantiates and returns a Loader instance, queues these instances and tracks its onComplete handler. Only when one loader is finished loading, the next loader starts loading. This way, you never have different instances trying to simulataneously decompress their content. As such decompressions are never interrupted and loaders can also be de-queued. This practically speeds up decompression dramatically, since images that are removed won't get decompressed in vain. Memory Leaks also don't occur, since not a single decompression is ever interupted.
    This solution only works with content loaded locally.
    Hope you can get somewhere with this,
    and hopefully, you find a fix in one of the next AIR releases.
    best,
    bart.

  • Firefox immediate lockup trying to restore memory-leaking open tabs

    I've managed to get firefox to immediately lock up once opening it as it's trying to restore a tab that causes the memory so suddenly leak so severely the memory graph in windows is greater than 45 degrees. Firefox does have option to turn of tab-reopening on launch, but that requires being able to use the options menu, or even about config screen. Restarting the computer, end-task on firefox and re-launch, or spam clicking the close window box, or ctrl-w to try to close tabs, all have failed.
    Is there a way to launch firefox perhaps with a command line or key hold that prevents it from re-opening a previous session?

    Look for the Firefox icon on your Task Bar. Right click and select
    '''Open New Window.'''
    '''[https://addons.mozilla.org/en-US/firefox/addon/flashblock/ Flash block]''' {web link}
    Never be annoyed by a Flash animation again! Blocks Flash so it
    won't get in your way, but if you want to see it, just click on it
    '''https://support.mozilla.org/en-US/kb/firefox-slow-how-make-it-faster'''
    '''https://support.mozilla.org/en-US/kb/firefox-uses-too-many-cpu-resources-how-fix'''
    '''https://support.mozilla.org/en-US/kb/firefox-hangs-or-not-responding'''
    '''[https://support.mozilla.org/en-US/kb/firefox-uses-too-much-memory-ram Firefox uses too much memory (RAM) - How to fix]'''

  • Strange Memory Spike Occurring

    Hi all,
    I am encountering a weird memory spike running an application under Java 1.4.1_02 and I am wondering if anyone else has encountered it, it knows what the problem might be.
    Here's what happens. I am running an application that we develop that (as a simplified explanation) processes requests. Everything ran fine under Java 1.3.1_06 and we are investigating moving it forward to 1.4.1_02. When I start up the system, I run through 4 identical requests as a test. The first three requests go through as expected. On the fourth request, one JVM (there are several JVM's going, communicating through CORBA) starts a vicous memory grab that pushes it's real memory usage from 20MB to 90MB and its virtual memory usage from 30MB to 1.6GB. While this is happening (takes about 2 to 2.5 minutes) everything else in the JVM stops happening (timers don't expire, code isn't executed, etc). After the memory consumption reaches its peak, the system slowly starts recovering the memory, back down to its orignal size (another 2 to 2.5 minutes.) At this point the system resumes operation exactly where it left off and works fine from there on, until it is restarted (I have run up to 10000 requests through afterwards without a problem.)
    The memory usage happens in a two step process. It starts with one big jump of about 300MB (total between the real and virtual memory), then continues increasing in a gradual increase. The decrease happens in a mirror of this, with ta gradual decrease for a while, then a big drop at the end. The memory graph would look somehting like this:
                      1.6GB
              330MB/        \330MB
                   |        |
                   |        |
    20MB___________|        |___________ 20MB
                   ^        ^
                   |        |
              processing  processing
                stops      resumesI have run the process with both -Xrunhprof and -verbose options, and neither show anything that might be the cause of the problem. I then tried attaching to the process with a remote profiler and the problem did not occur. Further playing around with the command line showed that using -server as an option made the problem not occur.
    My question is what caused it in the first place? I have concerns about this re-occurring elsewhere, especially if adding the -server option doesn't fix the problem just move it somewhere else.
    Can anyone give me any help?

    Hi Daman !
    Your problem definitely seems to be due to a known bug in jdk1.4.1
    - that the heap memory exceeds the allocated ones (default=64mb).
    In your case the process stops for some time in your application because the garbage collector is running. Since the GC has to reclaim a large amount of memory it takes some time- thats why the program stops executing.
    Use a profiler like JProfiler to confirm if this is due gc activity.
    1) Plz try different combination heap sizes
    of -Xms and -Xmx setting for eg (-Xms128 -Xmx128) or dont use it at all.
    2) But a preferred one will be to upgrade to j2se1.4.1_02.
    Hope this helps !!

  • [SOLVED] Error when starting awesome WM.

    I'm not sure if this should go here or in Workstation User, so sorry if I got it wrong. When I try to startx with "exec awesome &" in my .xinitrc I get an "expected keysym, got XF86Info: line 914 of inet" error. Someone suggested that it could be my keybindings in my rc.lua for awesome but I tried someone else's rc.lua and still got it.
    Error Log
    xauth: creating new authority file /home/tim/.serverauth.27451
    X.Org X Server 1.5.0
    Release Date:
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.26-ARCH i686
    Current Operating System: Linux tim-laptop 2.6.26-ARCH #1 SMP PREEMPT Tue Sep 9 10:15:21 UTC 2008 i686
    Build Date: 06 September 2008 05:03:06PM
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Module Loader present
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Sat Sep 20 11:49:21 2008
    (==) Using config file: "/etc/X11/xorg.conf"
    expected keysym, got XF86Info: line 914 of inet
    expected keysym, got XF86Info: line 914 of inet
    expected keysym, got XF86Info: line 914 of inet
    waiting for X server to shut down .
    Xorg.log
    X.Org X Server 1.5.0
    Release Date:
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.26-ARCH i686
    Current Operating System: Linux tim-laptop 2.6.26-ARCH #1 SMP PREEMPT Tue Sep 9 10:15:21 UTC 2008 i686
    Build Date: 06 September 2008 05:03:06PM
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Module Loader present
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Sat Sep 20 11:49:21 2008
    (==) Using config file: "/etc/X11/xorg.conf"
    (==) ServerLayout "X.org Configured"
    (**) |-->Screen "Screen0" (0)
    (**) | |-->Monitor "Monitor0"
    (**) | |-->Device "Card0"
    (**) |-->Input Device "Mouse0"
    (**) |-->Input Device "Keyboard0"
    (==) Automatically adding devices
    (==) Automatically enabling devices
    (==) Including the default font path /usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1.
    (**) FontPath set to:
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1,
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1
    (**) ModulePath set to "/usr/lib/xorg/modules"
    (II) Open ACPI successful (/var/run/acpid.socket)
    (II) Loader magic: 0x81d5660
    (II) Module ABI versions:
    X.Org ANSI C Emulation: 0.4
    X.Org Video Driver: 4.1
    X.Org XInput driver : 2.1
    X.Org Server Extension : 1.1
    X.Org Font Renderer : 0.6
    (II) Loader running on linux
    (--) using VT number 7
    (--) PCI:*(0@0:2:0) Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller rev 3, Mem @ 0xd0300000/0, 0xc0000000/0, 0xd0400000/0, I/O @ 0x00001800/0
    (--) PCI: (0@0:2:1) Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller rev 3, Mem @ 0xd0380000/0
    (II) System resource ranges:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [5] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    (II) "extmod" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dbe" will be loaded. This was enabled by default and also specified in the config file.
    (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
    (II) "freetype" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dri" will be loaded. This was enabled by default and also specified in the config file.
    (II) LoadModule: "dri"
    (II) Loading /usr/lib/xorg/modules/extensions//libdri.so
    (II) Module dri: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension XFree86-DRI
    (II) LoadModule: "glx"
    (II) Loading /usr/lib/xorg/modules/extensions//libglx.so
    (II) Module glx: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org Server Extension, version 1.1
    (==) AIGLX enabled
    (==) Exporting typical set of GLX visuals
    (II) Loading extension GLX
    (II) LoadModule: "dbe"
    (II) Loading /usr/lib/xorg/modules/extensions//libdbe.so
    (II) Module dbe: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension DOUBLE-BUFFER
    (II) LoadModule: "extmod"
    (II) Loading /usr/lib/xorg/modules/extensions//libextmod.so
    (II) Module extmod: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension SHAPE
    (II) Loading extension MIT-SUNDRY-NONSTANDARD
    (II) Loading extension BIG-REQUESTS
    (II) Loading extension SYNC
    (II) Loading extension MIT-SCREEN-SAVER
    (II) Loading extension XC-MISC
    (II) Loading extension XFree86-VidModeExtension
    (II) Loading extension XFree86-Misc
    (II) Loading extension XFree86-DGA
    (II) Loading extension DPMS
    (II) Loading extension TOG-CUP
    (II) Loading extension Extended-Visual-Information
    (II) Loading extension XVideo
    (II) Loading extension XVideo-MotionCompensation
    (II) Loading extension X-Resource
    (II) LoadModule: "synaptics"
    (II) Loading /usr/lib/xorg/modules/input//synaptics_drv.so
    (II) Module synaptics: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 0.15.2
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 2.1
    (II) LoadModule: "xtrap"
    (II) Loading /usr/lib/xorg/modules/extensions//libxtrap.so
    (II) Module xtrap: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension DEC-XTRAP
    (II) LoadModule: "freetype"
    (II) Loading /usr/lib/xorg/modules/fonts//libfreetype.so
    (II) Module freetype: vendor="X.Org Foundation & the After X-TT Project"
    compiled for 1.5.0, module version = 2.1.0
    Module class: X.Org Font Renderer
    ABI class: X.Org Font Renderer, version 0.6
    (II) Loading font FreeType
    (II) LoadModule: "evdev"
    (II) Loading /usr/lib/xorg/modules/input//evdev_drv.so
    (II) Module evdev: vendor="X.Org Foundation"
    compiled for 1.4.99.906, module version = 2.0.4
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 2.1
    (II) LoadModule: "intel"
    (II) Loading /usr/lib/xorg/modules/drivers//intel_drv.so
    (II) Module intel: vendor="X.Org Foundation"
    compiled for 1.4.99.906, module version = 2.4.2
    Module class: X.Org Video Driver
    ABI class: X.Org Video Driver, version 4.1
    (II) LoadModule: "synaptics"
    (II) Reloading /usr/lib/xorg/modules/input//synaptics_drv.so
    (II) LoadModule: "kbd"
    (II) Loading /usr/lib/xorg/modules/input//kbd_drv.so
    (II) Module kbd: vendor="X.Org Foundation"
    compiled for 1.4.2, module version = 1.3.1
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 2.0
    (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
    i810-dc100, i810e, i815, i830M, 845G, 852GM/855GM, 865G, 915G,
    E7221 (i915), 915GM, 945G, 945GM, 945GME, 965G, G35, 965Q, 946GZ,
    965GM, 965GME/GLE, G33, Q35, Q33,
    Mobile Intel® GM45 Express Chipset,
    Intel Integrated Graphics Device, G45/G43, Q45/Q43
    (II) Primary Device is: PCI 00@00:02:0
    (II) resource ranges after xf86ClaimFixedResources() call:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [5] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    (II) resource ranges after probing:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] 0 0 0x000a0000 - 0x000affff (0x10000) MS[b]
    [5] 0 0 0x000b0000 - 0x000b7fff (0x8000) MS[b]
    [6] 0 0 0x000b8000 - 0x000bffff (0x8000) MS[b]
    [7] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [8] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    [9] 0 0 0x000003b0 - 0x000003bb (0xc) IS[b]
    [10] 0 0 0x000003c0 - 0x000003df (0x20) IS[b]
    (II) Loading sub module "int10"
    (II) LoadModule: "int10"
    (II) Loading /usr/lib/xorg/modules//libint10.so
    (II) Module int10: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org Video Driver, version 4.1
    (II) Loading sub module "vbe"
    (II) LoadModule: "vbe"
    (II) Loading /usr/lib/xorg/modules//libvbe.so
    (II) Module vbe: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.1.0
    ABI class: X.Org Video Driver, version 4.1
    (II) Loading sub module "vgahw"
    (II) LoadModule: "vgahw"
    (II) Loading /usr/lib/xorg/modules//libvgahw.so
    (II) Module vgahw: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 0.1.0
    ABI class: X.Org Video Driver, version 4.1
    (==) intel(0): Depth 24, (==) framebuffer bpp 32
    (==) intel(0): RGB weight 888
    (==) intel(0): Default visual is TrueColor
    (**) intel(0): Option "AccelMethod" "exa"
    (II) intel(0): Integrated Graphics Chipset: Intel(R) 945GM
    (--) intel(0): Chipset: "945GM"
    (--) intel(0): Linear framebuffer at 0xC0000000
    (--) intel(0): IO registers at addr 0xD0300000
    (II) intel(0): 2 display pipes available.
    (**) intel(0): Using EXA for acceleration
    (II) Loading sub module "int10"
    (II) LoadModule: "int10"
    (II) Reloading /usr/lib/xorg/modules//libint10.so
    (II) intel(0): initializing int10
    (WW) intel(0): Bad V_BIOS checksum
    (II) intel(0): Primary V_BIOS segment is: 0xc000
    (II) intel(0): VESA BIOS detected
    (II) intel(0): VESA VBE Version 3.0
    (II) intel(0): VESA VBE Total Mem: 7872 kB
    (II) intel(0): VESA VBE OEM: Intel(r) 82945GM Chipset Family Graphics Chip Accelerated VGA BIOS
    (II) intel(0): VESA VBE OEM Software Rev: 1.0
    (II) intel(0): VESA VBE OEM Vendor: Intel Corporation
    (II) intel(0): VESA VBE OEM Product: Intel(r) 82945GM Chipset Family Graphics Controller
    (II) intel(0): VESA VBE OEM Product Rev: Hardware Version 0.0
    (II) Loading sub module "ddc"
    (II) LoadModule: "ddc"
    (II) Module "ddc" already built-in
    (II) Loading sub module "i2c"
    (II) LoadModule: "i2c"
    (II) Module "i2c" already built-in
    (II) intel(0): Output VGA using monitor section Monitor0
    (II) intel(0): I2C bus "CRTDDC_A" initialized.
    (II) intel(0): Output LVDS has no monitor section
    (II) intel(0): I2C bus "LVDSDDC_C" initialized.
    (II) intel(0): Attempting to determine panel fixed mode.
    (II) intel(0): I2C device "LVDSDDC_C:ddc2" registered at address 0xA0.
    (II) intel(0): EDID vendor "LPL", prod id 49152
    (II) intel(0): found backlight control method /sys/class/backlight/acpi_video1
    (II) intel(0): Output TV has no monitor section
    (II) intel(0): EDID vendor "LPL", prod id 49152
    (II) intel(0): Output VGA disconnected
    (II) intel(0): Output LVDS connected
    (II) intel(0): Output TV disconnected
    (II) intel(0): Using exact sizes for initial modes
    (II) intel(0): Output LVDS using initial mode 1280x800
    (II) intel(0): Monitoring connected displays enabled
    (II) intel(0): detected 256 kB GTT.
    (II) intel(0): detected 7932 kB stolen memory.
    (==) intel(0): video overlay key set to 0x101fe
    (==) intel(0): Will not try to enable page flipping
    (==) intel(0): Triple buffering disabled
    (==) intel(0): Intel XvMC decoder disabled
    (==) intel(0): Using gamma correction (1.0, 1.0, 1.0)
    (==) intel(0): DPI set to (96, 96)
    (II) Loading sub module "fb"
    (II) LoadModule: "fb"
    (II) Loading /usr/lib/xorg/modules//libfb.so
    (II) Module fb: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org ANSI C Emulation, version 0.4
    (II) Loading sub module "exa"
    (II) LoadModule: "exa"
    (II) Loading /usr/lib/xorg/modules//libexa.so
    (II) Module exa: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 2.4.0
    ABI class: X.Org Video Driver, version 4.1
    (II) Loading sub module "ramdac"
    (II) LoadModule: "ramdac"
    (II) Module "ramdac" already built-in
    (II) intel(0): Comparing regs from server start up to After PreInit
    (WW) intel(0): Register 0x61200 (PP_STATUS) changed from 0xc0000008 to 0xd000000a
    (WW) intel(0): PP_STATUS before: on, ready, sequencing idle
    (WW) intel(0): PP_STATUS after: on, ready, sequencing on
    (WW) intel(0): Register 0x71024 (PIPEBSTAT) changed from 0x00000202 to 0x80000202
    (WW) intel(0): PIPEBSTAT before: status: VSYNC_INT_STATUS VBLANK_INT_STATUS
    (WW) intel(0): PIPEBSTAT after: status: FIFO_UNDERRUN VSYNC_INT_STATUS VBLANK_INT_STATUS
    (==) Depth 24 pixmap format is 32 bpp
    (II) do I need RAC? No, I don't.
    (II) resource ranges after preInit:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] 0 0 0x000a0000 - 0x000affff (0x10000) MS[b](OprD)
    [5] 0 0 0x000b0000 - 0x000b7fff (0x8000) MS[b](OprD)
    [6] 0 0 0x000b8000 - 0x000bffff (0x8000) MS[b](OprD)
    [7] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [8] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    [9] 0 0 0x000003b0 - 0x000003bb (0xc) IS[b](OprU)
    [10] 0 0 0x000003c0 - 0x000003df (0x20) IS[b](OprU)
    (II) intel(0): Kernel reported 238592 total, 1 used
    (II) intel(0): I830CheckAvailableMemory: 954364 kB available
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 11, (OK)
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 11, (OK)
    drmOpenByBusid: Searching for BusID pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 11, (OK)
    drmOpenByBusid: drmOpenMinor returns 11
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    (II) [drm] DRM interface version 1.3
    (II) [drm] DRM open master succeeded.
    (II) intel(0): [drm] Using the DRM lock SAREA also for drawables.
    (II) intel(0): [drm] framebuffer mapped by ddx driver
    (II) intel(0): [drm] added 1 reserved context for kernel
    (II) intel(0): X context handle = 0x1
    (II) intel(0): [drm] installed DRM signal handler
    (**) intel(0): Framebuffer compression enabled
    (**) intel(0): Tiling enabled
    (==) intel(0): VideoRam: 262144 KB
    (II) intel(0): Attempting memory allocation with tiled buffers.
    (II) intel(0): Tiled allocation successful.
    (II) intel(0): [drm] Registers = 0xd0300000
    (II) intel(0): [drm] ring buffer = 0xc0000000
    (II) intel(0): [drm] mapped front buffer at 0xc1000000, handle = 0xc1000000
    (II) intel(0): [drm] mapped back buffer at 0xc4000000, handle = 0xc4000000
    (II) intel(0): [drm] mapped depth buffer at 0xc5000000, handle = 0xc5000000
    (II) intel(0): [drm] mapped classic textures at 0xc6000000, handle = 0xc6000000
    (II) intel(0): [drm] Initialized kernel agp heap manager, 33554432
    (II) intel(0): [dri] visual configs initialized
    (II) intel(0): Page Flipping disabled
    (II) intel(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
    (II) EXA(0): Offscreen pixmap area of 31457280 bytes
    (II) EXA(0): Driver registered support for the following operations:
    (II) Solid
    (II) Copy
    (II) Composite (RENDER acceleration)
    (==) intel(0): Backing store disabled
    (==) intel(0): Silken mouse enabled
    (II) intel(0): Initializing HW Cursor
    (II) intel(0): [DRI] installation complete
    (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x01000000 (pgoffset 4096)
    (II) intel(0): xf86BindGARTMemory: bind key 1 at 0x02000000 (pgoffset 8192)
    (II) intel(0): xf86BindGARTMemory: bind key 2 at 0x04000000 (pgoffset 16384)
    (II) intel(0): xf86BindGARTMemory: bind key 3 at 0x05000000 (pgoffset 20480)
    (II) intel(0): xf86BindGARTMemory: bind key 4 at 0x06000000 (pgoffset 24576)
    (II) intel(0): Fixed memory allocation layout:
    (II) intel(0): 0x00000000-0x0001ffff: ring buffer (128 kB)
    (II) intel(0): 0x00020000-0x0061ffff: compressed frame buffer (6144 kB, 0x000000003f820000 physical
    (II) intel(0): 0x00620000-0x00620fff: compressed ll buffer (4 kB, 0x000000003fe20000 physical
    (II) intel(0): 0x00621000-0x0062afff: HW cursors (40 kB, 0x000000003fe21000 physical
    (II) intel(0): 0x0062b000-0x00632fff: logical 3D context (32 kB)
    (II) intel(0): 0x00633000-0x00633fff: overlay registers (4 kB, 0x000000003fe33000 physical
    (II) intel(0): 0x007bf000: end of stolen memory
    (II) intel(0): 0x01000000-0x01ffffff: front buffer (10240 kB) X tiled
    (II) intel(0): 0x02000000-0x03dfffff: exa offscreen (30720 kB)
    (II) intel(0): 0x04000000-0x04ffffff: back buffer (10240 kB) X tiled
    (II) intel(0): 0x05000000-0x05ffffff: depth buffer (10240 kB) X tiled
    (II) intel(0): 0x06000000-0x07ffffff: classic textures (32768 kB)
    (II) intel(0): 0x10000000: end of aperture
    (II) intel(0): Selecting standard 18 bit TMDS pixel format.
    (II) intel(0): Output configuration:
    (II) intel(0): Pipe A is off
    (II) intel(0): Display plane A is now disabled and connected to pipe A.
    (II) intel(0): Pipe B is on
    (II) intel(0): Display plane B is now enabled and connected to pipe B.
    (II) intel(0): Output VGA is connected to pipe none
    (II) intel(0): Output LVDS is connected to pipe B
    (II) intel(0): Output TV is connected to pipe none
    (II) intel(0): [drm] dma control initialized, using IRQ 16
    (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
    (II) intel(0): Selecting standard 18 bit TMDS pixel format.
    (II) intel(0): DPMS enabled
    (II) intel(0): Set up textured video
    (II) intel(0): Set up overlay video
    (II) intel(0): direct rendering: Enabled
    (--) RandR disabled
    (II) Initializing built-in extension MIT-SHM
    (II) Initializing built-in extension XInputExtension
    (II) Initializing built-in extension XTEST
    (II) Initializing built-in extension XKEYBOARD
    (II) Initializing built-in extension XC-APPGROUP
    (II) Initializing built-in extension SECURITY
    (II) Initializing built-in extension XINERAMA
    (II) Initializing built-in extension XFIXES
    (II) Initializing built-in extension RENDER
    (II) Initializing built-in extension RANDR
    (II) Initializing built-in extension COMPOSITE
    (II) Initializing built-in extension DAMAGE
    (II) Initializing built-in extension XEVIE
    (II) AIGLX: Screen 0 is not DRI2 capable
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 12, (OK)
    drmOpenByBusid: Searching for BusID pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 12, (OK)
    drmOpenByBusid: drmOpenMinor returns 12
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
    (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
    (II) AIGLX: enabled GLX_texture_from_pixmap with driver support
    (II) AIGLX: Loaded and initialized /usr/lib/xorg/modules/dri/i915_dri.so
    (II) GLX: Initialized DRI GL provider for screen 0
    (II) intel(0): Setting screen physical size to 304 x 190
    (II) Synaptics touchpad driver version 0.15.2
    (--) Mouse0 auto-dev sets device to /dev/input/event8
    (II) Mouse0: x-axis range 1472 - 5472
    (II) Mouse0: y-axis range 1408 - 4448
    (**) Option "Device" "/dev/input/event8"
    (**) Option "SHMConfig" "true"
    (**) Option "LeftEdge" "1700"
    (**) Option "RightEdge" "5300"
    (**) Option "TopEdge" "1700"
    (**) Option "BottomEdge" "4200"
    (**) Option "FingerLow" "25"
    (**) Option "FingerHigh" "30"
    (**) Option "MaxTapTime" "180"
    (**) Option "MaxTapMove" "220"
    (**) Option "VertScrollDelta" "100"
    (--) Mouse0 touchpad found
    (**) Option "CorePointer"
    (**) Mouse0: always reports core events
    (**) Option "CoreKeyboard"
    (**) Keyboard0: always reports core events
    (**) Option "Protocol" "standard"
    (**) Keyboard0: Protocol: standard
    (**) Option "AutoRepeat" "500 30"
    (**) Option "XkbRules" "xorg"
    (**) Keyboard0: XkbRules: "xorg"
    (**) Option "XkbModel" "pc105"
    (**) Keyboard0: XkbModel: "pc105"
    (**) Option "XkbLayout" "us"
    (**) Keyboard0: XkbLayout: "us"
    (**) Option "CustomKeycodes" "off"
    (**) Keyboard0: CustomKeycodes disabled
    (II) evaluating device (Mouse0)
    (II) XINPUT: Adding extended input device "Mouse0" (type: TOUCHPAD)
    (II) evaluating device (Keyboard0)
    (II) XINPUT: Adding extended input device "Keyboard0" (type: KEYBOARD)
    (II) Mouse0: x-axis range 1472 - 5472
    (II) Mouse0: y-axis range 1408 - 4448
    (--) Mouse0 touchpad found
    (II) config/hal: Adding input device SynPS/2 Synaptics TouchPad
    (II) Synaptics touchpad driver version 0.15.2
    (II) SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472
    (II) SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448
    (**) Option "Device" "/dev/input/event8"
    (--) SynPS/2 Synaptics TouchPad touchpad found
    (**) SynPS/2 Synaptics TouchPad: always reports core events
    (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD)
    (II) SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472
    (II) SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448
    (WW) SynPS/2 Synaptics TouchPad can't grab event device, errno=16
    (--) SynPS/2 Synaptics TouchPad touchpad found
    (II) config/hal: Adding input device Video Bus
    (**) Video Bus: always reports core events
    (**) Video Bus: Device: "/dev/input/event6"
    (II) Video Bus: Found keys
    (II) Video Bus: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD)
    (**) Option "xkb_rules" "base"
    (**) Video Bus: xkb_rules: "base"
    (**) Option "xkb_model" "evdev"
    (**) Video Bus: xkb_model: "evdev"
    (**) Option "xkb_layout" "us"
    (**) Video Bus: xkb_layout: "us"
    (II) config/hal: Adding input device Video Bus
    (**) Video Bus: always reports core events
    (**) Video Bus: Device: "/dev/input/event5"
    (II) Video Bus: Found keys
    (II) Video Bus: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD)
    (**) Option "xkb_rules" "base"
    (**) Video Bus: xkb_rules: "base"
    (**) Option "xkb_model" "evdev"
    (**) Video Bus: xkb_model: "evdev"
    (**) Option "xkb_layout" "us"
    (**) Video Bus: xkb_layout: "us"
    (II) config/hal: Adding input device AT Translated Set 2 keyboard
    (**) AT Translated Set 2 keyboard: always reports core events
    (**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"
    (II) AT Translated Set 2 keyboard: Found keys
    (II) AT Translated Set 2 keyboard: Configuring as keyboard
    (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)
    (**) Option "xkb_rules" "base"
    (**) AT Translated Set 2 keyboard: xkb_rules: "base"
    (**) Option "xkb_model" "evdev"
    (**) AT Translated Set 2 keyboard: xkb_model: "evdev"
    (**) Option "xkb_layout" "us"
    (**) AT Translated Set 2 keyboard: xkb_layout: "us"
    (II) config/hal: Adding input device Macintosh mouse button emulation
    (**) Macintosh mouse button emulation: always reports core events
    (**) Macintosh mouse button emulation: Device: "/dev/input/event0"
    (II) Macintosh mouse button emulation: Found x and y relative axes
    (II) Macintosh mouse button emulation: Found mouse buttons
    (II) Macintosh mouse button emulation: Configuring as mouse
    (II) XINPUT: Adding extended input device "Macintosh mouse button emulation" (type: MOUSE)
    (II) UnloadModule: "synaptics"
    (II) UnloadModule: "kbd"
    (II) UnloadModule: "synaptics"
    (II) Video Bus: Close
    (II) UnloadModule: "evdev"
    (II) Video Bus: Close
    (II) UnloadModule: "evdev"
    (II) AT Translated Set 2 keyboard: Close
    (II) UnloadModule: "evdev"
    (II) Macintosh mouse button emulation: Close
    (II) UnloadModule: "evdev"
    (II) intel(0): xf86UnbindGARTMemory: unbind key 0
    (II) intel(0): xf86UnbindGARTMemory: unbind key 1
    (II) intel(0): xf86UnbindGARTMemory: unbind key 2
    (II) intel(0): xf86UnbindGARTMemory: unbind key 3
    (II) intel(0): xf86UnbindGARTMemory: unbind key 4
    (II) intel(0): [drm] removed 1 reserved context for kernel
    (II) intel(0): [drm] unmapping 8192 bytes of SAREA 0xf8acb000 at 0xb7a29000
    (II) intel(0): [drm] Closed DRM master.
    xorg.conf
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    EndSection
    Section "Files"
    # RgbPath "/usr/share/X11/rgb"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/misc"
    FontPath "/usr/share/fonts/100dpi:unscaled"
    FontPath "/usr/share/fonts/75dpi:unscaled"
    FontPath "/usr/share/fonts/TTF"
    FontPath "/usr/share/fonts/Type1"
    EndSection
    Section "Module"
    Load "dri"
    Load "glx"
    # Load "record"
    Load "GLcore"
    Load "dbe"
    Load "extmod"
    Load "synaptics"
    Load "xtrap"
    Load "freetype"
    Load "evdev"
    EndSection
    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection
    Section "InputDevice"
    Driver "synaptics"
    Identifier "Mouse0"
    Option "Device" "/dev/mouse0"
    Option "Protocol" "auto-dev"
    Option "LeftEdge" "1700"
    Option "RightEdge" "5300"
    Option "TopEdge" "1700"
    Option "BottomEdge" "4200"
    Option "FingerLow" "25"
    Option "FingerHigh" "30"
    Option "MaxTapTime" "180"
    Option "MaxTapMove" "220"
    Option "VertScrollDelta" "100"
    Option "MinSpeed" "0.06"
    Option "MaxSpeed" "0.12"
    Option "AccelFactor" "0.0030"
    Option "SHMConfig" "true"
    # Option "Repeater" "/dev/ps2mouse"
    EndSection
    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection
    Section "Monitor"
    #DisplaySize 1280 800 # mm
    Identifier "Monitor0"
    VendorName "LPL"
    ModelName "c000"
    EndSection
    Section "Device"
    ### Available Driver options are:-
    ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
    ### [arg]: arg optional
    #Option "NoAccel" # [<bool>]
    #Option "SWcursor" # [<bool>]
    #Option "ColorKey" # <i>
    #Option "CacheLines" # <i>
    #Option "Dac6Bit" # [<bool>]
    #Option "DRI" # [<bool>]
    #Option "NoDDC" # [<bool>]
    #Option "ShowCache" # [<bool>]
    #Option "XvMCSurfaces" # <i>
    #Option "PageFlip" # [<bool>]
    Identifier "Card0"
    Driver "intel"
    VendorName "Intel Corporation"
    BoardName "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
    BusID "PCI:0:2:0"
    Option "AccelMethod" "exa"
    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "Monitor0"
    SubSection "Display"
    Viewport 0 0
    Depth 1
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 4
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 8
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 15
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 16
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 24
    EndSubSection
    EndSection
    .xinitrc
    #!/bin/sh
    exec openbox-session
    #ivman &
    #exec awesome &
    #/usr/lib/wicd/wicd-client.py &
    #xterm -bg black -fg white
    rc.lua
    -- GGLucas' Awesome-3 Lua Config :D
    -- Version 2
    -- This config is for use with awesome 3.0.
    -- 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 = "Terminus 8"
    -- Background
    beautiful.bg_normal = '#22222222'
    beautiful.bg_focus = '#285577'
    beautiful.bg_sbfocus = '#11335565'
    beautiful.bg_urgent = '#A10000'
    -- Foreground
    beautiful.fg_normal = '#999999'
    beautiful.fg_focus = '#ffffff'
    beautiful.fg_urgent = '#ffffff'
    -- Border
    beautiful.border_width = 2
    beautiful.border_normal = '#333333'
    beautiful.border_focus = '#4C7899'
    beautiful.border_marked = '#91231c'
    ---- {{{ 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 = 'xterm'
    -- Terminal with gnu screen
    settings.apps.gnu_screen = settings.apps.terminal..' -e zsh -c "exec screen -x main"'
    -- Terminal with gnu screen over ssh to my main machine
    settings.apps.gnu_screen_ssh_desktop = settings.apps.terminal..' -e zsh -c "ssh -t me.glacicle.com screen -x main"'
    -- Terminal with gnu screen over ssh to my vps server
    settings.apps.gnu_screen_ssh_server = settings.apps.terminal..' -e zsh -c "ssh -t glacicle.com screen -x"'
    -- 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"'
    -- Toggle music
    -- Note: mpdtoggle is my own script for finding out if
    -- I want to toggle or play/stop, replace it with mpc if
    -- you wish to use it.
    settings.apps.music_toggle = "mpdtoggle toggle"
    -- {{{ Floating windows
    settings.floating = {
    ["gimp"] = true,
    ["urxvtcnotify"] = true,
    -- {{{ Other
    -- Check what widget mode to use
    if io.open(os.getenv("HOME").."/.laptop_mode") then
    -- Special file exists, display widgets I want
    -- on my laptop
    settings.widget_mode = 'laptop'
    else
    settings.widget_mode = 'desktop'
    end
    -- 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 = {
    -- Data partition
    ["/data"] = {key.alt, "d"},
    -- Data partition on desktop pc from laptop (sshfs mount)
    ["/desktop/data"] = {key.shift_alt, "d"},
    -- Home Directory
    [os.getenv("HOME")] = {key.alt, "a"},
    -- {{{ Run specific commands
    settings.bindings.commands = {
    -- Open Terminal
    [settings.apps.terminal] = {key.alt, "q"},
    -- GNU Screen
    [settings.apps.gnu_screen] = {key.super, "k"},
    -- GNU Screen over SSH to Desktop
    [settings.apps.gnu_screen_ssh_desktop] = {key.super_shift, "k"},
    -- GNU Screen over SSH to VPS
    [settings.apps.gnu_screen_ssh_server] = {key.super_alt, "k"},
    -- Lock screen
    [settings.apps.lock_screen] = {key.super, "l"},
    -- Screen off with DPMS
    [settings.apps.screen_off] = {key.super, "o"},
    -- Toggle music
    [settings.apps.music_toggle] = {key.alt, "e"},
    -- {{{ Client keybindings
    settings.bindings.wm.client = {
    -- Alt+`: Close window
    [function() client.focus:kill() end] = {key.alt, "#49"},
    -- Mod+q: Focus previous window
    [function() awful.client.focusbyidx(-1) end] = {key.super, "q"},
    -- Mod+w: Focus next window
    [function() awful.client.focusbyidx(1) end] = {key.super, "w"},
    -- Mod+Shift+q: Swap with previous window
    [function() awful.client.swap(-1) end] = {key.super_shift, "q"},
    -- Mod+Shift+w: Swap with previous window
    [function() awful.client.swap(1) end] = {key.super_shift, "w"},
    -- Mod+c: Toggle floating
    [awful.client.togglefloating] = {key.super, "c"},
    -- Mod+\: Make window master
    [function() local c = awful.client.master(); if c ~= client.focus then c:swap(client.focus) end end] =
    {key.super, "#51"},
    -- Mod+Shift+a: Move window to previous tag
    [function () awful.client.movetotag(eminent.tag.getprev(mouse.screen)) end] =
    {key.super_shift, "a"},
    -- Mod+Shift+s: Move window to next tag
    [function () awful.client.movetotag(eminent.tag.getnext(mouse.screen)) end] =
    {key.super_shift, "s"},
    -- Mod+Shift+e: Move window to next screen
    [function () s = client.focus.screen+1; if s > screen.count() then s = 1 end; client.focus.screen = s end] =
    {key.super_shift, "e"},
    -- Mod+Shift+d: Move window to previous screen
    [function () s = client.focus.screen-1; if s < 1 then s = screen.count() end; client.focus.screen = s end] =
    {key.super_shift, "d"},
    -- {{{ Tag bindings
    settings.bindings.wm.tag = {
    -- Mod+a: Switch to previous tag
    [function() eminent.tag.prev(mouse.screen) end] = {key.super, "a"},
    -- Mod+s: Switch to next tag
    [function() eminent.tag.next(mouse.screen) end] = {key.super, "s"},
    -- 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, "z"},
    -- Alt+x: Switch to tile layout
    [function() awful.layout.set('tile') end] = {key.alt, "x"},
    -- {{{ Prompt bindings
    settings.bindings.prompt = {
    -- Alt+w: Run prompt
    [{awful.spawn, " Run: "}] = {key.alt, "w"},
    -- Mod+Alt+w: Lua eval prompt
    [{awful.eval, " Run Lua: "}] = {key.super_alt, "w"},
    -- {{{ Miscellaneous bindings
    settings.bindings.wm.misc = {
    -- Mod+Alt+r: Restart awesome
    [awesome.restart] = {key.super_alt, "r"},
    -- Mod+e: Switch focus to next screen
    [function() awful.screen.focus(1) end] = {key.super, "e"},
    -- Mod+d: Switch focus to previous screen
    [function() awful.screen.focus(-1) end] = {key.super, "d"},
    -- {{{ 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 == 'laptop' or settings.widget_mode == 'all' then
    -- {{{ Battery Widget
    batterywidget = widget({
    type = 'textbox',
    name = 'batterywidget',
    align = 'right'
    function read_battery_temp(format)
    local f = io.open('/tmp/battery-temp')
    if f == nil then
    return {'n/a'}
    end
    local n = f:read()
    if n == nil then
    f:close()
    return {'n/a'}
    end
    return {awful.escape(n)}
    end
    wicked.register(batterywidget, read_battery_temp,
    settings.widget_spacer..beautiful.markup.heading('Battery')..': $1'..settings.widget_spacer..settings.widget_separator,
    30)
    -- Start timer to read the temp file
    awful.hooks.timer.register(28, function ()
    -- Call battery script to get batt%
    command = "battery"
    os.execute(command..' > /tmp/battery-temp &')
    end, true)
    table.insert(settings.widgets, {1, batterywidget})
    end
    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)
    -- Pre-create new tags with eminent
    for s=1, screen.count() do
    eminent.newtag(s, 5)
    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
    -- 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:
    Last edited by Tim Fox (2008-09-20 18:15:15)

    andre.ramaciotti wrote:And I'm not sure if you should put that & after exec awesome. It works fine here without it.
    No & after entries in .xinitrc . You've commented out the awesome entry.

  • 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.

  • Getting an error in deploying the SalesQuoteDemo application. Pls help.

    As part of my project work, I have to understand BPM/SOA Suite. As part of this, I installed SalesQuoteDemo and all related softwares in my laptop. I have also configured the Weblogic/SalesQuotesDemo as given in the attached PDF documents. Finally, While deploying the application to Weblogic, I am getting this error. I am able to login to BPM Workspace as well as Worklist application. BPM Workspace is not showing this application (with in the application area) may be because of the error below.
    I would appreciate any help/pointers from you in this regard. Many Thanks for reading through this mail and helping me.
    As per HTTP error codes, this Http error (502) comes when server is overloaded. It is working fine and does not seems to be overloaded (though I have not verified CPU usage and memory graph).
    Regards,
    Sachin G
    [07:36:41 PM] ---- Deployment started. ----
    [07:36:41 PM] Target platform is (Weblogic 10.3).
    [07:36:41 PM] Running dependency analysis...
    [07:36:41 PM] Building...
    [07:37:01 PM] Deploying profile...
    [07:37:02 PM] Wrote Archive Module to C:\BPM 11g Sales Quote Demo - Setup and Run\SalesQuoteDemo\SalesQuoteProcess\deploy\sca_SalesQuoteProcess_rev1.0.jar
    [07:37:02 PM] Running dependency analysis...
    [07:37:02 PM] Building...
    [07:37:35 PM] Deploying 4 profiles...
    [07:37:39 PM] Wrote Web Application Module to C:\BPM 11g Sales Quote Demo - Setup and Run\SalesQuoteDemo\ApproveDealUI\deploy\ApproveDealUI.war
    [07:37:41 PM] Wrote Web Application Module to C:\BPM 11g Sales Quote Demo - Setup and Run\SalesQuoteDemo\BPReviewUI\deploy\BPReviewUI.war
    [07:37:45 PM] Wrote Web Application Module to C:\BPM 11g Sales Quote Demo - Setup and Run\SalesQuoteDemo\EnterQuoteUI\deploy\EnterQuoteUI.war
    [07:37:46 PM] Wrote Enterprise Application Module to C:\BPM 11g Sales Quote Demo - Setup and Run\SalesQuoteDemo\deploy\RequestQuoteUI.ear
    [07:37:46 PM] Deploying sca_SalesQuoteProcess_rev1.0.jar to partition "default" on server soa_server1 [Y.GUPTA-PC.in.oracle.com:8001]
    [07:37:46 PM] Processing sar=/C:/BPM 11g Sales Quote Demo - Setup and Run/SalesQuoteDemo/SalesQuoteProcess/deploy/sca_SalesQuoteProcess_rev1.0.jar
    [07:37:46 PM] Adding sar file - C:\BPM 11g Sales Quote Demo - Setup and Run\SalesQuoteDemo\SalesQuoteProcess\deploy\sca_SalesQuoteProcess_rev1.0.jar
    [07:37:46 PM] Preparing to send HTTP request for deployment
    [07:37:46 PM] Creating HTTP connection to host:Y.GUPTA-PC.in.oracle.com, port:8001
    [07:37:47 PM] Sending internal deployment descriptor
    [07:37:47 PM] Sending archive - sca_SalesQuoteProcess_rev1.0.jar
    [07:37:47 PM] Received HTTP response from the server, response code=502
    [07:37:47 PM] Problem in sending HTTP request to the server. Check standard HTTP response code for 502
    [07:37:47 PM] Error deploying archive sca_SalesQuoteProcess_rev1.0.jar to partition "default" on server soa_server1 [Y.GUPTA-PC.in.oracle.com:8001]
    [07:37:47 PM] HTTP error code returned [502]
    [07:37:47 PM] No error message is returned from the server.
    [07:37:47 PM] Error deploying archive sca_SalesQuoteProcess_rev1.0.jar to partition "default" on server soa_server1 [Y.GUPTA-PC.in.oracle.com:8001]
    [07:37:47 PM] #### Deployment incomplete. ####
    [07:37:47 PM] Error deploying archive file:/C:/BPM 11g Sales Quote Demo - Setup and Run/SalesQuoteDemo/SalesQuoteProcess/deploy/sca_SalesQuoteProcess_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)

    This issue is resolved now. All i have to do to turn off the Proxy Server Settings from my Jdeveloper. I turned off the settings and deployment went well.
    Thanks to Prasen for the solution.

  • LabVIEW 8 does not close ref's the same as LabVIEW 7!?!

    Hello!
    I have been struggling with a difference between LabVIEW 7 and 8 in how the Close Reference functions for Active X objects. In order to fully understand the problem, let me first explain the process of how I got here.
    I have an application in beta testing and we noticed a huge memory leak in LabVIEW 8, 8.2. I took a snippet of the code and worked on it a while to reduce the memory leak. I was closing every reference and could not explain it so I wrote the same code in VB and saw no memory leaks. I implemented the same code in LabVIEW 8 and still saw a memory leak. The code opens a graph control from a third party vendor and draws it. Each time the graph is drawn in LabVIEW 8, it costs about 30-40k. We have 8 graphs in our application bringing each iteration to 240-320k. The users are going to be reviewing between 96-384 samples in one sitting but we have no control over when the program quits. 384 samples reviewed in the graphs is 92,160k as a minimum. I was frustrated and about to send it to the thrid party vendor, AB Sciex, but they only had LabVIEW 7.1. So I converted it back to 8.0 and then to 7.1.1. I ran the code in 7.1.1 and there were little to no memory leaks! I even tried it in LabVIEW 7.0 and it worked the same as 7.1.1.
    I monitored the memory of LabVIEW through the task monitor in Windows XP. I have tried it on a few XP machines and a 2000 machine and same answer on all. I also built a Task Monitor tool using .NET to graph the memory of the LabVIEW process. I verified that running the .NET example as an exe and the windows based task monitor behave the same and produce the same result.
    So, I have an example that works in VB, LabVIEW 7.0 and 7.1.1. but 8.0 and 8.2 cause memory leaks! I have tried numerous things to force the removal of the references but nothing seems to have worked. Here is a list of things I have tried in LabVIEW 8 to force the closing of the reference:
    - Error detection after each property node/invoke node to catch any errors for the mem leaks
    - Deallocate Memory function is placed in every VI.
    - All VIs running in the User interface thread to avoid thread collision, also tried running in the IO thread.
    - Debugging turned off on all VIs.
    - All references converted to controls (instead of constants) and made not visible on the front panel. I hoped this would not force an update to the FP or memory.
    - All Open and Close references are in seperate SubVIs for memory deallocation.
    - Time delay of 3 seconds in between each property node/invoke node to make sure deallocation can occur.
    - Forced recompile and saved all. Rebooted in between all attempts and changes above.
    - Put all code and ocx control in a SubVI and called it through the main program as a SubPanel. I can see memory deallocation, but its not a full deallocation. It deallocates about 40k, but the load eats up 80-90k. VB and LV7 deallocate about 20k, increase 55k for the load, then drops 30k after the load and results in about 3-4k in memory for LabVIEW.
    I am hoping through this post that someone can help me out with understanding why LabVIEW 8 would handle closing references differently than that of LabVIEW 7. I feel as though i have attempted nearly everything I can to get LabVIEW 8 to work with this example. I have an open reference (ha thats funny) with NI to look at this but wanted to see if any of you had any thoughts? Thanks!
    Try it out for yourself here please....
    LabVIEW 7.1 Code (1.1Mb)
    LabVIEW 8.2 Code (1.1Mb)
    Third Party program(77MB)
    Memory graphs between 7 and 8 (50k)
    Memory Monitor Tool 8.2exe (700k)
    Kevin Shirey
    PVI Systems Inc.
    Certified LabVIEW Developer

    Thanks for the reply,
    On the first issue, I believe this made sense as it made no difference, but was a recomendation from NI so I tried it.
    On the second issue, I just put in a close ref on the input to the Variant to Data function. This ensures that the reference being passed iin will be empty. The Variant to Data function only creates a new instance of the type of reference being passed in. At this point in the code, the reference has already been closed  from a previous VI and I am only using it as a type, as I know it doesn't replace the reference. This was a good check though and looked at all my other variant to data functions just in case but still the same results in LV82.
    Third thing is that I tried the profiling tools but it didn't offer a way to track active x data or the memory leak at all. They offered me how much average memory and max they used.
    thanks on the fourth. I put in some extra error dialogs now there in case something does happen.
    As far as the error detection VIs, they work very well for what I need them for. I like to put in unique error tags in each VI. So long as the error check VIs are in place after each routine, I know exactly where the error occurs because of the error code. So when an error occurs, a dialog box comes up with the LabVIEW error code, VI path and unique error code. It also provides an option to debug which is very cool. It will open the vi with the error and pause it. Then open the block diagram and turn on the light bulb and wait for you to unpause it. This lets you see exactly where the error happened so you can come back to it. It also can record it to a log file or ignore all errors of this type. There is still some things I need to do to it, but its been a work in progress over the years.
    What boggles my mind is that the code has no memory leak in LabVIEW 7, 7.1 but has a loss of 40-50k each iteration i LabVIEW 8,8.2. If you have any other suggestions, I am certainly open to trying them.
    I am currently investigating a subpanel option to encapsulate all the active x code in another VI and calling it dynamically. Its too early to tell how much this will change things, but I believe the memory leak is because the ocx control of the graph on the main panel is not being released because the main VI never goes idle. If this is true, then the ocx control will be forced to close and deallocate memory because of the dynamic call. When I have the results, I will post em.
    Thanks!!
    Kevin Shirey
    PVI Systems Inc.
    Certified LabVIEW Developer

  • 160GB only shows 1001.1mb on itunes.  can't sync. HELP and thanx in advance

    my 160 shows up on itunes with only 1 gb. the ipod shows 146gb available. i restored the settings and it didn't change. the whole memory graph changed. it used to show how much memory was available as well as how much was used by video, music, photos,etc. now just shows 1001.4 mb total mem. and how much is used and available. i'm pretty much IT illiterate. i hope someone can help me. thanx again

    my 160 shows up on itunes with only 1 gb.
    1Gb of what?
    the ipod shows 146gb available.
    If the iPod is empty, that sounds about right. You don't have the full 160GB of storage space.
    All hard drives never have the full advertised storage space, and as a general rule it's around 7% less than stated.
    It's because hard drive manufacturers calculate hard drive space different than computers actually read it.
    For a full technical explanation, see these.
    Hard disk: Is it missing space?
    To be honest, your post is a little confusing, and I'm not sure what the issue is you think you are having.

  • SNMP Service Timeout Issue

    Hi,
    I am facing SNMP timeout issue with 3 of my Windows Servers (2008 R2 Enterprise Edition). I am using Network Monitoring System to monitor devices. The issue I am facing with these servers is that the NMS is not able to poll CPU and Memory graphs.
    I have restarted the SNMP service many times but no use. I rebooted one server and Its problem is gone. But rest of the two servers are still with the same condition (not rebooted yet).
    I used the "Paessler SNMP Tester" to check the issue but sometimes it passes and mostly gives "No response" or "Timeout".
    I also used "SnmpWalk.exe"  with command 'snmpwalk -r:<server ip> -c:community' but after processing few OID's it gives error "%Failed to get value of SNMP variable. Timeout."
    Can anyone help to identify the problem and how to resolve it?

    Hi Zain,
    Can you try to ping your server with the command "ping your server ip
    -t"? It may be a network issue.
    Besides, is there any warning or error related SNMP in the event viewer of the server? It may give some hints.
    Here is a article about how to troubeshoot SNMP,
    Troubleshooting SNMP
    http://technet.microsoft.com/en-us/library/cc738839(v=WS.10).aspx
    Best Regards.
    Steven Lee
    TechNet Community Support
    Hi Steven,
    Thank you for the response. I tested "SnmpWalk" both locally on the same server and from network as well but the response is same
    "%Failed to get value of SNMP variable. Timeout.". However, I have checked the ping response and it is very much smooth. The server is actually an Active Directory Domain Controller.
    The article you provided above applies to Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2. I have Windows Server 2008 R2 installed on servers.
    Can you provide me the event id for any warning or error related to SNMP for Windows Server 2008 R2? It would be then easy for me to filter the alerts.
    Thank you!

Maybe you are looking for

  • Installation Problem on CentOS

    Hello guys, i am using an Centos 6.2 linux with installed oracle-xe. I have installed it from an rpm. I use always the default settings. After that i could start it normal and successful connect to apex. Now i want to create an database user. I conne

  • Screen is dark when light is low and I cannot use iphone

    When light is low, I unlock my iphone4 and the screen quickly goes dark. I cannot use the phone because the screen is dark and I cannot use it.

  • Apple TV, PS3, Time Capsule compatibility

    I have heard that to access your movies on iTunes with Apple TV iTunes must be open. But can an Apple TV access the movies on the time capsule hard drive to play them. Also can the PS3 access the movies on the time capsule?

  • Vsftpd: allow writeable root for anonymous user

    Hi, I try to set up a simple FTP server which allows anonymous users to upload file into the root directory. I use the directive allow_writeable_chroot but I still get the following error: 500 OOPS: vsftpd: refusing to run with writable root inside c

  • Partial fix to hang in moving to 32 bit plu-in Nik editing

    I have discovered a helpful - although still time consuming and bothersome- problem solver to RAW images with numerous adjustments simply hanging Aperture with spinning beach ball of death when I try to relaunch in 32 bit mode for filtering in plug-i