Commits

Exaos Lee committed e0a4601

Add awesome wm config scripts

Comments (0)

Files changed (6)

misc/awesome/_icons_el-80x80.png

Added
New image

misc/awesome/awesome-reflect-bg.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="1920"
+   height="1200"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   version="1.0"
+   sodipodi:docname="awesome-reflect-bg.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/garoth/Desktop/awesome-reflect-bg.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3855">
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1;"
+         offset="0"
+         id="stop3857" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:0;"
+         offset="1"
+         id="stop3859" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3509">
+      <stop
+         style="stop-color:#e2ebf6;stop-opacity:1;"
+         offset="0"
+         id="stop3511" />
+      <stop
+         style="stop-color:#a5c2e1;stop-opacity:0;"
+         offset="1"
+         id="stop3513" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3509"
+       id="radialGradient3705"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9615578,2.3285324e-7,-1.5665457e-8,9.869036e-2,30.955509,442.66559)"
+       cx="805.2478"
+       cy="1446.0295"
+       fx="805.2478"
+       fy="1446.0295"
+       r="905.32819" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3509"
+       id="radialGradient3798"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9615578,2.3285324e-7,-1.5665457e-8,9.869036e-2,30.955509,442.66559)"
+       cx="805.2478"
+       cy="1446.0295"
+       fx="805.2478"
+       fy="1446.0295"
+       r="905.32819" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3509"
+       id="radialGradient3801"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9615389,-6.0214666e-3,6.4247877e-4,0.1025929,30.041621,441.87134)"
+       cx="805.2478"
+       cy="1446.0295"
+       fx="805.2478"
+       fy="1446.0295"
+       r="905.32819" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3509"
+       id="radialGradient3812"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9615578,2.3285324e-7,-1.5665457e-8,9.869036e-2,30.955509,442.66559)"
+       cx="805.2478"
+       cy="1446.0295"
+       fx="805.2478"
+       fy="1446.0295"
+       r="905.32819" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3855"
+       id="radialGradient3861"
+       cx="802.82745"
+       cy="-3.4243286"
+       fx="802.82745"
+       fy="-3.4243286"
+       r="685.82929"
+       gradientTransform="matrix(1.1062227,-3.0899636e-7,4.3166413e-8,0.1529281,-85.247116,575.3519)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.71833333"
+     inkscape:cx="960"
+     inkscape:cy="600"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1656"
+     inkscape:window-height="1048"
+     inkscape:window-x="22"
+     inkscape:window-y="0"
+     showguides="true"
+     inkscape:guide-bbox="true" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(157.14285,120)">
+    <rect
+       style="fill:#222222;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect2383"
+       width="1920"
+       height="1200"
+       x="-157.14285"
+       y="-120" />
+    <g
+       id="g3764">
+      <path
+         sodipodi:nodetypes="ccccccccccc"
+         id="path2650"
+         d="M 1084.3205,401.85386 L 928.07168,402.98444 L 928.07168,559.28992 L 1084.3205,559.28992 L 1084.3205,401.85386 z M 1003.4902,454.53982 L 1010.485,454.59629 L 1010.485,515.30954 L 1002.925,515.30954 L 1003.4902,454.53977 L 1003.4902,454.53982 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccc"
+         id="path2644"
+         d="M 117.02952,400.71008 L 275.6093,400.71008 L 275.6093,559.28992 L 224.67858,559.28992 L 224.67858,503.40199 L 166.06043,503.40199 L 166.66843,509.55265 L 218.56382,509.55265 L 218.56382,559.28992 L 117.02952,559.28992 L 117.02952,456.6861 L 228.15125,456.6861 L 228.15125,450.48331 L 117.44481,450.48331 L 117.02952,400.71008 L 117.02952,400.71008 L 117.02952,400.71008 L 117.02952,400.71008 L 117.02952,400.71008 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccc"
+         id="path2646"
+         d="M 320.07747,404.18262 L 320.07747,559.28992 L 477.4997,559.28992 L 477.4997,404.1826 L 425.41143,404.1826 L 425.41143,511.83172 L 419.5104,512.25539 L 419.5104,404.18262 L 374.48056,404.18262 L 374.48056,510.67419 L 368.6931,510.67419 L 368.6931,404.18262 L 322.39244,404.18262 L 320.07747,404.18262 L 320.07747,404.18262 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         sodipodi:nodetypes="cccccccccccccc"
+         id="path2648"
+         d="M 880.12321,401.86761 L 880.12321,449.3258 L 773.63135,449.3258 L 773.63135,456.27088 L 880.12321,456.27088 L 880.12321,559.28992 L 727.33073,559.28992 L 727.33073,509.51669 L 829.19213,509.51669 L 829.19213,502.57159 L 727.33073,502.57159 L 727.33073,401.86761 L 880.12321,401.86761 L 880.12321,401.86761 L 880.12321,401.86761 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 1129.9541,559.28991 L 1129.9541,404.18262 L 1287.3765,404.18262 L 1287.3765,559.28992 L 1235.2882,559.28992 L 1235.2882,451.64081 L 1229.387,451.21713 L 1229.387,559.28991 L 1184.3574,559.28991 L 1184.3574,452.79832 L 1178.5699,452.79832 L 1178.5699,559.28991 L 1132.2692,559.28991 L 1129.9541,559.28991 L 1129.9541,559.28991 L 1129.9541,559.28991 z"
+         id="path2656"
+         sodipodi:nodetypes="ccccccccccccccc" />
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 678.81126,401.86761 L 523.70413,401.86761 L 523.70413,559.28992 L 678.81142,559.28992 L 678.81142,507.20165 L 571.16216,507.20165 L 570.73851,501.30055 L 678.81126,501.30055 L 678.81126,456.2709 L 572.31972,456.2709 L 572.31972,450.48331 L 678.81126,450.48331 L 678.81126,404.18264 L 678.81126,401.86761 L 678.81126,401.86761 L 678.81126,401.86761 z"
+         id="path2654"
+         sodipodi:nodetypes="ccccccccccccccc" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccc"
+         id="path2658"
+         d="M 1488.6881,401.86759 L 1333.5808,401.86759 L 1333.5808,559.28992 L 1488.6881,559.28992 L 1488.6881,507.20165 L 1381.039,507.20165 L 1380.6153,501.30054 L 1488.6881,501.30054 L 1488.6881,456.2709 L 1382.1965,456.2709 L 1382.1965,450.48331 L 1488.6881,450.48331 L 1488.6881,404.18264 L 1488.6881,401.86759 L 1488.6881,401.86759 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         d="M 928.06806,494.48175 L 928.06806,559.28344 L 1084.3198,559.28344 L 1084.3198,502.93928 C 1059.7775,501.12341 1035.1529,499.54671 1010.4935,498.19078 L 1010.4935,515.31846 L 1002.9337,515.31846 L 1003.0991,497.78916 C 978.09079,496.46044 953.06753,495.34818 928.06806,494.48175 z M 1129.9621,506.57743 L 1129.9621,559.28344 L 1132.2773,559.28344 L 1178.5811,559.28344 L 1178.5811,511.11332 C 1162.4408,509.4998 1146.2274,507.9808 1129.9621,506.57743 z M 1184.3689,511.70393 L 1184.3689,559.28344 L 1229.3972,559.28344 L 1229.3972,516.57055 C 1214.4635,514.8519 1199.4439,513.23624 1184.3689,511.70393 z M 1235.2796,517.25566 L 1235.2796,559.28344 L 1287.3713,559.28344 L 1287.3713,523.75236 C 1270.1301,521.44897 1252.761,519.29926 1235.2796,517.25566 z M 1129.9621,507.52241 L 1129.9621,559.28344 L 1132.2773,559.28344 L 1178.5811,559.28344 L 1178.5811,512.08192 C 1162.4451,510.44634 1146.2267,508.94747 1129.9621,507.52241 z M 1184.3689,512.69615 L 1184.3689,559.28344 L 1229.3972,559.28344 L 1229.3972,517.61002 C 1214.4634,515.86933 1199.4473,514.24994 1184.3689,512.69615 z M 1235.2796,518.31875 L 1235.2796,559.28344 L 1287.3713,559.28344 L 1287.3713,524.93358 C 1270.1308,522.60277 1252.7651,520.38876 1235.2796,518.31875 z M 275.60978,527.2724 C 258.12268,530.02567 241.1304,532.93376 224.67561,535.98979 L 224.67561,559.28344 L 275.60978,559.28344 L 275.60978,527.2724 z M 218.55689,537.12376 C 183.20661,543.82367 150.4167,551.22222 120.63381,559.28344 L 218.55689,559.28344 L 218.55689,537.12376 z M 477.50378,504.00238 C 459.87329,505.40528 442.51522,506.93686 425.41201,508.58551 L 425.41201,511.82205 L 419.50591,512.24729 L 419.50591,509.15249 C 385.13732,512.53429 351.90941,516.37828 320.07087,520.72844 L 320.07087,559.28344 L 477.50378,559.28344 L 477.50378,504.00238 z M 774.27331,492.4973 C 758.55612,492.51501 742.90969,492.60951 727.33166,492.80442 L 727.33166,502.56129 L 829.20001,502.56129 L 829.20001,509.50686 L 727.33166,509.50686 L 727.33166,559.28344 L 880.13422,559.28344 L 880.13422,493.72577 C 844.65561,492.86474 809.30699,492.45781 774.27331,492.4973 z M 678.80717,493.72577 C 625.79768,495.02436 573.88487,497.32314 523.71308,500.62409 L 523.71308,559.28344 L 678.80717,559.28344 L 678.80717,507.19167 L 571.15084,507.19167 L 570.74923,501.3092 L 678.80717,501.3092 L 678.80717,493.72577 z M 1333.5806,529.87108 L 1333.5806,559.28344 L 1488.6984,559.28344 L 1488.6984,557.55886 C 1438.9149,546.99306 1386.9854,537.77442 1333.5806,529.87108 z M 928.06806,494.57625 L 928.06806,559.28344 L 1084.3198,559.28344 L 1084.3198,502.84478 C 1059.7734,501.0566 1035.1502,499.49617 1010.4935,498.16715 L 1010.4935,515.31846 L 1002.9337,515.31846 L 1003.0991,497.76554 C 978.08837,496.46374 953.06315,495.41633 928.06806,494.57625 z"
+         style="fill:url(#radialGradient3705);fill-opacity:1;stroke:none;stroke-opacity:1"
+         id="path3459" />
+    </g>
+    <g
+       id="g3814"
+       style="fill:#2e3436">
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 1084.3205,401.85386 L 928.07168,402.98444 L 928.07168,559.28992 L 1084.3205,559.28992 L 1084.3205,401.85386 z M 1003.4902,454.53982 L 1010.485,454.59629 L 1010.485,515.30954 L 1002.925,515.30954 L 1003.4902,454.53977 L 1003.4902,454.53982 z"
+         id="path3776"
+         sodipodi:nodetypes="ccccccccccc" />
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 117.02952,400.71008 L 275.6093,400.71008 L 275.6093,559.28992 L 224.67858,559.28992 L 224.67858,503.40199 L 166.06043,503.40199 L 166.66843,509.55265 L 218.56382,509.55265 L 218.56382,559.28992 L 117.02952,559.28992 L 117.02952,456.6861 L 228.15125,456.6861 L 228.15125,450.48331 L 117.44481,450.48331 L 117.02952,400.71008 L 117.02952,400.71008 L 117.02952,400.71008 L 117.02952,400.71008 L 117.02952,400.71008 z"
+         id="path3778"
+         sodipodi:nodetypes="ccccccccccccccccccc" />
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 320.07747,404.18262 L 320.07747,559.28992 L 477.4997,559.28992 L 477.4997,404.1826 L 425.41143,404.1826 L 425.41143,511.83172 L 419.5104,512.25539 L 419.5104,404.18262 L 374.48056,404.18262 L 374.48056,510.67419 L 368.6931,510.67419 L 368.6931,404.18262 L 322.39244,404.18262 L 320.07747,404.18262 L 320.07747,404.18262 z"
+         id="path3780"
+         sodipodi:nodetypes="ccccccccccccccc" />
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 880.12321,401.86761 L 880.12321,449.3258 L 773.63135,449.3258 L 773.63135,456.27088 L 880.12321,456.27088 L 880.12321,559.28992 L 727.33073,559.28992 L 727.33073,509.51669 L 829.19213,509.51669 L 829.19213,502.57159 L 727.33073,502.57159 L 727.33073,401.86761 L 880.12321,401.86761 L 880.12321,401.86761 L 880.12321,401.86761 z"
+         id="path3782"
+         sodipodi:nodetypes="cccccccccccccc" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccc"
+         id="path3784"
+         d="M 1129.9541,559.28991 L 1129.9541,404.18262 L 1287.3765,404.18262 L 1287.3765,559.28992 L 1235.2882,559.28992 L 1235.2882,451.64081 L 1229.387,451.21713 L 1229.387,559.28991 L 1184.3574,559.28991 L 1184.3574,452.79832 L 1178.5699,452.79832 L 1178.5699,559.28991 L 1132.2692,559.28991 L 1129.9541,559.28991 L 1129.9541,559.28991 L 1129.9541,559.28991 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccc"
+         id="path3786"
+         d="M 678.81126,401.86761 L 523.70413,401.86761 L 523.70413,559.28992 L 678.81142,559.28992 L 678.81142,507.20165 L 571.16216,507.20165 L 570.73851,501.30055 L 678.81126,501.30055 L 678.81126,456.2709 L 572.31972,456.2709 L 572.31972,450.48331 L 678.81126,450.48331 L 678.81126,404.18264 L 678.81126,401.86761 L 678.81126,401.86761 L 678.81126,401.86761 z"
+         style="fill:#2e3436;fill-opacity:1;stroke:none" />
+      <path
+         style="fill:#2e3436;fill-opacity:1;stroke:none"
+         d="M 1488.6881,401.86759 L 1333.5808,401.86759 L 1333.5808,559.28992 L 1488.6881,559.28992 L 1488.6881,507.20165 L 1381.039,507.20165 L 1380.6153,501.30054 L 1488.6881,501.30054 L 1488.6881,456.2709 L 1382.1965,456.2709 L 1382.1965,450.48331 L 1488.6881,450.48331 L 1488.6881,404.18264 L 1488.6881,401.86759 L 1488.6881,401.86759 z"
+         id="path3788"
+         sodipodi:nodetypes="ccccccccccccccc" />
+    </g>
+    <path
+       d="M 928.06806,494.48175 L 928.06806,559.28344 L 1084.3198,559.28344 L 1084.3198,502.93928 C 1059.7775,501.12341 1035.1529,499.54671 1010.4935,498.19078 L 1010.4935,515.31846 L 1002.9337,515.31846 L 1003.0991,497.78916 C 978.09079,496.46044 953.06753,495.34818 928.06806,494.48175 z M 1129.9621,506.57743 L 1129.9621,559.28344 L 1132.2773,559.28344 L 1178.5811,559.28344 L 1178.5811,511.11332 C 1162.4408,509.4998 1146.2274,507.9808 1129.9621,506.57743 z M 1184.3689,511.70393 L 1184.3689,559.28344 L 1229.3972,559.28344 L 1229.3972,516.57055 C 1214.4635,514.8519 1199.4439,513.23624 1184.3689,511.70393 z M 1235.2796,517.25566 L 1235.2796,559.28344 L 1287.3713,559.28344 L 1287.3713,523.75236 C 1270.1301,521.44897 1252.761,519.29926 1235.2796,517.25566 z M 1129.9621,507.52241 L 1129.9621,559.28344 L 1132.2773,559.28344 L 1178.5811,559.28344 L 1178.5811,512.08192 C 1162.4451,510.44634 1146.2267,508.94747 1129.9621,507.52241 z M 1184.3689,512.69615 L 1184.3689,559.28344 L 1229.3972,559.28344 L 1229.3972,517.61002 C 1214.4634,515.86933 1199.4473,514.24994 1184.3689,512.69615 z M 1235.2796,518.31875 L 1235.2796,559.28344 L 1287.3713,559.28344 L 1287.3713,524.93358 C 1270.1308,522.60277 1252.7651,520.38876 1235.2796,518.31875 z M 275.60978,527.2724 C 258.12268,530.02567 241.1304,532.93376 224.67561,535.98979 L 224.67561,559.28344 L 275.60978,559.28344 L 275.60978,527.2724 z M 218.55689,537.12376 C 183.20661,543.82367 150.4167,551.22222 120.63381,559.28344 L 218.55689,559.28344 L 218.55689,537.12376 z M 477.50378,504.00238 C 459.87329,505.40528 442.51522,506.93686 425.41201,508.58551 L 425.41201,511.82205 L 419.50591,512.24729 L 419.50591,509.15249 C 385.13732,512.53429 351.90941,516.37828 320.07087,520.72844 L 320.07087,559.28344 L 477.50378,559.28344 L 477.50378,504.00238 z M 774.27331,492.4973 C 758.55612,492.51501 742.90969,492.60951 727.33166,492.80442 L 727.33166,502.56129 L 829.20001,502.56129 L 829.20001,509.50686 L 727.33166,509.50686 L 727.33166,559.28344 L 880.13422,559.28344 L 880.13422,493.72577 C 844.65561,492.86474 809.30699,492.45781 774.27331,492.4973 z M 678.80717,493.72577 C 625.79768,495.02436 573.88487,497.32314 523.71308,500.62409 L 523.71308,559.28344 L 678.80717,559.28344 L 678.80717,507.19167 L 571.15084,507.19167 L 570.74923,501.3092 L 678.80717,501.3092 L 678.80717,493.72577 z M 1333.5806,529.87108 L 1333.5806,559.28344 L 1488.6984,559.28344 L 1488.6984,557.55886 C 1438.9149,546.99306 1386.9854,537.77442 1333.5806,529.87108 z M 928.06806,494.57625 L 928.06806,559.28344 L 1084.3198,559.28344 L 1084.3198,502.84478 C 1059.7734,501.0566 1035.1502,499.49617 1010.4935,498.16715 L 1010.4935,515.31846 L 1002.9337,515.31846 L 1003.0991,497.76554 C 978.08837,496.46374 953.06315,495.41633 928.06806,494.57625 z"
+       style="fill:url(#radialGradient3801);fill-opacity:1;stroke:none;stroke-opacity:1;opacity:0.45762712"
+       id="path3790" />
+    <path
+       id="path3825"
+       style="fill:url(#radialGradient3861);fill-opacity:1;stroke:none"
+       d="M 1084.3205,728.97414 L 928.07168,727.84356 L 928.07168,571.53808 L 1084.3205,571.53808 L 1084.3205,728.97414 z M 1003.4902,676.28818 L 1010.485,676.23171 L 1010.485,615.51846 L 1002.925,615.51846 L 1003.4902,676.28823 L 1003.4902,676.28818 zM 117.02952,730.11792 L 275.6093,730.11792 L 275.6093,571.53808 L 224.67858,571.53808 L 224.67858,627.42601 L 166.06043,627.42601 L 166.66843,621.27535 L 218.56382,621.27535 L 218.56382,571.53808 L 117.02952,571.53808 L 117.02952,674.1419 L 228.15125,674.1419 L 228.15125,680.34469 L 117.44481,680.34469 L 117.02952,730.11792 L 117.02952,730.11792 L 117.02952,730.11792 L 117.02952,730.11792 L 117.02952,730.11792 zM 320.07747,726.64538 L 320.07747,571.53808 L 477.4997,571.53808 L 477.4997,726.6454 L 425.41143,726.6454 L 425.41143,618.99628 L 419.5104,618.57261 L 419.5104,726.64538 L 374.48056,726.64538 L 374.48056,620.15381 L 368.6931,620.15381 L 368.6931,726.64538 L 322.39244,726.64538 L 320.07747,726.64538 L 320.07747,726.64538 zM 880.12321,728.96039 L 880.12321,681.5022 L 773.63135,681.5022 L 773.63135,674.55712 L 880.12321,674.55712 L 880.12321,571.53808 L 727.33073,571.53808 L 727.33073,621.31131 L 829.19213,621.31131 L 829.19213,628.25641 L 727.33073,628.25641 L 727.33073,728.96039 L 880.12321,728.96039 L 880.12321,728.96039 L 880.12321,728.96039 zM 1129.9541,571.53809 L 1129.9541,726.64538 L 1287.3765,726.64538 L 1287.3765,571.53808 L 1235.2882,571.53808 L 1235.2882,679.18719 L 1229.387,679.61087 L 1229.387,571.53809 L 1184.3574,571.53809 L 1184.3574,678.02968 L 1178.5699,678.02968 L 1178.5699,571.53809 L 1132.2692,571.53809 L 1129.9541,571.53809 L 1129.9541,571.53809 L 1129.9541,571.53809 zM 678.81126,728.96039 L 523.70413,728.96039 L 523.70413,571.53808 L 678.81142,571.53808 L 678.81142,623.62635 L 571.16216,623.62635 L 570.73851,629.52745 L 678.81126,629.52745 L 678.81126,674.5571 L 572.31972,674.5571 L 572.31972,680.34469 L 678.81126,680.34469 L 678.81126,726.64536 L 678.81126,728.96039 L 678.81126,728.96039 L 678.81126,728.96039 zM 1488.6881,728.96041 L 1333.5808,728.96041 L 1333.5808,571.53808 L 1488.6881,571.53808 L 1488.6881,623.62635 L 1381.039,623.62635 L 1380.6153,629.52746 L 1488.6881,629.52746 L 1488.6881,674.5571 L 1382.1965,674.5571 L 1382.1965,680.34469 L 1488.6881,680.34469 L 1488.6881,726.64536 L 1488.6881,728.96041 L 1488.6881,728.96041 z" />
+  </g>
+</svg>

misc/awesome/awmtt

+#!/bin/bash
+# awmtt: awesomewm testing tool
+
+#{{{ Usage
+usage() {
+  cat <<EOF
+awmtt [ start | stop | restart | -h | -e | -t [ get | change | list | random ] ] [ -C /path/to/rc.lua ] [ -D display ] [ -S windowsize ]
+
+  start			Spawn nested Awesome via Xephyr
+  stop			Stops Xephyr
+	all		Stop all instances of Xephyr 
+  restart		Restart nested Awesome
+  -N|--notest		Don't use a testfile but your actual rc.lua (i.e. $HOME/.config/awesome/rc.lua)
+  -C|--config		Specify configuration file
+  -D|--display		Specify the display to use (e.g. 1)
+  -S|--size		Specify the window size
+  -e|--execute		Execute command in nested Awesome
+  -t|--theme		Control the current theme
+	c|change	Change theme
+	p|print		Print themename
+	l|list		List available themes
+	r|random	Choose random theme
+  -h|--help		Show this help text
+  
+examples:
+awmtt start -D 3 -C /etc/xdg/awesome/rc.lua -S 1280x800
+awmtt -t change zenburn
+awmtt start (uses defaults)
+
+The defaults are -D 1 -C $HOME/.config/awesome/rc.lua.test -S 1024x640.
+
+EOF
+    exit 0
+}
+[ "$#" -lt 1 ] && usage
+#}}}
+
+#{{{ Utilities
+awesome_pid() { pgrep -fn "/usr/bin/awesome"; }
+xephyr_pid() { pgrep -f xephyr_$D; }
+errorout() { echo "error: $*" >&2; exit 1; }
+#}}}
+
+#{{{ Executable check
+AWESOME=$(which awesome)
+XEPHYR=$(which Xephyr)
+[[ -x "$AWESOME" ]] || errorout 'Please install Awesome first'
+[[ -x "$XEPHYR" ]] || errorout 'Please install Xephyr first'
+#}}}
+
+#{{{ Default Variables
+# Display and window size
+D=1
+SIZE="1024x640"
+# Path to rc.lua
+if [[ "$XDG_CONFIG_HOME" ]];then
+    RC_FILE="$XDG_CONFIG_HOME"/awesome/rc.lua.test
+else
+    RC_FILE="$HOME"/.config/awesome/rc.lua.test
+fi
+[[ -f "$RC_FILE" ]] || cp /etc/xdg/awesome/rc.lua "$RC_FILE"
+#}}}
+
+#{{{ Hostname Check - this is probably only useful for me. I have the same rc.lua running on two different machines
+HOSTNAME=$(cat /proc/sys/kernel/hostname)
+#}}}
+	    
+#{{{ Functions
+#{{{ Start function
+start() {
+    "$XEPHYR" -name xephyr_$D -ac -br -noreset -screen "$SIZE" :$D >/dev/null 2>&1 &
+    sleep 1
+    DISPLAY=:$D.0 "$AWESOME" -c "$RC_FILE" &
+    sleep 1
+    echo "Using display $D ($RC_FILE)"
+    echo "$D: Awesome PID is $(awesome_pid)"
+    echo "$D: Xephyr PID is $(xephyr_pid)"
+}
+#}}}
+#{{{ Stop function
+stop() {
+    if [[ "$1" == all ]];then
+	echo "Stopping all instances of Xephyr"
+	kill $(pgrep Xephyr) >/dev/null 2>&1
+    elif [[ $(xephyr_pid) ]];then
+	echo "Stopping Xephyr for display $D"
+	kill $(xephyr_pid)
+    else
+	echo "Xephyr is not running or you did not specify the correct display with -D"
+	exit 0
+    fi
+}
+#}}}
+#{{{ Restart function
+restart() { # TODO: Find a way to uniquely identify an awesome instance (without storing the PID in a file). Until then all instances spawned by this script are restarted...
+    echo -n "Restarting Awesome... "
+    for i in $(pgrep -f "/usr/bin/awesome"); do kill -s SIGHUP $i; done
+}
+#}}}
+#{{{ Run function
+run() {
+    #shift
+    DISPLAY=:$D.0 "$@" &
+    LASTPID=$!
+    echo "PID is $LASTPID"
+}
+#}}}
+#{{{ Theme function
+theme() {
+
+    # List themes
+    theme_list() { #TODO: list only directories
+	if [[ -d $(dirname "$RC_FILE")/themes ]];then
+	    ls /usr/share/awesome/themes $(dirname "$RC_FILE")/themes
+	else
+	    ls /usr/share/awesome/themes "$HOME"/.config/awesome/themes
+	fi
+    }    
+    case "$1" in
+	l|list) theme_list
+		exit 0;;
+    esac
+    
+    # Check for Beautiful library
+    BEAUTIFUL=$(grep -c 'beautiful.init' "$RC_FILE")
+    [[ "$BEAUTIFUL" -ge 1 ]] || errorout 'Could not detect theme library "beautiful". Exiting.'
+
+    if [[ "$HOSTNAME" == laptop ]];then
+	curtheme=$(grep "^themelap" "$RC_FILE" | awk -F\/ '{print $2}')
+    elif [[ "$HOSTNAME" == htpc ]];then
+	curtheme=$(grep "^themehtpc" "$RC_FILE" | awk -F\/ '{print $2}')
+    else
+	curtheme=$(grep -oP "[^\/]+(?=\/theme.lua)" "$RC_FILE")
+    fi
+    
+    # Change theme
+    theme_change() {
+
+	if [[ "$HOSTNAME" == laptop ]];then
+	    theme=themelap
+	elif [[ "$HOSTNAME" == htpc ]];then
+	    theme=themehtpc
+	else
+	    theme="^beautiful\.init"
+	fi
+
+	if [[ "$file" ]];then
+	    echo "changing $curtheme to $file"
+	    sed -i "/$theme.*\/theme\.lua\"/s/[^/]*\(\/theme\.lua\)/$file\1/" "$RC_FILE"
+	else
+	    echo "changing $curtheme to $2"
+	    sed -i "/$theme.*\/theme\.lua\"/s/[^/]*\(\/theme\.lua\)/$2\1/" "$RC_FILE"
+	fi
+    }
+    # Print themename
+    theme_print() {
+	echo "$curtheme"
+    }
+    # Select random theme and start Xephyr instance
+    theme_random() {
+        themes=$(ls -1 $(dirname "$RC_FILE")/themes /usr/share/awesome/themes | grep -vE '/home/|/usr/|icons|README')
+	file=$(echo "$themes" | sort --random-sort | head -1)
+	theme_change
+	D=11 && start
+	
+    }
+  
+    case "$1" in
+	c|change)   theme_change "${args[@]}" ;;
+	p|print)    theme_print	    ;;
+	r|random)   theme_random    ;;
+	*)	    errorout "unrecognized option to -t";;
+    esac
+}
+#}}}
+
+#{{{ Parse options
+parse_options() {
+
+    while [[ -n "$1" ]];do
+	case "$1" in
+	    -N|--notest)	RC_FILE="$HOME"/.config/awesome/rc.lua ;;
+	    -C|--config)	shift; RC_FILE="$1" ;;
+	    -D|--display)	shift; D="$1"
+				[[ ! "$D" =~ ^[0-9] ]] && errorout "$D is not a valid display number" ;;
+	    -S|--size)		shift; SIZE="$1" ;;
+	    -h|--help)		usage		;;
+	    start)		input=start	;;
+	    stop)		input=stop	;;
+	    restart|reload)	input=restart	;;
+	    -e|--execute)	input=run	;;
+	    -t|--theme)		input=theme	;;
+	    *)			args+=( "$1" )	;;
+	esac
+	shift
+    done
+  
+}
+#}}}
+#}}}
+
+#{{{ Main 
+main() {
+
+  case "$input" in
+    start)	start "${args[@]}"	  ;;
+    stop)	stop "${args[@]}"	  ;;
+    restart)	restart "${args[@]}"	  ;;
+    run)	run "${args[@]}"	  ;;
+    theme)	theme "${args[@]}"	  ;;
+    *)		echo "Option not recognized" ;;
+  esac
+  
+}
+#}}}
+
+parse_options "$@"
+main

misc/awesome/mysky.lua

+-------------------------------
+--    "Sky" awesome theme    --
+--  By Andrei "Garoth" Thorp --
+-------------------------------
+-- If you want SVGs and extras, get them from garoth.com/awesome/sky-theme
+
+-- BASICS
+theme = {}
+theme.font          = "Microsoft YaHei 9"
+
+theme.bg_focus      = "#e2eeea"
+theme.bg_normal     = "#729fcf"
+theme.bg_urgent     = "#fce94f"
+theme.bg_minimize   = "#0067ce"
+
+theme.fg_normal     = "#2e3436"
+theme.fg_focus      = "#2e3436"
+theme.fg_urgent     = "#2e3436"
+theme.fg_minimize   = "#2e3436"
+
+theme.border_width  = "1"
+theme.border_normal = "#dae3e0"
+theme.border_focus  = "#729fcf"
+theme.border_marked = "#eeeeec"
+
+-- IMAGES
+theme.layout_fairh           = "/usr/share/awesome/themes/sky/layouts/fairh.png"
+theme.layout_fairv           = "/usr/share/awesome/themes/sky/layouts/fairv.png"
+theme.layout_floating        = "/usr/share/awesome/themes/sky/layouts/floating.png"
+theme.layout_magnifier       = "/usr/share/awesome/themes/sky/layouts/magnifier.png"
+theme.layout_max             = "/usr/share/awesome/themes/sky/layouts/max.png"
+theme.layout_fullscreen      = "/usr/share/awesome/themes/sky/layouts/fullscreen.png"
+theme.layout_tilebottom      = "/usr/share/awesome/themes/sky/layouts/tilebottom.png"
+theme.layout_tileleft        = "/usr/share/awesome/themes/sky/layouts/tileleft.png"
+theme.layout_tile            = "/usr/share/awesome/themes/sky/layouts/tile.png"
+theme.layout_tiletop         = "/usr/share/awesome/themes/sky/layouts/tiletop.png"
+
+theme.awesome_icon           = "/usr/share/awesome/themes/sky/awesome-icon.png"
+theme.tasklist_floating_icon = "/usr/share/awesome/themes/sky/layouts/floating.png"
+
+-- from default for now...
+theme.menu_submenu_icon     = "/usr/share/awesome/themes/default/submenu.png"
+theme.taglist_squares_sel   = "/usr/share/awesome/themes/default/taglist/squarefw.png"
+theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
+
+-- MISC
+theme.wallpaper_cmd         = { "awsetbg "..os.getenv("HOME").."/.config/awesome/awesome-reflect-bg.svg" }
+-- theme.wallpaper_cmd         = { "awsetbg -r " .. mywallpaperdir }
+theme.taglist_squares       = "true"
+theme.titlebar_close_button = "true"
+theme.menu_height           = "15"
+theme.menu_width            = "160"
+
+-- Define the image to load
+
+return theme
+-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80

misc/awesome/rc-archlinux.lua

+-- Standard awesome library
+require("awful")
+require("awful.autofocus")
+require("awful.rules")
+
+-- Theme handling library
+require("beautiful")
+
+-- Notification library
+require("naughty")
+
+-- freedesktop applications
+require('freedesktop.utils')
+require('freedesktop.menu')
+
+-- {{{ Variable definitions
+local el_confdir = awful.util.getdir("config")
+local el_icon = os.getenv("HOME") .. "/.icons/el-80x80.png"
+el_wpdir = "/home/Public/Library/Backgrounds/1680x1050-scene"
+
+-- Themes define colours, icons, and wallpapers
+beautiful.init(el_confdir .. "/mysky.lua")
+-- beautiful.init("/usr/share/awesome/themes/cool-blue/theme.lua")
+
+radom_wall = function (path)
+   local mywptimer = timer({ timeout = 60 })
+   mywptimer:add_signal("timeout", function() os.execute("awsetbg -r " .. path) end)
+   mywptimer:start()
+end
+
+-- This is used later as the default terminal and editor to run.
+--terminal = "x-terminal-emulator"
+--terminal = "uxterm" -- problem: too slow to load due to imFont!!
+terminal = "konsole"
+editor = os.getenv("EDITOR") or "zile"
+editor_cmd = terminal .. " -e " .. editor
+
+-- freedesktop
+freedesktop.utils.terminal = terminal   -- default: "xterm"
+freedesktop.utils.icon_theme = 'oxygen' -- look inside /usr/share/icons/
+
+-- Default modkey.
+modkey = "Mod4"
+
+-- Table of layouts to cover with awful.layout.inc, order matters.
+layouts = {
+   awful.layout.suit.floating,
+   awful.layout.suit.tile,
+   awful.layout.suit.tile.left,
+   awful.layout.suit.tile.bottom,
+   awful.layout.suit.tile.top,
+   awful.layout.suit.fair,
+   awful.layout.suit.fair.horizontal,
+   awful.layout.suit.spiral,
+   awful.layout.suit.spiral.dwindle,
+   awful.layout.suit.max,
+   awful.layout.suit.max.fullscreen,
+   awful.layout.suit.magnifier
+}
+-- }}}
+
+-- {{{ Tags
+tags = {
+   names = { "file", 2, "net", 4, "emacs", 6, "doc", 8, "misc" },
+   layout = { layouts[1], layouts[1], layouts[1], layouts[1], layouts[2],
+	      layouts[1], layouts[1], layouts[1], layouts[1] }
+}
+for s = 1, screen.count() do
+   tags[s] = awful.tag(tags.names, s, tags.layout)
+end
+-- }}}
+
+-- {{{ Menu
+-- Create a laucher widget and a main menu
+myawesomemenu = {
+   { "Manual", terminal .. " -e man awesome" },
+   { "Edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
+   { "Restart", awesome.restart },
+   { "Quit", awesome.quit },
+   -- { "GDM Switch",  "gdmflexiserver", "/usr/share/pixmaps/gdm.png" },
+   { "KDM New Session",  "kdmctl reserve", "/usr/share/apps/kdm/pics/kdelogo.png" },
+   -- { "Log out", el_confdir .. '/shutdown_dialog.sh' },
+   { "Suspend", "dbus-send --system --print-reply --dest=\"org.freedesktop.UPower\" " ..
+      "/org/freedesktop/UPower org.freedesktop.UPower.Suspend" },
+}
+
+mycommons = {
+   { "Emacs Client", "emacsclient -nc",
+     "/usr/share/icons/hicolor/128x128/apps/emacs.png" },
+   { "Dolphin", "dolphin",
+      "/usr/share/icons/oxygen/128x128/places/folder.png" },
+   { "Nautilus", "nautilus --no-desktop",
+      "/usr/share/icons/oxygen/128x128/places/folder.png" },
+   { "VirtualBox",  "VirtualBox",    "/usr/share/pixmaps/VBox.png" },
+   { "Open Terminal", terminal,  freedesktop.utils.lookup_icon({icon = 'terminal'}) },
+   { "Awesome", myawesomemenu, beautiful.awesome_icon }
+}
+
+menu_items = freedesktop.menu.new()
+table.insert(menu_items, { "Awesome", myawesomemenu, beautiful.awesome_icon })
+table.insert(menu_items, { "My Apps", mycommons, el_icon })
+table.insert(menu_items, { "Open Term", terminal,
+			   freedesktop.utils.lookup_icon({icon='terminal'}) })
+
+mymainmenu = awful.menu.new({ items = menu_items, width = 150 })
+mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
+                                     menu = mymainmenu })
+-- }}}
+
+-- {{{ Wibox
+mycombutton = awful.widget.launcher(
+   { image = image(el_icon), menu = awful.menu({items = mycommons}) })
+
+-- Create a textclock widget
+mytextclock = awful.widget.textclock({ align = "right" })
+
+-- Create a systray
+mysystray = widget({ type = "systray" })
+
+-- Create a wibox for each screen and add it
+mywibox = {}
+mypromptbox = {}
+mylayoutbox = {}
+mytaglist = {}
+mytaglist.buttons = awful.util.table.join(
+   awful.button({ }, 1, awful.tag.viewonly),
+   awful.button({ modkey }, 1, awful.client.movetotag),
+   awful.button({ }, 3, awful.tag.viewtoggle),
+   awful.button({ modkey }, 3, awful.client.toggletag),
+   awful.button({ }, 4, awful.tag.viewnext),
+   awful.button({ }, 5, awful.tag.viewprev)
+)
+mytasklist = {}
+mytasklist.buttons = awful.util.table.join(
+   awful.button({ }, 1,
+		function (c)
+		   if not c:isvisible() then
+		      awful.tag.viewonly(c:tags()[1])
+		   end
+		   client.focus = c
+		   c:raise()
+		end),
+   awful.button({ }, 3,
+		function ()
+		   if instance then
+		      instance:hide()
+		      instance = nil
+		   else
+		      instance = awful.menu.clients({ width=250 })
+		   end
+		end),
+   awful.button({ }, 4,
+		function ()
+		   awful.client.focus.byidx(1)
+		   if client.focus then client.focus:raise() end
+		end),
+   awful.button({ }, 5,
+		function ()
+		   awful.client.focus.byidx(-1)
+		   if client.focus then client.focus:raise() end
+		end))
+
+for s = 1, screen.count() do
+   -- Create a promptbox for each screen
+   mypromptbox[s] = awful.widget.prompt(
+      { layout = awful.widget.layout.horizontal.leftright })
+   -- Create an imagebox widget which will contains an icon indicating which
+   -- layout we're using.  We need one layoutbox per screen.
+   mylayoutbox[s] = awful.widget.layoutbox(s)
+   mylayoutbox[s]:buttons(
+      awful.util.table.join(
+	 awful.button({ }, 1, function () awful.layout.inc(layouts,  1) end),
+	 awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
+	 awful.button({ }, 4, function () awful.layout.inc(layouts,  1) end),
+	 awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
+   -- Create a taglist widget
+   mytaglist[s] = awful.widget.taglist(
+      s, awful.widget.taglist.label.all, mytaglist.buttons)
+
+   -- Create a tasklist widget
+   mytasklist[s] = awful.widget.tasklist(
+      function(c)
+	 return awful.widget.tasklist.label.currenttags(c, s)
+      end, mytasklist.buttons)
+
+   -- Create the wibox
+   mywibox[s] = awful.wibox({ position = "top", screen = s })
+   -- Add widgets to the wibox - order matters
+   mywibox[s].widgets = {
+      {
+	 mylauncher,
+	 mytaglist[s],
+	 mycombutton,
+	 mypromptbox[s],
+	 layout = awful.widget.layout.horizontal.leftright
+      },
+      mylayoutbox[s],
+      mytextclock,
+      s == 1 and mysystray or nil,
+      mytasklist[s],
+      layout = awful.widget.layout.horizontal.rightleft
+   }
+end
+-- }}}
+
+-- {{{ Mouse bindings
+root.buttons(awful.util.table.join(
+		awful.button({ }, 3, function () mymainmenu:toggle() end),
+		awful.button({ }, 4, awful.tag.viewnext),
+		awful.button({ }, 5, awful.tag.viewprev)
+	  ))
+-- }}}
+
+-- {{{ Key bindings
+globalkeys = awful.util.table.join(
+   awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),
+   awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
+   awful.key({ modkey,           }, "Escape", awful.tag.history.restore),
+   awful.key({ modkey,           }, "j",
+	     function ()
+		awful.client.focus.byidx( 1)
+		if client.focus then client.focus:raise() end
+	     end),
+   awful.key({ modkey,           }, "k",
+	     function ()
+		awful.client.focus.byidx(-1)
+		if client.focus then client.focus:raise() end
+	     end),
+   awful.key({ modkey,           }, "w",
+	     function () mymainmenu:show({keygrabber=true}) end),
+
+   -- Layout manipulation
+   awful.key({ modkey, "Shift"   }, "j",
+	     function () awful.client.swap.byidx(  1)    end),
+   awful.key({ modkey, "Shift"   }, "k",
+	     function () awful.client.swap.byidx( -1)    end),
+   awful.key({ modkey, "Control" }, "j",
+	     function () awful.screen.focus_relative( 1) end),
+   awful.key({ modkey, "Control" }, "k",
+	     function () awful.screen.focus_relative(-1) end),
+   awful.key({ modkey,           }, "u", awful.client.urgent.jumpto),
+   awful.key({ modkey,           }, "Tab",
+	     function ()
+		awful.client.focus.history.previous()
+		if client.focus then
+		   client.focus:raise()
+		end
+	     end),
+
+   -- Standard program
+   awful.key({ modkey,           }, "Return",
+	     function () awful.util.spawn(terminal) end),
+   awful.key({ modkey, "Control" }, "r", awesome.restart),
+   awful.key({ modkey, "Shift"   }, "q", awesome.quit),
+
+   awful.key({ modkey,           }, "l",
+	     function () awful.tag.incmwfact( 0.05)    end),
+   awful.key({ modkey,           }, "h",
+	     function () awful.tag.incmwfact(-0.05)    end),
+   awful.key({ modkey, "Shift"   }, "h",
+	     function () awful.tag.incnmaster( 1)      end),
+   awful.key({ modkey, "Shift"   }, "l",
+	     function () awful.tag.incnmaster(-1)      end),
+   awful.key({ modkey, "Control" }, "h",
+	     function () awful.tag.incncol( 1)         end),
+   awful.key({ modkey, "Control" }, "l",
+	     function () awful.tag.incncol(-1)         end),
+   awful.key({ modkey,           }, "space",
+	     function () awful.layout.inc(layouts,  1) end),
+   awful.key({ modkey, "Shift"   }, "space",
+	     function () awful.layout.inc(layouts, -1) end),
+
+   -- Prompt
+   awful.key({ modkey },            "r",
+	     function () mypromptbox[mouse.screen]:run() end),
+
+   awful.key({ modkey }, "x",
+	     function ()
+		awful.prompt.run({ prompt = "Run Lua code: " },
+				 mypromptbox[mouse.screen].widget,
+				 awful.util.eval, nil,
+				 awful.util.getdir("cache") .. "/history_eval")
+	     end),
+
+   -- toggle wibox visibility
+   awful.key({ modkey }, "b",
+	     function ()
+		mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
+	     end),
+
+   -- PrntScr: Print Screen key -- scrot
+   awful.key({ }, "Print",
+	     function ()
+		awful.util.spawn("scrot -e 'mv $f ~/Pictures/Screens/ 2>/dev/null'")
+	     end),
+
+   -- Xscreensaver
+   awful.key({ modkey, "Control" }, "l",
+	     function () awful.util.spawn("xscreensaver-command -lock") end)
+)
+
+clientkeys = awful.util.table.join(
+   awful.key({ modkey,           }, "f",
+	     function (c) c.fullscreen = not c.fullscreen  end),
+   awful.key({ modkey, "Shift"   }, "c",
+	     function (c) c:kill()                         end),
+   awful.key({ modkey, "Control" }, "space",
+	     awful.client.floating.toggle                     ),
+   awful.key({ modkey, "Control" }, "Return",
+	     function (c) c:swap(awful.client.getmaster()) end),
+   awful.key({ modkey,           }, "o",
+	     awful.client.movetoscreen                        ),
+   awful.key({ modkey, "Shift"   }, "r",
+	     function (c) c:redraw()                       end),
+   awful.key({ modkey,           }, "t",
+	     function (c) c.ontop = not c.ontop            end),
+   awful.key({ modkey,           }, "n",
+	     function (c) c.minimized = not c.minimized    end),
+   awful.key({ modkey,           }, "m",
+	     function (c)
+		c.maximized_horizontal = not c.maximized_horizontal
+		c.maximized_vertical   = not c.maximized_vertical
+	     end)
+)
+
+-- Compute the maximum number of digit we need, limited to 9
+keynumber = 0
+for s = 1, screen.count() do
+   keynumber = math.min(9, math.max(#tags[s], keynumber));
+end
+
+-- Bind all key numbers to tags.
+-- Be careful: we use keycodes to make it works on any keyboard layout.
+-- This should map on the top row of your keyboard, usually 1 to 9.
+local np_map = { 87, 88, 89, 83, 84, 85, 79, 80, 81 }
+for i = 1, keynumber do
+   globalkeys = awful.util.table.join(
+      globalkeys,
+      -- Numbers: #10--#19
+      awful.key({ modkey }, "#" .. i + 9,
+		function ()
+		   local screen = mouse.screen
+		   if tags[screen][i] then
+		      awful.tag.viewonly(tags[screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Control" }, "#" .. i + 9,
+		function ()
+		   local screen = mouse.screen
+		   if tags[screen][i] then
+		      awful.tag.viewtoggle(tags[screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Shift" }, "#" .. i + 9,
+		function ()
+		   if client.focus and tags[client.focus.screen][i] then
+		      awful.client.movetotag(tags[client.focus.screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
+		function ()
+		   if client.focus and tags[client.focus.screen][i] then
+		      awful.client.toggletag(tags[client.focus.screen][i])
+		   end
+		end),
+      -- Numpad: [0-9] = [#90, #87-#89, #83-#85, #79-#81]
+      awful.key({ modkey }, "#" .. np_map[i],
+		function ()
+		   local screen = mouse.screen
+		   if tags[screen][i] then
+		      awful.tag.viewonly(tags[screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Control" }, "#" .. np_map[i],
+		function ()
+		   local screen = mouse.screen
+		   if tags[screen][i] then
+		      awful.tag.viewtoggle(tags[screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Shift" }, "#" .. np_map[i],
+		function ()
+		   if client.focus and tags[client.focus.screen][i] then
+		      awful.client.movetotag(tags[client.focus.screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Control", "Shift" }, "#" .. np_map[i],
+		function ()
+		   if client.focus and tags[client.focus.screen][i] then
+		      awful.client.toggletag(tags[client.focus.screen][i])
+		   end
+		end))
+end
+
+clientbuttons = awful.util.table.join(
+   awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
+   awful.button({ modkey }, 1, awful.mouse.client.move),
+   awful.button({ modkey }, 3, awful.mouse.client.resize))
+
+-- Set keys
+root.keys(globalkeys)
+-- }}}
+
+-- {{{ Rules
+awful.rules.rules = {
+   -- All clients will match this rule.
+   { rule = { },
+     properties = { border_width = beautiful.border_width,
+		    border_color = beautiful.border_normal,
+		    focus = true,
+		    keys = clientkeys,
+		    buttons = clientbuttons } },
+   { rule = { class = "MPlayer" }, properties = { floating = true } },
+   { rule = { class = "Gimp" },
+     properties = { floating = true } },
+   -- Set file-browser to tag 1: pcmanfm
+   -- { rule = { class = "Pcmanfm" }, properties = { tag = tags[1][1] } },
+   -- Set emacs to tag 5: Emacs
+   { rule = { class = "Emacs" },   properties = { tag = tags[1][5] } },
+   -- Set chromium to always map on tags number 4 of screen 1.
+   { rule = { class = "Chromium" },
+     properties = { tag = tags[1][3], floating = true } },
+   -- Set Firefox to always map on tags number 5 of screen 1.
+   { rule = { class = "Firefox" },
+     properties = { tag = tags[1][2], floating = true } },
+   ---------------------------------------------------------
+   -- my settings: goldendict
+   { rule = { class = "Goldendict" }, properties = { floating = true } },
+   ---------------------------------------------------------
+   -- pidgin
+   { rule = { class = "Pidgin", role = "buddy_list" },
+     properties = { floating = true  },
+     callback = function( c )
+	local w_area = screen[ c.screen ].workarea
+	local winwidth = 340
+	c:struts( { right = winwidth } )
+	c:geometry( { x = w_area.width - winwidth, width = winwidth,
+		      y = w_area.y, height = w_area.height } )
+     end },
+   { rule = { class = "Pidgin", role = "conversation" },
+     properties = { loating = true, x = 0,
+		    maximized_vertical = true,  maximized_horizontal = true },
+     callback = awful.client.setslave },
+}
+-- }}}
+
+-- {{{ Signals
+-- Signal function to execute when a new client appears.
+client.add_signal(
+   "manage",
+   function (c, startup)
+      -- Add a titlebar
+      -- awful.titlebar.add(c, { modkey = modkey })
+      -- Enable sloppy focus
+      c:add_signal(
+	 "mouse::enter",
+	 function(c)
+	    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
+	    and awful.client.focus.filter(c) then
+	    client.focus = c
+	 end
+      end)
+      if not startup then
+	 -- Set the windows at the slave, i.e. put it at the end
+	 -- of others instead of setting it master.
+	 -- awful.client.setslave(c) Put windows in a smart way,
+	 -- only if they does not set an initial position.
+	 if not c.size_hints.user_position and
+	    not c.size_hints.program_position then
+	    awful.placement.no_overlap(c)
+	    awful.placement.no_offscreen(c)
+	 end
+      end
+   end)
+
+client.add_signal(
+   "focus",
+   function(c) c.border_color = beautiful.border_focus end)
+client.add_signal(
+   "unfocus",
+   function(c) c.border_color = beautiful.border_normal end)
+-- }}}
+
+
+-- Autorun programs, etc.
+-------------------------------------
+do
+   local auto_apps = {
+      "xrdb -load " .. os.getenv("HOME") .. "/.Xdefaults",
+      "/usr/lib/gnome-settings-daemon/gnome-settings-daemon",
+      "goldendict",
+      "xscreensaver -nosplash"
+   }
+   for _,i in pairs(auto_apps) do
+      awful.util.spawn(i)
+   end
+
+   -- random wallpapers
+   radom_wall(el_wpdir)
+end

misc/awesome/rc-debian.lua

+-- Standard awesome library
+require("awful")
+require("awful.autofocus")
+require("awful.rules")
+-- Theme handling library
+require("beautiful")
+-- Notification library
+require("naughty")
+-- Load Debian menu entries
+require("debian.menu")
+
+-- {{{ Variable definitions
+-- myconfdir = os.getenv("HOME") .. "/.config/awesome"
+myconfdir = awful.util.getdir("config")
+myicon = os.getenv("HOME") .. "/.icons/el-80x80.png"
+
+-- Themes define colours, icons, and wallpapers
+-- beautiful.init("/usr/share/awesome/themes/sky/theme.lua")
+beautiful.init(myconfdir .. "/mysky.lua")
+
+-- This is used later as the default terminal and editor to run.
+--terminal = "x-terminal-emulator"
+terminal = "urxvt"
+editor = os.getenv("EDITOR") or "editor"
+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 = {
+   awful.layout.suit.floating,
+   awful.layout.suit.tile,
+   awful.layout.suit.tile.left,
+   awful.layout.suit.tile.bottom,
+   awful.layout.suit.tile.top,
+   awful.layout.suit.fair,
+   awful.layout.suit.fair.horizontal,
+   awful.layout.suit.spiral,
+   awful.layout.suit.spiral.dwindle,
+   awful.layout.suit.max,
+   awful.layout.suit.max.fullscreen,
+   awful.layout.suit.magnifier
+}
+-- }}}
+
+-- {{{ Tags
+-- Define a tag table which hold all screen tags.
+-- tags = {}
+-- for s = 1, screen.count() do
+--    -- Each screen has its own tag table.
+--    tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
+-- end
+tags = {
+   names = { "file", 2, "net", 4, "emacs", 6, "doc", 8, "misc" },
+   layout = { layouts[1], layouts[1], layouts[1], layouts[1], layouts[2],
+	      layouts[1], layouts[1], layouts[1], layouts[1] }
+}
+for s = 1, screen.count() do
+   tags[s] = awful.tag(tags.names, s, tags.layout)
+end
+-- }}}
+
+-- {{{ Menu
+-- Create a laucher widget and a main menu
+myawesomemenu = {
+   { "Manual", terminal .. " -e man awesome" },
+   { "Edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
+   { "Restart", awesome.restart },
+   { "Quit", awesome.quit },
+   { "GDM Switch",  "gdmflexiserver", "/usr/share/pixmaps/gdm.png"},
+}
+
+mycommons = {
+   -- {"Emacs 23",     "emacs23",       "/usr/share/pixmaps/gnome-emacs.png" },
+   {"Emacs23 Client", "emacsclient.emacs23 -nc", "/usr/share/pixmaps/gnome-emacs.png" },
+   {"ipython", terminal .. " -e ipython" },
+   {"bpython", terminal .. " -e bpython", "/usr/share/pixmaps/python.xpm" },
+   {"bpython-gtk", "bpython-gtk", "/usr/share/pixmaps/bpython.png" },
+   -- { "File Manager", "pcmanfm",    "/usr/share/pixmaps/gnome-folder.png" },
+   {"Dolphin", "dolphin", "/usr/share/icons/oxygen/64x64/places/folder.png"},
+   {"Nautilus","nautilus --no-desktop","/usr/share/pixmaps/gnome-folder.png" },
+   {"VirtualBox",   "VirtualBox",    "/usr/share/pixmaps/VBox.png" },
+   {"Google Chrome","google-chrome", "/opt/google/chrome/product_logo_64.png" },
+   -- { "Iceweasel",    "iceweasel",  "/usr/share/pixmaps/iceweasel.png" },
+   -- { "Pidgin",       "pidgin",     "/usr/share/pixmaps/pidgin-menu.xpm" },
+}
+
+mymainmenu = awful.menu(
+   {
+      items = {
+	 {"Awesome", myawesomemenu, beautiful.awesome_icon },
+	 {"Debian", debian.menu.Debian_menu.Debian,
+	  "/usr/share/pixmaps/debian-logo.png" },
+	 {"My Apps", mycommons, myicon },
+	 {"Open Term", terminal, "/usr/share/pixmaps/gnome-xterm.png" },
+   }})
+
+mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
+                                     menu = mymainmenu })
+-- }}}
+
+-- {{{ Wibox
+mycombutton = awful.widget.launcher(
+   { image = image(myicon), menu = awful.menu({items = mycommons}) })
+
+-- Create a textclock widget
+mytextclock = awful.widget.textclock({ align = "right" })
+
+-- Create a systray
+mysystray = widget({ type = "systray" })
+
+-- Create a wibox for each screen and add it
+mywibox = {}
+mypromptbox = {}
+mylayoutbox = {}
+mytaglist = {}
+mytaglist.buttons = awful.util.table.join(
+   awful.button({ }, 1, awful.tag.viewonly),
+   awful.button({ modkey }, 1, awful.client.movetotag),
+   awful.button({ }, 3, awful.tag.viewtoggle),
+   awful.button({ modkey }, 3, awful.client.toggletag),
+   awful.button({ }, 4, awful.tag.viewnext),
+   awful.button({ }, 5, awful.tag.viewprev)
+)
+mytasklist = {}
+mytasklist.buttons = awful.util.table.join(
+   awful.button({ }, 1,
+		function (c)
+		   if not c:isvisible() then
+		      awful.tag.viewonly(c:tags()[1])
+		   end
+		   client.focus = c
+		   c:raise()
+		end),
+   awful.button({ }, 3,
+		function ()
+		   if instance then
+		      instance:hide()
+		      instance = nil
+		   else
+		      instance = awful.menu.clients({ width=250 })
+		   end
+		end),
+   awful.button({ }, 4,
+		function ()
+		   awful.client.focus.byidx(1)
+		   if client.focus then client.focus:raise() end
+		end),
+   awful.button({ }, 5,
+		function ()
+		   awful.client.focus.byidx(-1)
+		   if client.focus then client.focus:raise() end
+		end))
+
+for s = 1, screen.count() do
+   -- Create a promptbox for each screen
+   mypromptbox[s] = awful.widget.prompt(
+      { layout = awful.widget.layout.horizontal.leftright })
+   -- Create an imagebox widget which will contains an icon indicating which
+   -- layout we're using.  We need one layoutbox per screen.
+   mylayoutbox[s] = awful.widget.layoutbox(s)
+   mylayoutbox[s]:buttons(
+      awful.util.table.join(
+	 awful.button({}, 1, function () awful.layout.inc(layouts,  1) end),
+	 awful.button({}, 3, function () awful.layout.inc(layouts, -1) end),
+	 awful.button({}, 4, function () awful.layout.inc(layouts,  1) end),
+	 awful.button({}, 5, function () awful.layout.inc(layouts, -1) end)))
+   -- Create a taglist widget
+   mytaglist[s] = awful.widget.taglist(
+      s, awful.widget.taglist.label.all, mytaglist.buttons)
+
+   -- Create a tasklist widget
+   mytasklist[s] = awful.widget.tasklist(
+      function(c)
+	 return awful.widget.tasklist.label.currenttags(c, s)
+      end, mytasklist.buttons)
+
+   -- Create the wibox
+   mywibox[s] = awful.wibox({ position = "top", screen = s })
+   -- Add widgets to the wibox - order matters
+   mywibox[s].widgets = {
+      {
+	 mylauncher,
+	 mytaglist[s],
+	 mycombutton,
+	 mypromptbox[s],
+	 layout = awful.widget.layout.horizontal.leftright
+      },
+      mylayoutbox[s],
+      mytextclock,
+      s == 1 and mysystray or nil,
+      mytasklist[s],
+      layout = awful.widget.layout.horizontal.rightleft
+   }
+end
+-- }}}
+
+-- {{{ Mouse bindings
+root.buttons(awful.util.table.join(
+		awful.button({ }, 3, function () mymainmenu:toggle() end),
+		awful.button({ }, 4, awful.tag.viewnext),
+		awful.button({ }, 5, awful.tag.viewprev)
+	  ))
+-- }}}
+
+-- {{{ Key bindings
+globalkeys = awful.util.table.join(
+   awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),
+   awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
+   awful.key({ modkey,           }, "Escape", awful.tag.history.restore),
+   awful.key({ modkey,           }, "j",
+	     function ()
+		awful.client.focus.byidx( 1)
+		if client.focus then client.focus:raise() end
+	     end),
+   awful.key({ modkey,           }, "k",
+	     function ()
+		awful.client.focus.byidx(-1)
+		if client.focus then client.focus:raise() end
+	     end),
+   awful.key({ modkey,           }, "w",
+	     function () mymainmenu:show({keygrabber=true}) end),
+
+   -- Layout manipulation
+   awful.key({ modkey, "Shift"   }, "j",
+	     function () awful.client.swap.byidx(  1)    end),
+   awful.key({ modkey, "Shift"   }, "k",
+	     function () awful.client.swap.byidx( -1)    end),
+   awful.key({ modkey, "Control" }, "j",
+	     function () awful.screen.focus_relative( 1) end),
+   awful.key({ modkey, "Control" }, "k",
+	     function () awful.screen.focus_relative(-1) end),
+   awful.key({ modkey,           }, "u", awful.client.urgent.jumpto),
+   awful.key({ modkey,           }, "Tab",
+	     function ()
+		awful.client.focus.history.previous()
+		if client.focus then
+		   client.focus:raise()
+		end
+	     end),
+
+   -- Standard program
+   awful.key({ modkey,           }, "Return",
+	     function () awful.util.spawn(terminal) end),
+   awful.key({ modkey, "Control" }, "r", awesome.restart),
+   awful.key({ modkey, "Shift"   }, "q", awesome.quit),
+
+   awful.key({ modkey,           }, "l",
+	     function () awful.tag.incmwfact( 0.05)    end),
+   awful.key({ modkey,           }, "h",
+	     function () awful.tag.incmwfact(-0.05)    end),
+   awful.key({ modkey, "Shift"   }, "h",
+	     function () awful.tag.incnmaster( 1)      end),
+   awful.key({ modkey, "Shift"   }, "l",
+	     function () awful.tag.incnmaster(-1)      end),
+   awful.key({ modkey, "Control" }, "h",
+	     function () awful.tag.incncol( 1)         end),
+   awful.key({ modkey, "Control" }, "l",
+	     function () awful.tag.incncol(-1)         end),
+   awful.key({ modkey,           }, "space",
+	     function () awful.layout.inc(layouts,  1) end),
+   awful.key({ modkey, "Shift"   }, "space",
+	     function () awful.layout.inc(layouts, -1) end),
+
+   -- Prompt
+   awful.key({ modkey },            "r",
+	     function () mypromptbox[mouse.screen]:run() end),
+
+   awful.key({ modkey }, "x",
+	     function ()
+		awful.prompt.run({ prompt = "Run Lua code: " },
+				 mypromptbox[mouse.screen].widget,
+				 awful.util.eval, nil,
+				 awful.util.getdir("cache") .. "/history_eval")
+	     end),
+
+   -- toggle wibox visibility
+   awful.key({ modkey }, "b",
+	     function ()
+		mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
+	     end),
+
+   -- Xscreensaver
+   awful.key({ modkey, "Control" }, "l",
+	     function () awful.util.spawn("xscreensaver-command -lock") end)
+)
+
+clientkeys = awful.util.table.join(
+   awful.key({ modkey,           }, "f",
+	     function (c) c.fullscreen = not c.fullscreen  end),
+   awful.key({ modkey, "Shift"   }, "c",
+	     function (c) c:kill()                         end),
+   awful.key({ modkey, "Control" }, "space",
+	     awful.client.floating.toggle                     ),
+   awful.key({ modkey, "Control" }, "Return",
+	     function (c) c:swap(awful.client.getmaster()) end),
+   awful.key({ modkey,           }, "o",
+	     awful.client.movetoscreen                        ),
+   awful.key({ modkey, "Shift"   }, "r",
+	     function (c) c:redraw()                       end),
+   awful.key({ modkey,           }, "t",
+	     function (c) c.ontop = not c.ontop            end),
+   awful.key({ modkey,           }, "n",
+	     function (c) c.minimized = not c.minimized    end),
+   awful.key({ modkey,           }, "m",
+	     function (c)
+		c.maximized_horizontal = not c.maximized_horizontal
+		c.maximized_vertical   = not c.maximized_vertical
+	     end)
+)
+
+-- Compute the maximum number of digit we need, limited to 9
+keynumber = 0
+for s = 1, screen.count() do
+   keynumber = math.min(9, math.max(#tags[s], keynumber));
+end
+
+-- Bind all key numbers to tags.
+-- Be careful: we use keycodes to make it works on any keyboard layout.
+-- This should map on the top row of your keyboard, usually 1 to 9.
+for i = 1, keynumber do
+   globalkeys = awful.util.table.join(
+      globalkeys,
+      awful.key({ modkey }, "#" .. i + 9,
+		function ()
+		   local screen = mouse.screen
+		   if tags[screen][i] then
+		      awful.tag.viewonly(tags[screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Control" }, "#" .. i + 9,
+		function ()
+		   local screen = mouse.screen
+		   if tags[screen][i] then
+		      awful.tag.viewtoggle(tags[screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Shift" }, "#" .. i + 9,
+		function ()
+		   if client.focus and tags[client.focus.screen][i] then
+		      awful.client.movetotag(tags[client.focus.screen][i])
+		   end
+		end),
+      awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
+		function ()
+		   if client.focus and tags[client.focus.screen][i] then
+		      awful.client.toggletag(tags[client.focus.screen][i])
+		   end
+		end))
+end
+
+clientbuttons = awful.util.table.join(
+   awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
+   awful.button({ modkey }, 1, awful.mouse.client.move),
+   awful.button({ modkey }, 3, awful.mouse.client.resize))
+
+-- Set keys
+root.keys(globalkeys)
+-- }}}
+
+-- {{{ Rules
+awful.rules.rules = {
+   -- All clients will match this rule.
+   { rule = { },
+     properties = { border_width = beautiful.border_width,
+		    border_color = beautiful.border_normal,
+		    focus = true,
+		    keys = clientkeys,
+		    buttons = clientbuttons } },
+   { rule = { class = "MPlayer" },
+     properties = { floating = true } },
+   { rule = { class = "Gimp" },
+     properties = { floating = true } },
+   -- Set file-browser to tag 1: pcmanfm
+   { rule = { class = "Pcmanfm" },
+     properties = { tag = tags[1][1] } },
+   -- Set emacs to tag 5: Emacs
+   -- { rule = { class = "Emacs" },
+   --   properties = { tag = tags[1][5] } },
+   -- Set chrome to always map on tags number 4 of screen 1.
+   { rule = { class = "Google-chrome" },
+     properties = { tag = tags[1][3], floating = true } },
+   -- Set Firefox to always map on tags number 5 of screen 1.
+   { rule = { class = "Firefox" },
+     properties = { tag = tags[1][2], floating = true } },
+   ---------------------------------------------------------
+   -- my settings: goldendict
+   { rule = { class = "Goldendict" },
+     properties = { floating = true } },
+}
+-- }}}
+
+-- {{{ Signals
+-- Signal function to execute when a new client appears.
+client.add_signal(
+   "manage",
+   function (c, startup)
+      -- Add a titlebar
+      -- awful.titlebar.add(c, { modkey = modkey })
+
+      -- Enable sloppy focus
+      c:add_signal(
+	 "mouse::enter",
+	 function(c)
+	    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
+	    and awful.client.focus.filter(c) then
+	    client.focus = c
+	 end
+      end)
+      if not startup then
+	 -- Set the windows at the slave, i.e. put it at the end
+	 -- of others instead of setting it master.
+	 -- awful.client.setslave(c) Put windows in a smart way,
+	 -- only if they does not set an initial position.
+	 if not c.size_hints.user_position and
+	    not c.size_hints.program_position then
+	    awful.placement.no_overlap(c)
+	    awful.placement.no_offscreen(c)
+	 end
+      end
+   end)
+
+client.add_signal(
+   "focus",
+   function(c) c.border_color = beautiful.border_focus end)
+client.add_signal(
+   "unfocus",
+   function(c) c.border_color = beautiful.border_normal end)
+-- }}}
+
+
+-- Autorun programs
+autorun = true
+autorunApps = {
+   "xrdb -load " .. os.getenv("HOME") .. "/.Xdefaults",
+   "gnome-settings-daemon",
+   "goldendict",
+   "xscreensaver -nosplash",
+}
+if autorun then
+   for app = 1, #autorunApps do
+      awful.util.spawn(autorunApps[app])
+   end
+end
+